From 4f61c0775b8b3d034d6ec5246dc2a89011457525 Mon Sep 17 00:00:00 2001 From: Ilya Grebnov Date: Thu, 10 Nov 2022 23:08:23 -0800 Subject: [PATCH] Compression ratio improvements. --- AUTHORS | 3 +- CHANGES | 11 +- README.md | 138 +- VERSION | 2 +- bsc-m03.cpp | 2 +- libsais/CHANGES | 6 + libsais/VERSION | 2 +- libsais/libsais.c | 615 +++-- libsais/libsais.h | 72 +- libsais/libsais16.c | 613 +++-- libsais/libsais16.h | 72 +- m03_model.h | 307 ++- m03_parser.h | 16 +- m03_tables.h | 6030 +++++++++++++++++++++++++++++++++++++------ 14 files changed, 6515 insertions(+), 1374 deletions(-) diff --git a/AUTHORS b/AUTHORS index bd6533b..65ed302 100644 --- a/AUTHORS +++ b/AUTHORS @@ -5,6 +5,7 @@ -- This program is based on (at least) the work of Michael Maniscalco, Atsushi Komiya, Pochang Chen, - Surya Kandau and Malte Skarupke. + Surya Kandau, Malte Skarupke, Danny Dube, Vincent Beaudoin, + Takahiro Ota, Hiroyoshi Morita and Akiko Manada. diff --git a/CHANGES b/CHANGES index 5fa84ae..cf8041b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,12 +1,15 @@ +* 2022-11-10 : Version 0.3.0 + * Compression ratio improvements. + * 2022-01-08 : Version 0.2.1 - * Replaced std::stable_sort with ska_sort. + * Performance improvements. * 2022-01-05 : Version 0.2 - * Improved compression. - * Reduced memory usage from 15x to 13x. + * Memory usage improvements. + * Compression ratio improvements. * 2021-12-07 : Version 0.1.1 - 0.1.2 - * Slightly improved compression using symbols history. + * Minor compression ratio improvements. * 2021-12-03 : Version 0.1.0 * Initial public release of the bsc-m03. diff --git a/README.md b/README.md index f7caa1a..c8743f8 100644 --- a/README.md +++ b/README.md @@ -4,19 +4,25 @@ The bsc-m03 is experimental block sorting compressor based on M03 context aware * Michael Maniscalco *M03: A solution for context based blocksort (BWT) compression*, 2004 * Jurgen Abel *Post BWT stages of the Burrows-Wheeler compression algorithm*, 2010 +Moreover, the bsc-m03 compressor is a practical implementation of *Compression via Substring Enumeration* for byte-oriented sources: +* Danny Dube, Vincent Beaudoin *Lossless Data Compression via Substring Enumeration*, 2010 +* Takahiro Ota, Hiroyoshi Morita, Akiko Manada *Compression by Substring Enumeration with a Finite Alphabet Using Sorting*, 2018 + Copyright (c) 2021-2022 Ilya Grebnov ## License The bsc-m03 is released under the [GNU General Public License](LICENSE "GNU General Public License") ## Changes +* 2022-11-10 : Version 0.3.0 + * Compression ratio improvements. * 2022-01-08 : Version 0.2.1 - * Replaced std::stable_sort with ska_sort. + * Performance improvements. * 2022-01-05 : Version 0.2 - * Improved compression. - * Reduced memory usage from 15x to 13x. + * Memory usage improvements. + * Compression ratio improvements. * 2021-12-07 : Version 0.1.1 - 0.1.2 - * Slightly improved compression using symbols history. + * Minor compression ratio improvements. * 2021-12-03 : Version 0.1.0 * Initial public release of the bsc-m03. @@ -25,89 +31,89 @@ The bsc-m03 is released under the [GNU General Public License](LICENSE "GNU Gene ### Calgary Corpus ### | File name | Input size (bytes) | Output size (bytes) | Bits per symbol | |:---------------:|:-----------:|:------------:|:-------:| -| bib | 111261 | 24832 | 1.785 | -| book1 | 768771 | 206247 | 2.146 | -| book2 | 610856 | 140103 | 1.835 | -| geo | 102400 | 52597 | 4.109 | -| news | 377109 | 107049 | 2.271 | -| obj1 | 21504 | 9863 | 3.669 | -| obj2 | 246814 | 68833 | 2.231 | -| paper1 | 53161 | 15145 | 2.279 | -| paper2 | 82199 | 22824 | 2.221 | -| pic | 513216 | 44694 | 0.697 | -| progc | 39611 | 11390 | 2.300 | -| progl | 71646 | 13689 | 1.529 | -| progp | 49379 | 9376 | 1.519 | -| trans | 93695 | 15550 | 1.328 | +| bib | 111261 | 24656 | 1.773 | +| book1 | 768771 | 204395 | 2.127 | +| book2 | 610856 | 139566 | 1.828 | +| geo | 102400 | 52580 | 4.108 | +| news | 377109 | 106395 | 2.257 | +| obj1 | 21504 | 9795 | 3.644 | +| obj2 | 246814 | 68414 | 2.218 | +| paper1 | 53161 | 15048 | 2.265 | +| paper2 | 82199 | 22687 | 2.208 | +| pic | 513216 | 44620 | 0.696 | +| progc | 39611 | 11320 | 2.286 | +| progl | 71646 | 13610 | 1.520 | +| progp | 49379 | 9316 | 1.509 | +| trans | 93695 | 15446 | 1.319 | ### Canterbury Corpus ### | File name | Input size (bytes) | Output size (bytes) | Bits per symbol | |:---------------:|:-----------:|:------------:|:-------:| -| alice29.txt | 152089 | 38841 | 2.043 | -| asyoulik.txt | 125179 | 36149 | 2.310 | -| cp.html | 24603 | 6969 | 2.266 | -| fields.c | 11150 | 2712 | 1.946 | -| grammar.lsp | 3721 | 1138 | 2.447 | -| kennedy.xls | 1029744 | 56929 | 0.442 | -| lcet10.txt | 426754 | 95628 | 1.793 | -| plrabn12.txt | 481861 | 130437 | 2.166 | -| ptt5 | 513216 | 44694 | 0.697 | -| sum | 38240 | 11539 | 2.414 | -| xargs.1 | 4227 | 1603 | 3.034 | +| alice29.txt | 152089 | 38667 | 2.034 | +| asyoulik.txt | 125179 | 36019 | 2.302 | +| cp.html | 24603 | 6915 | 2.249 | +| fields.c | 11150 | 2695 | 1.934 | +| grammar.lsp | 3721 | 1130 | 2.429 | +| kennedy.xls | 1029744 | 56568 | 0.439 | +| lcet10.txt | 426754 | 95240 | 1.785 | +| plrabn12.txt | 481861 | 130068 | 2.159 | +| ptt5 | 513216 | 44620 | 0.696 | +| sum | 38240 | 11479 | 2.401 | +| xargs.1 | 4227 | 1585 | 3.000 | ### Large Canterbury Corpus ### | File name | Input size (bytes) | Output size (bytes) | Bits per symbol | |:---------------:|:-----------:|:------------:|:-------:| -| bible.txt | 4047392 | 703933 | 1.391 | -| E.coli | 4638690 | 1129304 | 1.948 | -| world192.txt | 2473400 | 381247 | 1.233 | +| bible.txt | 4047392 | 701049 | 1.386 | +| E.coli | 4638690 | 1126463 | 1.943 | +| world192.txt | 2473400 | 378508 | 1.224 | ### Silesia Corpus ### | File name | Input size (bytes) | Output size (bytes) | Bits per symbol | |:---------------:|:-----------:|:------------:|:-------:| -| dickens | 10192446 | 2208219 | 1.733 | -| mozilla | 51220480 | 15704019 | 2.453 | -| mr | 9970564 | 2160359 | 1.733 | -| nci | 33553445 | 1137038 | 0.271 | -| ooffice | 6152192 | 2522972 | 3.281 | -| osdb | 10085684 | 2230920 | 1.770 | -| reymont | 6627202 | 964011 | 1.164 | -| samba | 21606400 | 3839503 | 1.422 | -| sao | 7251944 | 4656134 | 5.136 | -| webster | 41458703 | 6279969 | 1.212 | -| xml | 5345280 | 364952 | 0.546 | -| x-ray | 8474240 | 3685642 | 3.479 | +| dickens | 10192446 | 2203859 | 1.730 | +| mozilla | 51220480 | 15630325 | 2.441 | +| mr | 9970564 | 2158802 | 1.732 | +| nci | 33553445 | 1130423 | 0.270 | +| ooffice | 6152192 | 2511633 | 3.266 | +| osdb | 10085684 | 2221807 | 1.762 | +| reymont | 6627202 | 962152 | 1.161 | +| samba | 21606400 | 3816749 | 1.413 | +| sao | 7251944 | 4651078 | 5.131 | +| webster | 41458703 | 6267572 | 1.209 | +| xml | 5345280 | 362358 | 0.542 | +| x-ray | 8474240 | 3681801 | 3.476 | ### Manzini Corpus ### | File name | Input size (bytes) | Output size (bytes) | Bits per symbol | |:---------------:|:-----------:|:------------:|:-------:| -| chr22.dna | 34553758 | 7227116 | 1.673 | -| etext99 | 105277340 | 21586520 | 1.640 | -| gcc-3.0.tar | 86630400 | 10198397 | 0.942 | -| howto | 39422105 | 7594162 | 1.541 | -| jdk13c | 69728899 | 2659297 | 0.305 | -| linux-2.4.5.tar | 116254720 | 16599153 | 1.142 | -| rctail96 | 114711151 | 9852234 | 0.687 | -| rfc | 116421901 | 15047359 | 1.034 | -| sprot34.dat | 109617186 | 17382679 | 1.269 | -| w3c2 | 104201579 | 5717299 | 0.439 | +| chr22.dna | 34553758 | 7206590 | 1.668 | +| etext99 | 105277340 | 21508150 | 1.634 | +| gcc-3.0.tar | 86630400 | 10131247 | 0.936 | +| howto | 39422105 | 7556359 | 1.533 | +| jdk13c | 69728899 | 2638786 | 0.303 | +| linux-2.4.5.tar | 116254720 | 16489301 | 1.135 | +| rctail96 | 114711151 | 9788959 | 0.683 | +| rfc | 116421901 | 14967795 | 1.029 | +| sprot34.dat | 109617186 | 17259191 | 1.260 | +| w3c2 | 104201579 | 5666677 | 0.435 | ### Maximum Compression Corpus ### | File name | Input size (bytes) | Output size (bytes) | Bits per symbol | |:---------------:|:-----------:|:------------:|:-------:| -| A10.jpg | 842468 | 823856 | 7.823 | -| AcroRd32.exe | 3870784 | 1568677 | 3.242 | -| english.dic | 465211 | 147280 | 2.533 | -| FlashMX.pdf | 4526946 | 3721859 | 6.577 | -| FP.LOG | 20617071 | 508327 | 0.197 | -| MSO97.DLL | 3782416 | 1890558 | 3.999 | -| ohs.doc | 4168192 | 810011 | 1.555 | -| rafale.bmp | 4149414 | 745966 | 1.438 | -| vcfiu.hlp | 4121418 | 613304 | 1.190 | -| world95.txt | 2988578 | 448323 | 1.200 | +| A10.jpg | 842468 | 823496 | 7.820 | +| AcroRd32.exe | 3870784 | 1560548 | 3.225 | +| english.dic | 465211 | 145707 | 2.506 | +| FlashMX.pdf | 4526946 | 3717253 | 6.569 | +| FP.LOG | 20617071 | 505982 | 0.196 | +| MSO97.DLL | 3782416 | 1882533 | 3.982 | +| ohs.doc | 4168192 | 805796 | 1.547 | +| rafale.bmp | 4149414 | 743544 | 1.434 | +| vcfiu.hlp | 4121418 | 608769 | 1.182 | +| world95.txt | 2988578 | 445466 | 1.192 | ### Large Text Compression Benchmark Corpus ### | File name | Input size (bytes) | Output size (bytes) | Bits per symbol | |:---------------:|:-----------:|:------------:|:-------:| -| enwik8 | 100000000 | 20398312 | 1.632 | -| enwik9 | 1000000000 | 161062976 | 1.289 | +| enwik8 | 100000000 | 20339773 | 1.627 | +| enwik9 | 1000000000 | 160616907 | 1.285 | diff --git a/VERSION b/VERSION index 7dff5b8..9325c3c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2.1 \ No newline at end of file +0.3.0 \ No newline at end of file diff --git a/bsc-m03.cpp b/bsc-m03.cpp index f766e47..fabc17e 100644 --- a/bsc-m03.cpp +++ b/bsc-m03.cpp @@ -409,7 +409,7 @@ static int print_usage() int main(int argc, const char * argv[]) { - fprintf(stdout, "bsc-m03 is experimental block sorting compressor. Version 0.2.1 (08 January 2022).\n"); + fprintf(stdout, "bsc-m03 is experimental block sorting compressor. Version 0.3.0 (10 November 2022).\n"); fprintf(stdout, "Copyright (c) 2021-2022 Ilya Grebnov . ABSOLUTELY NO WARRANTY.\n"); fprintf(stdout, "This program is based on (at least) the work of Michael Maniscalco (see AUTHORS).\n\n"); diff --git a/libsais/CHANGES b/libsais/CHANGES index 686ea50..c41b978 100644 --- a/libsais/CHANGES +++ b/libsais/CHANGES @@ -1,3 +1,9 @@ +Changes in 2.7.1 (June 19, 2022) +- Improved cache coherence for ARMv8 architecture. + +Changes in 2.7.0 (April 12, 2022) +- Support for longest common prefix array (LCP) construction. + Changes in 2.6.5 (January 1, 2022) - Exposed functions to construct suffix array of a given integer array. - Improved detection of various compiler intrinsics. diff --git a/libsais/VERSION b/libsais/VERSION index 6816713..5588ae8 100644 --- a/libsais/VERSION +++ b/libsais/VERSION @@ -1 +1 @@ -2.6.5 \ No newline at end of file +2.7.1 \ No newline at end of file diff --git a/libsais/libsais.c b/libsais/libsais.c index dac2bab..fcbfe7e 100644 --- a/libsais/libsais.c +++ b/libsais/libsais.c @@ -1,7 +1,7 @@ /*-- -This file is a part of libsais, a library for linear time -suffix array and burrows wheeler transform construction. +This file is a part of libsais, a library for linear time suffix array, +longest common prefix array and burrows wheeler transform construction. Copyright (c) 2021-2022 Ilya Grebnov @@ -105,7 +105,7 @@ typedef struct LIBSAIS_UNBWT_CONTEXT #if __has_builtin(__builtin_prefetch) #define HAS_BUILTIN_PREFECTCH #endif -#elif defined(__GNUC__) && ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)) || (__GNUC__ >= 4) +#elif defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)) || (__GNUC__ >= 4)) #define HAS_BUILTIN_PREFECTCH #endif @@ -113,25 +113,25 @@ typedef struct LIBSAIS_UNBWT_CONTEXT #if __has_builtin(__builtin_bswap16) #define HAS_BUILTIN_BSWAP16 #endif -#elif defined(__GNUC__) && ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ >= 5) +#elif defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ >= 5)) #define HAS_BUILTIN_BSWAP16 #endif #if defined(HAS_BUILTIN_PREFECTCH) - #define libsais_prefetch(address) __builtin_prefetch((const void *)(address), 0, 0) - #define libsais_prefetchw(address) __builtin_prefetch((const void *)(address), 1, 0) + #define libsais_prefetchr(address) __builtin_prefetch((const void *)(address), 0, 3) + #define libsais_prefetchw(address) __builtin_prefetch((const void *)(address), 1, 3) #elif defined (_M_IX86) || defined (_M_AMD64) #include - #define libsais_prefetch(address) _mm_prefetch((const void *)(address), _MM_HINT_NTA) + #define libsais_prefetchr(address) _mm_prefetch((const void *)(address), _MM_HINT_T0) #define libsais_prefetchw(address) _m_prefetchw((const void *)(address)) #elif defined (_M_ARM) #include - #define libsais_prefetch(address) __prefetch((const void *)(address)) + #define libsais_prefetchr(address) __prefetch((const void *)(address)) #define libsais_prefetchw(address) __prefetchw((const void *)(address)) #elif defined (_M_ARM64) #include - #define libsais_prefetch(address) __prefetch2((const void *)(address), 1) - #define libsais_prefetchw(address) __prefetch2((const void *)(address), 17) + #define libsais_prefetchr(address) __prefetch2((const void *)(address), 0) + #define libsais_prefetchw(address) __prefetch2((const void *)(address), 16) #else #error Your compiler, configuration or platform is not supported. #endif @@ -287,7 +287,7 @@ static void libsais_place_cached_suffixes(sa_sint_t * RESTRICT SA, LIBSAIS_THREA fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&cache[i + 2 * prefetch_distance]); + libsais_prefetchr(&cache[i + 2 * prefetch_distance]); libsais_prefetchw(&SA[cache[i + prefetch_distance + 0].symbol]); libsais_prefetchw(&SA[cache[i + prefetch_distance + 1].symbol]); @@ -441,7 +441,7 @@ static void libsais_gather_lms_suffixes_8u(const uint8_t * RESTRICT T, sa_sint_t for (i = omp_block_start + omp_block_size - 2, j = omp_block_start + 3; i >= j; i -= 4) { - libsais_prefetch(&T[i - prefetch_distance]); + libsais_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = (sa_sint_t)(i + 1); m -= ((s & 3) == 1); c0 = T[i - 1]; s = (s << 1) + (fast_uint_t)(c0 > (c1 - (fast_sint_t)(s & 1))); SA[m] = (sa_sint_t)(i - 0); m -= ((s & 3) == 1); @@ -511,7 +511,7 @@ static sa_sint_t libsais_gather_lms_suffixes_32s(const sa_sint_t * RESTRICT T, s for (; i >= 3; i -= 4) { - libsais_prefetch(&T[i - prefetch_distance]); + libsais_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = i + 1; m -= ((s & 3) == 1); c0 = T[i - 1]; s = (s << 1) + (fast_uint_t)(c0 > (c1 - (fast_sint_t)(s & 1))); SA[m] = i - 0; m -= ((s & 3) == 1); @@ -539,7 +539,7 @@ static sa_sint_t libsais_gather_compacted_lms_suffixes_32s(const sa_sint_t * RES for (; i >= 3; i -= 4) { - libsais_prefetch(&T[i - prefetch_distance]); + libsais_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = i + 1; m -= ((fast_sint_t)(s & 3) == (c0 >= 0)); c0 = T[i - 1]; s = (s << 1) + (fast_uint_t)(c0 > (c1 - (fast_sint_t)(s & 1))); SA[m] = i - 0; m -= ((fast_sint_t)(s & 3) == (c1 >= 0)); @@ -570,7 +570,7 @@ static void libsais_count_lms_suffixes_32s_4k(const sa_sint_t * RESTRICT T, sa_s for (; i >= prefetch_distance + 3; i -= 4) { - libsais_prefetch(&T[i - 2 * prefetch_distance]); + libsais_prefetchr(&T[i - 2 * prefetch_distance]); libsais_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 0], 0)]); libsais_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 1], 0)]); @@ -614,7 +614,7 @@ static void libsais_count_lms_suffixes_32s_2k(const sa_sint_t * RESTRICT T, sa_s for (; i >= prefetch_distance + 3; i -= 4) { - libsais_prefetch(&T[i - 2 * prefetch_distance]); + libsais_prefetchr(&T[i - 2 * prefetch_distance]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0], 0)]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1], 0)]); @@ -658,7 +658,7 @@ static void libsais_count_compacted_lms_suffixes_32s_2k(const sa_sint_t * RESTRI for (; i >= prefetch_distance + 3; i -= 4) { - libsais_prefetch(&T[i - 2 * prefetch_distance]); + libsais_prefetchr(&T[i - 2 * prefetch_distance]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0] & SAINT_MAX, 0)]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1] & SAINT_MAX, 0)]); @@ -707,7 +707,7 @@ static sa_sint_t libsais_count_and_gather_lms_suffixes_8u(const uint8_t * RESTRI for (i = m - 1, j = omp_block_start + 3; i >= j; i -= 4) { - libsais_prefetch(&T[i - prefetch_distance]); + libsais_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = (sa_sint_t)(i + 1); m -= ((s & 3) == 1); buckets[BUCKETS_INDEX4((fast_uint_t)c0, s & 3)]++; @@ -820,7 +820,7 @@ static sa_sint_t libsais_count_and_gather_lms_suffixes_32s_4k(const sa_sint_t * for (i = m - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais_prefetch(&T[i - 2 * prefetch_distance]); + libsais_prefetchr(&T[i - 2 * prefetch_distance]); libsais_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 0], 0)]); libsais_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 1], 0)]); @@ -871,7 +871,7 @@ static sa_sint_t libsais_count_and_gather_lms_suffixes_32s_2k(const sa_sint_t * for (i = m - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais_prefetch(&T[i - 2 * prefetch_distance]); + libsais_prefetchr(&T[i - 2 * prefetch_distance]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0], 0)]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1], 0)]); @@ -922,7 +922,7 @@ static sa_sint_t libsais_count_and_gather_compacted_lms_suffixes_32s_2k(const sa for (i = m - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais_prefetch(&T[i - 2 * prefetch_distance]); + libsais_prefetchr(&T[i - 2 * prefetch_distance]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0] & SAINT_MAX, 0)]); libsais_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1] & SAINT_MAX, 0)]); @@ -1334,7 +1334,7 @@ static void libsais_count_suffixes_32s(const sa_sint_t * RESTRICT T, sa_sint_t n fast_sint_t i, j; for (i = 0, j = (fast_sint_t)n - 7; i < j; i += 8) { - libsais_prefetch(&T[i + prefetch_distance]); + libsais_prefetchr(&T[i + prefetch_distance]); buckets[T[i + 0]]++; buckets[T[i + 1]]++; @@ -1541,12 +1541,12 @@ static void libsais_radix_sort_lms_suffixes_8u(const uint8_t * RESTRICT T, sa_si fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais_prefetch(&SA[i - 2 * prefetch_distance]); + libsais_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i - prefetch_distance - 0]]); - libsais_prefetch(&T[SA[i - prefetch_distance - 1]]); - libsais_prefetch(&T[SA[i - prefetch_distance - 2]]); - libsais_prefetch(&T[SA[i - prefetch_distance - 3]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 0]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 1]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 2]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 3]]); sa_sint_t p0 = SA[i - 0]; SA[--induction_bucket[BUCKETS_INDEX2(T[p0], 0)]] = p0; sa_sint_t p1 = SA[i - 1]; SA[--induction_bucket[BUCKETS_INDEX2(T[p1], 0)]] = p1; @@ -1615,12 +1615,12 @@ static void libsais_radix_sort_lms_suffixes_32s_6k(const sa_sint_t * RESTRICT T, fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + 2 * prefetch_distance + 3; i >= j; i -= 4) { - libsais_prefetch(&SA[i - 3 * prefetch_distance]); + libsais_prefetchr(&SA[i - 3 * prefetch_distance]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 0]]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 1]]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 2]]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 3]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 0]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 1]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 2]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 3]]); libsais_prefetchw(&induction_bucket[T[SA[i - prefetch_distance - 0]]]); libsais_prefetchw(&induction_bucket[T[SA[i - prefetch_distance - 1]]]); @@ -1646,12 +1646,12 @@ static void libsais_radix_sort_lms_suffixes_32s_2k(const sa_sint_t * RESTRICT T, fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + 2 * prefetch_distance + 3; i >= j; i -= 4) { - libsais_prefetch(&SA[i - 3 * prefetch_distance]); + libsais_prefetchr(&SA[i - 3 * prefetch_distance]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 0]]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 1]]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 2]]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 3]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 0]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 1]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 2]]); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 3]]); libsais_prefetchw(&induction_bucket[BUCKETS_INDEX2(T[SA[i - prefetch_distance - 0]], 0)]); libsais_prefetchw(&induction_bucket[BUCKETS_INDEX2(T[SA[i - prefetch_distance - 1]], 0)]); @@ -1679,12 +1679,12 @@ static void libsais_radix_sort_lms_suffixes_32s_block_gather(const sa_sint_t * R fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i + prefetch_distance + 0]]); - libsais_prefetch(&T[SA[i + prefetch_distance + 1]]); - libsais_prefetch(&T[SA[i + prefetch_distance + 2]]); - libsais_prefetch(&T[SA[i + prefetch_distance + 3]]); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0]]); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1]]); + libsais_prefetchr(&T[SA[i + prefetch_distance + 2]]); + libsais_prefetchr(&T[SA[i + prefetch_distance + 3]]); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -1909,7 +1909,7 @@ static sa_sint_t libsais_radix_sort_lms_suffixes_32s_1k(const sa_sint_t * RESTRI for (; i >= prefetch_distance + 3; i -= 4) { - libsais_prefetch(&T[i - 2 * prefetch_distance]); + libsais_prefetchr(&T[i - 2 * prefetch_distance]); libsais_prefetchw(&buckets[T[i - prefetch_distance - 0]]); libsais_prefetchw(&buckets[T[i - prefetch_distance - 1]]); @@ -1950,7 +1950,7 @@ static void libsais_radix_sort_set_markers_32s_6k(sa_sint_t * RESTRICT SA, sa_si fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&induction_bucket[i + 2 * prefetch_distance]); + libsais_prefetchr(&induction_bucket[i + 2 * prefetch_distance]); libsais_prefetchw(&SA[induction_bucket[i + prefetch_distance + 0]]); libsais_prefetchw(&SA[induction_bucket[i + prefetch_distance + 1]]); @@ -1976,7 +1976,7 @@ static void libsais_radix_sort_set_markers_32s_4k(sa_sint_t * RESTRICT SA, sa_si fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&induction_bucket[BUCKETS_INDEX2(i + 2 * prefetch_distance, 0)]); + libsais_prefetchr(&induction_bucket[BUCKETS_INDEX2(i + 2 * prefetch_distance, 0)]); libsais_prefetchw(&SA[induction_bucket[BUCKETS_INDEX2(i + prefetch_distance + 0, 0)]]); libsais_prefetchw(&SA[induction_bucket[BUCKETS_INDEX2(i + prefetch_distance + 1, 0)]]); @@ -2112,12 +2112,12 @@ static sa_sint_t libsais_partial_sorting_scan_left_to_right_8u(const uint8_t * R fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i + 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] >= T[p0 - 1]); SA[induction_bucket[v0]++] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -2149,12 +2149,12 @@ static void libsais_partial_sorting_scan_left_to_right_8u_block_prepare(const ui fast_sint_t i, j, count = 0; sa_sint_t d = 1; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); sa_sint_t p0 = cache[count].index = SA[i + 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = cache[count++].symbol = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] >= T[p0 - 1]); induction_bucket[v0]++; distinct_names[v0] = d; sa_sint_t p1 = cache[count].index = SA[i + 1]; d += (p1 < 0); p1 &= SAINT_MAX; sa_sint_t v1 = cache[count++].symbol = BUCKETS_INDEX2(T[p1 - 1], T[p1 - 2] >= T[p1 - 1]); induction_bucket[v1]++; distinct_names[v1] = d; @@ -2179,7 +2179,7 @@ static void libsais_partial_sorting_scan_left_to_right_8u_block_place(sa_sint_t fast_sint_t i, j; for (i = 0, j = count - 1; i < j; i += 2) { - libsais_prefetch(&cache[i + prefetch_distance]); + libsais_prefetchr(&cache[i + prefetch_distance]); sa_sint_t p0 = cache[i + 0].index; d += (p0 < 0); sa_sint_t v0 = cache[i + 0].symbol; SA[induction_bucket[v0]++] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -2320,12 +2320,12 @@ static sa_sint_t libsais_partial_sorting_scan_left_to_right_32s_6k(const sa_sint fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - 2 * prefetch_distance - 1; i < j; i += 2) { - libsais_prefetch(&SA[i + 3 * prefetch_distance]); + libsais_prefetchr(&SA[i + 3 * prefetch_distance]); - libsais_prefetch(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i + prefetch_distance + 0] & SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX4(T[p0 - (p0 > 0)], 0); libsais_prefetchw(&buckets[v0]); sa_sint_t p1 = SA[i + prefetch_distance + 1] & SAINT_MAX; sa_sint_t v1 = BUCKETS_INDEX4(T[p1 - (p1 > 0)], 0); libsais_prefetchw(&buckets[v1]); @@ -2358,8 +2358,8 @@ static sa_sint_t libsais_partial_sorting_scan_left_to_right_32s_4k(const sa_sint { libsais_prefetchw(&SA[i + 3 * prefetch_distance]); - sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { const fast_sint_t Ts2 = T[(s2 & ~SUFFIX_GROUP_MARKER) - 1]; libsais_prefetchw(&induction_bucket[Ts2]); libsais_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts2, 0)]); } sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { const fast_sint_t Ts3 = T[(s3 & ~SUFFIX_GROUP_MARKER) - 1]; libsais_prefetchw(&induction_bucket[Ts3]); libsais_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts3, 0)]); } @@ -2400,10 +2400,10 @@ static void libsais_partial_sorting_scan_left_to_right_32s_1k(const sa_sint_t * { libsais_prefetchw(&SA[i + 3 * prefetch_distance]); - sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { SA[i + 0] = 0; SA[induction_bucket[T[p0 - 1]]++] = (p0 - 1) | ((sa_sint_t)(T[p0 - 2] < T[p0 - 1]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { SA[i + 1] = 0; SA[induction_bucket[T[p1 - 1]]++] = (p1 - 1) | ((sa_sint_t)(T[p1 - 2] < T[p1 - 1]) << (SAINT_BIT - 1)); } @@ -2424,12 +2424,12 @@ static void libsais_partial_sorting_scan_left_to_right_32s_6k_block_gather(const fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -2452,8 +2452,8 @@ static void libsais_partial_sorting_scan_left_to_right_32s_4k_block_gather(const { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -2476,8 +2476,8 @@ static void libsais_partial_sorting_scan_left_to_right_32s_1k_block_gather(const { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -2943,12 +2943,12 @@ static sa_sint_t libsais_partial_sorting_scan_right_to_left_8u(const uint8_t * R fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + prefetch_distance + 1; i >= j; i -= 2) { - libsais_prefetch(&SA[i - 2 * prefetch_distance]); + libsais_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i - 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] > T[p0 - 1]); SA[--induction_bucket[v0]] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -2980,12 +2980,12 @@ static void libsais_partial_sorting_scan_right_to_left_8u_block_prepare(const ui fast_sint_t i, j, count = 0; sa_sint_t d = 1; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + prefetch_distance + 1; i >= j; i -= 2) { - libsais_prefetch(&SA[i - 2 * prefetch_distance]); + libsais_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); sa_sint_t p0 = cache[count].index = SA[i - 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = cache[count++].symbol = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] > T[p0 - 1]); induction_bucket[v0]++; distinct_names[v0] = d; sa_sint_t p1 = cache[count].index = SA[i - 1]; d += (p1 < 0); p1 &= SAINT_MAX; sa_sint_t v1 = cache[count++].symbol = BUCKETS_INDEX2(T[p1 - 1], T[p1 - 2] > T[p1 - 1]); induction_bucket[v1]++; distinct_names[v1] = d; @@ -3010,7 +3010,7 @@ static void libsais_partial_sorting_scan_right_to_left_8u_block_place(sa_sint_t fast_sint_t i, j; for (i = 0, j = count - 1; i < j; i += 2) { - libsais_prefetch(&cache[i + prefetch_distance]); + libsais_prefetchr(&cache[i + prefetch_distance]); sa_sint_t p0 = cache[i + 0].index; d += (p0 < 0); sa_sint_t v0 = cache[i + 0].symbol; SA[--induction_bucket[v0]] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -3149,12 +3149,12 @@ static sa_sint_t libsais_partial_sorting_scan_right_to_left_32s_6k(const sa_sint fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + 2 * prefetch_distance + 1; i >= j; i -= 2) { - libsais_prefetch(&SA[i - 3 * prefetch_distance]); + libsais_prefetchr(&SA[i - 3 * prefetch_distance]); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i - prefetch_distance - 0] & SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX4(T[p0 - (p0 > 0)], 0); libsais_prefetchw(&buckets[v0]); sa_sint_t p1 = SA[i - prefetch_distance - 1] & SAINT_MAX; sa_sint_t v1 = BUCKETS_INDEX4(T[p1 - (p1 > 0)], 0); libsais_prefetchw(&buckets[v1]); @@ -3187,8 +3187,8 @@ static sa_sint_t libsais_partial_sorting_scan_right_to_left_32s_4k(const sa_sint { libsais_prefetchw(&SA[i - 3 * prefetch_distance]); - sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { const fast_sint_t Ts2 = T[(s2 & ~SUFFIX_GROUP_MARKER) - 1]; libsais_prefetchw(&induction_bucket[Ts2]); libsais_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts2, 0)]); } sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { const fast_sint_t Ts3 = T[(s3 & ~SUFFIX_GROUP_MARKER) - 1]; libsais_prefetchw(&induction_bucket[Ts3]); libsais_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts3, 0)]); } @@ -3229,10 +3229,10 @@ static void libsais_partial_sorting_scan_right_to_left_32s_1k(const sa_sint_t * { libsais_prefetchw(&SA[i - 3 * prefetch_distance]); - sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i - 0]; if (p0 > 0) { SA[i - 0] = 0; SA[--induction_bucket[T[p0 - 1]]] = (p0 - 1) | ((sa_sint_t)(T[p0 - 2] > T[p0 - 1]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; if (p1 > 0) { SA[i - 1] = 0; SA[--induction_bucket[T[p1 - 1]]] = (p1 - 1) | ((sa_sint_t)(T[p1 - 2] > T[p1 - 1]) << (SAINT_BIT - 1)); } @@ -3253,12 +3253,12 @@ static void libsais_partial_sorting_scan_right_to_left_32s_6k_block_gather(const fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -3281,8 +3281,8 @@ static void libsais_partial_sorting_scan_right_to_left_32s_4k_block_gather(const { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -3305,8 +3305,8 @@ static void libsais_partial_sorting_scan_right_to_left_32s_1k_block_gather(const { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -3662,7 +3662,7 @@ static fast_sint_t libsais_partial_sorting_gather_lms_suffixes_32s_4k(sa_sint_t fast_sint_t i, j, l; for (i = omp_block_start, j = omp_block_start + omp_block_size - 3, l = omp_block_start; i < j; i += 4) { - libsais_prefetch(&SA[i + prefetch_distance]); + libsais_prefetchr(&SA[i + prefetch_distance]); sa_sint_t s0 = SA[i + 0]; SA[l] = (s0 - SUFFIX_GROUP_MARKER) & (~SUFFIX_GROUP_MARKER); l += (s0 < 0); sa_sint_t s1 = SA[i + 1]; SA[l] = (s1 - SUFFIX_GROUP_MARKER) & (~SUFFIX_GROUP_MARKER); l += (s1 < 0); @@ -3685,7 +3685,7 @@ static fast_sint_t libsais_partial_sorting_gather_lms_suffixes_32s_1k(sa_sint_t fast_sint_t i, j, l; for (i = omp_block_start, j = omp_block_start + omp_block_size - 3, l = omp_block_start; i < j; i += 4) { - libsais_prefetch(&SA[i + prefetch_distance]); + libsais_prefetchr(&SA[i + prefetch_distance]); sa_sint_t s0 = SA[i + 0]; SA[l] = s0 & SAINT_MAX; l += (s0 < 0); sa_sint_t s1 = SA[i + 1]; SA[l] = s1 & SAINT_MAX; l += (s1 < 0); @@ -3859,7 +3859,7 @@ static sa_sint_t libsais_renumber_lms_suffixes_8u(sa_sint_t * RESTRICT SA, sa_si fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); libsais_prefetchw(&SAm[(SA[i + prefetch_distance + 0] & SAINT_MAX) >> 1]); libsais_prefetchw(&SAm[(SA[i + prefetch_distance + 1] & SAINT_MAX) >> 1]); @@ -3889,7 +3889,7 @@ static fast_sint_t libsais_gather_marked_suffixes_8u(sa_sint_t * RESTRICT SA, sa fast_sint_t i, j; for (i = (fast_sint_t)m + omp_block_start + omp_block_size - 1, j = (fast_sint_t)m + omp_block_start + 3; i >= j; i -= 4) { - libsais_prefetch(&SA[i - prefetch_distance]); + libsais_prefetchr(&SA[i - prefetch_distance]); sa_sint_t s0 = SA[i - 0]; SA[l] = s0 & SAINT_MAX; l -= s0 < 0; sa_sint_t s1 = SA[i - 1]; SA[l] = s1 & SAINT_MAX; l -= s1 < 0; @@ -4230,7 +4230,7 @@ static sa_sint_t libsais_renumber_and_mark_distinct_lms_suffixes_32s_1k_omp(sa_s fast_sint_t i, j; for (i = (fast_sint_t)n - (fast_sint_t)m, j = (fast_sint_t)n - 1 - prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); libsais_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); libsais_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); @@ -4261,10 +4261,10 @@ static sa_sint_t libsais_renumber_and_mark_distinct_lms_suffixes_32s_1k_omp(sa_s fast_sint_t i, j, p = SA[0], plen = SAm[p >> 1]; sa_sint_t pdiff = SAINT_MIN; for (i = 1, j = m - prefetch_distance - 1; i < j; i += 2) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); libsais_prefetch(&T[((sa_uint_t)SA[i + prefetch_distance + 0])]); - libsais_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); libsais_prefetch(&T[((sa_uint_t)SA[i + prefetch_distance + 1])]); + libsais_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); libsais_prefetchr(&T[((sa_uint_t)SA[i + prefetch_distance + 0])]); + libsais_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); libsais_prefetchr(&T[((sa_uint_t)SA[i + prefetch_distance + 1])]); fast_sint_t q = SA[i + 0], qlen = SAm[q >> 1]; sa_sint_t qdiff = SAINT_MIN; if (plen == qlen) { fast_sint_t l = 0; do { if (T[p + l] != T[q + l]) { break; } } while (++l < qlen); qdiff = (sa_sint_t)(l - qlen) & SAINT_MIN; } @@ -4306,10 +4306,10 @@ static void libsais_reconstruct_lms_suffixes(sa_sint_t * RESTRICT SA, sa_sint_t { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - libsais_prefetch(&SAnm[SA[i + prefetch_distance + 0]]); - libsais_prefetch(&SAnm[SA[i + prefetch_distance + 1]]); - libsais_prefetch(&SAnm[SA[i + prefetch_distance + 2]]); - libsais_prefetch(&SAnm[SA[i + prefetch_distance + 3]]); + libsais_prefetchr(&SAnm[SA[i + prefetch_distance + 0]]); + libsais_prefetchr(&SAnm[SA[i + prefetch_distance + 1]]); + libsais_prefetchr(&SAnm[SA[i + prefetch_distance + 2]]); + libsais_prefetchr(&SAnm[SA[i + prefetch_distance + 3]]); SA[i + 0] = SAnm[SA[i + 0]]; SA[i + 1] = SAnm[SA[i + 1]]; @@ -4425,12 +4425,12 @@ static void libsais_place_lms_suffixes_interval_32s_1k(const sa_sint_t * RESTRIC sa_sint_t c = k - 1; fast_sint_t i, l = buckets[c]; for (i = (fast_sint_t)m - 1; i >= prefetch_distance + 3; i -= 4) { - libsais_prefetch(&SA[i - 2 * prefetch_distance]); + libsais_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais_prefetch(&T[SA[i - prefetch_distance - 0]]); - libsais_prefetch(&T[SA[i - prefetch_distance - 1]]); - libsais_prefetch(&T[SA[i - prefetch_distance - 2]]); - libsais_prefetch(&T[SA[i - prefetch_distance - 3]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 0]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 1]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 2]]); + libsais_prefetchr(&T[SA[i - prefetch_distance - 3]]); sa_sint_t p0 = SA[i - 0]; if (T[p0] != c) { c = T[p0]; memset(&SA[buckets[c]], 0, (size_t)(l - buckets[c]) * sizeof(sa_sint_t)); l = buckets[c]; } SA[--l] = p0; sa_sint_t p1 = SA[i - 1]; if (T[p1] != c) { c = T[p1]; memset(&SA[buckets[c]], 0, (size_t)(l - buckets[c]) * sizeof(sa_sint_t)); l = buckets[c]; } SA[--l] = p1; @@ -4527,8 +4527,8 @@ static void libsais_final_bwt_scan_left_to_right_8u(const uint8_t * RESTRICT T, { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[i + 0] = T[p0] | SAINT_MIN; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[i + 1] = T[p1] | SAINT_MIN; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4549,8 +4549,8 @@ static void libsais_final_bwt_aux_scan_left_to_right_8u(const uint8_t * RESTRICT { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[i + 0] = T[p0] | SAINT_MIN; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); if ((p0 & rm) == 0) { I[p0 / (rm + 1)] = induction_bucket[T[p0]]; }} sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[i + 1] = T[p1] | SAINT_MIN; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); if ((p1 & rm) == 0) { I[p1 / (rm + 1)] = induction_bucket[T[p1]]; }} @@ -4571,8 +4571,8 @@ static void libsais_final_sorting_scan_left_to_right_8u(const uint8_t * RESTRICT { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 ^ SAINT_MIN; if (p0 > 0) { p0--; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 ^ SAINT_MIN; if (p1 > 0) { p1--; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4593,10 +4593,10 @@ static void libsais_final_sorting_scan_left_to_right_32s(const sa_sint_t * RESTR { libsais_prefetchw(&SA[i + 3 * prefetch_distance]); - sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 ^ SAINT_MIN; if (p0 > 0) { p0--; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 ^ SAINT_MIN; if (p1 > 0) { p1--; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4621,8 +4621,8 @@ static fast_sint_t libsais_final_bwt_scan_left_to_right_8u_block_prepare(const u { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[i + 0] = T[p0] | SAINT_MIN; buckets[cache[count].symbol = T[p0]]++; cache[count++].index = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[i + 1] = T[p1] | SAINT_MIN; buckets[cache[count].symbol = T[p1]]++; cache[count++].index = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4647,8 +4647,8 @@ static fast_sint_t libsais_final_sorting_scan_left_to_right_8u_block_prepare(con { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 ^ SAINT_MIN; if (p0 > 0) { p0--; buckets[cache[count].symbol = T[p0]]++; cache[count++].index = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 ^ SAINT_MIN; if (p1 > 0) { p1--; buckets[cache[count].symbol = T[p1]]++; cache[count++].index = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4669,7 +4669,7 @@ static void libsais_final_order_scan_left_to_right_8u_block_place(sa_sint_t * RE fast_sint_t i, j; for (i = 0, j = count - 3; i < j; i += 4) { - libsais_prefetch(&cache[i + prefetch_distance]); + libsais_prefetchr(&cache[i + prefetch_distance]); SA[buckets[cache[i + 0].symbol]++] = cache[i + 0].index; SA[buckets[cache[i + 1].symbol]++] = cache[i + 1].index; @@ -4690,7 +4690,7 @@ static void libsais_final_bwt_aux_scan_left_to_right_8u_block_place(sa_sint_t * fast_sint_t i, j; for (i = 0, j = count - 3; i < j; i += 4) { - libsais_prefetch(&cache[i + prefetch_distance]); + libsais_prefetchr(&cache[i + prefetch_distance]); SA[buckets[cache[i + 0].symbol]++] = cache[i + 0].index; if ((cache[i + 0].index & rm) == 0) { I[(cache[i + 0].index & SAINT_MAX) / (rm + 1)] = buckets[cache[i + 0].symbol]; } SA[buckets[cache[i + 1].symbol]++] = cache[i + 1].index; if ((cache[i + 1].index & rm) == 0) { I[(cache[i + 1].index & SAINT_MAX) / (rm + 1)] = buckets[cache[i + 1].symbol]; } @@ -4713,8 +4713,8 @@ static void libsais_final_sorting_scan_left_to_right_32s_block_gather(const sa_s { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -5146,8 +5146,8 @@ static sa_sint_t libsais_final_bwt_scan_right_to_left_8u(const uint8_t * RESTRIC { libsais_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; index = (p0 == 0) ? (sa_sint_t)(i - 0) : index; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint8_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; SA[--induction_bucket[c1]] = (c0 <= c1) ? p0 : t; } @@ -5174,8 +5174,8 @@ static void libsais_final_bwt_aux_scan_right_to_left_8u(const uint8_t * RESTRICT { libsais_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint8_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; SA[--induction_bucket[c1]] = (c0 <= c1) ? p0 : t; if ((p0 & rm) == 0) { I[p0 / (rm + 1)] = induction_bucket[T[p0]] + 1; } } @@ -5200,8 +5200,8 @@ static void libsais_final_sorting_scan_right_to_left_8u(const uint8_t * RESTRICT { libsais_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[--induction_bucket[T[p0]]] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] > T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[--induction_bucket[T[p1]]] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] > T[p1]) << (SAINT_BIT - 1)); } @@ -5222,10 +5222,10 @@ static void libsais_final_sorting_scan_right_to_left_32s(const sa_sint_t * RESTR { libsais_prefetchw(&SA[i - 3 * prefetch_distance]); - sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais_prefetchw(&induction_bucket[T[s2 - 1]]); libsais_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais_prefetchw(&induction_bucket[T[s3 - 1]]); libsais_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[--induction_bucket[T[p0]]] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] > T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[--induction_bucket[T[p1]]] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] > T[p1]) << (SAINT_BIT - 1)); } @@ -5250,8 +5250,8 @@ static fast_sint_t libsais_final_bwt_scan_right_to_left_8u_block_prepare(const u { libsais_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint8_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count++].index = (c0 <= c1) ? p0 : t; } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; uint8_t c0 = T[p1 - (p1 > 0)], c1 = T[p1]; SA[i - 1] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count++].index = (c0 <= c1) ? p1 : t; } @@ -5276,8 +5276,8 @@ static fast_sint_t libsais_final_bwt_aux_scan_right_to_left_8u_block_prepare(con { libsais_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint8_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count].index = (c0 <= c1) ? p0 : t; cache[count + 1].index = p0; count += 2; } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; uint8_t c0 = T[p1 - (p1 > 0)], c1 = T[p1]; SA[i - 1] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count].index = (c0 <= c1) ? p1 : t; cache[count + 1].index = p1; count += 2; } @@ -5302,8 +5302,8 @@ static fast_sint_t libsais_final_sorting_scan_right_to_left_8u_block_prepare(con { libsais_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint8_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint8_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; buckets[cache[count].symbol = T[p0]]++; cache[count++].index = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] > T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; buckets[cache[count].symbol = T[p1]]++; cache[count++].index = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] > T[p1]) << (SAINT_BIT - 1)); } @@ -5324,7 +5324,7 @@ static void libsais_final_order_scan_right_to_left_8u_block_place(sa_sint_t * RE fast_sint_t i, j; for (i = 0, j = count - 3; i < j; i += 4) { - libsais_prefetch(&cache[i + prefetch_distance]); + libsais_prefetchr(&cache[i + prefetch_distance]); SA[--buckets[cache[i + 0].symbol]] = cache[i + 0].index; SA[--buckets[cache[i + 1].symbol]] = cache[i + 1].index; @@ -5345,7 +5345,7 @@ static void libsais_final_bwt_aux_scan_right_to_left_8u_block_place(sa_sint_t * fast_sint_t i, j; for (i = 0, j = count - 6; i < j; i += 8) { - libsais_prefetch(&cache[i + prefetch_distance]); + libsais_prefetchr(&cache[i + prefetch_distance]); SA[--buckets[cache[i + 0].symbol]] = cache[i + 0].index; if ((cache[i + 1].index & rm) == 0) { I[cache[i + 1].index / (rm + 1)] = buckets[cache[i + 0].symbol] + 1; } SA[--buckets[cache[i + 2].symbol]] = cache[i + 2].index; if ((cache[i + 3].index & rm) == 0) { I[cache[i + 3].index / (rm + 1)] = buckets[cache[i + 2].symbol] + 1; } @@ -5368,8 +5368,8 @@ static void libsais_final_sorting_scan_right_to_left_32s_block_gather(const sa_s { libsais_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais_prefetchr(s1 > 0 ? Ts1 : NULL); libsais_prefetchw(&cache[i + prefetch_distance]); @@ -5866,7 +5866,7 @@ static sa_sint_t libsais_renumber_unique_and_nonunique_lms_suffixes_32s(sa_sint_ sa_sint_t i, j; for (i = (sa_sint_t)omp_block_start, j = (sa_sint_t)omp_block_start + (sa_sint_t)omp_block_size - 2 * (sa_sint_t)prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&SA[i + 3 * prefetch_distance]); + libsais_prefetchr(&SA[i + 3 * prefetch_distance]); libsais_prefetchw(&SAm[((sa_uint_t)SA[i + 2 * prefetch_distance + 0]) >> 1]); libsais_prefetchw(&SAm[((sa_uint_t)SA[i + 2 * prefetch_distance + 1]) >> 1]); @@ -5902,7 +5902,7 @@ static void libsais_compact_unique_and_nonunique_lms_suffixes_32s(sa_sint_t * RE fast_sint_t i, j, l = *pl - 1, r = *pr - 1; for (i = (fast_sint_t)m + omp_block_start + omp_block_size - 1, j = (fast_sint_t)m + omp_block_start + 3; i >= j; i -= 4) { - libsais_prefetch(&SA[i - prefetch_distance]); + libsais_prefetchr(&SA[i - prefetch_distance]); sa_sint_t p0 = SA[i - 0]; SAl[l] = p0 & SAINT_MAX; l -= p0 < 0; SAr[r] = p0 - 1; r -= p0 > 0; sa_sint_t p1 = SA[i - 1]; SAl[l] = p1 & SAINT_MAX; l -= p1 < 0; SAr[r] = p1 - 1; r -= p1 > 0; @@ -5930,12 +5930,12 @@ static sa_sint_t libsais_count_unique_suffixes(sa_sint_t * RESTRICT SA, sa_sint_ fast_sint_t i, j; sa_sint_t f0 = 0, f1 = 0, f2 = 0, f3 = 0; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais_prefetch(&SA[i + 2 * prefetch_distance]); + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); - libsais_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); - libsais_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 2]) >> 1]); - libsais_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 3]) >> 1]); + libsais_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); + libsais_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); + libsais_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 2]) >> 1]); + libsais_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 3]) >> 1]); f0 += SAm[((sa_uint_t)SA[i + 0]) >> 1] < 0; f1 += SAm[((sa_uint_t)SA[i + 1]) >> 1] < 0; @@ -6090,7 +6090,7 @@ static void libsais_merge_unique_lms_suffixes_32s(sa_sint_t * RESTRICT T, sa_sin sa_sint_t i, j; fast_sint_t tmp = *SAnm++; for (i = (sa_sint_t)omp_block_start, j = (sa_sint_t)omp_block_start + (sa_sint_t)omp_block_size - 6; i < j; i += 4) { - libsais_prefetch(&T[i + prefetch_distance]); + libsais_prefetchr(&T[i + prefetch_distance]); sa_sint_t c0 = T[i + 0]; if (c0 < 0) { T[i + 0] = c0 & SAINT_MAX; SA[tmp] = i + 0; i++; tmp = *SAnm++; } sa_sint_t c1 = T[i + 1]; if (c1 < 0) { T[i + 1] = c1 & SAINT_MAX; SA[tmp] = i + 1; i++; tmp = *SAnm++; } @@ -6113,7 +6113,7 @@ static void libsais_merge_nonunique_lms_suffixes_32s(sa_sint_t * RESTRICT SA, sa fast_sint_t i, j; sa_sint_t tmp = *SAnm++; for (i = omp_block_start, j = omp_block_start + omp_block_size - 3; i < j; i += 4) { - libsais_prefetch(&SA[i + prefetch_distance]); + libsais_prefetchr(&SA[i + prefetch_distance]); if (SA[i + 0] == 0) { SA[i + 0] = tmp; tmp = *SAnm++; } if (SA[i + 1] == 0) { SA[i + 1] = tmp; tmp = *SAnm++; } @@ -6539,7 +6539,7 @@ static void libsais_bwt_copy_8u(uint8_t * RESTRICT U, sa_sint_t * RESTRICT A, sa fast_sint_t i, j; for (i = 0, j = (fast_sint_t)n - 7; i < j; i += 8) { - libsais_prefetch(&A[i + prefetch_distance]); + libsais_prefetchr(&A[i + prefetch_distance]); U[i + 0] = (uint8_t)A[i + 0]; U[i + 1] = (uint8_t)A[i + 1]; @@ -6602,7 +6602,8 @@ int32_t libsais(const uint8_t * T, int32_t * SA, int32_t n, int32_t fs, int32_t } else if (n < 2) { - if (n == 1) { SA[0] = 0; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { SA[0] = 0; if (freq != NULL) { freq[T[0]]++; } } return 0; } @@ -6632,7 +6633,8 @@ int32_t libsais_ctx(const void * ctx, const uint8_t * T, int32_t * SA, int32_t n } else if (n < 2) { - if (n == 1) { SA[0] = 0; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { SA[0] = 0; if (freq != NULL) { freq[T[0]]++; } } return 0; } @@ -6647,8 +6649,9 @@ int32_t libsais_bwt(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, int3 } else if (n <= 1) { - if (n == 1) { U[0] = T[0]; } - return n; + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } + return n; } sa_sint_t index = libsais_main(T, A, n, 1, 0, NULL, fs, freq, 1); @@ -6671,9 +6674,9 @@ int32_t libsais_bwt_aux(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, return -1; } else if (n <= 1) - { - if (n == 1) { U[0] = T[0]; } - + { + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } I[0] = n; return 0; } @@ -6697,9 +6700,10 @@ int32_t libsais_bwt_ctx(const void * ctx, const uint8_t * T, uint8_t * U, int32_ return -1; } else if (n <= 1) - { - if (n == 1) { U[0] = T[0]; } - return n; + { + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } + return n; } sa_sint_t index = libsais_main_ctx((const LIBSAIS_CONTEXT *)ctx, T, A, n, 1, 0, NULL, fs, freq); @@ -6728,9 +6732,9 @@ int32_t libsais_bwt_aux_ctx(const void * ctx, const uint8_t * T, uint8_t * U, in return -1; } else if (n <= 1) - { - if (n == 1) { U[0] = T[0]; } - + { + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } I[0] = n; return 0; } @@ -6771,7 +6775,8 @@ int32_t libsais_omp(const uint8_t * T, int32_t * SA, int32_t n, int32_t fs, int3 } else if (n < 2) { - if (n == 1) { SA[0] = 0; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { SA[0] = 0; if (freq != NULL) { freq[T[0]]++; } } return 0; } @@ -6805,7 +6810,8 @@ int32_t libsais_bwt_omp(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, } else if (n <= 1) { - if (n == 1) { U[0] = T[0]; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } return n; } @@ -6832,8 +6838,8 @@ int32_t libsais_bwt_aux_omp(const uint8_t * T, uint8_t * U, int32_t * A, int32_t } else if (n <= 1) { - if (n == 1) { U[0] = T[0];} - + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } I[0] = n; return 0; } @@ -6913,7 +6919,7 @@ static void libsais_unbwt_compute_histogram(const uint8_t * RESTRICT T, fast_sin for (; T_p < (uint8_t * )((ptrdiff_t)(T + n - 8) & (-64)); T_p += 64) { - libsais_prefetch(&T_p[prefetch_distance]); + libsais_prefetchr(&T_p[prefetch_distance]); fast_uint_t z = ((const uint32_t *)(const void *)T_p)[2], w = ((const uint32_t *)(const void *)T_p)[3]; copy0[(uint8_t)x]++; x >>= 8; copy1[(uint8_t)x]++; x >>= 8; copy2[(uint8_t)x]++; x >>= 8; copy3[x]++; @@ -7639,3 +7645,232 @@ int32_t libsais_unbwt_aux_omp(const uint8_t * T, uint8_t * U, int32_t * A, int32 } #endif + +static void libsais_compute_phi(const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT PLCP, sa_sint_t n, fast_sint_t omp_block_start, fast_sint_t omp_block_size) +{ + const fast_sint_t prefetch_distance = 32; + + fast_sint_t i, j; sa_sint_t k = omp_block_start > 0 ? SA[omp_block_start - 1] : n; + for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) + { + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); + + libsais_prefetchw(&PLCP[SA[i + prefetch_distance + 0]]); + libsais_prefetchw(&PLCP[SA[i + prefetch_distance + 1]]); + + PLCP[SA[i + 0]] = k; k = SA[i + 0]; + PLCP[SA[i + 1]] = k; k = SA[i + 1]; + + libsais_prefetchw(&PLCP[SA[i + prefetch_distance + 2]]); + libsais_prefetchw(&PLCP[SA[i + prefetch_distance + 3]]); + + PLCP[SA[i + 2]] = k; k = SA[i + 2]; + PLCP[SA[i + 3]] = k; k = SA[i + 3]; + } + + for (j += prefetch_distance + 3; i < j; i += 1) + { + PLCP[SA[i]] = k; k = SA[i]; + } +} + +static void libsais_compute_phi_omp(const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT PLCP, sa_sint_t n, sa_sint_t threads) +{ +#if defined(_OPENMP) + #pragma omp parallel num_threads(threads) if(threads > 1 && n >= 65536) +#endif + { +#if defined(_OPENMP) + fast_sint_t omp_thread_num = omp_get_thread_num(); + fast_sint_t omp_num_threads = omp_get_num_threads(); +#else + UNUSED(threads); + + fast_sint_t omp_thread_num = 0; + fast_sint_t omp_num_threads = 1; +#endif + fast_sint_t omp_block_stride = (n / omp_num_threads) & (-16); + fast_sint_t omp_block_start = omp_thread_num * omp_block_stride; + fast_sint_t omp_block_size = omp_thread_num < omp_num_threads - 1 ? omp_block_stride : n - omp_block_start; + + libsais_compute_phi(SA, PLCP, n, omp_block_start, omp_block_size); + } +} + +static void libsais_compute_plcp(const uint8_t * RESTRICT T, sa_sint_t * RESTRICT PLCP, fast_sint_t n, fast_sint_t omp_block_start, fast_sint_t omp_block_size) +{ + const fast_sint_t prefetch_distance = 32; + + fast_sint_t i, j, l = 0; + for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance; i < j; i += 1) + { + libsais_prefetchw(&PLCP[i + 2 * prefetch_distance]); + libsais_prefetchr(&T[PLCP[i + prefetch_distance] + l]); + + fast_sint_t k = PLCP[i], m = n - (i > k ? i : k); + while (l < m && T[i + l] == T[k + l]) { l++; } + + PLCP[i] = (sa_sint_t)l; l -= (l != 0); + } + + for (j += prefetch_distance; i < j; i += 1) + { + fast_sint_t k = PLCP[i], m = n - (i > k ? i : k); + while (l < m && T[i + l] == T[k + l]) { l++; } + + PLCP[i] = (sa_sint_t)l; l -= (l != 0); + } +} + +static void libsais_compute_plcp_omp(const uint8_t * RESTRICT T, sa_sint_t * RESTRICT PLCP, sa_sint_t n, sa_sint_t threads) +{ +#if defined(_OPENMP) + #pragma omp parallel num_threads(threads) if(threads > 1 && n >= 65536) +#endif + { +#if defined(_OPENMP) + fast_sint_t omp_thread_num = omp_get_thread_num(); + fast_sint_t omp_num_threads = omp_get_num_threads(); +#else + UNUSED(threads); + + fast_sint_t omp_thread_num = 0; + fast_sint_t omp_num_threads = 1; +#endif + fast_sint_t omp_block_stride = (n / omp_num_threads) & (-16); + fast_sint_t omp_block_start = omp_thread_num * omp_block_stride; + fast_sint_t omp_block_size = omp_thread_num < omp_num_threads - 1 ? omp_block_stride : n - omp_block_start; + + libsais_compute_plcp(T, PLCP, n, omp_block_start, omp_block_size); + } +} + +static void libsais_compute_lcp(const sa_sint_t * RESTRICT PLCP, const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT LCP, fast_sint_t omp_block_start, fast_sint_t omp_block_size) +{ + const fast_sint_t prefetch_distance = 32; + + fast_sint_t i, j; + for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) + { + libsais_prefetchr(&SA[i + 2 * prefetch_distance]); + libsais_prefetchw(&LCP[i + prefetch_distance]); + + libsais_prefetchr(&PLCP[SA[i + prefetch_distance + 0]]); + libsais_prefetchr(&PLCP[SA[i + prefetch_distance + 1]]); + + LCP[i + 0] = PLCP[SA[i + 0]]; + LCP[i + 1] = PLCP[SA[i + 1]]; + + libsais_prefetchr(&PLCP[SA[i + prefetch_distance + 2]]); + libsais_prefetchr(&PLCP[SA[i + prefetch_distance + 3]]); + + LCP[i + 2] = PLCP[SA[i + 2]]; + LCP[i + 3] = PLCP[SA[i + 3]]; + } + + for (j += prefetch_distance + 3; i < j; i += 1) + { + LCP[i] = PLCP[SA[i]]; + } +} + +static void libsais_compute_lcp_omp(const sa_sint_t * RESTRICT PLCP, const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT LCP, sa_sint_t n, sa_sint_t threads) +{ +#if defined(_OPENMP) + #pragma omp parallel num_threads(threads) if(threads > 1 && n >= 65536) +#endif + { +#if defined(_OPENMP) + fast_sint_t omp_thread_num = omp_get_thread_num(); + fast_sint_t omp_num_threads = omp_get_num_threads(); +#else + UNUSED(threads); + + fast_sint_t omp_thread_num = 0; + fast_sint_t omp_num_threads = 1; +#endif + fast_sint_t omp_block_stride = (n / omp_num_threads) & (-16); + fast_sint_t omp_block_start = omp_thread_num * omp_block_stride; + fast_sint_t omp_block_size = omp_thread_num < omp_num_threads - 1 ? omp_block_stride : n - omp_block_start; + + libsais_compute_lcp(PLCP, SA, LCP, omp_block_start, omp_block_size); + } +} + +int32_t libsais_plcp(const uint8_t * T, const int32_t * SA, int32_t * PLCP, int32_t n) +{ + if ((T == NULL) || (SA == NULL) || (PLCP == NULL) || (n < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { PLCP[0] = 0; } + return 0; + } + + libsais_compute_phi_omp(SA, PLCP, n, 1); + libsais_compute_plcp_omp(T, PLCP, n, 1); + + return 0; +} + +int32_t libsais_lcp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n) +{ + if ((PLCP == NULL) || (SA == NULL) || (LCP == NULL) || (n < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { LCP[0] = PLCP[SA[0]]; } + return 0; + } + + libsais_compute_lcp_omp(PLCP, SA, LCP, n, 1); + + return 0; +} + +#if defined(_OPENMP) + +int32_t libsais_plcp_omp(const uint8_t * T, const int32_t * SA, int32_t * PLCP, int32_t n, int32_t threads) +{ + if ((T == NULL) || (SA == NULL) || (PLCP == NULL) || (n < 0) || (threads < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { PLCP[0] = 0; } + return 0; + } + + threads = threads > 0 ? threads : omp_get_max_threads(); + + libsais_compute_phi_omp(SA, PLCP, n, threads); + libsais_compute_plcp_omp(T, PLCP, n, threads); + + return 0; +} + +int32_t libsais_lcp_omp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n, int32_t threads) +{ + if ((PLCP == NULL) || (SA == NULL) || (LCP == NULL) || (n < 0) || (threads < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { LCP[0] = PLCP[SA[0]]; } + return 0; + } + + threads = threads > 0 ? threads : omp_get_max_threads(); + + libsais_compute_lcp_omp(PLCP, SA, LCP, n, threads); + + return 0; +} + +#endif diff --git a/libsais/libsais.h b/libsais/libsais.h index cc3b50b..f0f6018 100644 --- a/libsais/libsais.h +++ b/libsais/libsais.h @@ -1,7 +1,7 @@ /*-- -This file is a part of libsais, a library for linear time -suffix array and burrows wheeler transform construction. +This file is a part of libsais, a library for linear time suffix array, +longest common prefix array and burrows wheeler transform construction. Copyright (c) 2021-2022 Ilya Grebnov @@ -116,7 +116,7 @@ extern "C" { #endif /** - * Constructs the burrows-wheeler transformed string of a given string. + * Constructs the burrows-wheeler transformed string (BWT) of a given string. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -128,7 +128,7 @@ extern "C" { int32_t libsais_bwt(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq); /** - * Constructs the burrows-wheeler transformed string of a given string with auxiliary indexes. + * Constructs the burrows-wheeler transformed string (BWT) of a given string with auxiliary indexes. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -142,7 +142,7 @@ extern "C" { int32_t libsais_bwt_aux(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq, int32_t r, int32_t * I); /** - * Constructs the burrows-wheeler transformed string of a given string using libsais context. + * Constructs the burrows-wheeler transformed string (BWT) of a given string using libsais context. * @param ctx The libsais context. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). @@ -155,7 +155,7 @@ extern "C" { int32_t libsais_bwt_ctx(const void * ctx, const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq); /** - * Constructs the burrows-wheeler transformed string of a given string with auxiliary indexes using libsais context. + * Constructs the burrows-wheeler transformed string (BWT) of a given string with auxiliary indexes using libsais context. * @param ctx The libsais context. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). @@ -171,7 +171,7 @@ extern "C" { #if defined(_OPENMP) /** - * Constructs the burrows-wheeler transformed string of a given string in parallel using OpenMP. + * Constructs the burrows-wheeler transformed string (BWT) of a given string in parallel using OpenMP. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -184,7 +184,7 @@ extern "C" { int32_t libsais_bwt_omp(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq, int32_t threads); /** - * Constructs the burrows-wheeler transformed string of a given string with auxiliary indexes in parallel using OpenMP. + * Constructs the burrows-wheeler transformed string (BWT) of a given string with auxiliary indexes in parallel using OpenMP. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -223,7 +223,7 @@ extern "C" { void libsais_unbwt_free_ctx(void * ctx); /** - * Constructs the original string from a given burrows-wheeler transformed string with primary index. + * Constructs the original string from a given burrows-wheeler transformed string (BWT) with primary index. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -235,7 +235,7 @@ extern "C" { int32_t libsais_unbwt(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t i); /** - * Constructs the original string from a given burrows-wheeler transformed string with primary index using libsais reverse BWT context. + * Constructs the original string from a given burrows-wheeler transformed string (BWT) with primary index using libsais reverse BWT context. * @param ctx The libsais reverse BWT context. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). @@ -248,7 +248,7 @@ extern "C" { int32_t libsais_unbwt_ctx(const void * ctx, const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t i); /** - * Constructs the original string from a given burrows-wheeler transformed string with auxiliary indexes. + * Constructs the original string from a given burrows-wheeler transformed string (BWT) with auxiliary indexes. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -261,7 +261,7 @@ extern "C" { int32_t libsais_unbwt_aux(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t r, const int32_t * I); /** - * Constructs the original string from a given burrows-wheeler transformed string with auxiliary indexes using libsais reverse BWT context. + * Constructs the original string from a given burrows-wheeler transformed string (BWT) with auxiliary indexes using libsais reverse BWT context. * @param ctx The libsais reverse BWT context. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). @@ -276,7 +276,7 @@ extern "C" { #if defined(_OPENMP) /** - * Constructs the original string from a given burrows-wheeler transformed string with primary index in parallel using OpenMP. + * Constructs the original string from a given burrows-wheeler transformed string (BWT) with primary index in parallel using OpenMP. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -289,7 +289,7 @@ extern "C" { int32_t libsais_unbwt_omp(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t i, int32_t threads); /** - * Constructs the original string from a given burrows-wheeler transformed string with auxiliary indexes in parallel using OpenMP. + * Constructs the original string from a given burrows-wheeler transformed string (BWT) with auxiliary indexes in parallel using OpenMP. * @param T [0..n-1] The input string. * @param U [0..n-1] The output string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -303,6 +303,50 @@ extern "C" { int32_t libsais_unbwt_aux_omp(const uint8_t * T, uint8_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t r, const int32_t * I, int32_t threads); #endif + /** + * Constructs the permuted longest common prefix array (PLCP) of a given string and a suffix array. + * @param T [0..n-1] The input string. + * @param SA [0..n-1] The input suffix array. + * @param PLCP [0..n-1] The output permuted longest common prefix array. + * @param n The length of the string and the suffix array. + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais_plcp(const uint8_t * T, const int32_t * SA, int32_t * PLCP, int32_t n); + + /** + * Constructs the longest common prefix array (LCP) of a given permuted longest common prefix array (PLCP) and a suffix array. + * @param PLCP [0..n-1] The input permuted longest common prefix array. + * @param SA [0..n-1] The input suffix array. + * @param LCP [0..n-1] The output longest common prefix array (can be SA). + * @param n The length of the permuted longest common prefix array and the suffix array. + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais_lcp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n); + +#if defined(_OPENMP) + /** + * Constructs the permuted longest common prefix array (PLCP) of a given string and a suffix array in parallel using OpenMP. + * @param T [0..n-1] The input string. + * @param SA [0..n-1] The input suffix array. + * @param PLCP [0..n-1] The output permuted longest common prefix array. + * @param n The length of the string and the suffix array. + * @param threads The number of OpenMP threads to use (can be 0 for OpenMP default). + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais_plcp_omp(const uint8_t * T, const int32_t * SA, int32_t * PLCP, int32_t n, int32_t threads); + + /** + * Constructs the longest common prefix array (LCP) of a given permuted longest common prefix array (PLCP) and a suffix array in parallel using OpenMP. + * @param PLCP [0..n-1] The input permuted longest common prefix array. + * @param SA [0..n-1] The input suffix array. + * @param LCP [0..n-1] The output longest common prefix array (can be SA). + * @param n The length of the permuted longest common prefix array and the suffix array. + * @param threads The number of OpenMP threads to use (can be 0 for OpenMP default). + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais_lcp_omp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n, int32_t threads); +#endif + #ifdef __cplusplus } #endif diff --git a/libsais/libsais16.c b/libsais/libsais16.c index 226fb2c..2c2baca 100644 --- a/libsais/libsais16.c +++ b/libsais/libsais16.c @@ -1,7 +1,7 @@ /*-- -This file is a part of libsais, a library for linear time -suffix array and burrows wheeler transform construction. +This file is a part of libsais, a library for linear time suffix array, +longest common prefix array and burrows wheeler transform construction. Copyright (c) 2021-2022 Ilya Grebnov @@ -105,25 +105,25 @@ typedef struct LIBSAIS_UNBWT_CONTEXT #if __has_builtin(__builtin_prefetch) #define HAS_BUILTIN_PREFECTCH #endif -#elif defined(__GNUC__) && ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)) || (__GNUC__ >= 4) +#elif defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)) || (__GNUC__ >= 4)) #define HAS_BUILTIN_PREFECTCH #endif #if defined(HAS_BUILTIN_PREFECTCH) - #define libsais16_prefetch(address) __builtin_prefetch((const void *)(address), 0, 0) - #define libsais16_prefetchw(address) __builtin_prefetch((const void *)(address), 1, 0) + #define libsais16_prefetchr(address) __builtin_prefetch((const void *)(address), 0, 3) + #define libsais16_prefetchw(address) __builtin_prefetch((const void *)(address), 1, 3) #elif defined (_M_IX86) || defined (_M_AMD64) #include - #define libsais16_prefetch(address) _mm_prefetch((const void *)(address), _MM_HINT_NTA) + #define libsais16_prefetchr(address) _mm_prefetch((const void *)(address), _MM_HINT_T0) #define libsais16_prefetchw(address) _m_prefetchw((const void *)(address)) #elif defined (_M_ARM) #include - #define libsais16_prefetch(address) __prefetch((const void *)(address)) + #define libsais16_prefetchr(address) __prefetch((const void *)(address)) #define libsais16_prefetchw(address) __prefetchw((const void *)(address)) #elif defined (_M_ARM64) #include - #define libsais16_prefetch(address) __prefetch2((const void *)(address), 1) - #define libsais16_prefetchw(address) __prefetch2((const void *)(address), 17) + #define libsais16_prefetchr(address) __prefetch2((const void *)(address), 0) + #define libsais16_prefetchw(address) __prefetch2((const void *)(address), 16) #else #error Your compiler, configuration or platform is not supported. #endif @@ -265,7 +265,7 @@ static void libsais16_place_cached_suffixes(sa_sint_t * RESTRICT SA, LIBSAIS_THR fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&cache[i + 2 * prefetch_distance]); + libsais16_prefetchr(&cache[i + 2 * prefetch_distance]); libsais16_prefetchw(&SA[cache[i + prefetch_distance + 0].symbol]); libsais16_prefetchw(&SA[cache[i + prefetch_distance + 1].symbol]); @@ -419,7 +419,7 @@ static void libsais16_gather_lms_suffixes_16u(const uint16_t * RESTRICT T, sa_si for (i = omp_block_start + omp_block_size - 2, j = omp_block_start + 3; i >= j; i -= 4) { - libsais16_prefetch(&T[i - prefetch_distance]); + libsais16_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = (sa_sint_t)(i + 1); m -= ((s & 3) == 1); c0 = T[i - 1]; s = (s << 1) + (fast_uint_t)(c0 > (c1 - (fast_sint_t)(s & 1))); SA[m] = (sa_sint_t)(i - 0); m -= ((s & 3) == 1); @@ -489,7 +489,7 @@ static sa_sint_t libsais16_gather_lms_suffixes_32s(const sa_sint_t * RESTRICT T, for (; i >= 3; i -= 4) { - libsais16_prefetch(&T[i - prefetch_distance]); + libsais16_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = i + 1; m -= ((s & 3) == 1); c0 = T[i - 1]; s = (s << 1) + (fast_uint_t)(c0 > (c1 - (fast_sint_t)(s & 1))); SA[m] = i - 0; m -= ((s & 3) == 1); @@ -517,7 +517,7 @@ static sa_sint_t libsais16_gather_compacted_lms_suffixes_32s(const sa_sint_t * R for (; i >= 3; i -= 4) { - libsais16_prefetch(&T[i - prefetch_distance]); + libsais16_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = i + 1; m -= ((fast_sint_t)(s & 3) == (c0 >= 0)); c0 = T[i - 1]; s = (s << 1) + (fast_uint_t)(c0 > (c1 - (fast_sint_t)(s & 1))); SA[m] = i - 0; m -= ((fast_sint_t)(s & 3) == (c1 >= 0)); @@ -548,7 +548,7 @@ static void libsais16_count_lms_suffixes_32s_4k(const sa_sint_t * RESTRICT T, sa for (; i >= prefetch_distance + 3; i -= 4) { - libsais16_prefetch(&T[i - 2 * prefetch_distance]); + libsais16_prefetchr(&T[i - 2 * prefetch_distance]); libsais16_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 0], 0)]); libsais16_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 1], 0)]); @@ -592,7 +592,7 @@ static void libsais16_count_lms_suffixes_32s_2k(const sa_sint_t * RESTRICT T, sa for (; i >= prefetch_distance + 3; i -= 4) { - libsais16_prefetch(&T[i - 2 * prefetch_distance]); + libsais16_prefetchr(&T[i - 2 * prefetch_distance]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0], 0)]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1], 0)]); @@ -636,7 +636,7 @@ static void libsais16_count_compacted_lms_suffixes_32s_2k(const sa_sint_t * REST for (; i >= prefetch_distance + 3; i -= 4) { - libsais16_prefetch(&T[i - 2 * prefetch_distance]); + libsais16_prefetchr(&T[i - 2 * prefetch_distance]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0] & SAINT_MAX, 0)]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1] & SAINT_MAX, 0)]); @@ -685,7 +685,7 @@ static sa_sint_t libsais16_count_and_gather_lms_suffixes_16u(const uint16_t * RE for (i = m - 1, j = omp_block_start + 3; i >= j; i -= 4) { - libsais16_prefetch(&T[i - prefetch_distance]); + libsais16_prefetchr(&T[i - prefetch_distance]); c1 = T[i - 0]; s = (s << 1) + (fast_uint_t)(c1 > (c0 - (fast_sint_t)(s & 1))); SA[m] = (sa_sint_t)(i + 1); m -= ((s & 3) == 1); buckets[BUCKETS_INDEX4((fast_uint_t)c0, s & 3)]++; @@ -798,7 +798,7 @@ static sa_sint_t libsais16_count_and_gather_lms_suffixes_32s_4k(const sa_sint_t for (i = m - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais16_prefetch(&T[i - 2 * prefetch_distance]); + libsais16_prefetchr(&T[i - 2 * prefetch_distance]); libsais16_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 0], 0)]); libsais16_prefetchw(&buckets[BUCKETS_INDEX4(T[i - prefetch_distance - 1], 0)]); @@ -849,7 +849,7 @@ static sa_sint_t libsais16_count_and_gather_lms_suffixes_32s_2k(const sa_sint_t for (i = m - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais16_prefetch(&T[i - 2 * prefetch_distance]); + libsais16_prefetchr(&T[i - 2 * prefetch_distance]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0], 0)]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1], 0)]); @@ -900,7 +900,7 @@ static sa_sint_t libsais16_count_and_gather_compacted_lms_suffixes_32s_2k(const for (i = m - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais16_prefetch(&T[i - 2 * prefetch_distance]); + libsais16_prefetchr(&T[i - 2 * prefetch_distance]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 0] & SAINT_MAX, 0)]); libsais16_prefetchw(&buckets[BUCKETS_INDEX2(T[i - prefetch_distance - 1] & SAINT_MAX, 0)]); @@ -1312,7 +1312,7 @@ static void libsais16_count_suffixes_32s(const sa_sint_t * RESTRICT T, sa_sint_t fast_sint_t i, j; for (i = 0, j = (fast_sint_t)n - 7; i < j; i += 8) { - libsais16_prefetch(&T[i + prefetch_distance]); + libsais16_prefetchr(&T[i + prefetch_distance]); buckets[T[i + 0]]++; buckets[T[i + 1]]++; @@ -1519,12 +1519,12 @@ static void libsais16_radix_sort_lms_suffixes_16u(const uint16_t * RESTRICT T, s fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + prefetch_distance + 3; i >= j; i -= 4) { - libsais16_prefetch(&SA[i - 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 0]]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 1]]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 2]]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 3]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 0]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 1]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 2]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 3]]); sa_sint_t p0 = SA[i - 0]; SA[--induction_bucket[BUCKETS_INDEX2(T[p0], 0)]] = p0; sa_sint_t p1 = SA[i - 1]; SA[--induction_bucket[BUCKETS_INDEX2(T[p1], 0)]] = p1; @@ -1593,12 +1593,12 @@ static void libsais16_radix_sort_lms_suffixes_32s_6k(const sa_sint_t * RESTRICT fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + 2 * prefetch_distance + 3; i >= j; i -= 4) { - libsais16_prefetch(&SA[i - 3 * prefetch_distance]); + libsais16_prefetchr(&SA[i - 3 * prefetch_distance]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 0]]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 1]]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 2]]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 3]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 0]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 1]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 2]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 3]]); libsais16_prefetchw(&induction_bucket[T[SA[i - prefetch_distance - 0]]]); libsais16_prefetchw(&induction_bucket[T[SA[i - prefetch_distance - 1]]]); @@ -1624,12 +1624,12 @@ static void libsais16_radix_sort_lms_suffixes_32s_2k(const sa_sint_t * RESTRICT fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + 2 * prefetch_distance + 3; i >= j; i -= 4) { - libsais16_prefetch(&SA[i - 3 * prefetch_distance]); + libsais16_prefetchr(&SA[i - 3 * prefetch_distance]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 0]]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 1]]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 2]]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 3]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 0]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 1]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 2]]); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 3]]); libsais16_prefetchw(&induction_bucket[BUCKETS_INDEX2(T[SA[i - prefetch_distance - 0]], 0)]); libsais16_prefetchw(&induction_bucket[BUCKETS_INDEX2(T[SA[i - prefetch_distance - 1]], 0)]); @@ -1657,12 +1657,12 @@ static void libsais16_radix_sort_lms_suffixes_32s_block_gather(const sa_sint_t * fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0]]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1]]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 2]]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 3]]); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0]]); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1]]); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 2]]); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 3]]); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -1887,7 +1887,7 @@ static sa_sint_t libsais16_radix_sort_lms_suffixes_32s_1k(const sa_sint_t * REST for (; i >= prefetch_distance + 3; i -= 4) { - libsais16_prefetch(&T[i - 2 * prefetch_distance]); + libsais16_prefetchr(&T[i - 2 * prefetch_distance]); libsais16_prefetchw(&buckets[T[i - prefetch_distance - 0]]); libsais16_prefetchw(&buckets[T[i - prefetch_distance - 1]]); @@ -1928,7 +1928,7 @@ static void libsais16_radix_sort_set_markers_32s_6k(sa_sint_t * RESTRICT SA, sa_ fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&induction_bucket[i + 2 * prefetch_distance]); + libsais16_prefetchr(&induction_bucket[i + 2 * prefetch_distance]); libsais16_prefetchw(&SA[induction_bucket[i + prefetch_distance + 0]]); libsais16_prefetchw(&SA[induction_bucket[i + prefetch_distance + 1]]); @@ -1954,7 +1954,7 @@ static void libsais16_radix_sort_set_markers_32s_4k(sa_sint_t * RESTRICT SA, sa_ fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&induction_bucket[BUCKETS_INDEX2(i + 2 * prefetch_distance, 0)]); + libsais16_prefetchr(&induction_bucket[BUCKETS_INDEX2(i + 2 * prefetch_distance, 0)]); libsais16_prefetchw(&SA[induction_bucket[BUCKETS_INDEX2(i + prefetch_distance + 0, 0)]]); libsais16_prefetchw(&SA[induction_bucket[BUCKETS_INDEX2(i + prefetch_distance + 1, 0)]]); @@ -2090,12 +2090,12 @@ static sa_sint_t libsais16_partial_sorting_scan_left_to_right_16u(const uint16_t fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i + 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] >= T[p0 - 1]); SA[induction_bucket[v0]++] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -2127,12 +2127,12 @@ static void libsais16_partial_sorting_scan_left_to_right_16u_block_prepare(const fast_sint_t i, j, count = 0; sa_sint_t d = 1; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); sa_sint_t p0 = cache[count].index = SA[i + 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = cache[count++].symbol = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] >= T[p0 - 1]); induction_bucket[v0]++; distinct_names[v0] = d; sa_sint_t p1 = cache[count].index = SA[i + 1]; d += (p1 < 0); p1 &= SAINT_MAX; sa_sint_t v1 = cache[count++].symbol = BUCKETS_INDEX2(T[p1 - 1], T[p1 - 2] >= T[p1 - 1]); induction_bucket[v1]++; distinct_names[v1] = d; @@ -2157,7 +2157,7 @@ static void libsais16_partial_sorting_scan_left_to_right_16u_block_place(sa_sint fast_sint_t i, j; for (i = 0, j = count - 1; i < j; i += 2) { - libsais16_prefetch(&cache[i + prefetch_distance]); + libsais16_prefetchr(&cache[i + prefetch_distance]); sa_sint_t p0 = cache[i + 0].index; d += (p0 < 0); sa_sint_t v0 = cache[i + 0].symbol; SA[induction_bucket[v0]++] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -2298,12 +2298,12 @@ static sa_sint_t libsais16_partial_sorting_scan_left_to_right_32s_6k(const sa_si fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - 2 * prefetch_distance - 1; i < j; i += 2) { - libsais16_prefetch(&SA[i + 3 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 3 * prefetch_distance]); - libsais16_prefetch(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + 2 * prefetch_distance + 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + 2 * prefetch_distance + 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i + prefetch_distance + 0] & SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX4(T[p0 - (p0 > 0)], 0); libsais16_prefetchw(&buckets[v0]); sa_sint_t p1 = SA[i + prefetch_distance + 1] & SAINT_MAX; sa_sint_t v1 = BUCKETS_INDEX4(T[p1 - (p1 > 0)], 0); libsais16_prefetchw(&buckets[v1]); @@ -2336,8 +2336,8 @@ static sa_sint_t libsais16_partial_sorting_scan_left_to_right_32s_4k(const sa_si { libsais16_prefetchw(&SA[i + 3 * prefetch_distance]); - sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { const fast_sint_t Ts2 = T[(s2 & ~SUFFIX_GROUP_MARKER) - 1]; libsais16_prefetchw(&induction_bucket[Ts2]); libsais16_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts2, 0)]); } sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { const fast_sint_t Ts3 = T[(s3 & ~SUFFIX_GROUP_MARKER) - 1]; libsais16_prefetchw(&induction_bucket[Ts3]); libsais16_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts3, 0)]); } @@ -2378,10 +2378,10 @@ static void libsais16_partial_sorting_scan_left_to_right_32s_1k(const sa_sint_t { libsais16_prefetchw(&SA[i + 3 * prefetch_distance]); - sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { SA[i + 0] = 0; SA[induction_bucket[T[p0 - 1]]++] = (p0 - 1) | ((sa_sint_t)(T[p0 - 2] < T[p0 - 1]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { SA[i + 1] = 0; SA[induction_bucket[T[p1 - 1]]++] = (p1 - 1) | ((sa_sint_t)(T[p1 - 2] < T[p1 - 1]) << (SAINT_BIT - 1)); } @@ -2402,12 +2402,12 @@ static void libsais16_partial_sorting_scan_left_to_right_32s_6k_block_gather(con fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -2430,8 +2430,8 @@ static void libsais16_partial_sorting_scan_left_to_right_32s_4k_block_gather(con { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -2454,8 +2454,8 @@ static void libsais16_partial_sorting_scan_left_to_right_32s_1k_block_gather(con { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -2921,12 +2921,12 @@ static sa_sint_t libsais16_partial_sorting_scan_right_to_left_16u(const uint16_t fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + prefetch_distance + 1; i >= j; i -= 2) { - libsais16_prefetch(&SA[i - 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i - 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] > T[p0 - 1]); SA[--induction_bucket[v0]] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -2958,12 +2958,12 @@ static void libsais16_partial_sorting_scan_right_to_left_16u_block_prepare(const fast_sint_t i, j, count = 0; sa_sint_t d = 1; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + prefetch_distance + 1; i >= j; i -= 2) { - libsais16_prefetch(&SA[i - 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 1] & SAINT_MAX] - 2); sa_sint_t p0 = cache[count].index = SA[i - 0]; d += (p0 < 0); p0 &= SAINT_MAX; sa_sint_t v0 = cache[count++].symbol = BUCKETS_INDEX2(T[p0 - 1], T[p0 - 2] > T[p0 - 1]); induction_bucket[v0]++; distinct_names[v0] = d; sa_sint_t p1 = cache[count].index = SA[i - 1]; d += (p1 < 0); p1 &= SAINT_MAX; sa_sint_t v1 = cache[count++].symbol = BUCKETS_INDEX2(T[p1 - 1], T[p1 - 2] > T[p1 - 1]); induction_bucket[v1]++; distinct_names[v1] = d; @@ -2988,7 +2988,7 @@ static void libsais16_partial_sorting_scan_right_to_left_16u_block_place(sa_sint fast_sint_t i, j; for (i = 0, j = count - 1; i < j; i += 2) { - libsais16_prefetch(&cache[i + prefetch_distance]); + libsais16_prefetchr(&cache[i + prefetch_distance]); sa_sint_t p0 = cache[i + 0].index; d += (p0 < 0); sa_sint_t v0 = cache[i + 0].symbol; SA[--induction_bucket[v0]] = (p0 - 1) | ((sa_sint_t)(distinct_names[v0] != d) << (SAINT_BIT - 1)); distinct_names[v0] = d; @@ -3127,12 +3127,12 @@ static sa_sint_t libsais16_partial_sorting_scan_right_to_left_32s_6k(const sa_si fast_sint_t i, j; for (i = omp_block_start + omp_block_size - 1, j = omp_block_start + 2 * prefetch_distance + 1; i >= j; i -= 2) { - libsais16_prefetch(&SA[i - 3 * prefetch_distance]); + libsais16_prefetchr(&SA[i - 3 * prefetch_distance]); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i - 2 * prefetch_distance - 1] & SAINT_MAX] - 2); sa_sint_t p0 = SA[i - prefetch_distance - 0] & SAINT_MAX; sa_sint_t v0 = BUCKETS_INDEX4(T[p0 - (p0 > 0)], 0); libsais16_prefetchw(&buckets[v0]); sa_sint_t p1 = SA[i - prefetch_distance - 1] & SAINT_MAX; sa_sint_t v1 = BUCKETS_INDEX4(T[p1 - (p1 > 0)], 0); libsais16_prefetchw(&buckets[v1]); @@ -3165,8 +3165,8 @@ static sa_sint_t libsais16_partial_sorting_scan_right_to_left_32s_4k(const sa_si { libsais16_prefetchw(&SA[i - 3 * prefetch_distance]); - sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { const fast_sint_t Ts2 = T[(s2 & ~SUFFIX_GROUP_MARKER) - 1]; libsais16_prefetchw(&induction_bucket[Ts2]); libsais16_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts2, 0)]); } sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { const fast_sint_t Ts3 = T[(s3 & ~SUFFIX_GROUP_MARKER) - 1]; libsais16_prefetchw(&induction_bucket[Ts3]); libsais16_prefetchw(&distinct_names[BUCKETS_INDEX2(Ts3, 0)]); } @@ -3207,10 +3207,10 @@ static void libsais16_partial_sorting_scan_right_to_left_32s_1k(const sa_sint_t { libsais16_prefetchw(&SA[i - 3 * prefetch_distance]); - sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i - 0]; if (p0 > 0) { SA[i - 0] = 0; SA[--induction_bucket[T[p0 - 1]]] = (p0 - 1) | ((sa_sint_t)(T[p0 - 2] > T[p0 - 1]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; if (p1 > 0) { SA[i - 1] = 0; SA[--induction_bucket[T[p1 - 1]]] = (p1 - 1) | ((sa_sint_t)(T[p1 - 2] > T[p1 - 1]) << (SAINT_BIT - 1)); } @@ -3231,12 +3231,12 @@ static void libsais16_partial_sorting_scan_right_to_left_32s_6k_block_gather(con fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 1; i < j; i += 2) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); - libsais16_prefetch(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 0] & SAINT_MAX] - 2); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 1); + libsais16_prefetchr(&T[SA[i + prefetch_distance + 1] & SAINT_MAX] - 2); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -3259,8 +3259,8 @@ static void libsais16_partial_sorting_scan_right_to_left_32s_4k_block_gather(con { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1 & ~SUFFIX_GROUP_MARKER] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -3283,8 +3283,8 @@ static void libsais16_partial_sorting_scan_right_to_left_32s_1k_block_gather(con { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -3640,7 +3640,7 @@ static fast_sint_t libsais16_partial_sorting_gather_lms_suffixes_32s_4k(sa_sint_ fast_sint_t i, j, l; for (i = omp_block_start, j = omp_block_start + omp_block_size - 3, l = omp_block_start; i < j; i += 4) { - libsais16_prefetch(&SA[i + prefetch_distance]); + libsais16_prefetchr(&SA[i + prefetch_distance]); sa_sint_t s0 = SA[i + 0]; SA[l] = (s0 - SUFFIX_GROUP_MARKER) & (~SUFFIX_GROUP_MARKER); l += (s0 < 0); sa_sint_t s1 = SA[i + 1]; SA[l] = (s1 - SUFFIX_GROUP_MARKER) & (~SUFFIX_GROUP_MARKER); l += (s1 < 0); @@ -3663,7 +3663,7 @@ static fast_sint_t libsais16_partial_sorting_gather_lms_suffixes_32s_1k(sa_sint_ fast_sint_t i, j, l; for (i = omp_block_start, j = omp_block_start + omp_block_size - 3, l = omp_block_start; i < j; i += 4) { - libsais16_prefetch(&SA[i + prefetch_distance]); + libsais16_prefetchr(&SA[i + prefetch_distance]); sa_sint_t s0 = SA[i + 0]; SA[l] = s0 & SAINT_MAX; l += (s0 < 0); sa_sint_t s1 = SA[i + 1]; SA[l] = s1 & SAINT_MAX; l += (s1 < 0); @@ -3837,7 +3837,7 @@ static sa_sint_t libsais16_renumber_lms_suffixes_16u(sa_sint_t * RESTRICT SA, sa fast_sint_t i, j; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); libsais16_prefetchw(&SAm[(SA[i + prefetch_distance + 0] & SAINT_MAX) >> 1]); libsais16_prefetchw(&SAm[(SA[i + prefetch_distance + 1] & SAINT_MAX) >> 1]); @@ -3867,7 +3867,7 @@ static fast_sint_t libsais16_gather_marked_suffixes_16u(sa_sint_t * RESTRICT SA, fast_sint_t i, j; for (i = (fast_sint_t)m + omp_block_start + omp_block_size - 1, j = (fast_sint_t)m + omp_block_start + 3; i >= j; i -= 4) { - libsais16_prefetch(&SA[i - prefetch_distance]); + libsais16_prefetchr(&SA[i - prefetch_distance]); sa_sint_t s0 = SA[i - 0]; SA[l] = s0 & SAINT_MAX; l -= s0 < 0; sa_sint_t s1 = SA[i - 1]; SA[l] = s1 & SAINT_MAX; l -= s1 < 0; @@ -4208,7 +4208,7 @@ static sa_sint_t libsais16_renumber_and_mark_distinct_lms_suffixes_32s_1k_omp(sa fast_sint_t i, j; for (i = (fast_sint_t)n - (fast_sint_t)m, j = (fast_sint_t)n - 1 - prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); @@ -4239,10 +4239,10 @@ static sa_sint_t libsais16_renumber_and_mark_distinct_lms_suffixes_32s_1k_omp(sa fast_sint_t i, j, p = SA[0], plen = SAm[p >> 1]; sa_sint_t pdiff = SAINT_MIN; for (i = 1, j = m - prefetch_distance - 1; i < j; i += 2) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); libsais16_prefetch(&T[((sa_uint_t)SA[i + prefetch_distance + 0])]); - libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); libsais16_prefetch(&T[((sa_uint_t)SA[i + prefetch_distance + 1])]); + libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); libsais16_prefetchr(&T[((sa_uint_t)SA[i + prefetch_distance + 0])]); + libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); libsais16_prefetchr(&T[((sa_uint_t)SA[i + prefetch_distance + 1])]); fast_sint_t q = SA[i + 0], qlen = SAm[q >> 1]; sa_sint_t qdiff = SAINT_MIN; if (plen == qlen) { fast_sint_t l = 0; do { if (T[p + l] != T[q + l]) { break; } } while (++l < qlen); qdiff = (sa_sint_t)(l - qlen) & SAINT_MIN; } @@ -4284,10 +4284,10 @@ static void libsais16_reconstruct_lms_suffixes(sa_sint_t * RESTRICT SA, sa_sint_ { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - libsais16_prefetch(&SAnm[SA[i + prefetch_distance + 0]]); - libsais16_prefetch(&SAnm[SA[i + prefetch_distance + 1]]); - libsais16_prefetch(&SAnm[SA[i + prefetch_distance + 2]]); - libsais16_prefetch(&SAnm[SA[i + prefetch_distance + 3]]); + libsais16_prefetchr(&SAnm[SA[i + prefetch_distance + 0]]); + libsais16_prefetchr(&SAnm[SA[i + prefetch_distance + 1]]); + libsais16_prefetchr(&SAnm[SA[i + prefetch_distance + 2]]); + libsais16_prefetchr(&SAnm[SA[i + prefetch_distance + 3]]); SA[i + 0] = SAnm[SA[i + 0]]; SA[i + 1] = SAnm[SA[i + 1]]; @@ -4403,12 +4403,12 @@ static void libsais16_place_lms_suffixes_interval_32s_1k(const sa_sint_t * RESTR sa_sint_t c = k - 1; fast_sint_t i, l = buckets[c]; for (i = (fast_sint_t)m - 1; i >= prefetch_distance + 3; i -= 4) { - libsais16_prefetch(&SA[i - 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i - 2 * prefetch_distance]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 0]]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 1]]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 2]]); - libsais16_prefetch(&T[SA[i - prefetch_distance - 3]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 0]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 1]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 2]]); + libsais16_prefetchr(&T[SA[i - prefetch_distance - 3]]); sa_sint_t p0 = SA[i - 0]; if (T[p0] != c) { c = T[p0]; memset(&SA[buckets[c]], 0, (size_t)(l - buckets[c]) * sizeof(sa_sint_t)); l = buckets[c]; } SA[--l] = p0; sa_sint_t p1 = SA[i - 1]; if (T[p1] != c) { c = T[p1]; memset(&SA[buckets[c]], 0, (size_t)(l - buckets[c]) * sizeof(sa_sint_t)); l = buckets[c]; } SA[--l] = p1; @@ -4505,8 +4505,8 @@ static void libsais16_final_bwt_scan_left_to_right_16u(const uint16_t * RESTRICT { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[i + 0] = T[p0] | SAINT_MIN; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[i + 1] = T[p1] | SAINT_MIN; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4527,8 +4527,8 @@ static void libsais16_final_bwt_aux_scan_left_to_right_16u(const uint16_t * REST { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[i + 0] = T[p0] | SAINT_MIN; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); if ((p0 & rm) == 0) { I[p0 / (rm + 1)] = induction_bucket[T[p0]]; }} sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[i + 1] = T[p1] | SAINT_MIN; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); if ((p1 & rm) == 0) { I[p1 / (rm + 1)] = induction_bucket[T[p1]]; }} @@ -4549,8 +4549,8 @@ static void libsais16_final_sorting_scan_left_to_right_16u(const uint16_t * REST { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 ^ SAINT_MIN; if (p0 > 0) { p0--; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 ^ SAINT_MIN; if (p1 > 0) { p1--; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4571,10 +4571,10 @@ static void libsais16_final_sorting_scan_left_to_right_32s(const sa_sint_t * RES { libsais16_prefetchw(&SA[i + 3 * prefetch_distance]); - sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i + 2 * prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + 2 * prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i + 1 * prefetch_distance + 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i + 1 * prefetch_distance + 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 ^ SAINT_MIN; if (p0 > 0) { p0--; SA[induction_bucket[T[p0]]++] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 ^ SAINT_MIN; if (p1 > 0) { p1--; SA[induction_bucket[T[p1]]++] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4599,8 +4599,8 @@ static fast_sint_t libsais16_final_bwt_scan_left_to_right_16u_block_prepare(cons { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[i + 0] = T[p0] | SAINT_MIN; buckets[cache[count].symbol = T[p0]]++; cache[count++].index = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[i + 1] = T[p1] | SAINT_MIN; buckets[cache[count].symbol = T[p1]]++; cache[count++].index = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4625,8 +4625,8 @@ static fast_sint_t libsais16_final_sorting_scan_left_to_right_16u_block_prepare( { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i + 0]; SA[i + 0] = p0 ^ SAINT_MIN; if (p0 > 0) { p0--; buckets[cache[count].symbol = T[p0]]++; cache[count++].index = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] < T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i + 1]; SA[i + 1] = p1 ^ SAINT_MIN; if (p1 > 0) { p1--; buckets[cache[count].symbol = T[p1]]++; cache[count++].index = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] < T[p1]) << (SAINT_BIT - 1)); } @@ -4647,7 +4647,7 @@ static void libsais16_final_order_scan_left_to_right_16u_block_place(sa_sint_t * fast_sint_t i, j; for (i = 0, j = count - 3; i < j; i += 4) { - libsais16_prefetch(&cache[i + prefetch_distance]); + libsais16_prefetchr(&cache[i + prefetch_distance]); SA[buckets[cache[i + 0].symbol]++] = cache[i + 0].index; SA[buckets[cache[i + 1].symbol]++] = cache[i + 1].index; @@ -4668,7 +4668,7 @@ static void libsais16_final_bwt_aux_scan_left_to_right_16u_block_place(sa_sint_t fast_sint_t i, j; for (i = 0, j = count - 3; i < j; i += 4) { - libsais16_prefetch(&cache[i + prefetch_distance]); + libsais16_prefetchr(&cache[i + prefetch_distance]); SA[buckets[cache[i + 0].symbol]++] = cache[i + 0].index; if ((cache[i + 0].index & rm) == 0) { I[(cache[i + 0].index & SAINT_MAX) / (rm + 1)] = buckets[cache[i + 0].symbol]; } SA[buckets[cache[i + 1].symbol]++] = cache[i + 1].index; if ((cache[i + 1].index & rm) == 0) { I[(cache[i + 1].index & SAINT_MAX) / (rm + 1)] = buckets[cache[i + 1].symbol]; } @@ -4691,8 +4691,8 @@ static void libsais16_final_sorting_scan_left_to_right_32s_block_gather(const sa { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -5124,8 +5124,8 @@ static sa_sint_t libsais16_final_bwt_scan_right_to_left_16u(const uint16_t * RES { libsais16_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; index = (p0 == 0) ? (sa_sint_t)(i - 0) : index; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint16_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; SA[--induction_bucket[c1]] = (c0 <= c1) ? p0 : t; } @@ -5152,8 +5152,8 @@ static void libsais16_final_bwt_aux_scan_right_to_left_16u(const uint16_t * REST { libsais16_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint16_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; SA[--induction_bucket[c1]] = (c0 <= c1) ? p0 : t; if ((p0 & rm) == 0) { I[p0 / (rm + 1)] = induction_bucket[T[p0]] + 1; } } @@ -5178,8 +5178,8 @@ static void libsais16_final_sorting_scan_right_to_left_16u(const uint16_t * REST { libsais16_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[--induction_bucket[T[p0]]] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] > T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[--induction_bucket[T[p1]]] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] > T[p1]) << (SAINT_BIT - 1)); } @@ -5200,10 +5200,10 @@ static void libsais16_final_sorting_scan_right_to_left_32s(const sa_sint_t * RES { libsais16_prefetchw(&SA[i - 3 * prefetch_distance]); - sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); - sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetch(&T[s2] - 2); } - sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetch(&T[s3] - 2); } + sa_sint_t s0 = SA[i - 2 * prefetch_distance - 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - 2 * prefetch_distance - 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); + sa_sint_t s2 = SA[i - 1 * prefetch_distance - 0]; if (s2 > 0) { libsais16_prefetchw(&induction_bucket[T[s2 - 1]]); libsais16_prefetchr(&T[s2] - 2); } + sa_sint_t s3 = SA[i - 1 * prefetch_distance - 1]; if (s3 > 0) { libsais16_prefetchw(&induction_bucket[T[s3 - 1]]); libsais16_prefetchr(&T[s3] - 2); } sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; SA[--induction_bucket[T[p0]]] = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] > T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; SA[--induction_bucket[T[p1]]] = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] > T[p1]) << (SAINT_BIT - 1)); } @@ -5228,8 +5228,8 @@ static fast_sint_t libsais16_final_bwt_scan_right_to_left_16u_block_prepare(cons { libsais16_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint16_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count++].index = (c0 <= c1) ? p0 : t; } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; uint16_t c0 = T[p1 - (p1 > 0)], c1 = T[p1]; SA[i - 1] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count++].index = (c0 <= c1) ? p1 : t; } @@ -5254,8 +5254,8 @@ static fast_sint_t libsais16_final_bwt_aux_scan_right_to_left_16u_block_prepare( { libsais16_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; uint16_t c0 = T[p0 - (p0 > 0)], c1 = T[p0]; SA[i - 0] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count].index = (c0 <= c1) ? p0 : t; cache[count + 1].index = p0; count += 2; } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; uint16_t c0 = T[p1 - (p1 > 0)], c1 = T[p1]; SA[i - 1] = c1; sa_sint_t t = c0 | SAINT_MIN; buckets[cache[count].symbol = c1]++; cache[count].index = (c0 <= c1) ? p1 : t; cache[count + 1].index = p1; count += 2; } @@ -5280,8 +5280,8 @@ static fast_sint_t libsais16_final_sorting_scan_right_to_left_16u_block_prepare( { libsais16_prefetchw(&SA[i - 2 * prefetch_distance]); - sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i - prefetch_distance - 0]; const uint16_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i - prefetch_distance - 1]; const uint16_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); sa_sint_t p0 = SA[i - 0]; SA[i - 0] = p0 & SAINT_MAX; if (p0 > 0) { p0--; buckets[cache[count].symbol = T[p0]]++; cache[count++].index = p0 | ((sa_sint_t)(T[p0 - (p0 > 0)] > T[p0]) << (SAINT_BIT - 1)); } sa_sint_t p1 = SA[i - 1]; SA[i - 1] = p1 & SAINT_MAX; if (p1 > 0) { p1--; buckets[cache[count].symbol = T[p1]]++; cache[count++].index = p1 | ((sa_sint_t)(T[p1 - (p1 > 0)] > T[p1]) << (SAINT_BIT - 1)); } @@ -5302,7 +5302,7 @@ static void libsais16_final_order_scan_right_to_left_16u_block_place(sa_sint_t * fast_sint_t i, j; for (i = 0, j = count - 3; i < j; i += 4) { - libsais16_prefetch(&cache[i + prefetch_distance]); + libsais16_prefetchr(&cache[i + prefetch_distance]); SA[--buckets[cache[i + 0].symbol]] = cache[i + 0].index; SA[--buckets[cache[i + 1].symbol]] = cache[i + 1].index; @@ -5323,7 +5323,7 @@ static void libsais16_final_bwt_aux_scan_right_to_left_16u_block_place(sa_sint_t fast_sint_t i, j; for (i = 0, j = count - 6; i < j; i += 8) { - libsais16_prefetch(&cache[i + prefetch_distance]); + libsais16_prefetchr(&cache[i + prefetch_distance]); SA[--buckets[cache[i + 0].symbol]] = cache[i + 0].index; if ((cache[i + 1].index & rm) == 0) { I[cache[i + 1].index / (rm + 1)] = buckets[cache[i + 0].symbol] + 1; } SA[--buckets[cache[i + 2].symbol]] = cache[i + 2].index; if ((cache[i + 3].index & rm) == 0) { I[cache[i + 3].index / (rm + 1)] = buckets[cache[i + 2].symbol] + 1; } @@ -5346,8 +5346,8 @@ static void libsais16_final_sorting_scan_right_to_left_32s_block_gather(const sa { libsais16_prefetchw(&SA[i + 2 * prefetch_distance]); - sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetch(s0 > 0 ? Ts0 : NULL); - sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetch(s1 > 0 ? Ts1 : NULL); + sa_sint_t s0 = SA[i + prefetch_distance + 0]; const sa_sint_t * Ts0 = &T[s0] - 1; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); Ts0--; libsais16_prefetchr(s0 > 0 ? Ts0 : NULL); + sa_sint_t s1 = SA[i + prefetch_distance + 1]; const sa_sint_t * Ts1 = &T[s1] - 1; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); Ts1--; libsais16_prefetchr(s1 > 0 ? Ts1 : NULL); libsais16_prefetchw(&cache[i + prefetch_distance]); @@ -5844,7 +5844,7 @@ static sa_sint_t libsais16_renumber_unique_and_nonunique_lms_suffixes_32s(sa_sin sa_sint_t i, j; for (i = (sa_sint_t)omp_block_start, j = (sa_sint_t)omp_block_start + (sa_sint_t)omp_block_size - 2 * (sa_sint_t)prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&SA[i + 3 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 3 * prefetch_distance]); libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + 2 * prefetch_distance + 0]) >> 1]); libsais16_prefetchw(&SAm[((sa_uint_t)SA[i + 2 * prefetch_distance + 1]) >> 1]); @@ -5880,7 +5880,7 @@ static void libsais16_compact_unique_and_nonunique_lms_suffixes_32s(sa_sint_t * fast_sint_t i, j, l = *pl - 1, r = *pr - 1; for (i = (fast_sint_t)m + omp_block_start + omp_block_size - 1, j = (fast_sint_t)m + omp_block_start + 3; i >= j; i -= 4) { - libsais16_prefetch(&SA[i - prefetch_distance]); + libsais16_prefetchr(&SA[i - prefetch_distance]); sa_sint_t p0 = SA[i - 0]; SAl[l] = p0 & SAINT_MAX; l -= p0 < 0; SAr[r] = p0 - 1; r -= p0 > 0; sa_sint_t p1 = SA[i - 1]; SAl[l] = p1 & SAINT_MAX; l -= p1 < 0; SAr[r] = p1 - 1; r -= p1 > 0; @@ -5908,12 +5908,12 @@ static sa_sint_t libsais16_count_unique_suffixes(sa_sint_t * RESTRICT SA, sa_sin fast_sint_t i, j; sa_sint_t f0 = 0, f1 = 0, f2 = 0, f3 = 0; for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) { - libsais16_prefetch(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); - libsais16_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); - libsais16_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); - libsais16_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 2]) >> 1]); - libsais16_prefetch(&SAm[((sa_uint_t)SA[i + prefetch_distance + 3]) >> 1]); + libsais16_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 0]) >> 1]); + libsais16_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 1]) >> 1]); + libsais16_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 2]) >> 1]); + libsais16_prefetchr(&SAm[((sa_uint_t)SA[i + prefetch_distance + 3]) >> 1]); f0 += SAm[((sa_uint_t)SA[i + 0]) >> 1] < 0; f1 += SAm[((sa_uint_t)SA[i + 1]) >> 1] < 0; @@ -6068,7 +6068,7 @@ static void libsais16_merge_unique_lms_suffixes_32s(sa_sint_t * RESTRICT T, sa_s sa_sint_t i, j; fast_sint_t tmp = *SAnm++; for (i = (sa_sint_t)omp_block_start, j = (sa_sint_t)omp_block_start + (sa_sint_t)omp_block_size - 6; i < j; i += 4) { - libsais16_prefetch(&T[i + prefetch_distance]); + libsais16_prefetchr(&T[i + prefetch_distance]); sa_sint_t c0 = T[i + 0]; if (c0 < 0) { T[i + 0] = c0 & SAINT_MAX; SA[tmp] = i + 0; i++; tmp = *SAnm++; } sa_sint_t c1 = T[i + 1]; if (c1 < 0) { T[i + 1] = c1 & SAINT_MAX; SA[tmp] = i + 1; i++; tmp = *SAnm++; } @@ -6091,7 +6091,7 @@ static void libsais16_merge_nonunique_lms_suffixes_32s(sa_sint_t * RESTRICT SA, fast_sint_t i, j; sa_sint_t tmp = *SAnm++; for (i = omp_block_start, j = omp_block_start + omp_block_size - 3; i < j; i += 4) { - libsais16_prefetch(&SA[i + prefetch_distance]); + libsais16_prefetchr(&SA[i + prefetch_distance]); if (SA[i + 0] == 0) { SA[i + 0] = tmp; tmp = *SAnm++; } if (SA[i + 1] == 0) { SA[i + 1] = tmp; tmp = *SAnm++; } @@ -6504,7 +6504,7 @@ static void libsais16_bwt_copy_16u(uint16_t * RESTRICT U, sa_sint_t * RESTRICT A fast_sint_t i, j; for (i = 0, j = (fast_sint_t)n - 7; i < j; i += 8) { - libsais16_prefetch(&A[i + prefetch_distance]); + libsais16_prefetchr(&A[i + prefetch_distance]); U[i + 0] = (uint16_t)A[i + 0]; U[i + 1] = (uint16_t)A[i + 1]; @@ -6567,7 +6567,8 @@ int32_t libsais16(const uint16_t * T, int32_t * SA, int32_t n, int32_t fs, int32 } else if (n < 2) { - if (n == 1) { SA[0] = 0; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { SA[0] = 0; if (freq != NULL) { freq[T[0]]++; } } return 0; } @@ -6582,7 +6583,8 @@ int32_t libsais16_ctx(const void * ctx, const uint16_t * T, int32_t * SA, int32_ } else if (n < 2) { - if (n == 1) { SA[0] = 0; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { SA[0] = 0; if (freq != NULL) { freq[T[0]]++; } } return 0; } @@ -6596,8 +6598,9 @@ int32_t libsais16_bwt(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, return -1; } else if (n <= 1) - { - if (n == 1) { U[0] = T[0]; } + { + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } return n; } @@ -6621,9 +6624,9 @@ int32_t libsais16_bwt_aux(const uint16_t * T, uint16_t * U, int32_t * A, int32_t return -1; } else if (n <= 1) - { - if (n == 1) { U[0] = T[0]; } - + { + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } I[0] = n; return 0; } @@ -6647,9 +6650,10 @@ int32_t libsais16_bwt_ctx(const void * ctx, const uint16_t * T, uint16_t * U, in return -1; } else if (n <= 1) - { - if (n == 1) { U[0] = T[0]; } - return n; + { + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } + return n; } sa_sint_t index = libsais16_main_ctx((const LIBSAIS_CONTEXT *)ctx, T, A, n, 1, 0, NULL, fs, freq); @@ -6678,9 +6682,9 @@ int32_t libsais16_bwt_aux_ctx(const void * ctx, const uint16_t * T, uint16_t * U return -1; } else if (n <= 1) - { - if (n == 1) { U[0] = T[0]; } - + { + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } I[0] = n; return 0; } @@ -6721,7 +6725,8 @@ int32_t libsais16_omp(const uint16_t * T, int32_t * SA, int32_t n, int32_t fs, i } else if (n < 2) { - if (n == 1) { SA[0] = 0; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { SA[0] = 0; if (freq != NULL) { freq[T[0]]++; } } return 0; } @@ -6738,7 +6743,8 @@ int32_t libsais16_bwt_omp(const uint16_t * T, uint16_t * U, int32_t * A, int32_t } else if (n <= 1) { - if (n == 1) { U[0] = T[0]; } + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } return n; } @@ -6765,8 +6771,8 @@ int32_t libsais16_bwt_aux_omp(const uint16_t * T, uint16_t * U, int32_t * A, int } else if (n <= 1) { - if (n == 1) { U[0] = T[0];} - + if (freq != NULL) { memset(freq, 0, ALPHABET_SIZE * sizeof(int32_t)); } + if (n == 1) { U[0] = T[0]; if (freq != NULL) { freq[T[0]]++; } } I[0] = n; return 0; } @@ -6909,7 +6915,7 @@ static void libsais16_unbwt_init_parallel(const uint16_t * RESTRICT T, sa_uint_t fast_sint_t omp_block_start = omp_thread_num * omp_block_stride; fast_sint_t omp_block_size = omp_thread_num < omp_num_threads - 1 ? omp_block_stride : ALPHABET_SIZE - omp_block_start; - memset(bucket2 + omp_block_start, 0, omp_block_size * sizeof(sa_uint_t)); + memset(bucket2 + omp_block_start, 0, (size_t)omp_block_size * sizeof(sa_uint_t)); fast_sint_t t; for (t = 0; t < omp_num_threads; ++t, bucket2_temp += ALPHABET_SIZE) @@ -7344,3 +7350,232 @@ int32_t libsais16_unbwt_aux_omp(const uint16_t * T, uint16_t * U, int32_t * A, i } #endif + +static void libsais16_compute_phi(const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT PLCP, sa_sint_t n, fast_sint_t omp_block_start, fast_sint_t omp_block_size) +{ + const fast_sint_t prefetch_distance = 32; + + fast_sint_t i, j; sa_sint_t k = omp_block_start > 0 ? SA[omp_block_start - 1] : n; + for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) + { + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); + + libsais16_prefetchw(&PLCP[SA[i + prefetch_distance + 0]]); + libsais16_prefetchw(&PLCP[SA[i + prefetch_distance + 1]]); + + PLCP[SA[i + 0]] = k; k = SA[i + 0]; + PLCP[SA[i + 1]] = k; k = SA[i + 1]; + + libsais16_prefetchw(&PLCP[SA[i + prefetch_distance + 2]]); + libsais16_prefetchw(&PLCP[SA[i + prefetch_distance + 3]]); + + PLCP[SA[i + 2]] = k; k = SA[i + 2]; + PLCP[SA[i + 3]] = k; k = SA[i + 3]; + } + + for (j += prefetch_distance + 3; i < j; i += 1) + { + PLCP[SA[i]] = k; k = SA[i]; + } +} + +static void libsais16_compute_phi_omp(const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT PLCP, sa_sint_t n, sa_sint_t threads) +{ +#if defined(_OPENMP) + #pragma omp parallel num_threads(threads) if(threads > 1 && n >= 65536) +#endif + { +#if defined(_OPENMP) + fast_sint_t omp_thread_num = omp_get_thread_num(); + fast_sint_t omp_num_threads = omp_get_num_threads(); +#else + UNUSED(threads); + + fast_sint_t omp_thread_num = 0; + fast_sint_t omp_num_threads = 1; +#endif + fast_sint_t omp_block_stride = (n / omp_num_threads) & (-16); + fast_sint_t omp_block_start = omp_thread_num * omp_block_stride; + fast_sint_t omp_block_size = omp_thread_num < omp_num_threads - 1 ? omp_block_stride : n - omp_block_start; + + libsais16_compute_phi(SA, PLCP, n, omp_block_start, omp_block_size); + } +} + +static void libsais16_compute_plcp(const uint16_t * RESTRICT T, sa_sint_t * RESTRICT PLCP, fast_sint_t n, fast_sint_t omp_block_start, fast_sint_t omp_block_size) +{ + const fast_sint_t prefetch_distance = 32; + + fast_sint_t i, j, l = 0; + for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance; i < j; i += 1) + { + libsais16_prefetchw(&PLCP[i + 2 * prefetch_distance]); + libsais16_prefetchr(&T[PLCP[i + prefetch_distance] + l]); + + fast_sint_t k = PLCP[i], m = n - (i > k ? i : k); + while (l < m && T[i + l] == T[k + l]) { l++; } + + PLCP[i] = (sa_sint_t)l; l -= (l != 0); + } + + for (j += prefetch_distance; i < j; i += 1) + { + fast_sint_t k = PLCP[i], m = n - (i > k ? i : k); + while (l < m && T[i + l] == T[k + l]) { l++; } + + PLCP[i] = (sa_sint_t)l; l -= (l != 0); + } +} + +static void libsais16_compute_plcp_omp(const uint16_t * RESTRICT T, sa_sint_t * RESTRICT PLCP, sa_sint_t n, sa_sint_t threads) +{ +#if defined(_OPENMP) + #pragma omp parallel num_threads(threads) if(threads > 1 && n >= 65536) +#endif + { +#if defined(_OPENMP) + fast_sint_t omp_thread_num = omp_get_thread_num(); + fast_sint_t omp_num_threads = omp_get_num_threads(); +#else + UNUSED(threads); + + fast_sint_t omp_thread_num = 0; + fast_sint_t omp_num_threads = 1; +#endif + fast_sint_t omp_block_stride = (n / omp_num_threads) & (-16); + fast_sint_t omp_block_start = omp_thread_num * omp_block_stride; + fast_sint_t omp_block_size = omp_thread_num < omp_num_threads - 1 ? omp_block_stride : n - omp_block_start; + + libsais16_compute_plcp(T, PLCP, n, omp_block_start, omp_block_size); + } +} + +static void libsais16_compute_lcp(const sa_sint_t * RESTRICT PLCP, const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT LCP, fast_sint_t omp_block_start, fast_sint_t omp_block_size) +{ + const fast_sint_t prefetch_distance = 32; + + fast_sint_t i, j; + for (i = omp_block_start, j = omp_block_start + omp_block_size - prefetch_distance - 3; i < j; i += 4) + { + libsais16_prefetchr(&SA[i + 2 * prefetch_distance]); + libsais16_prefetchw(&LCP[i + prefetch_distance]); + + libsais16_prefetchr(&PLCP[SA[i + prefetch_distance + 0]]); + libsais16_prefetchr(&PLCP[SA[i + prefetch_distance + 1]]); + + LCP[i + 0] = PLCP[SA[i + 0]]; + LCP[i + 1] = PLCP[SA[i + 1]]; + + libsais16_prefetchr(&PLCP[SA[i + prefetch_distance + 2]]); + libsais16_prefetchr(&PLCP[SA[i + prefetch_distance + 3]]); + + LCP[i + 2] = PLCP[SA[i + 2]]; + LCP[i + 3] = PLCP[SA[i + 3]]; + } + + for (j += prefetch_distance + 3; i < j; i += 1) + { + LCP[i] = PLCP[SA[i]]; + } +} + +static void libsais16_compute_lcp_omp(const sa_sint_t * RESTRICT PLCP, const sa_sint_t * RESTRICT SA, sa_sint_t * RESTRICT LCP, sa_sint_t n, sa_sint_t threads) +{ +#if defined(_OPENMP) + #pragma omp parallel num_threads(threads) if(threads > 1 && n >= 65536) +#endif + { +#if defined(_OPENMP) + fast_sint_t omp_thread_num = omp_get_thread_num(); + fast_sint_t omp_num_threads = omp_get_num_threads(); +#else + UNUSED(threads); + + fast_sint_t omp_thread_num = 0; + fast_sint_t omp_num_threads = 1; +#endif + fast_sint_t omp_block_stride = (n / omp_num_threads) & (-16); + fast_sint_t omp_block_start = omp_thread_num * omp_block_stride; + fast_sint_t omp_block_size = omp_thread_num < omp_num_threads - 1 ? omp_block_stride : n - omp_block_start; + + libsais16_compute_lcp(PLCP, SA, LCP, omp_block_start, omp_block_size); + } +} + +int32_t libsais16_plcp(const uint16_t * T, const int32_t * SA, int32_t * PLCP, int32_t n) +{ + if ((T == NULL) || (SA == NULL) || (PLCP == NULL) || (n < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { PLCP[0] = 0; } + return 0; + } + + libsais16_compute_phi_omp(SA, PLCP, n, 1); + libsais16_compute_plcp_omp(T, PLCP, n, 1); + + return 0; +} + +int32_t libsais16_lcp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n) +{ + if ((PLCP == NULL) || (SA == NULL) || (LCP == NULL) || (n < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { LCP[0] = PLCP[SA[0]]; } + return 0; + } + + libsais16_compute_lcp_omp(PLCP, SA, LCP, n, 1); + + return 0; +} + +#if defined(_OPENMP) + +int32_t libsais16_plcp_omp(const uint16_t * T, const int32_t * SA, int32_t * PLCP, int32_t n, int32_t threads) +{ + if ((T == NULL) || (SA == NULL) || (PLCP == NULL) || (n < 0) || (threads < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { PLCP[0] = 0; } + return 0; + } + + threads = threads > 0 ? threads : omp_get_max_threads(); + + libsais16_compute_phi_omp(SA, PLCP, n, threads); + libsais16_compute_plcp_omp(T, PLCP, n, threads); + + return 0; +} + +int32_t libsais16_lcp_omp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n, int32_t threads) +{ + if ((PLCP == NULL) || (SA == NULL) || (LCP == NULL) || (n < 0) || (threads < 0)) + { + return -1; + } + else if (n <= 1) + { + if (n == 1) { LCP[0] = PLCP[SA[0]]; } + return 0; + } + + threads = threads > 0 ? threads : omp_get_max_threads(); + + libsais16_compute_lcp_omp(PLCP, SA, LCP, n, threads); + + return 0; +} + +#endif diff --git a/libsais/libsais16.h b/libsais/libsais16.h index 314c90f..910efd1 100644 --- a/libsais/libsais16.h +++ b/libsais/libsais16.h @@ -1,7 +1,7 @@ /*-- -This file is a part of libsais, a library for linear time -suffix array and burrows wheeler transform construction. +This file is a part of libsais, a library for linear time suffix array, +longest common prefix array and burrows wheeler transform construction. Copyright (c) 2021-2022 Ilya Grebnov @@ -91,7 +91,7 @@ extern "C" { #endif /** - * Constructs the burrows-wheeler transformed 16-bit string of a given 16-bit string. + * Constructs the burrows-wheeler transformed 16-bit string (BWT) of a given 16-bit string. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -103,7 +103,7 @@ extern "C" { int32_t libsais16_bwt(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq); /** - * Constructs the burrows-wheeler transformed 16-bit string of a given 16-bit string with auxiliary indexes. + * Constructs the burrows-wheeler transformed 16-bit string (BWT) of a given 16-bit string with auxiliary indexes. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -117,7 +117,7 @@ extern "C" { int32_t libsais16_bwt_aux(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq, int32_t r, int32_t * I); /** - * Constructs the burrows-wheeler transformed 16-bit string of a given 16-bit string using libsais16 context. + * Constructs the burrows-wheeler transformed 16-bit string (BWT) of a given 16-bit string using libsais16 context. * @param ctx The libsais16 context. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). @@ -130,7 +130,7 @@ extern "C" { int32_t libsais16_bwt_ctx(const void * ctx, const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq); /** - * Constructs the burrows-wheeler transformed 16-bit string of a given 16-bit string with auxiliary indexes using libsais16 context. + * Constructs the burrows-wheeler transformed 16-bit string (BWT) of a given 16-bit string with auxiliary indexes using libsais16 context. * @param ctx The libsais16 context. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). @@ -146,7 +146,7 @@ extern "C" { #if defined(_OPENMP) /** - * Constructs the burrows-wheeler transformed 16-bit string of a given 16-bit string in parallel using OpenMP. + * Constructs the burrows-wheeler transformed 16-bit string (BWT) of a given 16-bit string in parallel using OpenMP. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -159,7 +159,7 @@ extern "C" { int32_t libsais16_bwt_omp(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, int32_t fs, int32_t * freq, int32_t threads); /** - * Constructs the burrows-wheeler transformed 16-bit string of a given 16-bit string with auxiliary indexes in parallel using OpenMP. + * Constructs the burrows-wheeler transformed 16-bit string (BWT) of a given 16-bit string with auxiliary indexes in parallel using OpenMP. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n-1+fs] The temporary array. @@ -198,7 +198,7 @@ extern "C" { void libsais16_unbwt_free_ctx(void * ctx); /** - * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string with primary index. + * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string (BWT) with primary index. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -210,7 +210,7 @@ extern "C" { int32_t libsais16_unbwt(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t i); /** - * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string with primary index using libsais16 reverse BWT context. + * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string (BWT) with primary index using libsais16 reverse BWT context. * @param ctx The libsais16 reverse BWT context. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). @@ -223,7 +223,7 @@ extern "C" { int32_t libsais16_unbwt_ctx(const void * ctx, const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t i); /** - * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string with auxiliary indexes. + * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string (BWT) with auxiliary indexes. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -236,7 +236,7 @@ extern "C" { int32_t libsais16_unbwt_aux(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t r, const int32_t * I); /** - * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string with auxiliary indexes using libsais16 reverse BWT context. + * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string (BWT) with auxiliary indexes using libsais16 reverse BWT context. * @param ctx The libsais16 reverse BWT context. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). @@ -251,7 +251,7 @@ extern "C" { #if defined(_OPENMP) /** - * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string with primary index in parallel using OpenMP. + * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string (BWT) with primary index in parallel using OpenMP. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -264,7 +264,7 @@ extern "C" { int32_t libsais16_unbwt_omp(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t i, int32_t threads); /** - * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string with auxiliary indexes in parallel using OpenMP. + * Constructs the original 16-bit string from a given burrows-wheeler transformed 16-bit string (BWT) with auxiliary indexes in parallel using OpenMP. * @param T [0..n-1] The input 16-bit string. * @param U [0..n-1] The output 16-bit string (can be T). * @param A [0..n] The temporary array (NOTE, temporary array must be n + 1 size). @@ -278,6 +278,50 @@ extern "C" { int32_t libsais16_unbwt_aux_omp(const uint16_t * T, uint16_t * U, int32_t * A, int32_t n, const int32_t * freq, int32_t r, const int32_t * I, int32_t threads); #endif + /** + * Constructs the permuted longest common prefix array (PLCP) of a given 16-bit string and a suffix array. + * @param T [0..n-1] The input 16-bit string. + * @param SA [0..n-1] The input suffix array. + * @param PLCP [0..n-1] The output permuted longest common prefix array. + * @param n The length of the 16-bit string and the suffix array. + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais16_plcp(const uint16_t * T, const int32_t * SA, int32_t * PLCP, int32_t n); + + /** + * Constructs the longest common prefix array (LCP) of a given permuted longest common prefix array (PLCP) and a suffix array. + * @param PLCP [0..n-1] The input permuted longest common prefix array. + * @param SA [0..n-1] The input suffix array. + * @param LCP [0..n-1] The output longest common prefix array (can be SA). + * @param n The length of the permuted longest common prefix array and the suffix array. + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais16_lcp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n); + +#if defined(_OPENMP) + /** + * Constructs the permuted longest common prefix array (PLCP) of a given 16-bit string and a suffix array in parallel using OpenMP. + * @param T [0..n-1] The input 16-bit string. + * @param SA [0..n-1] The input suffix array. + * @param PLCP [0..n-1] The output permuted longest common prefix array. + * @param n The length of the 16-bit string and the suffix array. + * @param threads The number of OpenMP threads to use (can be 0 for OpenMP default). + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais16_plcp_omp(const uint16_t * T, const int32_t * SA, int32_t * PLCP, int32_t n, int32_t threads); + + /** + * Constructs the longest common prefix array (LCP) of a given permuted longest common prefix array (PLCP) and a suffix array in parallel using OpenMP. + * @param PLCP [0..n-1] The input permuted longest common prefix array. + * @param SA [0..n-1] The input suffix array. + * @param LCP [0..n-1] The output longest common prefix array (can be SA). + * @param n The length of the permuted longest common prefix array and the suffix array. + * @param threads The number of OpenMP threads to use (can be 0 for OpenMP default). + * @return 0 if no error occurred, -1 otherwise. + */ + int32_t libsais16_lcp_omp(const int32_t * PLCP, const int32_t * SA, int32_t * LCP, int32_t n, int32_t threads); +#endif + #ifdef __cplusplus } #endif diff --git a/m03_model.h b/m03_model.h index 2a30890..1156dc1 100644 --- a/m03_model.h +++ b/m03_model.h @@ -51,9 +51,17 @@ class m03_model this->mode = mode; this->memset_uint16(this->T1_model , 1, sizeof(this->T1_model)); - this->memset_uint16(this->T2_model , 1, sizeof(this->T2_model)); - this->memset_uint16(this->Ternary_model , 1, sizeof(this->Ternary_model)); - this->memset_uint16(this->Tree_model , 1, sizeof(this->Tree_model)); + + this->memset_uint16(this->T2_model_m0 , 1, sizeof(this->T2_model_m0)); + this->memset_uint16(this->T2_model_m1 , 1, sizeof(this->T2_model_m1)); + + this->memset_uint16(this->T3_model_m0 , 1, sizeof(this->T2_model_m0)); + this->memset_uint16(this->T3_model_m1 , 1, sizeof(this->T3_model_m1)); + this->memset_uint16(this->T3_model_m2 , 1, sizeof(this->T3_model_m2)); + + this->memset_uint16(this->Tx_model_m0 , 1, sizeof(this->Tx_model_m0)); + this->memset_uint16(this->Tx_model_m1 , 1, sizeof(this->Tx_model_m1)); + this->memset_uint16(this->Tx_model_m2 , 1, sizeof(this->Tx_model_m2)); } void encode_root_frequencies(const int32_t * root_frequencies, int32_t k, int32_t n) @@ -219,7 +227,7 @@ class m03_model } } - int32_t predict(int32_t count, int32_t total, int32_t left_remaining, int32_t right_remaining, int32_t symbols_remaining, int32_t symbol, int32_t level, int32_t leaf_node) + int32_t predict(int32_t count, int32_t total, int32_t left_remaining, int32_t right_remaining, int32_t symbols_remaining, int32_t symbol, int32_t level, int32_t left_leaf, int32_t right_leaf) { level = std::min(level, SYMBOL_HISTORY_MAX_DEPTH - 1); this->Symbol_history[symbol][level] = left_remaining == 0; @@ -235,23 +243,23 @@ class m03_model level > 1 ? this->Symbol_history[symbol][level - 1] | this->Symbol_history[symbol][level - 2] : level > 0 ? this->Symbol_history[symbol][level - 1] : 0; - if (total <= 2) + if (total <= 3) { int32_t state = 0; - state += 1 * (left_remaining + right_remaining + inferred_right == symbols_remaining); - state += 2 * (left_remaining == total); - state += 4 * (pivot_history); - state += 8 * (leaf_node); - state += 16 * (std::min((int32_t)bit_scan_reverse(inferred_right + 1), 3)); - state += 64 * (std::min((int32_t)symbols_remaining - 2, 7)); - state += 512 * (((int64_t)left_remaining * 11) / ((int64_t)right_remaining)); + state += 1 * (left_remaining + right_remaining + inferred_right == symbols_remaining); + state += 2 * (left_remaining == total); + state += 4 * (pivot_history); + state += 8 * (left_leaf); + state += 16 * (right_leaf); + state += 32 * (std::min((int32_t)bit_scan_reverse(inferred_right + 1), 3)); + state += 128 * (std::min((int32_t)symbols_remaining - 2, 7)); + state += 1024 * (((int64_t)left_remaining * 11) / ((int64_t)right_remaining)); if (total == 1) { state = m03_T1_model_state_table[state]; uint16_t * RESTRICT predictor = &this->T1_model[state][0]; - if (predictor[0] + predictor[1] > m03_T1_model_scale_table[state]) { predictor[0] = (predictor[0] + 1) >> 1; @@ -272,96 +280,251 @@ class m03_model predictor[count]++; this->Symbol_history[symbol][level] = 1; } - else + else if (total == 2) { - state = m03_T2_model_state_table[state]; - - uint16_t * RESTRICT predictor = &this->T2_model[state][0]; + int32_t pivot = (count == 0) | (count == 2); - if (predictor[0] + predictor[1] + predictor[2] > m03_T2_model_scale_table[state]) { - predictor[0] = (predictor[0] + 1) >> 1; - predictor[1] = (predictor[1] + 1) >> 1; - predictor[2] = (predictor[2] + 1) >> 1; + ptrdiff_t bucket = m03_T2_model_m0_state_table[state]; + + uint16_t * RESTRICT predictor = &this->T2_model_m0[bucket][0]; + if (predictor[0] + predictor[1] > m03_T2_model_m0_scale_table[bucket]) + { + predictor[0] = (predictor[0] + 1) >> 1; + predictor[1] = (predictor[1] + 1) >> 1; + } + + if (this->mode == m03_mode::encoding) + { + this->coder->Encode(pivot ? predictor[0] : 0, predictor[pivot], predictor[0] + predictor[1]); + } + else + { + unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1]); + + pivot = cum_freq >= predictor[0]; + this->coder->Decode(pivot ? predictor[0] : 0, predictor[pivot], predictor[0] + predictor[1]); + } + + predictor[pivot]++; this->Symbol_history[symbol][level] = pivot; } - if (this->mode == m03_mode::encoding) + if (pivot) { - unsigned int cum_freq = count == 0 ? 0 : count == 1 ? predictor[0] : predictor[0] + predictor[1]; - this->coder->Encode(cum_freq, predictor[count], predictor[0] + predictor[1] + predictor[2]); + count = count > 0; + + { + ptrdiff_t bucket = m03_T2_model_m1_state_table[state]; + + uint16_t * RESTRICT predictor = &this->T2_model_m1[bucket][0]; + if (predictor[0] + predictor[1] > m03_T2_model_m1_scale_table[bucket]) + { + predictor[0] = (predictor[0] + 1) >> 1; + predictor[1] = (predictor[1] + 1) >> 1; + } + + if (this->mode == m03_mode::encoding) + { + this->coder->Encode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + else + { + unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1]); + + count = cum_freq >= predictor[0]; + this->coder->Decode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + + predictor[count]++; + } + + count = count ? total : count; } else { - unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1] + predictor[2]); - - count = (cum_freq >= predictor[0]) + (cum_freq >= (unsigned int)(predictor[0] + predictor[1])); - cum_freq = count == 0 ? 0 : count == 1 ? predictor[0] : predictor[0] + predictor[1]; + count = 1; + } + } + else + { + int32_t pivot = (count == 0) | (count == 3); + + { + ptrdiff_t bucket = m03_T3_model_m0_state_table[state]; + + uint16_t * RESTRICT predictor = &this->T3_model_m0[bucket][0]; + if (predictor[0] + predictor[1] > m03_T3_model_m0_scale_table[bucket]) + { + predictor[0] = (predictor[0] + 1) >> 1; + predictor[1] = (predictor[1] + 1) >> 1; + } + + if (this->mode == m03_mode::encoding) + { + this->coder->Encode(pivot ? predictor[0] : 0, predictor[pivot], predictor[0] + predictor[1]); + } + else + { + unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1]); + + pivot = cum_freq >= predictor[0]; + this->coder->Decode(pivot ? predictor[0] : 0, predictor[pivot], predictor[0] + predictor[1]); + } + + predictor[pivot]++; this->Symbol_history[symbol][level] = pivot; + } + + if (pivot) + { + count = count > 0; - this->coder->Decode(cum_freq, predictor[count], predictor[0] + predictor[1] + predictor[2]); + { + ptrdiff_t bucket = m03_T3_model_m1_state_table[state]; + + uint16_t * RESTRICT predictor = &this->T3_model_m1[bucket][0]; + if (predictor[0] + predictor[1] > m03_T3_model_m1_scale_table[bucket]) + { + predictor[0] = (predictor[0] + 1) >> 1; + predictor[1] = (predictor[1] + 1) >> 1; + } + + if (this->mode == m03_mode::encoding) + { + this->coder->Encode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + else + { + unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1]); + + count = cum_freq >= predictor[0]; + this->coder->Decode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + + predictor[count]++; + } + + count = count ? total : count; } + else + { + count = count - 1; - predictor[count]++; this->Symbol_history[symbol][level] = count != 1; + { + ptrdiff_t bucket = m03_T3_model_m2_state_table[state]; + + uint16_t * RESTRICT predictor = &this->T3_model_m2[bucket][0]; + if (predictor[0] + predictor[1] > m03_T3_model_m2_scale_table[bucket]) + { + predictor[0] = (predictor[0] + 1) >> 1; + predictor[1] = (predictor[1] + 1) >> 1; + } + + if (this->mode == m03_mode::encoding) + { + this->coder->Encode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + else + { + unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1]); + + count = cum_freq >= predictor[0]; + this->coder->Decode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + + predictor[count]++; + } + + count = count + 1; + } } } else { - int32_t pivot = (count > 0) + (count == total); + int32_t state = 0; + state += 1 * (std::min((int32_t)bit_scan_reverse(symbols_remaining - 1), 3)); + state += 4 * (inferred_right > 0); + state += 8 * (left_remaining == total); + state += 16 * (left_leaf); + state += 32 * (right_leaf); + state += 64 * (pivot_history); + state += 128 * (std::min((int32_t)bit_scan_reverse(total - 3), 7)); + state += 1024 * (((int64_t)left_remaining * 11) / ((int64_t)right_remaining)); + + int32_t pivot = (count == 0) | (count == total); { - int32_t state = 0; - state += 1 * (std::min((int32_t)bit_scan_reverse(symbols_remaining - 1), 3)); - state += 4 * (inferred_right > 0); - state += 8 * (left_remaining == total); - state += 16 * (leaf_node); - state += 32 * (pivot_history); - state += 64 * (std::min((int32_t)bit_scan_reverse(total - 2), 7)); - state += 512 * (((int64_t)left_remaining * 11) / ((int64_t)right_remaining)); - - state = m03_Ternary_model_state_table[state]; - - uint16_t * RESTRICT predictor = &this->Ternary_model[state][0]; - - if (predictor[0] + predictor[1] + predictor[2] > m03_Ternary_model_scale_table[state]) + ptrdiff_t bucket = m03_Tx_model_m0_state_table[state]; + + uint16_t * RESTRICT predictor = &this->Tx_model_m0[bucket][0]; + if (predictor[0] + predictor[1] > m03_Tx_model_m0_scale_table[bucket]) { predictor[0] = (predictor[0] + 1) >> 1; predictor[1] = (predictor[1] + 1) >> 1; - predictor[2] = (predictor[2] + 1) >> 1; } if (this->mode == m03_mode::encoding) { - unsigned int cum_freq = pivot == 0 ? 0 : pivot == 1 ? predictor[0] : predictor[0] + predictor[1]; - this->coder->Encode(cum_freq, predictor[pivot], predictor[0] + predictor[1] + predictor[2]); + this->coder->Encode(pivot ? predictor[0] : 0, predictor[pivot], predictor[0] + predictor[1]); } else { - unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1] + predictor[2]); - - pivot = (cum_freq >= predictor[0]) + (cum_freq >= (unsigned int)(predictor[0] + predictor[1])); - cum_freq = pivot == 0 ? 0 : pivot == 1 ? predictor[0] : predictor[0] + predictor[1]; + unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1]); - this->coder->Decode(cum_freq, predictor[pivot], predictor[0] + predictor[1] + predictor[2]); + pivot = cum_freq >= predictor[0]; + this->coder->Decode(pivot ? predictor[0] : 0, predictor[pivot], predictor[0] + predictor[1]); } - predictor[pivot]++; this->Symbol_history[symbol][level] = pivot != 1; if (pivot != 1) { count = pivot == 0 ? 0 : total; } + predictor[pivot]++; this->Symbol_history[symbol][level] = pivot; } - if (pivot == 1) + if (pivot) + { + count = count > 0; + + { + ptrdiff_t bucket = m03_Tx_model_m1_state_table[state]; + + uint16_t * RESTRICT predictor = &this->Tx_model_m1[bucket][0]; + if (predictor[0] + predictor[1] > m03_Tx_model_m1_scale_table[bucket]) + { + predictor[0] = (predictor[0] + 1) >> 1; + predictor[1] = (predictor[1] + 1) >> 1; + } + + if (this->mode == m03_mode::encoding) + { + this->coder->Encode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + else + { + unsigned int cum_freq = this->coder->GetCumFreq(predictor[0] + predictor[1]); + + count = cum_freq >= predictor[0]; + this->coder->Decode(count ? predictor[0] : 0, predictor[count], predictor[0] + predictor[1]); + } + + predictor[count]++; + } + + count = count ? total : count; + } + else { - int32_t state = 0; - state += 1 * (inferred_right >= total); - state += 2 * (pivot_history); - state += 4 * (std::min(total - 3, 15)); - state += 64 * (((int64_t)left_remaining * 5) / ((int64_t)right_remaining)); + state = 0; + state += 1 * (std::min((int32_t)bit_scan_reverse(symbols_remaining - 1), 3)); + state += 4 * (inferred_right >= total); + state += 8 * (left_leaf); + state += 16 * (pivot_history); + state += 32 * (std::min(total - 4, 15)); + state += 512 * (((int64_t)left_remaining * 7) / ((int64_t)right_remaining)); int32_t min = 1, max = total - 1, context = 1; while (min != max && context < 16) { - ptrdiff_t bucket = m03_Tree_model_state_table[state * 16 + context]; - - uint16_t * RESTRICT predictor = &this->Tree_model[bucket][0]; + ptrdiff_t bucket = m03_Tx_model_m2_state_table[state * 16 + context]; - if (predictor[0] + predictor[1] > m03_Tree_model_scale_table[bucket]) + uint16_t * RESTRICT predictor = &this->Tx_model_m2[bucket][0]; + if (predictor[0] + predictor[1] > m03_Tx_model_m2_scale_table[bucket]) { predictor[0] = (predictor[0] + 1) >> 1; predictor[1] = (predictor[1] + 1) >> 1; @@ -399,10 +562,18 @@ class m03_model private: RangeCoder * coder; - uint16_t T1_model[96][2]; - uint16_t T2_model[96][4]; - uint16_t Ternary_model[192][4]; - uint16_t Tree_model[256][2]; + uint16_t T1_model[128][2]; + + uint16_t T2_model_m0[48][2]; + uint16_t T2_model_m1[80][2]; + + uint16_t T3_model_m0[48][2]; + uint16_t T3_model_m1[64][2]; + uint16_t T3_model_m2[32][2]; + + uint16_t Tx_model_m0[64][2]; + uint16_t Tx_model_m1[80][2]; + uint16_t Tx_model_m2[256][2]; uint8_t Symbol_history[MAX_ALPHABET_SIZE][SYMBOL_HISTORY_MAX_DEPTH]; diff --git a/m03_parser.h b/m03_parser.h index 5418a50..84a7047 100644 --- a/m03_parser.h +++ b/m03_parser.h @@ -302,18 +302,12 @@ class m03_parser: m03_model { assert(l <= r); - if (r - l < OPTIMAL_ABT_SMALL_THRESHOLD - 1) + if (r + 1 - l < OPTIMAL_ABT_SMALL_THRESHOLD) { split_context_recursive(&offsets[l], &offsets[r + 1], level); return; } - if (l == r) - { - m03_parser::populate_next_segments(&this->contexts[offsets[l]], &this->contexts[this->primary_index], &this->parent_frequencies[0], this->next_segments); - return; - } - if (this->is_trivial_context(offsets[l])) { m03_parser::split_trivial_context(this->contexts, this->next_segments, &offsets[l], &offsets[r + 1]); @@ -551,8 +545,8 @@ class m03_parser: m03_model if (total <= left_remaining + right_remaining - total) { count = left_remaining <= right_remaining - ? this->predict( count, total, left_remaining , right_remaining, parent_unique_symbols - parent_symbol_index, symbol, level, left_leaf) - : total - this->predict(total - count, total, right_remaining, left_remaining , parent_unique_symbols - parent_symbol_index, symbol, level, right_leaf); + ? this->predict( count, total, left_remaining , right_remaining, parent_unique_symbols - parent_symbol_index, symbol, level, left_leaf, right_leaf) + : total - this->predict(total - count, total, right_remaining, left_remaining , parent_unique_symbols - parent_symbol_index, symbol, level, right_leaf, left_leaf); } else { @@ -560,8 +554,8 @@ class m03_parser: m03_model count = left_remaining - count; count = left_remaining <= right_remaining - ? this->predict( count, total, left_remaining , right_remaining, parent_unique_symbols - parent_symbol_index, symbol, level, right_leaf) - : total - this->predict(total - count, total, right_remaining, left_remaining , parent_unique_symbols - parent_symbol_index, symbol, level, left_leaf); + ? this->predict( count, total, left_remaining , right_remaining, parent_unique_symbols - parent_symbol_index, symbol, level, right_leaf, left_leaf) + : total - this->predict(total - count, total, right_remaining, left_remaining , parent_unique_symbols - parent_symbol_index, symbol, level, left_leaf, right_leaf); count = left_remaining - count; total = left_remaining + right_remaining - total; diff --git a/m03_tables.h b/m03_tables.h index f5bf14f..4e3f821 100644 --- a/m03_tables.h +++ b/m03_tables.h @@ -23,840 +23,5242 @@ This file is a part of bsc-m03 project. static const unsigned char m03_T1_model_state_table[] = { - 0, 0, 8, 0, 8, 0, 8, 0, 2, 0, 8, 0, 2, 0, 8, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, - 0, 0, 26, 0, 0, 0, 18, 0, 0, 0, 33, 0, 0, 0, 19, 0, 0, 0, 32, 0, 0, 0, 45, 0, 0, 0, 26, 0, 0, 0, 28, 0, - 0, 1, 25, 1, 0, 1, 0, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 11, 1, 1, 1, 11, 1, 1, 1, 3, 1, 1, 1, 3, 1, - 1, 1, 28, 1, 1, 1, 19, 1, 1, 1, 19, 1, 1, 1, 20, 1, 1, 1, 31, 1, 1, 1, 19, 1, 1, 1, 19, 1, 1, 1, 3, 1, - 0, 2, 11, 2, 0, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 13, 2, 2, 2, 12, 2, 2, 2, 41, 2, - 2, 2, 20, 2, 2, 2, 15, 2, 2, 2, 13, 2, 2, 2, 41, 2, 2, 2, 3, 2, 2, 2, 41, 2, 2, 2, 14, 2, 2, 2, 7, 2, - 1, 3, 4, 3, 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 3, 3, 12, 3, 3, 3, 41, 3, 3, 3, 41, 3, 3, 3, 41, 3, - 3, 3, 20, 3, 3, 3, 21, 3, 3, 3, 13, 3, 3, 3, 41, 3, 3, 3, 41, 3, 3, 3, 13, 3, 3, 3, 41, 3, 3, 3, 7, 3, - 2, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 41, 4, 4, 4, 41, 4, 4, 4, 41, 4, 4, 4, 41, 4, - 4, 4, 41, 4, 4, 4, 7, 4, 4, 4, 13, 4, 4, 4, 14, 4, 4, 4, 20, 4, 4, 4, 21, 4, 4, 4, 41, 4, 4, 4, 41, 4, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 5, 5, 5, 13, 5, 5, 5, 21, 5, 5, 5, 15, 5, - 5, 5, 6, 5, 5, 5, 15, 5, 5, 5, 6, 5, 5, 5, 3, 5, 5, 5, 28, 5, 5, 5, 3, 5, 5, 5, 44, 5, 5, 5, 33, 5, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 15, 6, 6, 6, 7, 6, 6, 6, 7, 6, 6, 6, 21, 6, - 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 7, 6, 6, 6, 30, 6, 6, 6, 6, 6, 6, 6, 36, 6, 6, 6, 33, 6, - 7, 15, 7, 21, 7, 15, 7, 21, 7, 21, 7, 21, 7, 7, 7, 7, 7, 7, 7, 3, 7, 7, 7, 14, 7, 7, 7, 3, 7, 7, 7, 7, - 7, 7, 7, 2, 7, 7, 7, 45, 7, 7, 7, 31, 7, 7, 7, 41, 7, 7, 15, 31, 7, 7, 7, 7, 7, 7, 15, 90, 7, 7, 7, 3, - 16, 8, 86, 8, 16, 8, 86, 8, 11, 8, 86, 8, 11, 8, 86, 8, 8, 8, 16, 8, 8, 8, 25, 8, 8, 8, 26, 8, 8, 8, 18, 8, - 8, 8, 76, 8, 8, 8, 70, 8, 8, 8, 32, 8, 8, 8, 34, 8, 8, 8, 49, 8, 8, 8, 63, 8, 8, 8, 60, 8, 8, 8, 46, 8, - 16, 9, 9, 9, 16, 9, 9, 9, 11, 9, 9, 9, 11, 9, 9, 9, 9, 9, 27, 9, 9, 9, 61, 9, 9, 9, 28, 9, 9, 9, 19, 9, - 9, 9, 27, 9, 9, 9, 61, 9, 9, 9, 36, 9, 9, 9, 30, 9, 9, 9, 29, 9, 9, 9, 10, 9, 9, 9, 45, 9, 9, 9, 26, 9, - 0, 10, 10, 10, 0, 10, 10, 10, 11, 10, 10, 10, 11, 10, 10, 10, 10, 10, 19, 10, 10, 10, 6, 10, 10, 10, 19, 10, 10, 10, 6, 10, - 10, 10, 15, 10, 10, 10, 3, 10, 10, 10, 22, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 1, 11, 12, 11, 1, 11, 12, 11, 3, 11, 12, 11, 3, 11, 12, 11, 11, 11, 6, 11, 11, 11, 15, 11, 11, 11, 20, 11, 11, 11, 20, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 12, 12, 12, 18, 12, 12, 12, 12, 12, 12, 12, 3, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 12, 12, 12, 41, 12, 12, 12, 41, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 13, 13, 13, 7, 13, 13, 13, 6, 13, 13, 13, 7, 13, - 13, 13, 6, 13, 13, 13, 7, 13, 13, 13, 22, 13, 13, 13, 15, 13, 13, 13, 45, 13, 13, 13, 19, 13, 13, 13, 44, 13, 13, 13, 37, 13, - 14, 14, 14, 13, 14, 14, 14, 13, 14, 14, 14, 13, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 6, 14, 14, 7, 7, - 14, 14, 15, 14, 14, 14, 7, 14, 14, 14, 6, 14, 14, 14, 15, 14, 14, 14, 61, 14, 14, 14, 21, 14, 14, 14, 53, 14, 14, 14, 39, 14, - 15, 41, 15, 14, 15, 41, 15, 15, 15, 41, 15, 41, 15, 13, 15, 14, 15, 15, 14, 14, 15, 15, 7, 7, 15, 15, 14, 13, 15, 15, 7, 7, - 15, 15, 21, 23, 15, 15, 7, 15, 15, 15, 15, 19, 15, 15, 7, 15, 15, 15, 22, 23, 15, 15, 23, 22, 15, 15, 37, 30, 15, 15, 30, 49, - 16, 16, 86, 16, 86, 16, 86, 16, 33, 16, 86, 16, 33, 16, 86, 16, 16, 16, 49, 16, 16, 16, 32, 16, 16, 16, 32, 16, 16, 16, 34, 16, - 16, 16, 49, 16, 16, 16, 62, 16, 16, 16, 60, 16, 16, 16, 63, 16, 16, 16, 82, 16, 16, 16, 42, 16, 16, 16, 76, 16, 16, 16, 45, 16, - 16, 17, 17, 17, 16, 17, 17, 17, 33, 17, 17, 17, 18, 17, 17, 17, 17, 17, 36, 17, 17, 17, 22, 17, 17, 17, 36, 17, 17, 17, 22, 17, - 17, 17, 5, 17, 17, 17, 45, 17, 17, 17, 47, 17, 17, 17, 93, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 25, 18, 19, 18, 25, 18, 19, 18, 28, 18, 19, 18, 27, 18, 19, 18, 18, 18, 30, 18, 18, 18, 6, 18, 18, 18, 22, 18, 18, 18, 6, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 19, 20, 6, 18, 19, 20, 6, 19, 19, 20, 6, 19, 19, 20, 6, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 27, 20, 20, 20, 18, 20, 20, 20, 19, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 15, 6, 21, 21, 13, 14, 21, 21, 22, 6, 21, 21, 15, 15, - 21, 21, 23, 21, 21, 21, 21, 21, 21, 21, 22, 21, 21, 21, 15, 21, 21, 21, 66, 21, 21, 21, 93, 21, 21, 21, 54, 21, 21, 21, 57, 21, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 6, 22, 22, 22, 7, 22, 22, 22, 22, 22, 22, 22, 14, - 22, 22, 6, 93, 22, 22, 15, 15, 22, 22, 22, 93, 22, 22, 15, 23, 22, 22, 45, 22, 22, 22, 2, 22, 22, 22, 65, 22, 22, 22, 47, 22, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 12, 23, 23, 23, 6, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 14, 23, 23, 23, 23, 23, 23, 22, 23, 23, 23, 14, 23, 23, 23, 55, 23, 23, 23, 63, 13, 23, 23, 54, 23, 23, 23, 37, 89, - 16, 24, 85, 24, 86, 24, 24, 24, 26, 24, 86, 24, 26, 24, 86, 24, 24, 24, 49, 24, 24, 24, 62, 24, 24, 24, 49, 24, 24, 24, 52, 24, - 24, 24, 48, 24, 24, 24, 66, 24, 24, 24, 48, 24, 24, 24, 46, 24, 24, 24, 38, 24, 24, 24, 63, 24, 24, 24, 90, 24, 24, 24, 63, 24, - 16, 25, 5, 25, 16, 25, 5, 25, 26, 25, 5, 25, 26, 25, 5, 25, 25, 25, 44, 25, 25, 25, 37, 25, 25, 25, 47, 25, 25, 25, 37, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 26, 26, 61, 25, 26, 26, 61, 27, 26, 26, 30, 27, 26, 26, 22, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 5, 27, 27, 27, 18, 27, 27, 27, 28, 27, 27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 28, 28, 28, 27, 28, 28, 28, 22, 28, 28, 28, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 30, 30, 29, 29, 39, 21, 29, 29, 37, 31, 29, 29, 23, 7, 29, 29, 49, 29, 29, 29, 38, 29, 29, 29, 71, 29, 29, 29, 83, 29, - 30, 31, 30, 30, 30, 31, 30, 30, 30, 31, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 31, 30, 30, 20, 23, 30, 30, 31, 37, 30, 30, 15, 12, 30, 30, 38, 30, 30, 30, 90, 30, 30, 30, 90, 30, 30, 30, 46, 30, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 31, 31, 31, 61, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 4, 3, 31, 31, 31, 41, 31, 31, 37, 37, 31, 31, 41, 31, 31, 31, 45, 15, 31, 31, 45, 85, 31, 31, 63, 15, 31, 31, 18, 90, - 24, 32, 32, 32, 24, 32, 32, 32, 34, 32, 32, 32, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 49, 33, 33, 33, 24, 33, 33, 33, 44, 33, 33, 33, 43, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 51, 34, 34, 34, 25, 34, 34, 34, 35, 34, 34, 34, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 35, 35, 35, 34, 35, 35, 35, 36, 35, 35, 35, 36, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 36, 36, 36, 35, 36, 36, 36, 36, 36, 36, 36, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 28, 39, 39, 39, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 24, 40, 85, 40, 24, 40, 85, 40, 54, 40, 77, 40, 52, 40, 77, 40, 40, 40, 48, 40, 40, 40, 62, 40, 40, 40, 48, 40, 40, 40, 62, 40, - 40, 40, 76, 40, 40, 40, 58, 40, 40, 40, 76, 40, 40, 40, 62, 40, 40, 40, 91, 40, 40, 40, 46, 40, 40, 40, 83, 40, 40, 40, 70, 40, - 49, 41, 41, 53, 24, 41, 41, 45, 43, 41, 41, 93, 43, 41, 41, 29, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 51, 42, 42, 42, 51, 42, 42, 42, 47, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 43, 43, 43, 42, 43, 43, 43, 47, 43, 43, 43, 29, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 42, 47, 44, 44, 50, 29, 44, 44, 47, 29, 44, 44, 44, 29, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 37, 45, 45, 23, 7, 45, 45, 58, 37, 45, 45, 45, 7, 45, 45, 16, 45, 45, 45, 24, 45, 45, 45, 89, 45, 45, 45, 24, 45, - 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 86, 41, 46, 46, 28, 15, 46, 46, 55, 93, 46, 46, 90, 13, 46, 46, 90, 46, 46, 46, 77, 46, 46, 46, 76, 46, 46, 46, 38, 46, - 47, 70, 47, 47, 47, 45, 47, 47, 47, 47, 47, 47, 47, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 17, 47, 47, 47, 21, 47, 47, 47, 37, 47, 47, 47, 45, 47, 47, 25, 0, 47, 47, 85, 86, 47, 47, 38, 16, 47, 47, 38, 14, - 81, 48, 48, 48, 81, 48, 48, 48, 52, 48, 48, 48, 52, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 49, 49, 49, 49, 81, 49, 49, 49, 52, 49, 49, 49, 58, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 50, 50, 50, 64, 50, 50, 50, 52, 50, 50, 50, 46, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 59, 51, 51, 51, 50, 51, 51, 51, 52, 51, 51, 51, 43, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 52, 52, 52, 52, 50, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 57, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 40, 55, 55, 55, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 81, 56, 56, 56, 81, 56, 56, 56, 57, 56, 56, 56, 40, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 57, 57, 57, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 60, 58, 58, 58, 60, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 60, 46, 59, 59, 64, 46, 59, 59, 58, 58, 59, 59, 46, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 60, 60, 60, 60, 50, 60, 60, 60, 46, 60, 60, 60, 52, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 81, 64, 64, 64, 81, 64, 64, 64, 65, 64, 64, 64, 74, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 81, 65, 65, 65, 81, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 76, 66, 66, 66, 64, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 76, 67, 67, 67, 76, 67, 67, 67, 65, 67, 67, 67, 65, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 68, 68, 68, 68, 67, 68, 68, 68, 66, 68, 68, 68, 66, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 69, 71, 69, 69, 69, 69, 69, 69, 69, 66, 69, 69, 69, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 71, 69, 71, 71, 71, 69, 71, 71, 71, 66, 71, 71, 71, 68, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 87, 72, 72, 72, 81, 72, 72, 72, 40, 72, 72, 72, 66, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 73, 73, 73, 73, 73, 73, 73, 73, 66, 73, 73, 73, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 74, 74, 74, 73, 74, 74, 74, 74, 74, 74, 74, 65, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 84, 75, 75, 75, 64, 75, 75, 75, 74, 75, 75, 75, 65, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 84, 76, 76, 76, 64, 76, 76, 76, 74, 76, 76, 76, 79, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 79, 80, 79, 79, 79, 80, 79, 79, 79, 80, 79, 79, 79, 67, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 87, 80, 80, 80, 73, 80, 80, 80, 40, 80, 80, 80, 40, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 73, 81, 81, 81, 73, 81, 81, 81, 74, 81, 81, 81, 65, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 73, 82, 82, 82, 73, 82, 82, 82, 74, 82, 82, 82, 40, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 73, 83, 83, 83, 73, 83, 83, 83, 74, 83, 83, 83, 65, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 87, 84, 84, 84, 38, 84, 84, 84, 74, 84, 84, 84, 65, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 87, 84, 87, 87, 87, 84, 87, 87, 87, 84, 87, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 78, 88, 88, 83, 78, 88, 88, 82, 79, 88, 88, 38, 79, 88, 88, 90, 88, 88, 87, 88, 88, 88, 88, 88, 88, 88, 87, 88, 88, 88, 88, 88, - 88, 88, 87, 88, 88, 88, 46, 88, 88, 88, 87, 88, 88, 88, 62, 88, 88, 88, 87, 88, 88, 88, 11, 88, 88, 88, 73, 88, 88, 88, 71, 88, - 78, 89, 89, 89, 95, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 87, 90, 90, 90, 87, 90, 90, 90, 89, 91, 90, 90, 72, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 91, 91, 91, 91, 92, 91, 91, 91, 72, 91, 91, 91, 83, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 92, 92, 92, 92, 92, 90, 92, 92, 72, 83, 92, 92, 75, 91, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 45, 21, 93, 93, 55, 7, 93, 93, 93, 63, 93, 93, 21, 30, 93, 93, 22, 93, 93, 93, 15, 93, 93, 93, 93, 93, 93, 93, 21, 93, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 73, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 22, 94, 94, 94, 14, 94, 94, 94, 70, 94, 94, 94, 70, 94, 94, 6, 94, 94, 94, 70, 94, 94, 94, 37, 94, 94, 94, 13, 94, - 95, 94, 95, 95, 95, 94, 95, 95, 95, 94, 95, 95, 95, 73, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 20, 7, 95, 95, 63, 22, 95, 95, 39, 77, 95, 95, 15, 14, + 102, 0,127, 0, 74, 0, 33, 0,121, 0,102, 0,109, 0, 74, 0, 75, 0, 65, 0, 75, 0, 65, 0, 77, 0, 65, 0, 77, 0, 65, 0, + 0, 0, 76, 0, 0, 0, 97, 0, 0, 0, 75, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0,102, 0, 0, 0,126, 0, 0, 0,126, 0, + 0, 0, 94, 0, 0, 0, 88, 0, 0, 0,116, 0, 0, 0,126, 0, 0, 0, 82, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,119, 0, + 0, 0, 61, 0, 0, 0, 74, 0, 0, 0, 82, 0, 0, 0, 3, 0, 0, 0, 94, 0, 0, 0, 68, 0, 0, 0,110, 0, 0, 0, 93, 0, + 102, 0, 74, 0, 82, 0, 37, 0,121, 0, 77, 0, 96, 0,126, 0, 75, 0, 75, 0, 75, 0,102, 0, 77, 0,102, 0, 77, 0,102, 0, + 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0,126, 0, 0, 0,119, 0, 0, 0, 77, 0, 0, 0,121, 0, + 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 92, 0, + 0, 0, 73, 0, 0, 0,119, 0, 0, 0, 40, 0, 0, 0, 83, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 92, 0, + 102, 0, 73, 0, 74, 0, 50, 0,113, 0, 77, 0, 96, 0, 73, 0, 75, 0,102, 0, 75, 0,126, 0, 77, 0, 77, 0,113, 0, 77, 0, + 0, 0, 77, 0, 0, 0, 89, 0, 0, 0,121, 0, 0, 0,109, 0, 0, 0, 96, 0, 0, 0, 89, 0, 0, 0,121, 0, 0, 0, 89, 0, + 0, 0, 83, 0, 0, 0,114, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 89, 0, 0, 0,121, 0, 0, 0, 89, 0, + 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 92, 0, 0, 0, 40, 0, 0, 0,119, 0, 0, 0,105, 0, 0, 0,121, 0, 0, 0,117, 0, + 102, 0,113, 0, 73, 0, 77, 0,113, 0,113, 0,113, 0, 63, 0,102, 0,113, 0,102, 0,113, 0,113, 0,113, 0,113, 0,113, 0, + 0, 0,109, 0, 0, 0,112, 0, 0, 0,105, 0, 0, 0, 96, 0, 0, 0,121, 0, 0, 0, 89, 0, 0, 0,112, 0, 0, 0,112, 0, + 0, 0,112, 0, 0, 0,105, 0, 0, 0,114, 0, 0, 0,112, 0, 0, 0,105, 0, 0, 0,112, 0, 0, 0,105, 0, 0, 0,112, 0, + 0, 0,117, 0, 0, 0, 56, 0, 0, 0, 77, 0, 0, 0,118, 0, 0, 0, 83, 0, 0, 0, 89, 0, 0, 0,104, 0, 0, 0,115, 0, + 77, 0,113, 0, 93, 0, 83, 0,113, 0,113, 0,121, 0,121, 0,102, 0,113, 0,102, 0,113, 0,113, 0,113, 0,113, 0,113, 0, + 0, 0,115, 0, 0, 0,122, 0, 0, 0,112, 0, 0, 0,122, 0, 0, 0, 83, 0, 0, 0,112, 0, 0, 0,112, 0, 0, 0,112, 0, + 0, 0, 89, 0, 0, 0,124, 0, 0, 0,122, 0, 0, 0,118, 0, 0, 0,122, 0, 0, 0,109, 0, 0, 0,112, 0, 0, 0,103, 0, + 0, 0,118, 0, 0, 0, 27, 0, 0, 0,124, 0, 0, 0, 37, 0, 0, 0,118, 0, 0, 0, 57, 0, 0, 0,103, 0, 0, 0,115, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,113, 0, 0, 0, 56, 0, 0, 0, 19, 0, 0, 0,105, 0, 0, 0,122, 0, 0, 0,117, 0, 0, 0,124, 0, 0, 0,122, 0, + 0, 0,104, 0, 0, 0,105, 0, 0, 0,124, 0, 0, 0,125, 0, 0, 0, 92, 0, 0, 0,112, 0, 0, 0, 40, 0, 0, 0, 91, 0, + 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 57, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0,100, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,117, 0, 0, 0,114, 0, 0, 0, 83, 0, 0, 0,114, 0, 0, 0,112, 0, 0, 0,122, 0, 0, 0,103, 0, 0, 0,117, 0, + 0, 0,117, 0, 0, 0,122, 0, 0, 0, 96, 0, 0, 0,122, 0, 0, 0, 96, 0, 0, 0,105, 0, 0, 0,117, 0, 0, 0,104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 91, 0, 0, 0, 40, 0, 0, 0,114, 0, 0, 0, 69, 0, 0, 0, 57, 0, + 0,103, 0,118, 0,105, 0,122, 0,124, 0,124, 0,123, 0,104, 0,118, 0,124, 0,123, 0,123, 0,124, 0,118, 0,118, 0,123, + 0, 0,115,117, 0, 0,115,117, 0, 0,115,117, 0, 0,115,115, 0, 0,115,117, 0, 0,115,117, 0, 0,115,117, 0, 0,115,117, + 0, 0,104, 28, 0, 0,115, 35, 0, 0,104, 0, 0, 0,115,104, 0, 0,104, 27, 0, 0,115, 56, 0, 0,104, 27, 0, 0,115,117, + 0, 0,104,122, 0, 0,104, 0, 0, 0, 91, 38, 0, 0,115,127, 0, 0,104, 27, 0, 0,104, 0, 0, 0, 91, 1, 0, 0,104, 0, + 74, 0,127, 0, 74, 0, 97, 0, 56, 0, 74, 0,119, 0, 74, 0,127, 0, 65, 0,127, 0, 65, 0,126, 0, 65, 0,126, 0, 65, 0, + 0, 0,127, 0, 0, 0, 82, 0, 0, 0,100, 0, 0, 0, 74, 0, 0, 0, 53, 0, 0, 0, 94, 0, 0, 0,100, 0, 0, 0,116, 0, + 0, 0, 26, 0, 0, 0, 66, 0, 0, 0, 94, 0, 0, 0, 73, 0, 0, 0, 30, 0, 0, 0, 14, 0, 0, 0, 94, 0, 0, 0, 20, 0, + 0, 0,101, 0, 0, 0, 39, 0, 0, 0, 14, 0, 0, 0, 23, 0, 0, 0, 53, 0, 0, 0, 66, 0, 0, 0, 71, 0, 0, 0, 9, 0, + 74, 0, 50, 0, 82, 0, 50, 0,119, 0,126, 0, 47, 0, 50, 0,127, 0, 74, 0,127, 0, 74, 0,126, 0, 74, 0,126, 0, 74, 0, + 0, 0, 73, 0, 0, 0, 63, 0, 0, 0, 73, 0, 0, 0, 69, 0, 0, 0, 69, 0, 0, 0, 40, 0, 0, 0, 93, 0, 0, 0, 18, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 40, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 40, 0, + 0, 0, 14, 0, 0, 0, 77, 0, 0, 0, 39, 0, 0, 0, 76, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0,125, 0, + 74, 0, 63, 0, 88, 0, 77, 0,119, 0, 77, 0, 63, 0, 63, 0, 75, 0, 77, 0, 75, 0, 77, 0,119, 0, 77, 0,119, 0, 77, 0, + 0, 0, 40, 0, 0, 0, 35, 0, 0, 0, 63, 0, 0, 0, 96, 0, 0, 0, 63, 0, 0, 0, 92, 0, 0, 0, 63, 0, 0, 0, 96, 0, + 0, 0, 0, 0, 0, 0, 89, 0, 0, 0,119, 0, 0, 0, 66, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0,114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 126, 0, 83, 0, 73, 0, 83, 0,119, 0, 83, 0, 63, 0, 83, 0,102, 0, 83, 0,102, 0, 83, 0, 77, 0, 83, 0,119, 0, 83, 0, + 0, 0, 92, 0, 0, 0,117, 0, 0, 0, 83, 0, 0, 0,109, 0, 0, 0, 92, 0, 0, 0,114, 0, 0, 0, 96, 0, 0, 0, 96, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0,109, 0, 73, 0,109, 0,109, 0,109, 0, 56, 0,109, 0,126, 0, 83, 0,126, 0, 83, 0,121, 0, 83, 0,119, 0, 83, 0, + 0, 0,103, 0, 0, 0, 22, 0, 0, 0, 83, 0, 0, 0,125, 0, 0, 0,112, 0, 0, 0, 55, 0, 0, 0,105, 0, 0, 0,112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 89, 0, 0, 0, 89, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, + 0, 0,117, 0, 0, 0,104, 0, 0, 0,117, 0, 0, 0,104, 0, 0, 0,117, 0, 0, 0,104, 0, 0, 0,117, 0, 0, 0,117, 0, + 0, 0, 91, 0, 0, 0,104, 0, 0, 0, 40, 0, 0, 0,104, 0, 0, 0, 91, 0, 0, 0,117, 0, 0, 0, 40, 0, 0, 0, 91, 0, + 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, 17, 0, + 0, 0, 0, 89, 0, 0, 0, 89, 0, 0, 0,109, 0, 0, 0,114, 0, 0, 0,109, 0, 0, 0,114, 0, 0, 0,112, 0, 0, 0,114, + 0, 0,117,117, 0, 0,104,117, 0, 0,117, 56, 0, 0,105,104, 0, 0,117,117, 0, 0,115,117, 0, 0,117,117, 0, 0,104,117, + 0, 0,117, 0, 0, 0,104, 0, 0, 0, 91, 0, 0, 0,112, 0, 0, 0, 91, 0, 0, 0,104, 0, 0, 0, 91, 0, 0, 0,117, 0, + 0, 0, 55, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 98, 0, + 0,103, 0,105, 0,103, 0,103, 0,125, 0,114, 0,114, 0,114, 0,121, 0,114, 0,114, 0,112, 0,125, 0,112, 0,114, 0,112, + 0, 0,114,117, 0, 0,104,105, 0, 0,117,117, 0, 0,104,104, 0, 0,104,117, 0, 0,115,104, 0, 0,114,117, 0, 0,115,117, + 0, 0, 91,117, 0, 0,104,105, 0, 0, 91, 0, 0, 0,104,114, 0, 0, 91,104, 0, 0,115,123, 0, 0, 91, 77, 0, 0,104,117, + 0, 0, 0,113, 0, 0, 56,123, 0, 0, 0, 27, 0, 0, 91, 5, 0, 0, 46, 65, 0, 0,125,118, 0, 0, 46,127, 0, 0, 0, 17, + 82, 0, 82, 0, 82, 0, 82, 0, 35, 0, 82, 0, 35, 0, 82, 0,127, 0, 33, 0,127, 0, 65, 0,116, 0, 33, 0,116, 0, 33, 0, + 0, 0, 90, 0, 0, 0, 94, 0, 0, 0, 97, 0, 0, 0,100, 0, 0, 0, 53, 0, 0, 0, 94, 0, 0, 0, 94, 0, 0, 0, 94, 0, + 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 87, 0, 0, 0,116, 0, 0, 0, 53, 0, 0, 0, 9, 0, 0, 0, 44, 0, 0, 0,120, 0, + 0, 0, 53, 0, 0, 0,108, 0, 0, 0, 29, 0, 0, 0, 63, 0, 0, 0, 53, 0, 0, 0,116, 0, 0, 0, 24, 0, 0, 0, 8, 0, + 82, 0, 50, 0, 82, 0, 50, 0, 18, 0, 50, 0, 40, 0, 50, 0,127, 0, 74, 0,127, 0, 74, 0,116, 0, 50, 0,116, 0, 50, 0, + 0, 0, 69, 0, 0, 0, 40, 0, 0, 0, 68, 0, 0, 0, 40, 0, 0, 0, 69, 0, 0, 0, 55, 0, 0, 0, 69, 0, 0, 0, 40, 0, + 0, 0, 3, 0, 0, 0, 35, 0, 0, 0, 73, 0, 0, 0, 84, 0, 0, 0, 15, 0, 0, 0,124, 0, 0, 0, 20, 0, 0, 0,125, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 0, 63, 0, 88, 0, 63, 0,119, 0, 63, 0, 69, 0, 63, 0, 97, 0, 63, 0, 97, 0, 63, 0, 93, 0, 63, 0, 73, 0, 63, 0, + 0, 0, 63, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0,125, 0, 0, 0, 63, 0, 0, 0,119, 0, 0, 0, 47, 0, 0, 0, 40, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 0, 96, 35, 73, 0, 96, 35,119, 0, 35, 35, 63, 0, 96, 35, 74, 0, 96, 92,102, 0, 96, 92, 63, 0, 96, 92,119, 0, 96, 35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 56, 73, 0, 0, 56, 35, 0, 0, 56, 35, 0, 0, 56,126, 0, 0, 92,126, 0, 0, 92, 63, 0, 0, 92,119, 0, 0, 92, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,117, 0, 0,112,117, 0, 0, 91,117, 0, 0,112,112, 0, 0, 91,117, 0, 0,117,117, 0, 0, 40, 91, 0, 0,117,117, + 0, 0,125, 0, 0, 0,124, 0, 0, 0, 18, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 91, 0, + 0, 0, 17, 0, 0, 0,106, 0, 0, 0, 3, 0, 0, 0, 50, 0, 0, 0, 67, 0, 0, 0, 23, 0, 0, 0, 66, 0, 0, 0, 67, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,117, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0,122, 0, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 40, 0, 0, 0,117, + 0, 0, 96, 55, 0, 0,112,115, 0, 0, 35,125, 0, 0,103,125, 0, 0, 0, 15, 0, 0,112,103, 0, 0, 0, 0, 0, 0, 91,117, + 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 17, 0, 0, 0, 94, 0, 0, 0, 17, 0, 0, 0, 54, 0, 0, 0, 54, 0, + 0, 57, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 0, 0,122,115, 0, 0, 45, 0, 0, 0,104, 89, 0, 0, 0,109, 0, 0,123,124, 0, 0, 0, 77, 0, 0, 91,115, + 0, 0, 0, 89, 0, 0, 79, 27, 0, 0, 0, 57, 0, 0, 72, 16, 0, 0, 23,125, 0, 0, 4, 77, 0, 0, 32, 91, 0, 0, 10, 27, + 97, 0, 82, 0, 90, 0, 82, 0, 40, 0, 82, 0, 40, 0, 82, 0, 33, 0, 33, 0, 33, 0, 33, 0,110, 0, 33, 0,110, 0, 33, 0, + 0, 0, 90, 0, 0, 0, 85, 0, 0, 0, 90, 0, 0, 0, 94, 0, 0, 0, 53, 0, 0, 0, 94, 0, 0, 0, 90, 0, 0, 0, 94, 0, + 0, 0, 26, 0, 0, 0, 6, 0, 0, 0, 90, 0, 0, 0, 39, 0, 0, 0, 26, 0, 0, 0, 59, 0, 0, 0, 62, 0, 0, 0, 32, 0, + 0, 0, 28, 0, 0, 0, 87, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,107, 0, 0, 0,120, 0, 0, 0, 28, 0, 0, 0,120, 0, + 82, 0, 68, 0, 82, 0, 73, 0, 40, 0, 68, 0, 73, 0, 68, 0,127, 0, 39, 0,127, 0, 39, 0,110, 0, 39, 0,110, 0, 39, 0, + 0, 0, 10, 0, 0, 0, 69, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 67, 0, 0, 0, 22, 0, 0, 0, 19, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 0, 0, 18, 88, 0, 0, 18, 18, 0, 0, 18, 69, 0, 0, 40, 97, 0, 0, 55, 97, 0, 0, 18, 73, 0, 0, 55, 73, 0, 0, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 0, 0, 0, 73, 0, 0, 0, 55, 0, 0, 0, 69, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 93, 0, 0, 0, 73, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 0, 0, 0, 69, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 73, 0, 0, 0, 88, 0, 0, 0, 40, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,112,109, 0, 0, 0, 92, 0, 0,122,104, 0, 0, 0, 69, 0, 0, 57,125, 0, 0, 22, 0, 0, 0, 0,117, + 0, 0, 51, 0, 0, 0,108, 0, 0, 0, 23, 0, 0, 0,125, 0, 0, 0, 33, 0, 0, 0, 4, 0, 0, 0, 80, 0, 0, 0, 58, 0, + 0, 47, 0, 0, 0, 47, 0, 0, 0, 40, 0, 0, 0, 55, 0, 0, 0, 46, 0, 0, 0, 18, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,119, 0, 0, 76, 0, 0, 0, 77,127, 0, 0, 35, 0, 0, 0, 70, 98, 0, 0,102,102, 0, 0, 0, 0, 0, 0,123,109, + 0, 0, 23, 0, 0, 0, 37, 0, 0, 0, 14, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,127, 0, 0, 0, 31, 0, 0, 0, 3, 0, + 0, 47, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 97,117, 0, 0,118,104, 0, 0, 0, 20, 0, 0,113, 36, 0, 0,112,117, 0, 0, 57,113, 0, 0, 13,126, 0, 0,122,122, + 0, 0,100, 0, 0, 0, 14,126, 0, 0, 0, 15, 0, 0,108,124, 0, 0, 94, 39, 0, 0, 2, 6, 0, 0,120, 51, 0, 0, 67, 0, + 97, 0, 0, 0, 90, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 33, 0, 0, 0, 95, 0, 0, 0, 94, 0, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 61, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0,127, 0, 0, 0,127, 0, 0, 0,110, 0, 0, 0,110, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 0, 0, 0, 88, 0, 0, 0, 46, 0, 0, 0, 69, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 0, 0, 0, 88, 0, 0, 0, 69, 0, 0, 0, 69, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 69, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 86, 0, 0, 0, 46, 0, 0, 0, 69, 0, 0, 0, 88, 0, 0, 0, 88, 0, 0, 0, 69, 0, 0, 0, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 69, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 69, 0, 0, 0, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 0, 0, 0, 27, 0, 0, 0, 93, 0, 0, 0, 69, 0, 0, 0, 98, 0, 0, 0, 46, 0, 0, 0, 98, 0, 0, 0, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 90, 0, 37, 0, 90, 0, 37, 0, 84, 0, 20, 0, 22, 0, 20, 0, 95, 0, 5, 0, 95, 0, 13, 0,101, 0, 5, 0,101, 0, 13, 0, + 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 66, 0, 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 51, 0, + 0, 0, 12, 0, 0, 0, 9, 0, 0, 0, 12, 0, 0, 0,120, 0, 0, 0, 21, 0, 0, 0, 66, 0, 0, 0, 12, 0, 0, 0,108, 0, + 0, 0, 43, 0, 0, 0, 69, 0, 0, 0, 76, 0, 0, 0, 14, 0, 0, 0, 25, 0, 0, 0, 9, 0, 0, 0, 21, 0, 0, 0, 14, 0, + 61, 0, 0, 17, 61, 0, 0, 3, 15, 0, 0, 22, 19, 0, 0, 15, 76, 0, 0, 19, 76, 0, 0, 45, 85, 0, 0, 19, 61, 0, 0, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 61, 0, 0, 0, 36, 0, 0, 0, 19, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 19, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 0, 0, 0, 67, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 61, 0, 0, 0,101, 0, 0, 0, 19, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 36, 0, 0, 67, 15, 0, 0, 45, 45, 0, 0, 36, 86, 0, 0, 61, 84, 0, 0, 97, 84, 0, 0, 19, 84, 0, 0, 45, 10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 0, 0, 0, 38,117, 0, 0, 54, 0, 0, 0, 0,112, 0, 0, 42, 93, 0, 0, 0,115, 0, 0, 6, 72, 0, 0, 14, 91, + 0, 0, 5, 0, 0, 0, 68, 0, 0, 0, 97, 0, 0, 0, 87, 0, 0, 0, 51, 0, 0, 0, 4, 0, 0, 0, 6, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 97, 3, 0, 0,126, 57, 0, 0, 68, 33, 0, 0, 40,115, 0, 0,110,122, 0, 0,102, 65, 0, 0, 23, 0, 0, 0,101, 92, + 0, 0, 48, 0, 0, 0, 97, 0, 0, 0, 94, 0, 0, 0, 23, 0, 0, 0,127, 0, 0, 0,126, 0, 0, 0, 90, 0, 0, 0, 29, 0, + 0, 23, 0, 0, 0, 3, 0, 0, 0, 17, 0, 0, 0, 10, 0, 0, 0, 98, 0, 0, 0, 86, 0, 0, 0, 98, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 95, 0, 0, 0,102, 0, 0, 0,103, 0, 0, 0,103, 0, 0, 0, 91, 0, 0, 0, 77, 0, 0, 0, 82, 0, 0, 0, 72, + 0, 0, 28,126, 0, 0,102,118, 0, 0, 11,125, 0, 0, 33, 55, 0, 0,116,126, 0, 0, 1, 89, 0, 0, 48, 1, 0, 0, 20,114, + 90, 0, 0, 0, 87, 0, 0, 0, 72, 0, 0, 0, 3, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 44, 0, 0, 0,101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 90, 0, 0, 0, 90, 0, 0, 0, 84, 0, 0, 0,106, 0, 0, 0, 95, 0, 0, 0, 76, 0, 0, 0, 44, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 0, 0, 44, 0, 0, 0, 41, 0, 0, 0, 67, 0, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 0, 0, 0, 44, 0, 0, 0, 41, 0, 0, 0, 19, 0, 0, 0, 53, 0, 0, 0, 97, 0, 0, 0, 41, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 0, 0, 0, 80, 0, 0, 0, 41, 0, 0, 0,106, 0, 0, 0, 90, 0, 0, 0, 97, 0, 0, 0, 61, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 32, 0, 0, 0, 59, 0, 0, 0, 32, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 14, 0, 0, 0, 14, 0, 0, 0, 32, 0, 0, 0, 41, 0, 0, 0,120, 0, 0, 0, 85, 0, 0, 0,120, 0, 0, 0, 41, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 87, 0, 0, 0, 98, 0, 0, 0, 98, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 71, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 0, 0, 0, 42, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 66, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 0, 0, 44, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 9, 0, 0, 44, 9, 0, 0, 41, 9, 0, 0, 41, 9, 0, 0, 76, 80, 0, 0, 76, 59, 0, 0, 44, 59, 0, 0, 87, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 0, 0, 44, 0, 0, 0, 41, 0, 0, 0, 99, 0, 0, 0, 53, 0, 0, 0, 97, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 8, 0, 0, 0, 80, 0, 0, 0, 51, 0, 0, 0,120, 0, 0, 0, 51, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 87, 0, 0, 0,108, 0, 0, 0, 70, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 62, 0, 0, 0,108, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 62, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 62, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 29, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 29, 0, 0, 0, 9, 0, 0, 0, 99, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 30, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 99, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 6, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 71, 0, 0, 0, 71, 0, 0, 0, 71, 0, 0, 0, 71, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 6, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 71, 0, 0, 0, 71, 0, 0, 0, 71, 0, 0, 0, 30, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 24, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 12, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 24, 0, 0, 0,108, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 24, 0, 0, 0,108, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 12, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 24, 0, 0, 0,108, 0, 0, 0, 99, 0, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 62, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 24, 0, 0, 0, 31, 0, 0, 0, 99, 0, 0, 0, 26, 0, 0, 0,111, 0, 0, 0, 12, 0, 0, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 29, 0, 0, 0, 12, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 2, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 49, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 24, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 49, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 21, 0, 0, 0,108, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 60, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 24, 0, 0, 0,108, 0, 0, 0, 99, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0,107, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0, 0, 0, 24, 0, 0, 0, 16, 0, 0, 0, 21, 0, 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 24, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 25, 49, 0, 0, 7, 70, 0, 0, 28, 70, 0, 0, 1, 78, 0, 0, 21, 64, 0, 0, 21, 60, 0, 0, 2, 34, 0, 0, 1, + 0, 0, 48, 0, 0, 0, 79, 0, 0, 0, 48, 0, 0, 0, 79, 0, 0, 0, 48, 0, 0, 0, 79, 0, 0, 0, 48, 0, 0, 0, 79, 0, + 0, 0, 49, 0, 0, 0, 8, 0, 0, 0, 60, 0, 0, 0,120, 0, 0, 0,107, 0, 0, 0, 9, 0, 0, 0, 48, 0, 0, 0, 31, 0, + 0, 0, 16, 0, 0, 0, 73, 0, 0, 0, 38, 0, 0, 0,119, 0, 0, 0, 12, 0, 0, 0,126, 0, 0, 0, 48, 0, 0, 0, 29, 0, + 34, 0, 0, 0, 38, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 1, 0, 0, 52, 1, 0, 0, 58, 25, 0, 0, 58, 7, 0, 0,111, 2, 0, 0,111, 1, 0, 0, 52, 2, 0, 0,107, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 1, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0,111, 0, 0, 0,111, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 43, 0, 0, 1, 1, 0, 0, 58, 43, 0, 0, 58, 7, 0, 0,111, 60, 0, 0,111, 60, 0, 0, 52, 60, 0, 0, 87, 60, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,124,104, 0, 0, 22, 3, 0, 0,103,117, 0, 0, 91, 33, 0, 0,123,115, 0, 0, 0, 98, 0, 0, 0,125, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 0, 0, 0, 22, 0, 0, 0,117, 0, 0, 0, 98, 0, 0, 0, 0, 0, + 0, 26, 0, 0, 0, 16, 0, 0, 0, 60, 0, 0, 0, 52, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0, 34, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,105, 0, 0, 0,103, 0, 0, 0,118, 0, 0, 0, 57, 0, 0, 0, 97, 0, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, 13, + 0, 0,122, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0,103, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 98, 0, 0, 0, 57, 0, + 0, 26, 0, 0, 0, 16, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 34, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,105,117, 0, 0, 55,103, 0, 0,116, 2, 0, 0,118,118, 0, 0, 0, 0, 0, 0, 33, 70, 0, 0, 98, 27, 0, 0, 91,118, }; static const unsigned short m03_T1_model_scale_table[] = { - 214, 110, 206, 318, 221, 1290, 3291, 461, 89, 202, 439, 299, 695, 657, 339, 175, - 125, 484, 247, 1556, 926, 93, 1454, 185, 269, 277, 463, 883, 295, 3964, 1266, 613, - 481, 336, 747, 1214, 1203, 2289, 637, 539, 506, 104, 1568, 1314, 6615, 747, 4231, 1378, - 1290, 817, 532, 798, 1886, 1113, 5380, 1096, 971, 2259,12060, 883, 1996, 2829,14512, 2993, - 816, 1239, 3685, 3201, 4479, 2869, 723, 2077, 1284, 3077, 686, 324, 2609, 267, 1425, 727, - 12722, 636,11040, 1600,18683, 279, 103, 2809, 677, 914, 832, 2153, 963, 1177, 1319, 1069, + 131, 749, 617, 764,10926, 225, 2904, 5945, 3595, 5886, 5598,10076, 6013, 143, 1205, 1954, + 1201, 1315, 2235, 1685, 773, 9245, 575, 827,13146, 1242, 1181, 548, 463, 2705, 3052,10786, + 2516, 115, 2474, 2870, 1841, 468, 1091, 826, 1643,13088, 1408, 639, 2822, 3023, 1670, 573, + 1927, 1100, 575, 4366, 2041, 1030, 358, 825, 701, 176, 841, 5617, 1660, 865, 2447, 1747, + 324, 75, 775, 1443, 922, 2279, 304, 2852, 745, 827, 237, 177, 306, 275, 251, 796, + 2176, 1018, 411, 991, 403, 1840, 1658, 468, 884, 344, 870, 239, 503, 594, 482, 265, + 2065, 356, 394, 643, 193, 502, 117, 109, 323, 95, 424, 1111, 476, 1264, 496, 764, + 191, 212, 1469, 575, 266, 314, 59, 497, 384, 610, 60, 360, 212, 67, 212, 108, }; -static const unsigned char m03_T2_model_state_table[] = +static const unsigned char m03_T2_model_m0_state_table[] = { - 0, 0, 63, 0, 0, 0, 63, 0, 2, 0, 63, 0, 2, 0, 63, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 1, 0, - 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 0, 1, 2, 1, 0, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 2, 1, 1, 1, 3, 1, - 1, 1, 18, 1, 1, 1, 82, 1, 1, 1, 11, 1, 1, 1, 3, 1, 1, 1, 31, 1, 1, 1, 12, 1, 1, 1, 10, 1, 1, 1, 3, 1, - 0, 2, 1, 2, 0, 2, 1, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 12, 2, 2, 2, 3, 2, 2, 2, 4, 2, 2, 2, 3, 2, - 2, 2, 82, 2, 2, 2, 65, 2, 2, 2, 12, 2, 2, 2, 3, 2, 2, 2, 23, 2, 2, 2, 12, 2, 2, 2, 19, 2, 2, 2, 3, 2, - 2, 3, 2, 3, 1, 3, 2, 3, 4, 3, 2, 3, 3, 3, 2, 3, 3, 3, 82, 3, 3, 3, 4, 3, 3, 3, 4, 3, 3, 3, 3, 3, - 3, 3, 95, 3, 3, 3, 15, 3, 3, 3, 12, 3, 3, 3, 3, 3, 3, 3, 12, 3, 3, 3, 7, 3, 3, 3, 4, 3, 3, 3, 82, 3, - 2, 4, 2, 4, 2, 4, 2, 4, 4, 4, 2, 4, 3, 4, 2, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 49, 4, 4, 4, 82, 4, 4, 4, 4, 4, 4, 4, 23, 4, 4, 4, 21, 4, 4, 4, 82, 4, 4, 4, 7, 4, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 57, 5, 5, 5, 25, 5, 5, 5, 25, 5, 5, 5, 16, 5, 5, 5, 25, 5, 5, 5, 11, 5, 5, 5, 8, 5, 5, 5, 8, 5, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 54, 6, 6, 6, 76, 6, 6, 6, 49, 6, 6, 6, 89, 6, - 6, 6, 95, 6, 6, 6, 15, 6, 6, 6, 23, 6, 6, 6, 10, 6, 6, 6, 29, 6, 6, 6, 3, 6, 6, 6, 25, 6, 6, 6, 9, 6, - 4, 7, 49, 7, 49, 7, 49, 7, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 15, 7, 7, 7, 7, 7, 7, 7, 20, 7, 7, 7, 20, 7, - 8, 8, 16, 8, 16, 8, 63, 8, 10, 8, 63, 8, 1, 8, 63, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 28, 8, 8, 8, 28, 8, - 8, 8, 48, 8, 8, 8, 25, 8, 8, 8, 25, 8, 8, 8, 28, 8, 8, 8, 50, 8, 8, 8, 81, 8, 8, 8, 41, 8, 8, 8, 41, 8, - 8, 9, 9, 9, 0, 9, 0, 9, 10, 9, 0, 9, 10, 9, 0, 9, 9, 9, 27, 9, 9, 9, 18, 9, 9, 9, 18, 9, 9, 9, 10, 9, - 9, 9, 27, 9, 9, 9, 37, 9, 9, 9, 27, 9, 9, 9, 18, 9, 9, 9, 38, 9, 9, 9, 21, 9, 9, 9, 27, 9, 9, 9, 29, 9, - 9, 10, 10, 10, 9, 10, 1, 10, 10, 10, 11, 10, 10, 10, 11, 10, 10, 10, 21, 10, 10, 10, 23, 10, 10, 10, 23, 10, 10, 10, 23, 10, - 10, 10, 31, 10, 10, 10, 23, 10, 10, 10, 13, 10, 10, 10, 19, 10, 10, 10, 65, 10, 10, 10, 49, 10, 10, 10, 46, 10, 10, 10, 76, 10, - 10, 11, 11, 11, 1, 11, 11, 11, 12, 11, 11, 11, 3, 11, 11, 11, 11, 11, 23, 11, 11, 11, 3, 11, 11, 11, 12, 11, 11, 11, 12, 11, - 11, 11, 22, 11, 11, 11, 13, 11, 11, 11, 30, 11, 11, 11, 30, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 10, 12, 11, 12, 1, 12, 11, 12, 12, 12, 11, 12, 3, 12, 11, 12, 12, 12, 14, 12, 12, 12, 65, 12, 12, 12, 7, 12, 12, 12, 15, 12, - 12, 12, 65, 12, 12, 12, 12, 12, 12, 12, 32, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 13, 13, 19, 13, 13, 13, 19, 13, 13, 13, 11, 13, 13, 13, 72, 13, 13, 13, 95, 13, 13, 13, 7, 13, 13, 13, 23, 13, 13, 13, 20, 13, - 13, 13, 22, 13, 13, 13, 15, 13, 13, 13, 13, 13, 13, 13, 20, 13, 13, 13, 38, 13, 13, 13, 20, 13, 13, 13, 41, 13, 13, 13, 28, 13, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 11, 14, 14, 14, 3, 14, 14, 14, 15, 14, 14, 14, 7, 14, 14, 14, 15, 14, 14, 14, 7, 14, - 14, 14, 22, 14, 14, 14, 65, 14, 14, 14, 22, 14, 14, 14, 20, 14, 14, 14, 31, 14, 14, 14, 20, 14, 14, 14, 26, 14, 14, 14, 29, 14, - 12, 15, 65, 15, 65, 15, 65, 15, 12, 15, 12, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 15, 15, 15, 15, 15, 15, 15, 7, 15, - 15, 15, 22, 15, 15, 15, 7, 15, 15, 15, 22, 15, 15, 15, 15, 15, 15, 15, 22, 15, 15, 15, 15, 15, 15, 15, 29, 15, 15, 15, 20, 15, - 16, 16, 16, 16, 16, 16, 16, 16, 28, 16, 24, 16, 28, 16, 24, 16, 16, 16, 48, 16, 16, 16, 25, 16, 16, 16, 48, 16, 16, 16, 8, 16, - 16, 16, 66, 16, 16, 16, 57, 16, 16, 16, 48, 16, 16, 16, 41, 16, 16, 16, 66, 16, 16, 16, 41, 16, 16, 16, 40, 16, 16, 16, 67, 16, - 8, 17, 35, 17, 8, 17, 9, 17, 28, 17, 17, 17, 28, 17, 17, 17, 17, 17, 39, 17, 17, 17, 31, 17, 17, 17, 27, 17, 17, 17, 19, 17, - 17, 17, 43, 17, 17, 17, 13, 17, 17, 17, 43, 17, 17, 17, 18, 17, 17, 17, 89, 17, 17, 17, 91, 17, 17, 17, 33, 17, 17, 17, 20, 17, - 25, 18, 13, 18, 9, 18, 19, 18, 18, 18, 19, 18, 10, 18, 11, 18, 18, 18, 13, 18, 18, 18, 13, 18, 18, 18, 13, 18, 18, 18, 20, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 27, 19, 23, 19, 1, 19, 19, 19, 18, 19, 19, 19, 19, 19, 11, 19, 19, 19, 14, 19, 19, 19, 13, 19, 19, 19, 13, 19, 19, 19, 92, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 27, 20, 72, 20, 1, 20, 19, 20, 19, 20, 11, 20, 19, 20, 11, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 21, 21, 95, 21, 21, 21, 23, 21, 21, 21, 14, 21, 21, 21, 23, 21, 21, 21, 22, 21, 21, 21, 15, 21, 21, 21, 22, 21, 21, 21, 22, 21, - 21, 21, 21, 21, 21, 21, 15, 21, 21, 21, 29, 21, 21, 21, 20, 21, 21, 21, 41, 21, 21, 21, 3, 21, 21, 21, 58, 21, 21, 21, 44, 21, - 14, 22, 95, 22, 44, 22, 65, 22, 46, 22, 14, 22, 29, 22, 23, 22, 22, 22, 22, 22, 22, 22, 15, 22, 22, 22, 22, 22, 22, 22, 15, 22, - 22, 22, 22, 22, 22, 22, 15, 22, 22, 22, 21, 22, 22, 22, 20, 22, 22, 22, 29, 22, 22, 22, 20, 22, 22, 22, 41, 22, 22, 22, 67, 22, - 14, 23, 95, 23, 82, 23, 65, 23, 14, 23, 14, 23, 23, 23, 23, 23, 23, 23, 22, 23, 23, 23, 15, 23, 23, 23, 22, 23, 23, 23, 15, 23, - 23, 23, 22, 23, 23, 23, 7, 23, 23, 23, 21, 23, 23, 23, 22, 23, 23, 23, 31, 23, 23, 23, 20, 23, 23, 23, 41, 23, 23, 23, 29, 23, - 32, 24, 32, 24, 16, 24, 16, 24, 25, 24, 24, 24, 28, 24, 24, 24, 24, 24, 60, 24, 24, 24, 25, 24, 24, 24, 48, 24, 24, 24, 48, 24, - 24, 24, 66, 24, 24, 24, 40, 24, 24, 24, 40, 24, 24, 24, 41, 24, 24, 24, 66, 24, 24, 24, 9, 24, 24, 24, 81, 24, 24, 24, 67, 24, - 48, 25, 35, 25, 8, 25, 25, 25, 27, 25, 17, 25, 28, 25, 17, 25, 25, 25, 39, 25, 25, 25, 38, 25, 25, 25, 36, 25, 25, 25, 29, 25, - 25, 25, 46, 25, 25, 25, 12, 25, 25, 25, 36, 25, 25, 25, 60, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 26, 13, 26, 25, 26, 19, 26, 27, 26, 19, 26, 27, 26, 19, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 10, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 28, 28, 28, 67, 28, 28, 28, 27, 28, 28, 28, 11, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 13, 29, 30, 29, 13, 29, 22, 29, 46, 29, 13, 29, 39, 29, 21, 29, 29, 29, 30, 29, 29, 29, 22, 29, 29, 29, 37, 29, 29, 29, 22, 29, - 29, 29, 38, 29, 29, 29, 20, 29, 29, 29, 36, 29, 29, 29, 29, 29, 29, 29, 26, 29, 29, 29, 10, 29, 29, 29, 40, 29, 29, 29, 67, 29, - 13, 30, 30, 30, 21, 30, 22, 30, 13, 30, 13, 30, 21, 30, 23, 30, 30, 30, 30, 30, 30, 30, 22, 30, 30, 30, 37, 30, 30, 30, 22, 30, - 30, 30, 21, 30, 30, 30, 22, 30, 30, 30, 38, 30, 30, 30, 20, 30, 30, 30, 31, 30, 30, 30, 1, 30, 30, 30, 81, 30, 30, 30, 44, 30, - 13, 31, 31, 31, 21, 31, 31, 31, 13, 31, 31, 31, 31, 31, 31, 31, 31, 31, 30, 31, 31, 31, 22, 31, 31, 31, 46, 31, 31, 31, 23, 31, - 31, 31, 30, 31, 31, 31, 7, 31, 31, 31, 37, 31, 31, 31, 20, 31, 31, 31, 36, 31, 31, 31, 20, 31, 31, 31, 81, 31, 31, 31, 67, 31, - 32, 32, 60, 32, 32, 32, 32, 32, 48, 32, 6, 32, 41, 32, 24, 32, 32, 32, 60, 32, 32, 32, 42, 32, 32, 32, 32, 32, 32, 32, 57, 32, - 32, 32, 60, 32, 32, 32, 67, 32, 32, 32, 40, 32, 32, 32, 57, 32, 32, 32, 66, 32, 32, 32, 5, 32, 32, 32, 73, 32, 32, 32, 67, 32, - 42, 33, 39, 33, 57, 33, 33, 33, 43, 33, 33, 33, 41, 33, 44, 33, 33, 33, 47, 33, 33, 33, 46, 33, 33, 33, 43, 33, 33, 33, 44, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 43, 34, 34, 34, 25, 34, 34, 34, 38, 34, 34, 34, 27, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 43, 35, 35, 35, 25, 35, 35, 35, 43, 35, 35, 35, 27, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 43, 36, 36, 36, 67, 36, 36, 36, 43, 36, 36, 36, 27, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 46, 37, 37, 37, 38, 37, 37, 37, 39, 37, 37, 37, 38, 37, 37, 37, 37, 37, 46, 37, 37, 37, 22, 37, 37, 37, 45, 37, 37, 37, 22, 37, - 37, 37, 36, 37, 37, 37, 20, 37, 37, 37, 47, 37, 37, 37, 29, 37, 37, 37, 34, 37, 37, 37, 11, 37, 37, 37, 73, 37, 37, 37, 5, 37, - 46, 38, 38, 38, 38, 38, 38, 38, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 46, 38, 38, 38, 4, 38, 38, 38, 34, 38, 38, 38, 23, 38, - 38, 38, 38, 38, 38, 38, 12, 38, 38, 38, 41, 38, 38, 38, 20, 38, 38, 38, 26, 38, 38, 38, 19, 38, 38, 38, 73, 38, 38, 38, 26, 38, - 46, 39, 39, 39, 38, 39, 39, 39, 39, 39, 39, 39, 37, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 82, 39, 39, 39, 37, 39, 39, 39, 29, 39, 39, 39, 33, 39, 39, 39, 2, 39, 39, 39, 40, 39, 39, 39, 67, 39, - 32, 40, 60, 40, 32, 40, 32, 40, 58, 40, 6, 40, 81, 40, 6, 40, 40, 40, 66, 40, 40, 40, 57, 40, 40, 40, 40, 40, 40, 40, 81, 40, - 40, 40, 83, 40, 40, 40, 81, 40, 40, 40, 64, 40, 40, 40, 41, 40, 40, 40, 74, 40, 40, 40, 9, 40, 40, 40, 64, 40, 40, 40, 67, 40, - 42, 41, 53, 41, 57, 41, 33, 41, 43, 41, 44, 41, 41, 41, 44, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 42, 42, 42, 42, 57, 42, 42, 42, 43, 42, 42, 42, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 43, 43, 43, 57, 43, 43, 43, 43, 43, 43, 43, 41, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 44, 44, 44, 67, 44, 44, 44, 43, 44, 44, 44, 28, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 45, 45, 45, 45, 38, 45, 45, 45, 47, 45, 45, 45, 53, 45, 45, 45, 45, 45, 46, 45, 45, 45, 15, 45, 45, 45, 45, 45, 45, 45, 38, 45, - 45, 45, 36, 45, 45, 45, 31, 45, 45, 45, 51, 45, 45, 45, 29, 45, 45, 45, 26, 45, 45, 45, 0, 45, 45, 45, 81, 45, 45, 45, 81, 45, - 46, 46, 46, 46, 38, 46, 46, 46, 47, 46, 46, 46, 53, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 31, 46, 46, 46, 4, 46, 46, 46, 51, 46, 46, 46, 19, 46, 46, 46, 40, 46, 46, 46, 20, 46, 46, 46, 73, 46, 46, 46, 73, 46, - 45, 47, 47, 47, 36, 47, 47, 47, 47, 47, 47, 47, 34, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 14, 47, 47, 47, 13, 47, 47, 47, 46, 47, 47, 47, 33, 47, 47, 47, 57, 47, 47, 47, 21, 47, 47, 47, 57, 47, 47, 47, 67, 47, - 66, 48, 48, 48, 56, 48, 48, 48, 58, 48, 48, 48, 81, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 50, 49, 49, 49, 57, 49, 49, 49, 51, 49, 49, 49, 41, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 50, 50, 50, 50, 57, 50, 50, 50, 51, 50, 50, 50, 41, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 51, 51, 51, 57, 51, 51, 51, 51, 51, 51, 51, 41, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 50, 52, 52, 52, 67, 52, 52, 52, 51, 52, 52, 52, 41, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 54, 53, 53, 53, 53, 53, 53, 53, 47, 53, 53, 53, 51, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 54, 54, 54, 54, 53, 54, 54, 54, 47, 54, 54, 54, 51, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 55, 55, 55, 52, 55, 55, 55, 47, 55, 55, 55, 51, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 66, 56, 84, 56, 56, 56, 60, 56, 58, 56, 76, 56, 81, 56, 76, 56, 56, 56, 83, 56, 56, 56, 40, 56, 56, 56, 64, 56, 56, 56, 81, 56, - 56, 56, 74, 56, 56, 56, 41, 56, 56, 56, 74, 56, 56, 56, 57, 56, 56, 56, 93, 56, 56, 56, 67, 56, 56, 56, 74, 56, 56, 56, 67, 56, - 66, 57, 57, 57, 73, 57, 57, 57, 58, 57, 57, 57, 81, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 50, 58, 58, 58, 57, 58, 58, 58, 79, 58, 58, 58, 81, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 50, 59, 59, 59, 67, 59, 59, 59, 79, 59, 59, 59, 81, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 50, 60, 60, 60, 57, 60, 60, 60, 79, 60, 60, 60, 81, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 61, 61, 61, 61, 62, 61, 61, 61, 71, 61, 61, 61, 51, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 34, 61, 61, 61, 31, 61, 61, 61, 79, 61, 61, 61, 67, 61, 61, 61, 88, 61, 61, 61, 1, 61, 61, 61, 56, 61, 61, 61, 73, 61, - 61, 62, 62, 62, 62, 62, 62, 62, 61, 62, 62, 62, 51, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 61, 62, 62, 62, 33, 62, 62, 62, 50, 62, 62, 62, 29, 62, 62, 62, 64, 62, 62, 62, 10, 62, 62, 62, 66, 62, 62, 62, 5, 62, - 61, 63, 63, 63, 62, 63, 63, 63, 71, 63, 63, 63, 50, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 90, 63, 63, 63, 82, 63, 63, 63, 92, 63, 63, 63, 5, 63, 63, 63, 41, 63, 63, 63, 1, 63, 63, 63, 73, 63, 63, 63, 76, 63, - 83, 64, 64, 64, 56, 64, 64, 64, 79, 64, 64, 64, 81, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 69, 65, 65, 65, 40, 65, 65, 65, 79, 65, 65, 65, 81, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 75, 66, 66, 66, 73, 66, 66, 66, 79, 66, 66, 66, 81, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 75, 67, 67, 67, 73, 67, 67, 67, 79, 67, 67, 67, 81, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 75, 68, 68, 68, 73, 68, 68, 68, 79, 68, 68, 68, 81, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 70, 69, 69, 69, 88, 69, 69, 69, 69, 69, 69, 69, 75, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 70, 70, 70, 70, 88, 70, 70, 70, 71, 70, 70, 70, 75, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 86, 71, 71, 71, 69, 71, 71, 71, 71, 71, 71, 71, 59, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 74, 72, 72, 72, 56, 72, 72, 72, 79, 72, 72, 72, 81, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 74, 73, 73, 73, 73, 73, 73, 73, 79, 73, 73, 73, 81, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 75, 74, 74, 74, 73, 74, 74, 74, 79, 74, 74, 74, 81, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 75, 75, 75, 75, 73, 75, 75, 75, 79, 75, 75, 75, 81, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 90, 76, 76, 76, 57, 76, 76, 76, 79, 76, 76, 76, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 77, 77, 77, 77, 69, 77, 77, 77, 89, 77, 77, 77, 75, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 78, 78, 78, 69, 78, 78, 78, 87, 78, 78, 78, 75, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 77, 79, 79, 79, 78, 79, 79, 79, 87, 79, 79, 79, 75, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 74, 80, 80, 80, 56, 80, 80, 80, 79, 80, 80, 80, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 74, 81, 81, 81, 73, 81, 81, 81, 79, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 74, 82, 82, 82, 73, 82, 82, 82, 79, 82, 82, 82, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 75, 83, 83, 83, 73, 83, 83, 83, 79, 83, 83, 83, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 75, 84, 84, 84, 73, 84, 84, 84, 79, 84, 84, 84, 81, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 68, 87, 87, 87, 68, 87, 87, 87, 87, 87, 87, 87, 85, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 93, 88, 91, 88, 74, 88, 80, 88, 89, 88, 92, 88, 64, 88, 5, 88, 88, 88, 93, 88, 88, 88, 88, 88, 88, 88, 89, 88, 88, 88, 64, 88, - 88, 88, 93, 88, 88, 88, 58, 88, 88, 88, 89, 88, 88, 88, 67, 88, 88, 88, 93, 88, 88, 88, 50, 88, 88, 88, 89, 88, 88, 88, 64, 88, - 93, 89, 89, 89, 90, 89, 89, 89, 89, 89, 89, 89, 90, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 90, 90, 90, 90, 5, 90, 90, 90, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 91, 91, 91, 90, 91, 91, 91, 89, 91, 91, 91, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 90, 92, 92, 92, 5, 92, 92, 92, 89, 92, 92, 92, 90, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 93, 93, 93, 93, 94, 93, 93, 93, 87, 93, 93, 93, 55, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 38, 93, 93, 93, 3, 93, 93, 93, 34, 93, 93, 93, 20, 93, 93, 93, 26, 93, 93, 93, 7, 93, 93, 93, 41, 93, 93, 93, 29, 93, - 93, 94, 94, 94, 94, 94, 94, 94, 87, 94, 94, 94, 55, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 38, 94, 94, 94, 49, 94, 94, 94, 26, 94, 94, 94, 29, 94, 94, 94, 31, 94, 94, 94, 22, 94, 94, 94, 29, 94, 94, 94, 22, 94, - 93, 95, 95, 95, 94, 95, 95, 95, 87, 95, 95, 95, 55, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 33, 95, 95, 95, 5, 95, 95, 95, 87, 95, 95, 95, 49, 95, 95, 95, 21, 95, 95, 95, 7, 95, 95, 95, 26, 95, 95, 95, 7, 95, + 32, 0, 32, 0, 0, 0, 34, 0, 35, 0, 35, 0, 40, 0, 35, 0, 32, 0, 38, 0, 35, 0, 35, 0, 35, 0, 35, 0, 35, 0, 35, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 21, 0, 0, 0, 25, 0, 0, 0, 32, 0, 0, 0, 28, 0, 0, 0, 35, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 38, 0, + 32, 0, 28, 0, 28, 0, 32, 0, 35, 0, 35, 0, 35, 0, 0, 0, 32, 0, 32, 0, 35, 0, 38, 0, 35, 0, 35, 0, 35, 0, 35, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 34, 0, 0, 0, 35, 0, + 0, 0, 16, 0, 0, 0, 35, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 32, 0, 0, 0, 38, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 32, 0, 0, 0, 38, 0, + 32, 0, 32, 0, 0, 0, 32, 0, 35, 0, 34, 0, 40, 0, 35, 0, 32, 0, 32, 0, 35, 0, 38, 0, 35, 0, 35, 0, 35, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 28, 0, 0, 0, 34, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 38, 0, + 32, 0, 28, 0, 35, 0, 0, 0, 35, 0, 35, 0, 0, 0, 35, 0, 32, 0, 32, 0, 35, 0, 40, 0, 35, 0, 35, 0, 35, 0, 35, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 28, 0, 0, 0, 34, 0, 0, 0, 35, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, + 31, 0, 34, 0, 38, 0, 35, 0, 28, 0, 35, 0, 0, 0, 29, 0, 28, 0, 31, 0, 35, 0, 35, 0, 35, 0, 35, 0, 35, 0, 35, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 32, 0, 0, 0, 28, 0, 0, 0, 33, 0, 0, 0, 35, 0, 0, 0, 40, 0, + 0, 0, 29, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 17, 0, 0, 0, 34, 0, 0, 0, 31, 0, 0, 0, 39, 0, 0, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 39, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 43, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 39, 0, 0, 0, 9, 0, 0, 0, 47, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 26, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 38, 0, + 31, 0, 34, 0, 34, 0, 35, 0, 31, 0, 34, 0, 34, 0, 35, 0, 37, 0, 39, 0, 39, 0, 39, 0, 22, 0, 40, 0, 39, 0, 39, 0, + 0, 0, 38, 0, 0, 0, 29, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 39, 0, 0, 0, 39, 0, 0, 0, 39, 0, 0, 0, 35, 0, + 0, 0, 22, 0, 0, 0, 35, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 22, 0, 0, 0, 38, 0, 0, 0, 22, 0, 0, 0, 38, 0, + 0, 0, 22, 0, 0, 0, 35, 0, 0, 0, 22, 0, 0, 0, 38, 0, 0, 0, 22, 0, 0, 0, 38, 0, 0, 0, 22, 0, 0, 0, 38, 0, + 16, 0, 14, 0, 0, 0, 0, 0, 28, 0, 38, 0, 28, 0, 35, 0, 22, 0, 22, 0, 28, 0, 38, 0, 28, 0, 29, 0, 28, 0, 29, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 20, 0, + 25, 0, 14, 0, 0, 0, 0, 0, 28, 0, 32, 0, 32, 0, 21, 0, 22, 0, 25, 0, 38, 0, 22, 0, 32, 0, 28, 0, 28, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 19, 0, 19, 0, 28, 0, 19, 0, 28, 0, 27, 0, 35, 0, 21, 0, 19, 0, 19, 0, 28, 0, 22, 0, 28, 0, 34, 0, 28, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 13, 0, + 25, 0, 19, 0, 28, 0, 34, 0, 32, 0, 28, 0, 35, 0, 34, 0, 27, 0, 19, 0, 28, 0, 28, 0, 32, 0, 28, 0, 28, 0, 38, 0, + 0, 0, 33, 0, 0, 0, 16, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 4, 0, 0, 0, 31, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 21, 0, 33, 0, 0, 0, 28, 0, 28, 0, 0, 0, 0, 0, 19, 0, 21, 0, 21, 0, 0, 0, 28, 0, 29, 0, 21, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 29, 0, 0, 0, 20, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, + 0, 0, 16, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 26, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, + 25, 0, 25, 0, 28, 0, 28, 0, 25, 0, 25, 0, 28, 0, 34, 0, 33, 0, 25, 0, 33, 0, 34, 0, 25, 0, 25, 0, 32, 0, 34, 0, + 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 25, 0, 0, 0, 34, 0, 0, 0, 22, 0, 0, 0, 34, 0, 0, 0, 22, 0, 0, 0, 22, 0, + 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 23, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 14, 0, 0, 0, 35, 0, 0, 0, 14, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 22, 0, + 14, 0, 12, 0, 19, 0, 0, 0, 25, 0, 27, 0, 28, 0, 39, 0, 23, 0, 22, 0, 22, 0, 22, 0, 19, 0, 21, 0, 27, 0, 21, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 14, 0, 14, 0, 0, 0, 0, 0, 25, 0, 27, 0, 0, 0, 28, 0, 26, 0, 14, 0, 28, 0, 23, 0, 19, 0, 27, 0, 27, 0, 21, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 8, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 11, 0, + 14, 0, 14, 0, 19, 0, 27, 0, 25, 0, 27, 0, 34, 0, 0, 0, 23, 0, 26, 0, 22, 0, 27, 0, 19, 0, 27, 0, 27, 0, 21, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 27, 0, 0, 0, 0, 0, 19, 0, 19, 0, 28, 0, 21, 0, 23, 0, 0, 0, 22, 0, 21, 0, 19, 0, 27, 0, 22, 0, 11, 0, + 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 45, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 27, 0, 38, 0, 0, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 26, 0, 0, 0, 23, 0, 0, 0, 26, 0, 0, 0, 27, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 34, 0, 0, 0, 14, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, 22, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 26, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 5, 0, 19, 0, 0, 0, 16, 0, 15, 0, 25, 0, 0, 0, 26, 0, 0, 0, 22, 0, 7, 0, 16, 0, 45, 0, 25, 0, + 0, 0, 14, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, 23, 0, + 0, 0, 14, 0, 0, 0, 20, 0, 0, 0, 12, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 16, 0, 16, 0, 19, 0, 27, 0, 16, 0, 16, 0, 27, 0, 27, 0, 26, 0, 26, 0, 26, 0, 27, 0, 16, 0, 16, 0, 27, 0, 25, 0, + 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, 22, 0, + 0, 0, 14, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 22, 0, + 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 11, 0, 23, 0, 23, 0, 23, 0, 22, 0, 26, 0, 21, 0, 27, 0, 21, 0, + 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 12, 0, 0, 0, 0, 0, 26, 0, 23, 0, 32, 0, 27, 0, 23, 0, 12, 0, 23, 0, 0, 0, 26, 0, 23, 0, 19, 0, 27, 0, + 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 30, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 23, 0, 0, 0, 23, 0, 14, 0, 22, 0, 27, 0, 0, 0, 0, 0, 0, 0, 22, 0, 23, 0, 23, 0, 23, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 25, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 12, 0, 33, 0, 14, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 36, 0, 0, 0, 23, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 14, 0, 12, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 14, 0, 0, 0, 14, 0, + 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, + 12, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 33, 0, 0, 0, 44, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, + 12, 0, 6, 0, 0, 0, 9, 0, 23, 0, 0, 0, 0, 0, 27, 0, 30, 0, 0, 0, 23, 0, 23, 0, 30, 0, 20, 0, 20, 0, 21, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 30, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 8, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 17, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 7, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 10, 0, 10, 0, 0, 0, 9, 0, 30, 0, 24, 0, 0, 0, 11, 0, 30, 0, 0, 0, 23, 0, 0, 0, 30, 0, 11, 0, 0, 0, 11, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 33, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 2, 0, 10, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 25, 0, 0, 0, 12, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, + 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 3, 0, 0, 0, 10, 0, 17, 0, 17, 0, 0, 0, 0, 0, 30, 0, 9, 0, 0, 0, 7, 0, 17, 0, 47, 0, 0, 0, 11, 0, + 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 33, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 20, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 29, 0, 0, 0, 42, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 18, 0, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 18, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 22, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 36, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 44, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 4, 0, 10, 0, 5, 0, 17, 0, 7, 0, 0, 0, 7, 0, 17, 0, 7, 0, 0, 0, 7, 0, 15, 0, 45, 0, 17, 0, 11, 0, + 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 17, 0, 0, 0, 15, 0, 0, 0, 17, 0, + 0, 0, 10, 0, 0, 0, 42, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 26, 0, + 3, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 10, 0, 0, 0, 18, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 33, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 13, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 44, 0, 0, 0, 31, 0, 0, 0, 8, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -static const unsigned short m03_T2_model_scale_table[] = +static const unsigned short m03_T2_model_m0_scale_table[] = { - 196, 158, 138, 214, 97, 87, 177, 430, 182, 157, 338, 205, 226, 241, 217, 334, - 85, 222, 399, 251, 173, 422, 618, 319, 123, 300, 633, 456, 388, 189, 448, 312, - 194, 172, 513, 270, 541, 365, 346, 259, 282, 348, 522, 415, 166, 497, 293, 257, - 347, 145, 622, 544, 647, 287, 628, 331, 194, 237, 591, 3409, 300, 551, 894, 82, - 279, 259, 544, 169, 1980, 820, 352, 311, 16, 215, 491, 589, 184, 1315, 1102, 372, - 125, 308, 281, 584, 361, 2766, 1350, 187, 271, 160, 230, 298, 84, 718, 663, 538, + 195, 676, 368, 437, 165, 63, 339, 132, 620, 252, 333, 84, 479, 152, 498, 79, + 254, 268, 203, 476, 402, 207, 319, 533, 153, 385, 208, 429, 483, 326, 490, 166, + 444, 126, 355, 462, 307, 86, 225, 95, 71, 19, 225, 36, 90, 31, 193, 139, }; -static const unsigned char m03_Ternary_model_state_table[] = +static const unsigned char m03_T2_model_m1_state_table[] = { - 2, 2, 3, 7, 0, 0, 0, 0, 73, 2, 3, 29, 2, 35, 16, 29, 3, 3, 3, 29, 0, 0, 0, 0, 73, 1, 3, 29, 17, 3, 32, 14, - 1, 1, 17, 7, 1, 1, 1, 1, 73, 1, 3, 29, 2, 35, 3, 29, 3, 3, 3, 29, 1, 1, 1, 1, 73, 1, 1, 29, 3, 3, 2, 14, - 2, 2, 16,190, 2, 2, 2, 2, 73, 2, 3, 29, 4, 18, 4, 13, 3, 3, 3,190, 2, 2, 2, 2, 73, 1, 1, 29, 16, 35, 4, 14, - 2, 2, 17, 7, 3, 3, 3, 3, 73, 1, 1, 29, 21, 3, 3, 29, 17, 3, 3, 29, 3, 3, 3, 3, 73, 1, 1, 29, 17, 3, 2, 14, - 4, 4, 18,156, 4, 4, 4, 4, 73, 2, 49,190, 20, 45,105, 13, 16, 35, 16,190, 4, 4, 4, 4, 73, 1, 2, 14, 55, 18,105, 6, - 2, 2, 16, 7, 5, 5, 5, 5, 73, 1, 21, 29, 21, 35, 32, 29, 17, 3, 3, 29, 5, 5, 5, 5, 73, 1, 73, 14, 21, 35, 87, 14, - 105, 4, 89, 77, 6, 6, 6, 6, 73,129, 4,156,105, 6, 24, 8, 18, 18, 20, 30, 6, 6, 6, 6, 73, 73,105, 6, 20, 43, 24, 6, - 87, 23, 21, 8, 7, 7, 7, 7, 73, 1,120, 27, 4, 11,103, 13, 21, 21, 2, 13, 7, 7, 7, 7, 73, 73, 73, 0, 21, 21, 15, 0, - 105,105, 22, 77, 8, 8, 8, 8, 73, 15, 22, 8, 24, 52, 24, 8, 20, 89, 22, 10, 8, 8, 8, 8, 73,119,105, 10, 93, 6, 24, 10, - 87, 23, 50, 8, 9, 9, 9, 9, 73, 73, 17, 8,183, 43,165, 13, 55, 21, 75, 6, 9, 9, 9, 9, 73, 73, 87, 0,183, 6, 87, 0, - 24, 24, 24, 12, 10, 10, 10, 10, 92, 73,164, 77, 24, 40, 24, 12,186, 93, 24, 12, 10, 10, 10, 10, 73, 15,124, 10,125, 38,104, 10, - 119, 23, 53, 41, 11, 11, 11, 11, 73,137,108, 6, 24, 85,176, 8,175, 20, 4, 6, 11, 11, 11, 11,137, 73,137, 87, 72, 66,157, 0, - 24, 42, 24, 12, 12, 12, 12, 12,137,175, 90,114, 76, 88, 10, 12,125,125, 24, 12, 12, 12, 12, 12, 73,137, 92, 90,125, 68, 74, 28, - 171,167,103, 77, 13, 13, 13, 13,137,137, 13, 8,111, 85, 57, 6, 9,105, 15, 8, 13, 13, 13, 13, 73,137,157, 90, 24, 38,129, 0, - 24,122, 88, 28, 14, 14, 14, 14,137,137, 6, 28, 42, 88, 28, 28,111,125,122, 28, 14, 14, 14, 14, 90,137, 90, 10,125, 38,140, 28, - 94,103,175, 12, 15, 15, 15, 15, 9,137, 33, 8,142, 52, 28, 41,130,108,134, 44, 15, 15, 15, 15,137,137,136, 73, 2, 88,119, 57, - 87, 2, 16, 27, 16, 16, 16, 16, 73, 32, 35, 27, 53, 18, 11, 19, 17, 17, 35, 27, 16, 16, 16, 16, 73, 17, 35, 27, 32, 18, 51, 11, - 87, 2, 17, 19, 17, 17, 17, 17, 73, 2, 3, 29, 2, 35, 29, 29, 17, 3, 3, 19, 17, 17, 17, 17, 73, 1, 17, 14, 21, 35, 16, 14, - 53, 4, 18, 27, 18, 18, 18, 18, 15, 32, 18, 19,105, 45, 95, 13, 16, 18, 35, 27, 18, 18, 18, 18, 73, 33, 35, 25, 55, 45, 95, 31, - 87, 33, 17, 19, 19, 19, 19, 19, 15, 33, 21, 29, 32, 35, 14, 29, 17, 16, 3, 19, 19, 19, 19, 19, 73, 1, 17, 14, 65, 35,108, 14, - 105, 20, 45, 77, 20, 20, 20, 20, 15,105, 66, 77,105, 46, 95, 47, 55, 67, 45, 31, 20, 20, 20, 20, 73, 33, 37, 31, 93, 50, 22, 61, - 87, 33, 21, 41, 21, 21, 21, 21, 73, 33, 49, 19, 83, 67, 37, 13, 32, 21, 21, 11, 21, 21, 21, 21, 73, 1,108, 11, 55, 57,108, 57, - 105, 22,111, 61, 22, 22, 22, 22, 15,105,114, 61, 24, 54,146, 63, 93, 61, 22, 61, 22, 22, 22, 22, 73,129,135, 38,123, 38, 42, 38, - 87, 23, 59, 41, 23, 23, 23, 23, 73,129,133, 19,183, 75, 99, 13, 21, 21, 66, 11, 23, 23, 23, 23, 73, 73, 92, 57,183, 6,119, 57, - 24, 22,102, 38, 24, 24, 24, 24, 92,119,133, 38, 42, 70,104, 40,125,125, 42, 38, 24, 24, 24, 24, 73,157,171, 10, 26, 70,104, 40, - 87, 23,101, 41, 25, 25, 25, 25, 73,157,187, 41,105, 75,161, 13, 55, 65,105, 47, 25, 25, 25, 25, 73, 15, 92, 57,101, 61,119, 0, - 42, 42, 86, 40, 26, 26, 26, 26, 73,171,180, 12,104,148,166, 40, 26,123, 74, 40, 26, 26, 26, 26,137,137,124,165, 26, 86, 74, 56, - 39, 39,127, 41, 27, 27, 27, 27, 73,137,100, 8,107, 85,157, 13, 9, 65, 98, 10, 27, 27, 27, 27, 73, 73,171, 87,127, 20, 92, 0, - 104, 42, 44, 60, 28, 28, 28, 28, 73,157,119, 28,140, 88,166, 28, 26, 26,140, 40, 28, 28, 28, 28, 73,137,104, 28, 26, 86,126, 28, - 157,127, 95, 75, 29, 29, 29, 29, 92, 92, 56, 38,127, 2, 24, 61, 36, 69,143, 11, 29, 29, 29, 29, 73,137,137,165,103, 69,171, 0, - 104,122,126, 60, 30, 30, 30, 30, 73,137,150, 28,140, 60,148, 28,100, 28,110, 60, 30, 30, 30, 30, 73,137,157,132, 42, 86, 44, 28, - 137, 9, 73, 12, 31, 31, 31, 31,137,137,119, 88, 68, 38, 12, 8,122, 56, 2, 38, 31, 31, 31, 31,137,137,137,175,130,179,131, 0, - 53, 32, 18, 25, 32, 32, 32, 32, 15, 32, 25, 25, 53, 51, 11, 11, 32, 16, 35, 25, 32, 32, 32, 32, 73, 32, 25, 25, 53, 51, 51, 11, - 87, 33, 17, 11, 33, 33, 33, 33, 15, 33, 27, 19, 32, 35, 29, 29, 33, 16, 3, 35, 33, 33, 33, 33, 73, 33, 35, 11, 33, 16, 11, 14, - 53, 48, 45, 31, 34, 34, 34, 34, 15, 34, 31, 31,105, 50, 45, 47, 55, 18, 45, 31, 34, 34, 34, 34, 15, 32, 45, 31, 64, 50, 95, 45, - 87, 81, 49, 11, 35, 35, 35, 35, 15, 33, 11, 13, 81, 45, 11, 19, 21, 65, 65, 11, 35, 35, 35, 35, 73, 33, 51, 11, 81, 51, 57, 11, - 105, 66, 85, 61, 36, 36, 36, 36, 15, 66, 52, 61, 22, 52,111, 61, 93, 50, 52, 61, 36, 36, 36, 36, 15,115, 95, 61,123,111, 98, 61, - 87, 23, 21, 41, 37, 37, 37, 37, 73, 33, 43, 13, 99, 85, 57, 13, 23, 65, 37, 11, 37, 37, 37, 37, 73, 15,108, 57, 57, 85, 37, 57, - 130, 22, 70, 38, 38, 38, 38, 38, 92,130, 86, 63,132, 54,114, 63,123, 52, 68, 38, 38, 38, 38, 38, 92,157, 84, 38,100, 68,116, 38, - 87, 39,117, 41, 39, 39, 39, 39, 73, 87,117, 47,105, 95, 55, 13, 39, 65,181, 89, 39, 39, 39, 39, 73, 73,119, 57,183, 57,135, 57, - 132,100,148, 40, 40, 40, 40, 40, 92,178,100, 40,132, 86,166, 40, 26, 68, 74, 40, 40, 40, 40, 40, 92,171,136, 40, 42, 70, 74, 40, - 87, 39,125, 75, 41, 41, 41, 41, 73, 73,121, 25,183, 70,183, 47, 39, 37, 42, 89, 41, 41, 41, 41,137, 73, 73, 57,117, 57,135, 57, - 104, 86,150, 88, 42, 42, 42, 42, 92,171,116, 60,104,172, 74, 40, 26,102,126, 88, 42, 42, 42, 42,137,171,157,164, 42,102, 74, 56, - 87,103,125, 75, 43, 43, 43, 43, 73, 92,177, 46,123, 6,103, 47,177, 83,163, 89, 43, 43, 43, 43, 73, 15, 92, 0,169,111,119, 71, - 104, 74,158, 60, 44, 44, 44, 44, 73,171, 24, 28,140, 88, 74, 28, 42,102,126, 88, 44, 44, 44, 44, 73,137,157, 44,132,172, 74, 88, - 87,103, 5, 75, 45, 45, 45, 45,137, 2,173, 61, 94, 88, 58, 61,131, 9, 81, 8, 45, 45, 45, 45,137, 15, 73, 23, 35,131,157, 67, - 140,122,150, 60, 46, 46, 46, 46,137, 9, 88, 28,140, 78,164, 60, 26, 62,174, 60, 46, 46, 46, 46, 73,137, 58,178, 62,138,140, 44, - 175,103, 36, 75, 47, 47, 47, 47,137,137, 29, 75, 78, 18,111, 47,125,103, 45, 38, 47, 47, 47, 47, 92,137, 1, 15, 98, 27,132, 20, - 53, 48, 51, 45, 48, 48, 48, 48, 15, 34, 31, 31,129, 34, 43, 43, 32, 32, 51, 45, 48, 48, 48, 48, 15, 32, 31, 31, 53, 51, 51, 51, - 87, 81, 51, 51, 49, 49, 49, 49, 15, 81, 11, 11, 81, 18, 19, 19, 81, 65, 51, 67, 49, 49, 49, 49, 15, 33, 51, 11, 81, 16, 11, 14, - 115, 66, 61, 61, 50, 50, 50, 50,119, 66, 47, 47,191, 46, 61, 61, 64, 50, 61, 61, 50, 50, 50, 50, 15, 34, 61, 61,115, 50, 95, 75, - 129, 81, 51, 43, 51, 51, 51, 51, 15, 81, 11, 13, 48, 85, 11, 13, 81, 65, 51, 67, 51, 51, 51, 51, 15, 33, 51, 11, 23, 59, 57, 11, - 130, 22,111, 38, 52, 52, 52, 52,119, 82, 38, 38,130, 54,111, 63,123, 95, 68, 38, 52, 52, 52, 52, 15,115, 95, 46,155,111, 68,111, - 87, 99, 85, 43, 53, 53, 53, 53, 15, 87, 43, 13,113, 85, 11, 13, 97, 65, 51, 67, 53, 53, 53, 53, 73, 33, 69, 57, 55, 57, 69, 57, - 132,100, 70, 40, 54, 54, 54, 54,171, 84, 86, 54,132, 40,180, 63,100,100,164, 40, 54, 54, 54, 54, 92,157,116, 70,132, 40,116, 54, - 129, 39, 75, 75, 55, 55, 55, 55, 73,157,121, 47,105, 6, 57, 13, 55, 65, 97, 89, 55, 55, 55, 55, 73, 1,135, 57, 96,101, 37, 57, - 104,100, 60, 88, 56, 56, 56, 56, 92,136,182, 88,104,182, 86, 40, 42,102,168, 40, 56, 56, 56, 56, 92, 84,136, 70,118,102, 74, 40, - 157, 39,167, 75, 57, 57, 57, 57, 73, 15,114, 47,153, 20, 95, 47,131, 83,163, 89, 57, 57, 57, 57, 73,137,157, 71, 71, 82,135, 57, - 104, 74,152, 60, 58, 58, 58, 58, 92,136,140, 88,104,172, 74, 88,104,102,126, 88, 58, 58, 58, 58,137,171,134, 56, 42,148, 74, 56, - 129,103,122, 75, 59, 59, 59, 59, 73, 73,105, 47,121,156, 4, 31,105, 69, 10, 89, 59, 59, 59, 59, 15,124,175, 9, 96,111,135, 71, - 104, 74, 60, 60, 60, 60, 60, 60, 92,157,148, 60,140,138, 44, 60, 42,102,126, 60, 60, 60, 60, 60,137,178,171, 44,104,188, 74, 44, - 175, 23, 94, 75, 61, 61, 61, 61,137, 15,114, 56, 88,160, 39, 47,175, 57,157, 89, 61, 61, 61, 61,137,137, 92,137,103, 32,119, 48, - 140,150, 78, 78, 62, 62, 62, 62, 73, 90,171, 86,170,158, 88, 60, 62, 62,174, 60, 62, 62, 62, 62,137,137, 98, 86, 76,188,168, 60, - 175,113,163, 75, 63, 63, 63, 63,137, 73,179, 61,125, 54, 61, 47,103, 17,162, 93, 63, 63, 63, 63,137, 73,175,171,167, 79,157,142, - 129, 48, 45, 45, 64, 64, 64, 64,129, 34, 45, 45, 96, 79, 43, 43, 53, 59, 45, 45, 64, 64, 64, 64, 15, 34, 45, 45,129, 79, 83, 83, - 87, 81, 51, 51, 65, 65, 65, 65, 15, 81, 11, 11, 81, 11, 11, 19, 81, 65, 51, 67, 65, 65, 65, 65, 15, 33, 67, 67, 81, 65, 51, 65, - 191, 66, 46, 46, 66, 66, 66, 66,119, 66, 61, 61,191, 52, 61, 61, 66, 50, 52, 52, 66, 66, 66, 66, 15, 66, 46, 46,115, 85, 95, 79, - 129, 81, 85, 43, 67, 67, 67, 67, 15, 81, 31, 47, 99, 85, 13, 13, 81, 65, 67, 67, 67, 67, 67, 67, 15, 81, 67, 67, 97, 67, 57, 57, - 130, 22, 54, 54, 68, 68, 68, 68,171, 98, 63, 63,178, 70,111, 63,123, 52, 68, 54, 68, 68, 68, 68,157,155, 68,111, 84, 68, 68,111, - 129, 99, 85, 43, 69, 69, 69, 69, 15,131, 47, 47, 99, 75, 11, 13, 81, 65, 67, 89, 69, 69, 69, 69, 73, 33, 69, 57,181, 14, 69, 57, - 132,100, 86, 40, 70, 70, 70, 70,171,132, 70, 40,132, 86, 86, 40,100,100,164, 40, 70, 70, 70, 70, 92, 84,116,116,132,182,116,116, - 129,183, 85, 75, 71, 71, 71, 71, 15, 15, 61, 47, 95, 75, 75, 47, 71, 65, 79, 89, 71, 71, 71, 71, 73, 1,135, 57,181, 69, 71, 57, - 104,166,152, 88, 72, 72, 72, 72,171,178,184, 40,104,152, 56, 88, 42,102, 88, 88, 72, 72, 72, 72, 92, 84,178,116,118,150,116, 56, - 127,183,111, 75, 73, 73, 73, 73,137, 73,121, 63,128, 95,117, 75, 39, 69, 22, 89, 73, 73, 73, 73, 73,120, 87,135,161, 57, 48, 71, - 104, 74,150, 60, 74, 74, 74, 74, 92, 42, 88, 60,104,172, 74, 88,182,102,126, 88, 74, 74, 74, 74, 92, 84,136, 74,118,138, 74,148, - 127,103,125, 75, 75, 75, 75, 75, 73, 73, 1, 6,105, 56,123, 75,131, 16, 24, 89, 75, 75, 75, 75, 73, 15,137, 87, 20,164,127, 71, - 104, 74,158, 60, 76, 76, 76, 76, 92,157,126, 60,140,158, 74, 60,104,102,168, 60, 76, 76, 76, 76, 92, 98,132,104, 76,148,168, 44, - 175,103,162,121, 77, 77, 77, 77, 73, 73, 40, 45,122,167, 39, 63,100,100, 94, 93, 77, 77, 77, 77, 73,137,137,175, 5,156, 22, 4, - 140,138, 78, 78, 78, 78, 78, 78, 15,137, 12,188,140,174,126, 60, 62,188,174, 78, 78, 78, 78, 78,137, 15,132, 94,140,132,126, 44, - 175,167, 40, 68, 79, 79, 79, 79, 73, 73,161,148,113, 79, 79, 93,103, 85,135, 75, 79, 79, 79, 79,137, 92,137, 73, 79, 88,177, 20, - 129, 80, 79, 79, 80, 80, 80, 80,129, 79, 61, 80, 96, 80, 43, 91,145, 91, 79, 79, 80, 80, 80, 80, 15,149, 79, 80,129, 80, 64,113, - 129, 81, 83, 83, 81, 81, 81, 81, 15, 65, 43, 81, 81, 81, 11, 14, 97, 65, 83, 91, 81, 81, 81, 81, 15, 49, 67, 81, 81, 81, 65, 65, - 191, 82,111,111, 82, 82, 82, 82,191, 82, 38,111,130,111,111, 61, 82, 82, 52, 52, 82, 82, 82, 82, 15, 36, 68, 68,191, 38, 82, 98, - 129, 99, 85, 85, 83, 83, 83, 83, 15, 65, 47, 47, 99, 43, 11, 13, 97, 65, 67, 36, 83, 83, 83, 83, 15, 9, 89, 67, 23, 46, 69, 57, - 178,100, 54, 54, 84, 84, 84, 84,171,100, 54, 40,132, 70, 54, 63,100, 68, 70, 70, 84, 84, 84, 84,157,179,100, 70, 84,100,100, 68, - 131, 99, 85, 85, 85, 85, 85, 85, 15, 33, 75, 47, 85,133, 43, 13, 97, 65, 36, 36, 85, 85, 85, 85, 73, 5, 69, 69,181, 80, 69, 57, - 132,100, 88, 88, 86, 86, 86, 86,171, 72, 86, 40,132, 60, 86, 40,100,102,164, 88, 86, 86, 86, 86, 92,179,116,116,132, 70,116,116, - 153, 99,117,121, 87, 87, 87, 87, 73,120,121, 31,101,179, 6, 6,181, 65,151, 89, 87, 87, 87, 87, 73, 49,135,135, 39, 58, 71, 71, - 104,166, 88, 88, 88, 88, 88, 88,171,167, 88, 60,104,174, 88, 88,132,102, 88, 88, 88, 88, 88, 88, 92,179,136,116,132,102,182, 56, - 153,183,167,121, 89, 89, 89, 89, 73,120,121, 31,183, 61, 85, 47, 53, 69,123, 89, 89, 89, 89, 89, 73, 9,157,135,183, 54, 71, 71, - 104, 74,152, 60, 90, 90, 90, 90,171,131, 60, 60, 74,166, 74, 88,182,102,170,150, 90, 90, 90, 90,137,179, 94, 44,118, 70, 44, 44, - 127,103, 26,121, 91, 91, 91, 91, 73, 73, 72, 38,103, 61, 95, 75, 23, 69, 85, 93, 91, 91, 91, 91, 73, 5, 58,135,127, 92,175, 71, - 140,138,158,152, 92, 92, 92, 92,137,177,188,152,140, 88, 74, 60,110,138,174,152, 92, 92, 92, 92,137,130,136, 44,110, 86, 74, 44, - 169,103,180,121, 93, 93, 93, 93, 73,137, 38, 88,159,111,162, 6, 90, 37,142, 93, 93, 93, 93, 93,137, 90, 5, 33, 5, 93,131,107, - 140,138,158, 78, 94, 94, 94, 94, 73, 2, 88,188,140,138,152, 78, 62,188,158, 78, 94, 94, 94, 94, 73,149, 92,136, 62, 88,126,126, - 175, 68, 38, 54, 95, 95, 95, 95,137,120,149,115,147,175, 75, 93,111, 37,122, 93, 95, 95, 95, 95,137, 3, 73, 15, 23, 65, 0, 22, - 96, 80, 79, 79, 96, 96, 96, 96,191, 96, 96, 96, 96, 96, 79, 83, 80, 80, 79, 79, 96, 96, 96, 96,175, 96, 96, 96,109, 96,113,161, - 129, 81, 83, 83, 97, 97, 97, 97,129, 97, 97, 97, 99, 97, 51, 3, 97, 65, 83, 91, 97, 97, 97, 97, 15, 97, 97, 97, 97, 97, 65, 69, - 130, 98,111,111, 98, 98, 98, 98,130, 98, 54, 54,130, 98,111,111, 82, 82, 68, 68, 98, 98, 98, 98,157, 98, 68,100,155, 98, 98, 98, - 129, 99, 85, 85, 99, 99, 99, 99,129, 99, 47, 47, 99, 99, 43, 11, 97, 65, 36, 36, 99, 99, 99, 99, 15, 99, 36, 36, 99, 99, 69, 69, - 132,100, 86, 86,100,100,100,100,136,100, 86, 40,132,100,180,180,100,100, 70, 70,100,100,100,100,171,100,132,180, 84,100,100,167, - 131, 99, 85,117,101,101,101,101, 15,101, 61, 47,101,101, 45, 6, 97, 65, 36, 36,101,101,101,101, 15,101, 69,135,181,101, 69, 69, - 132,166, 88, 88,102,102,102,102,136,102, 88, 88,166,102, 86, 40,132,102,164, 88,102,102,102,102,171,102,104, 44,132,102,116,116, - 153,183,117,121,103,103,103,103, 15,103, 52, 47,101,103, 85, 6,181, 65,151,151,103,103,103,103, 73,103,135,135, 71,103, 71, 71, - 166,166,152,150,104,104,104,104,171,104,184, 60,166,104,150, 88,182,102,168,150,104,104,104,104, 92,104,134, 44,132,104,164, 44, - 153,183,121,121,105,105,105,105, 15,105, 40, 6,121,105, 95, 75, 39, 69,151,151,105,105,105,105, 73,105,129,135, 39,105,135,135, - 168,168,154,152,106,106,106,106,171,106,150,184,168,106, 60,150,182,102,152,152,106,106,106,106, 92,106,136, 44,110,106, 44, 44, - 127,103,111,121,107,107,107,107,137,107, 37, 10,167,107,101, 75,131, 69,121,151,107,107,107,107, 73,107, 73,135, 87,107,153, 71, - 140,152,158,154,108,108,108,108,171,108,126,152,140,108,126, 60,172,188,152,152,108,108,108,108, 92,108,136,134,110,108, 44, 44, - 130,112, 52,141,109,109,109,109, 73,109,104, 12,139,109, 24, 93,115, 65, 68,107,109,109,109,109,137,109, 92, 73,169,109,127,165, - 140,138,158,158,110,110,110,110, 92,110, 60,158,140,110, 78, 78, 62,138,158, 78,110,110,110,110, 92,110,134, 42,182,110,126,126, - 119, 52,128,143,111,111,111,111,137,111,117,117,111,111, 85,143,111, 86, 24, 68,111,111,111,111, 73,111,137,137,147,111,135,105, - 96, 96,112,112,112,112,112,112,112,112,112,112,112,112,112,112,160,113,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 161,161, 83,113,113,113,113,113,113,113,113,113,113,113,113,113, 97, 97,113,145,113,113,113,113,113,113,113,113,113,113,113,113, - 130, 98,114,114,114,114,114,114,130,114, 54,114,130,114,111,101, 98, 98, 68, 68,114,114,114,114,157,114,162,114,155,114,130,189, - 131,131,117,117,115,115,115,115,129,115, 47,115,113,115, 43, 11, 97, 97, 36,163,115,115,115,115, 15,115,163,115, 99,115, 69, 23, - 132,100, 86, 86,116,116,116,116,132,116, 86,180,132,116,180,180,100,100,164,164,116,116,116,116,171,116,132,132, 84,116,132,116, - 131,131,117,117,117,117,117,117, 15,117, 38, 75,101,117, 45, 6,181, 69,163,163,117,117,117,117, 15,117,135, 69,181,117, 69, 69, - 166,166,150,150,118,118,118,118,136,118,150,184,166,118, 88, 88,182,102,150,150,118,118,118,118,171,118,166,134,118,118,132,116, - 131,131,121,121,119,119,119,119, 15,119,121,121,123,119,121, 6,181, 69,133,151,119,119,119,119, 73,119,135,135, 71,119,135,135, - 168,166,152,152,120,120,120,120,136,120,168,184,168,120, 88, 88,182,102,150,150,120,120,120,120,171,120,104,134,132,120,168, 44, - 153,117,167,121,121,121,121,121, 15,121,116,121, 24,121, 93, 75, 71, 20,167,151,121,121,121,121, 73,121,157,135,113,121,127,135, - 168,168,154,152,122,122,122,122,136,122,154,154,168,122,150,150,182,102,152,152,122,122,122,122, 92,122,104,164,110,122,140, 44, - 153,103,123,121,123,123,123,123, 73,123,123, 98, 52,123, 93, 93, 71, 20,128,107,123,123,123,123, 73,123,119,135, 53,123,175,135, - 170,174,154,154,124,124,124,124,171,124,154,152,170,124,150, 60,172,138,174,152,124,124,124,124, 92,124,127, 94,110,124,170,126, - 24,155, 26,141,125,125,125,125, 73,125,130,160,153,125,125, 79,183,112,112,107,125,125,125,125, 73,125, 73, 92,175,125,157,169, - 174,158,158,158,126,126,126,126, 92,126,134,158,174,126,126, 78, 62, 62,174,158,126,126,126,126, 73,126,136,134,110,126,170,126, - 159,128,162,143,127,127,127,127, 92,127,167, 67,186,127,107, 93,186,163,128,116,127,127,127,127, 92,127,137,137,147,127,127,127, - 176, 96,112,112,128,128,128,128, 58,128,128,128,176,128,113, 55,160,160,128,128,128,128,128,128,175,128,128,128,109,128,109,109, - 161,161, 83,113,129,129,129,129,129,129,129,129, 99,129, 65, 16, 97, 97,113,145,129,129,129,129, 15,129,129,129, 97,129, 23,120, - 130,130,114,114,130,130,130,130,178,130,130,130,130,130, 98,101, 98, 98,100,162,130,130,130,130,157,130,130,130,155,130,130,169, - 131,131,117,117,131,131,131,131,129,131,131,131,113,131, 51, 65, 97, 97,163,163,131,131,131,131, 15,131,131,131, 99,131,129, 71, - 132,132,148,148,132,132,132,132,132,132,184,184,132,132,180,180,100,100,164,164,132,132,132,132,171,132,134,134,132,132,132,116, - 131,131,117,133,133,133,133,133,129,133,111,121,101,133, 50, 6,181, 97,163,165,133,133,133,133, 15,133,135,135,181,133, 69,135, - 166,166,150,150,134,134,134,134,136,134,150,184,166,134, 88, 88,182,102,164,150,134,134,134,134,171,134, 44,134,118,134,166,164, - 153,131,133,167,135,135,135,135, 15,135, 68,121,133,135, 93, 75,181, 55,165,151,135,135,135,135, 73,135,135,135, 71,135,135,135, - 168,166,152,152,136,136,136,136,136,136, 60,184,168,136,150,150,182,102,152,150,136,136,136,136,171,136,104,134,118,136, 44, 44, - 153,131,121,167,137,137,137,137,137,137,167, 10,141,137,123,121, 71, 18,165,151,137,137,137,137, 73,137,157,135,179,137,165,135, - 170,168,154,154,138,138,138,138,136,138,154,154,168,138, 60,152,168,150,170,152,138,138,138,138, 92,138,134,134,168,138, 44, 44, - 153,187,167,167,139,139,139,139, 73,139,180,125, 24,139,107, 79, 39, 89,169,169,139,139,139,139, 73,139, 15,157,161,139,127,165, - 170,152,158,154,140,140,140,140,171,140,152,154,170,140,154,154,172,138,154,152,140,140,140,140, 92,140,130,136,140,140,140,152, - 153,135, 74,141,141,141,141,141,137,141,132,121, 24,141,162, 52,107,121,128,107,141,141,141,141,137,141,127,171,153,141,115,169, - 174,138,158,158,142,142,142,142, 92,142,150,158,174,142,158,158, 62,188,158,158,142,142,142,142,137,142, 92,134,110,142,126,126, - 159,117, 86,143,143,143,143,143,137,143, 98,143,159,143,164,143,133, 31,143,159,143,143,143,143, 92,143,137, 15, 36,143, 76,127, - 176,176,144,144,144,144,144,144,144,144,144,144,144,144,144,144,160,160,128,128,144,144,144,144,144,144,144,144,144,144,144,144, - 161,161,113,189,145,145,145,145,145,145,145,145,145,145,145,145, 97, 97,161,161,145,145,145,145,145,145,145,145,145,145,145,145, - 178,130,146,146,146,146,146,146,132,146, 86,146,132,146,180,121, 98, 98,162,162,146,146,146,146,171,146,162,146,178,146,178,187, - 131,131,117,147,147,147,147,147,129,147, 40,147,117,147, 45, 6, 97, 97,163,163,147,147,147,147, 15,147,165,147,181,147,135, 71, - 132,132,148,148,148,148,148,148,132,148,184,184,132,148,180,180,100,100,164,164,148,148,148,148,171,148,134,134,132,148,132,132, - 131,131,133,133,149,149,149,149,129,149,180,180,101,149, 85,101,181, 69,165,165,149,149,149,149, 15,149,135,135,181,149,135,135, - 166,166,150,150,150,150,150,150,136,150,150,154,166,150,150,150,182,102,150,150,150,150,150,150,171,150,134,134,118,150, 44,134, - 153,131,167,167,151,151,151,151, 15,151,102, 63,117,151, 79,121, 71, 69,165,165,151,151,151,151, 15,151,157,135, 71,151,135,135, - 168,168,152,152,152,152,152,152,136,152,152,154,168,152,152,152,182,102,152,152,152,152,152,152,171,152,134,134,166,152, 44, 44, - 153,131,167,167,153,153,153,153, 15,153,148, 12,167,153,133,167, 71, 55,169,169,153,153,153,153, 73,153,171,135, 99,153,153,135, - 170,152,154,154,154,154,154,154,136,154,154,154,168,154,152,152,172,102,154,152,154,154,154,154,171,154,134,134,166,154,168,150, - 153,107,162,167,155,155,155,155, 73,155,121, 54,112,155,123,133,183, 55, 84,169,155,155,155,155, 73,155, 15,127,107,155,127,135, - 170,174,158,154,156,156,156,156,171,156, 60,154,152,156,154,152,172,138,158,152,156,156,156,156, 92,156,146,134,172,156,170,170, - 153,176, 42,141,157,157,157,157,137,157, 88,114,141,157,123,114,153,117, 24,169,157,157,157,157,137,157, 73,124,127,157,157,169, - 174,152,158,158,158,158,158,158, 92,158,158,154,174,158,158,158,172,138,174,158,158,158,158,158,137,158,136,104,110,158,174,126, - 159,159,165,143,159,159,159,159,137,159, 61,111,146,159,180,143,142, 75,159,159,159,159,159,159,137,159,137, 92,148,159,185,169, - 176,176,176,187,160,160,160,160,160,160,160,160,160,160,160,160,160,160,176,128,160,160,160,160,160,160,160,160,160,160,160,160, - 161,161,161,189,161,161,161,161,161,161,161,161,161,161,161,161, 97, 97, 97,161,161,161,161,161,161,161,161,161,161,161,161,161, - 130,130,146,146,162,162,162,162,162,162,162,162,162,162,162,162, 98, 98,162,162,162,162,162,162,162,162,162,162,162,162,162,162, - 131,131,131,147,163,163,163,163,163,163,163,163,163,163,163,163,181, 97,163,163,163,163,163,163,163,163,163,163,163,163,163,163, - 132,132,148,148,164,164,164,164,164,164,164,164,164,164,164,164,100,100,164,164,164,164,164,164,164,164,164,164,164,164,164,164, - 131,131,133,133,165,165,165,165,165,165,165,165,165,165,165,165,181, 69,165,165,165,165,165,165,165,165,165,165,165,165,165,165, - 166,166,150,150,166,166,166,166,132,166,152,184,166,166,150,148,182,102,168,150,166,166,166,166,171,166,134,134,118,166, 74,134, - 153,131,167,167,167,167,167,167, 15,167,102, 88,123,167,167,101, 71, 69,165,165,167,167,167,167, 73,167,119,135,115,167,135,135, - 168,168,152,152,168,168,168,168,136,168,154,154,168,168,150,150,182,102,168,152,168,168,168,168,171,168,134,134,166,168,134,168, - 153,133,167,167,169,169,169,169, 73,169, 88, 54,139,169,141,167, 71, 69,169,169,169,169,169,169, 15,169,171, 92, 22,169,153,135, - 170,152,154,154,170,170,170,170,136,170,126,154,168,170,152,152,172,102,154,152,170,170,170,170,171,170,134,134,168,170,168, 44, - 153,131, 26,167,171,171,171,171, 73,171, 22, 28,180,171,167,123,153, 55,169,169,171,171,171,171, 73,171,171, 92,161,171,185,191, - 170,174,158,154,172,172,172,172,136,172,150,154,174,172,158,154,172,152,158,154,172,172,172,172,171,172,136,104,166,172, 44,126, - 153,187,162,139,173,173,173,173, 73,173, 28,180,141,173,106,106,179,151,106,107,173,173,173,173,137,173, 73, 92,175,173,127,153, - 174,158,158,158,174,174,174,174,171,174,152, 78,174,174,158,158,172,148,174,158,174,174,174,174, 92,174,136,134,174,174,126,126, - 159,175, 70,143,175,175,175,175,137,175,167,187, 88,175,112,143, 79, 0, 58,159,175,175,175,175,137,175, 15, 73,189,175,185,157, - 173,176,187,187,176,176,176,176,185,176,176,176,173,176, 43, 51,176,176,187,128,176,176,176,176,177,176,176,176,176,176, 64,160, - 161,161,189,189,177,177,177,177,161,177,177,177, 99,177, 29, 29, 97, 97,161,161,177,177,177,177, 9,177,177,177, 97,177, 14, 29, - 178,178,146,146,178,178,178,178,178,178,178,178,178,178, 54, 47,139,139,162,162,178,178,178,178,179,178,178,178,178,178, 98, 85, - 131,131,147,147,179,179,179,179,161,179,179,179,117,179, 47, 13,181, 97,165,163,179,179,179,179, 9,179,179,179, 99,179, 43, 41, - 132,132,148,148,180,180,180,180,132,180,152,184,132,180,180,180,132,132,164,164,180,180,180,180,179,180,134,134,132,180,180,180, - 131,131,133,133,181,181,181,181, 97,181,180,117,117,181, 47, 47, 71, 71,165,165,181,181,181,181, 9,181,135, 69, 71,181, 43, 8, - 166,166,150,150,182,182,182,182,132,182,154,152,166,182, 60, 88,182,166,168,150,182,182,182,182,179,182,134,134,166,182,182,182, - 153, 99,167,167,183,183,183,183, 5,183,111, 52,101,183, 63, 47,181,181,169,165,183,183,183,183, 5,183,135,171, 71,183, 93, 47, - 168,168,152,152,184,184,184,184,132,184,184,184,168,184, 60,184,182, 88,170,152,184,184,184,184,179,184,136,134,166,184,150,184, - 178,131,167,167,185,185,185,185, 5,185,139, 40,167,185, 75, 61,185, 97,133,169,185,185,185,185, 5,185, 73,135, 85,185, 95, 63, - 170,166,158,154,186,186,186,186,179,186,184,148,168,186,184, 60,172,166,154,154,186,186,186,186,179,186, 10,148,166,186,184,184, - 130, 75,107,139,187,187,187,187, 7,187, 54,147,132,187,111, 38,186, 68,167,127,187,187,187,187, 5,187,131,135, 72,187, 43, 40, - 174,158,158,154,188,188,188,188,179,188,168,148,170,188,158, 60,172, 88,126,154,188,188,188,188,120,188,152,134,138,188,184,170, - 153,191, 28,143,189,189,189,189, 5,189,189, 89,148,189, 44, 75,113, 5,133,141,189,189,189,189, 5,189, 6,137,112,189, 63, 89, - 174,140,174,158,190,190,190,190,186,190, 86,180,174,190, 60,158,150, 76,126,152,190,190,190,190,120,190, 63, 94,172,190, 74,154, - 69,135, 4,148,191,191,191,191, 19,191,191, 58,150,191,146, 89,167, 4, 73,185,191,191,191,191, 29,191,191, 31, 5,191, 36, 85, + 58, 0, 58, 0, 58, 0, 58, 0, 70, 0, 58, 0, 35, 0, 57, 0, 58, 0, 57, 0, 67, 0, 57, 0, 73, 0, 57, 0, 73, 0, 57, 0, + 0, 0, 58, 0, 0, 0, 42, 0, 0, 0, 58, 0, 0, 0, 65, 0, 0, 0, 58, 0, 0, 0, 73, 0, 0, 0, 66, 0, 0, 0, 66, 0, + 0, 0, 58, 0, 0, 0, 67, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 73, 0, 0, 0, 66, 0, 0, 0, 63, 0, + 0, 0, 24, 0, 0, 0, 49, 0, 0, 0, 65, 0, 0, 0, 60, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 65, 0, 0, 0, 43, 0, + 60, 0, 42, 0, 24, 0, 58, 0, 70, 0, 58, 0, 15, 0, 79, 0, 58, 0, 58, 0, 58, 0, 58, 0, 73, 0, 58, 0, 73, 0, 58, 0, + 0, 0, 16, 0, 0, 0, 75, 0, 0, 0, 63, 0, 0, 0, 21, 0, 0, 0, 70, 0, 0, 0, 70, 0, 0, 0, 70, 0, 0, 0, 70, 0, + 0, 0, 35, 0, 0, 0, 44, 0, 0, 0, 70, 0, 0, 0, 33, 0, 0, 0, 21, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 70, 0, + 0, 0, 17, 0, 0, 0, 48, 0, 0, 0, 63, 0, 0, 0, 35, 0, 0, 0, 15, 0, 0, 0, 75, 0, 0, 0, 35, 0, 0, 0, 70, 0, + 74, 0, 66, 0, 5, 0, 24, 0, 70, 0, 66, 0, 63, 0, 66, 0, 58, 0, 66, 0, 58, 0, 66, 0, 73, 0, 73, 0, 70, 0, 73, 0, + 0, 0, 70, 0, 0, 0, 75, 0, 0, 0, 70, 0, 0, 0, 75, 0, 0, 0, 70, 0, 0, 0, 37, 0, 0, 0, 70, 0, 0, 0, 70, 0, + 0, 0, 59, 0, 0, 0, 25, 0, 0, 0, 73, 0, 0, 0, 46, 0, 0, 0, 25, 0, 0, 0, 51, 0, 0, 0, 46, 0, 0, 0, 25, 0, + 0, 0, 70, 0, 0, 0, 40, 0, 0, 0, 53, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 25, 0, 0, 0, 70, 0, 0, 0, 25, 0, + 73, 0, 63, 0, 63, 0, 60, 0, 70, 0, 73, 0, 44, 0, 63, 0, 73, 0, 73, 0, 66, 0, 66, 0, 70, 0, 63, 0, 70, 0, 63, 0, + 0, 0, 25, 0, 0, 0, 51, 0, 0, 0, 25, 0, 0, 0, 48, 0, 0, 0, 48, 0, 0, 0, 25, 0, 0, 0, 59, 0, 0, 0, 37, 0, + 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 68, 0, 0, 0, 25, 0, 0, 0, 51, 0, + 0, 0, 53, 0, 0, 0, 68, 0, 0, 0, 25, 0, 0, 0, 77, 0, 0, 0, 37, 0, 0, 0, 53, 0, 0, 0, 25, 0, 0, 0, 48, 0, + 63, 0, 70, 0, 49, 0, 44, 0, 25, 0, 25, 0, 17, 0, 63, 0, 73, 0, 46, 0, 66, 0, 66, 0, 25, 0, 63, 0, 70, 0, 63, 0, + 0, 0, 68, 0, 0, 0, 60, 0, 0, 0, 46, 0, 0, 0, 17, 0, 0, 0, 59, 0, 0, 0, 68, 0, 0, 0, 59, 0, 0, 0, 37, 0, + 0, 0, 53, 0, 0, 0, 15, 0, 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 37, 0, 0, 0, 25, 0, 0, 0, 51, 0, + 0, 0, 59, 0, 0, 0, 21, 0, 0, 0, 68, 0, 0, 0, 13, 0, 0, 0, 68, 0, 0, 0, 48, 0, 0, 0, 59, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 79, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 57, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 13, 0, + 0, 0, 24, 0, 0, 0, 79, 0, 0, 0, 61, 0, 0, 0, 39, 0, 0, 0, 43, 0, 0, 0, 63, 0, 0, 0, 24, 0, 0, 0, 26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 25, 0, 0, 0, 64, 0, 0, 0, 13, 0, 0, 0, 17, 0, 0, 0, 15, 0, 0, 0, 33, 0, 0, 0, 24, 0, + 0, 0, 70, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 37, 0, 0, 0, 44, 0, 0, 0, 70, 0, + 0, 0, 56, 0, 0, 0, 78, 0, 0, 0, 26, 0, 0, 0, 39, 0, 0, 0, 16, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 68, 0, 68, 0, 68, 0, 51, 0, 51, 0, 51, 0, 51, 0, 51, 0, 68, 0, 68, 0, 68, 0, 51, 0, 51, 0, 68, 0, 68, 0, + 0, 0, 68, 0, 0, 0, 68, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 68, 0, 0, 0, 68, 0, 0, 0, 68, 0, 0, 0, 68, 0, + 0, 0, 68, 0, 0, 0, 68, 0, 0, 0, 51, 0, 0, 0, 68, 0, 0, 0, 51, 0, 0, 0, 68, 0, 0, 0, 37, 0, 0, 0, 51, 0, + 0, 0, 51, 0, 0, 0, 37, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 51, 0, 0, 0, 68, 0, 0, 0, 33, 0, 0, 0, 33, 0, + 58, 0, 67, 0, 67, 0, 64, 0, 63, 0, 57, 0, 63, 0, 69, 0, 67, 0, 57, 0, 67, 0, 57, 0, 66, 0, 57, 0, 66, 0, 57, 0, + 0, 0, 67, 0, 0, 0, 58, 0, 0, 0, 67, 0, 0, 0, 58, 0, 0, 0, 67, 0, 0, 0, 74, 0, 0, 0, 65, 0, 0, 0, 66, 0, + 0, 0, 18, 0, 0, 0, 61, 0, 0, 0, 65, 0, 0, 0, 70, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 65, 0, + 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 62, 0, 0, 0, 65, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 29, 0, + 24, 0, 42, 0, 42, 0, 58, 0, 70, 0, 42, 0, 16, 0, 12, 0, 67, 0, 58, 0, 67, 0, 58, 0, 66, 0, 42, 0, 66, 0, 42, 0, + 0, 0, 35, 0, 0, 0, 44, 0, 0, 0, 35, 0, 0, 0, 78, 0, 0, 0, 35, 0, 0, 0, 70, 0, 0, 0, 35, 0, 0, 0, 35, 0, + 0, 0, 49, 0, 0, 0, 78, 0, 0, 0, 43, 0, 0, 0, 49, 0, 0, 0, 40, 0, 0, 0, 16, 0, 0, 0, 43, 0, 0, 0, 35, 0, + 0, 0, 65, 0, 0, 0, 15, 0, 0, 0, 66, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 15, 0, + 43, 0, 21, 0, 0, 0, 63, 0, 70, 0, 63, 0, 49, 0, 63, 0, 74, 0, 63, 0, 24, 0, 66, 0, 70, 0, 63, 0, 35, 0, 63, 0, + 0, 0, 46, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 70, 0, 0, 0, 70, 0, 0, 0, 53, 0, 0, 0, 63, 0, 0, 0, 70, 0, + 0, 0, 44, 0, 0, 0, 33, 0, 0, 0, 25, 0, 0, 0, 46, 0, 0, 0, 25, 0, 0, 0, 51, 0, 0, 0, 46, 0, 0, 0, 44, 0, + 0, 0, 68, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 53, 0, 0, 0, 73, 0, + 43, 0, 63, 0, 43, 0, 63, 0, 70, 0, 63, 0, 44, 0, 44, 0, 66, 0, 63, 0, 66, 0, 63, 0, 70, 0, 63, 0, 70, 0, 63, 0, + 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 46, 0, 0, 0, 51, 0, 0, 0, 25, 0, 0, 0, 25, 0, + 0, 0, 37, 0, 0, 0, 59, 0, 0, 0, 63, 0, 0, 0, 66, 0, 0, 0, 46, 0, 0, 0, 59, 0, 0, 0, 37, 0, 0, 0, 70, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 46, 0, 44, 0, 44, 0, 25, 0, 63, 0, 44, 0, 25, 0, 63, 0, 46, 0, 66, 0, 25, 0, 70, 0, 63, 0, 21, 0, 46, 0, + 0, 0, 68, 0, 0, 0, 48, 0, 0, 0, 51, 0, 0, 0, 70, 0, 0, 0, 68, 0, 0, 0, 68, 0, 0, 0, 68, 0, 0, 0, 59, 0, + 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 11, 0, 0, 0, 77, 0, 0, 0, 21, 0, 0, 0, 43, 0, 0, 0, 44, 0, + 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 25, 0, 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 25, 0, 0, 0, 25, 0, + 0, 0, 46, 0, 0, 0, 37, 0, 0, 0, 35, 0, 0, 0, 78, 0, 0, 0, 33, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 17, 0, + 0, 0, 78, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 79, 0, 0, 0, 49, 0, 0, 0, 44, 0, 0, 0, 8, 0, 0, 0, 78, 0, + 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 70, 0, 0, 0, 25, 0, 0, 0, 51, 0, 0, 0, 44, 0, 0, 0, 25, 0, 0, 0, 25, 0, + 0, 0, 53, 0, 0, 0, 68, 0, 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 25, 0, 0, 0, 51, 0, + 0, 0, 17, 0, 0, 0, 51, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 21, 0, 0, 0, 17, 0, + 0, 0, 49, 0, 0, 0, 15, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 51, 0, 0, 0, 78, 0, 0, 0, 43, 0, + 37, 0, 37, 0, 53, 0, 37, 0, 48, 0, 37, 0, 48, 0, 48, 0, 59, 0, 37, 0, 37, 0, 51, 0, 48, 0, 25, 0, 37, 0, 37, 0, + 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 37, 0, 0, 0, 68, 0, 0, 0, 37, 0, 0, 0, 51, 0, + 0, 0, 37, 0, 0, 0, 68, 0, 0, 0, 53, 0, 0, 0, 53, 0, 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 53, 0, + 0, 0, 33, 0, 0, 0, 25, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 16, 0, 0, 0, 15, 0, + 67, 0, 67, 0, 67, 0, 67, 0, 35, 0, 69, 0, 49, 0, 64, 0, 64, 0, 57, 0, 64, 0, 57, 0, 65, 0, 19, 0, 65, 0, 57, 0, + 0, 0, 67, 0, 0, 0, 22, 0, 0, 0, 67, 0, 0, 0, 52, 0, 0, 0, 67, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 65, 0, + 0, 0, 45, 0, 0, 0, 78, 0, 0, 0, 62, 0, 0, 0, 42, 0, 0, 0, 62, 0, 0, 0, 78, 0, 0, 0, 62, 0, 0, 0, 5, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 40, 0, 0, 0, 26, 0, 0, 0, 22, 0, 0, 0, 32, 0, 0, 0, 6, 0, + 24, 0, 43, 0, 24, 0, 42, 0, 66, 0, 42, 0, 49, 0, 42, 0, 67, 0, 42, 0, 67, 0, 42, 0, 66, 0, 42, 0, 66, 0, 42, 0, + 0, 0, 35, 0, 0, 0, 44, 0, 0, 0, 43, 0, 0, 0, 49, 0, 0, 0, 16, 0, 0, 0, 44, 0, 0, 0, 43, 0, 0, 0, 44, 0, + 0, 0, 77, 0, 0, 0, 44, 0, 0, 0, 65, 0, 0, 0, 70, 0, 0, 0, 40, 0, 0, 0, 16, 0, 0, 0, 49, 0, 0, 0, 40, 0, + 0, 0, 24, 0, 0, 0, 30, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 64, 0, 0, 0, 75, 0, 0, 0, 21, 0, + 43, 0, 21, 0, 66, 0, 16, 0, 16, 0, 63, 0, 75, 0, 63, 0, 74, 0, 63, 0, 24, 0, 63, 0, 35, 0, 63, 0, 43, 0, 63, 0, + 0, 0, 46, 0, 0, 0, 59, 0, 0, 0, 16, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 33, 0, 0, 0, 21, 0, 0, 0, 46, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43, 0, 21, 0, 43, 0, 21, 0, 21, 0, 21, 0, 44, 0, 21, 0, 74, 0, 25, 0, 24, 0, 70, 0, 63, 0, 21, 0, 16, 0, 63, 0, + 0, 0, 37, 0, 0, 0, 15, 0, 0, 0, 66, 0, 0, 0, 63, 0, 0, 0, 16, 0, 0, 0, 44, 0, 0, 0, 21, 0, 0, 0, 74, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43, 0, 77, 0, 43, 0, 70, 0, 21, 0, 70, 0, 33, 0, 65, 0, 35, 0, 21, 0, 43, 0, 21, 0, 21, 0, 44, 0, 44, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 37, 0, 0, 0, 33, 0, 0, 0, 53, 0, 0, 0, 70, 0, 0, 0, 37, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 17, 0, + 0, 0, 53, 0, 0, 0, 53, 0, 0, 0, 33, 0, 0, 0, 53, 0, 0, 0, 33, 0, 0, 0, 53, 0, 0, 0, 17, 0, 0, 0, 33, 0, + 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 15, 0, 0, 0, 44, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 15, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 52, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 36, 0, 0, 0, 6, 0, + 17, 0, 37, 0, 16, 0, 37, 0, 43, 0, 25, 0, 22, 0, 21, 0, 75, 0, 37, 0, 53, 0, 37, 0, 59, 0, 25, 0, 53, 0, 25, 0, + 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 25, 0, 0, 0, 37, 0, 0, 0, 37, 0, 0, 0, 51, 0, 0, 0, 33, 0, 0, 0, 53, 0, + 0, 0, 33, 0, 0, 0, 68, 0, 0, 0, 17, 0, 0, 0, 53, 0, 0, 0, 33, 0, 0, 0, 68, 0, 0, 0, 15, 0, 0, 0, 44, 0, + 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 61, 0, 0, 0, 49, 0, 0, 0, 44, 0, 0, 0, 47, 0, 0, 0, 7, 0, + 25, 0, 37, 0, 33, 0, 37, 0, 21, 0, 25, 0, 21, 0, 25, 0, 46, 0, 25, 0, 33, 0, 37, 0, 25, 0, 25, 0, 33, 0, 25, 0, + 0, 0, 37, 0, 0, 0, 37, 0, 0, 0, 25, 0, 0, 0, 33, 0, 0, 0, 25, 0, 0, 0, 51, 0, 0, 0, 17, 0, 0, 0, 53, 0, + 0, 0, 33, 0, 0, 0, 53, 0, 0, 0, 21, 0, 0, 0, 37, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 15, 0, 0, 0, 33, 0, + 0, 0, 40, 0, 0, 0, 70, 0, 0, 0, 45, 0, 0, 0, 41, 0, 0, 0, 44, 0, 0, 0, 53, 0, 0, 0, 8, 0, 0, 0, 49, 0, + 67, 0, 24, 0, 12, 0, 12, 0, 49, 0, 69, 0, 78, 0, 64, 0, 64, 0, 19, 0, 64, 0, 57, 0, 24, 0, 19, 0, 65, 0, 19, 0, + 0, 0, 18, 0, 0, 0, 24, 0, 0, 0, 64, 0, 0, 0, 62, 0, 0, 0, 18, 0, 0, 0, 24, 0, 0, 0, 62, 0, 0, 0, 34, 0, + 0, 0, 55, 0, 0, 0, 52, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 18, 0, 0, 0, 78, 0, 0, 0, 12, 0, 0, 0, 22, 0, + 0, 0, 61, 0, 0, 0, 12, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 71, 0, + 24, 0, 43, 0, 24, 0, 42, 0, 49, 0, 42, 0, 40, 0, 42, 0, 67, 0, 42, 0, 67, 0, 42, 0, 29, 0, 42, 0, 0, 0, 42, 0, + 0, 0, 11, 0, 0, 0, 49, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 40, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 21, 0, 8, 0, 35, 0, 16, 0, 16, 0, 49, 0, 16, 0, 24, 0, 63, 0, 24, 0, 21, 0, 35, 0, 16, 0, 43, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43, 0, 0, 0, 43, 0, 0, 0, 16, 0, 0, 0, 35, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 29, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 25, 0, 16, 0, 53, 0, 44, 0, 17, 0, 44, 0, 17, 0, 70, 0, 25, 0, 46, 0, 25, 0, 70, 0, 21, 0, 35, 0, 21, 0, + 0, 0, 33, 0, 0, 0, 48, 0, 0, 0, 15, 0, 0, 0, 33, 0, 0, 0, 33, 0, 0, 0, 53, 0, 0, 0, 15, 0, 0, 0, 33, 0, + 0, 0, 15, 0, 0, 0, 48, 0, 0, 0, 7, 0, 0, 0, 77, 0, 0, 0, 15, 0, 0, 0, 51, 0, 0, 0, 40, 0, 0, 0, 49, 0, + 0, 0, 78, 0, 0, 0, 8, 0, 0, 0, 10, 0, 0, 0, 79, 0, 0, 0, 78, 0, 0, 0, 33, 0, 0, 0, 28, 0, 0, 0, 0, 0, + 17, 0, 25, 0, 17, 0, 53, 0, 21, 0, 17, 0, 15, 0, 21, 0, 21, 0, 25, 0, 16, 0, 25, 0, 17, 0, 21, 0, 16, 0, 21, 0, + 0, 0, 33, 0, 0, 0, 53, 0, 0, 0, 15, 0, 0, 0, 37, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 44, 0, 0, 0, 53, 0, + 0, 0, 48, 0, 0, 0, 51, 0, 0, 0, 40, 0, 0, 0, 25, 0, 0, 0, 44, 0, 0, 0, 33, 0, 0, 0, 75, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 22, 0, 0, 0, 62, 0, + 17, 0, 0, 0, 21, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, 21, 0, 0, 0, 21, 0, 0, 0, 21, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 51, 0, 0, 0, 33, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 51, 0, 0, 0, 49, 0, 0, 0, 33, 0, + 0, 0, 33, 0, 0, 0, 68, 0, 0, 0, 70, 0, 0, 0, 25, 0, 0, 0, 46, 0, 0, 0, 68, 0, 0, 0, 49, 0, 0, 0, 51, 0, + 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, + 12, 0, 24, 0, 12, 0, 12, 0, 40, 0, 69, 0, 8, 0, 18, 0, 64, 0, 19, 0, 64, 0, 19, 0, 62, 0, 19, 0, 12, 0, 19, 0, + 0, 0, 18, 0, 0, 0, 34, 0, 0, 0, 18, 0, 0, 0, 26, 0, 0, 0, 18, 0, 0, 0, 24, 0, 0, 0, 18, 0, 0, 0, 34, 0, + 0, 0, 55, 0, 0, 0, 61, 0, 0, 0, 3, 0, 0, 0, 75, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 22, 0, + 0, 0, 55, 0, 0, 0, 79, 0, 0, 0, 78, 0, 0, 0, 52, 0, 0, 0, 1, 0, 0, 0, 22, 0, 0, 0, 27, 0, 0, 0, 22, 0, + 24, 0, 43, 0, 24, 0, 43, 0, 11, 0, 43, 0, 7, 0, 56, 0, 18, 0, 43, 0, 38, 0, 43, 0, 0, 0, 56, 0, 0, 0, 56, 0, + 0, 0, 11, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 43, 0, 0, 0, 11, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 40, 0, 0, 0, 34, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 29, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 29, 0, 0, 0, 24, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 56, 0, 0, 0, 24, 0, 0, 0, 76, 0, 0, 0, 56, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 17, 0, 0, 0, 25, 0, 0, 0, 49, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 51, 0, 0, 0, 49, 0, 0, 0, 17, 0, + 0, 0, 40, 0, 0, 0, 46, 0, 0, 0, 78, 0, 0, 0, 47, 0, 0, 0, 16, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 49, 0, + 0, 0, 22, 0, 0, 0, 45, 0, 0, 0, 14, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 5, 0, 0, 0, 61, 0, + 15, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 44, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 44, 0, 0, 0, 48, 0, 0, 0, 40, 0, 0, 0, 37, 0, + 0, 0, 35, 0, 0, 0, 48, 0, 0, 0, 6, 0, 0, 0, 53, 0, 0, 0, 44, 0, 0, 0, 51, 0, 0, 0, 7, 0, 0, 0, 33, 0, + 0, 0, 78, 0, 0, 0, 74, 0, 0, 0, 52, 0, 0, 0, 50, 0, 0, 0, 78, 0, 0, 0, 25, 0, 0, 0, 76, 0, 0, 0, 78, 0, + 15, 0, 0, 0, 16, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 43, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 0, 33, 0, 0, 0, 11, 0, 0, 0, 70, 0, 0, 0, 43, 0, 0, 0, 53, 0, 0, 0, 49, 0, 0, 0, 25, 0, + 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0, 70, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 12, 0, 24, 0, 12, 0, 12, 0, 8, 0, 38, 0, 36, 0, 18, 0, 39, 0, 19, 0, 39, 0, 19, 0, 62, 0, 19, 0, 12, 0, 19, 0, + 0, 0, 18, 0, 0, 0, 34, 0, 0, 0, 18, 0, 0, 0, 41, 0, 0, 0, 32, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 36, 0, + 0, 0, 55, 0, 0, 0, 41, 0, 0, 0, 32, 0, 0, 0, 65, 0, 0, 0, 32, 0, 0, 0, 5, 0, 0, 0, 55, 0, 0, 0, 36, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 24, 0, 0, 0, 61, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 14, 0, + 34, 0, 11, 0, 34, 0, 77, 0, 7, 0, 29, 0, 29, 0, 56, 0, 18, 0, 29, 0, 38, 0, 11, 0, 34, 0, 29, 0, 23, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 5, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 29, 0, 0, 0, 56, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 45, 0, 0, 0, 22, 0, 0, 0, 29, 0, 0, 0, 78, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 16, 0, 0, 0, 11, 0, 0, 0, 40, 0, 0, 0, 49, 0, 0, 0, 49, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 44, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 49, 0, 0, 0, 51, 0, 0, 0, 29, 0, 0, 0, 44, 0, + 0, 0, 49, 0, 0, 0, 44, 0, 0, 0, 62, 0, 0, 0, 78, 0, 0, 0, 49, 0, 0, 0, 53, 0, 0, 0, 7, 0, 0, 0, 49, 0, + 0, 0, 52, 0, 0, 0, 31, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 7, 0, 0, 0, 43, 0, 0, 0, 28, 0, 0, 0, 45, 0, + 49, 0, 0, 0, 16, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 43, 0, 0, 0, 49, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 44, 0, + 0, 0, 61, 0, 0, 0, 29, 0, 0, 0, 55, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 4, 0, 0, 0, 28, 0, + 11, 0, 0, 0, 11, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 43, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 75, 0, 0, 0, 53, 0, 0, 0, 71, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 40, 0, 0, 0, 51, 0, + 0, 0, 4, 0, 0, 0, 77, 0, 0, 0, 38, 0, 0, 0, 79, 0, 0, 0, 78, 0, 0, 0, 48, 0, 0, 0, 62, 0, 0, 0, 56, 0, + 12, 0, 0, 0, 12, 0, 0, 0, 8, 0, 0, 0, 47, 0, 0, 0, 39, 0, 0, 0, 39, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 18, 0, 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 47, 0, 0, 0, 18, 0, 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 26, 0, 0, 0, 76, 0, 0, 0, 34, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 76, 0, 0, 0, 29, 0, 0, 0, 45, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 40, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 7, 0, 0, 0, 40, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 5, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 47, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 0, 12, 0, 12, 0, 12, 0, 6, 0, 18, 0, 36, 0, 18, 0, 39, 0, 13, 0, 39, 0, 30, 0, 26, 0, 13, 0, 3, 0, 13, 0, + 0, 0, 32, 0, 0, 0, 22, 0, 0, 0, 55, 0, 0, 0, 26, 0, 0, 0, 55, 0, 0, 0, 22, 0, 0, 0, 32, 0, 0, 0, 22, 0, + 0, 0, 55, 0, 0, 0, 4, 0, 0, 0, 27, 0, 0, 0, 34, 0, 0, 0, 52, 0, 0, 0, 76, 0, 0, 0, 27, 0, 0, 0, 4, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 12, 0, 0, 0, 10, 0, 0, 0, 76, 0, 0, 0, 10, 0, 0, 0, 41, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 36, 0, 0, 0, 39, 0, 0, 0, 72, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 32, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 0, 0, 0, 22, 0, 0, 0, 45, 0, 0, 0, 26, 0, 0, 0, 76, 0, 0, 0, 22, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 76, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 26, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 78, 0, 0, 0, 23, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 44, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 40, 0, 0, 0, 22, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 76, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 76, 0, + 5, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 23, 0, 0, 0, 47, 0, 0, 0, 36, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 26, 0, 0, 0, 19, 0, 0, 0, 78, 0, 0, 0, 25, 0, 0, 0, 45, 0, 0, 0, 56, 0, + 0, 0, 76, 0, 0, 0, 23, 0, 0, 0, 39, 0, 0, 0, 50, 0, 0, 0, 41, 0, 0, 0, 75, 0, 0, 0, 61, 0, 0, 0, 45, 0, + 5, 0, 0, 0, 6, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 47, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 27, 0, 0, 0, 68, 0, 0, 0, 71, 0, 0, 0, 60, 0, 0, 0, 74, 0, 0, 0, 48, 0, 0, 0, 60, 0, 0, 0, 60, 0, + 0, 0, 31, 0, 0, 0, 12, 0, 0, 0, 79, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 61, 0, 0, 0, 79, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 36, 0, 0, 0, 28, 0, 0, 0, 39, 0, 0, 0, 39, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 32, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 27, 0, 0, 0, 22, 0, 0, 0, 45, 0, 0, 0, 32, 0, 0, 0, 72, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 22, 0, 0, 0, 28, 0, 0, 0, 18, 0, 0, 0, 72, 0, 0, 0, 3, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 22, 0, 0, 0, 45, 0, 0, 0, 32, 0, 0, 0, 72, 0, 0, 0, 79, 0, 0, 0, 76, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 28, 0, 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 45, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 4, 0, 0, 0, 45, 0, 0, 0, 26, 0, 0, 0, 47, 0, 0, 0, 41, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 9, 0, 0, 0, 36, 0, 0, 0, 22, 0, 0, 0, 50, 0, 0, 0, 39, 0, 0, 0, 27, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 2, 0, 0, 0, 36, 0, 0, 0, 28, 0, 0, 0, 54, 0, 0, 0, 72, 0, 0, 0, 27, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 27, 0, 0, 0, 22, 0, 0, 0, 28, 0, 0, 0, 20, 0, 0, 0, 72, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 27, 0, 0, 0, 4, 0, 0, 0, 28, 0, 0, 0, 20, 0, 0, 0, 72, 0, 0, 0, 61, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 61, 0, 0, 0, 27, 0, 0, 0, 22, 0, 0, 0, 28, 0, 0, 0, 52, 0, 0, 0, 76, 0, 0, 0, 55, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 45, 0, 0, 0, 31, 0, 0, 0, 20, 0, 0, 0, 61, 0, 0, 0, 27, 0, 0, 0, 26, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 45, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 9, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 9, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 50, 0, 0, 0, 39, 0, 0, 0, 61, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 28, 0, 0, 0, 50, 0, 0, 0, 72, 0, 0, 0, 31, 0, 0, 0, 79, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 54, 0, 0, 0, 72, 0, 0, 0, 52, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 55, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 52, 0, 0, 0, 72, 0, 0, 0, 61, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0, 0, 52, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 14, 0, 10, 0, 9, 0, 41, 0, 14, 0, 41, 0, 9, 0, 50, 0, 20, 0, 54, 0, 31, 0, 10, 0, 9, 0, 10, 0, 9, 0, + 0, 0, 20, 0, 0, 0, 31, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 71, 0, 0, 0, 20, 0, 0, 0, 31, 0, + 0, 0, 20, 0, 0, 0, 22, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 22, 0, 0, 0, 20, 0, 0, 0, 71, 0, + 0, 0, 52, 0, 0, 0, 41, 0, 0, 0, 20, 0, 0, 0, 24, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 41, 0, + 14, 0, 0, 0, 14, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 54, 0, 0, 0, 72, 0, 0, 0, 10, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 9, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 54, 0, 0, 0, 72, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 14, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 54, 0, 0, 0, 72, 0, 0, 0, 61, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 9, 0, 0, 0, 2, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 72, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 20, 0, 0, 0, 10, 0, 0, 0, 72, 0, 0, 0, 20, 0, 0, 0, 61, 0, 0, 0, 10, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 75, 0, 0, 0, 51, 0, 0, 0, 78, 0, 0, 0, 75, 0, + 0, 0, 15, 0, 0, 0, 68, 0, 0, 0, 11, 0, 0, 0, 51, 0, 0, 0, 78, 0, 0, 0, 68, 0, 0, 0, 36, 0, 0, 0, 49, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 20, 0, 0, 0, 55, 0, 0, 0, 20, 0, 0, 0, 61, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 60, 0, 0, 0, 53, 0, 0, 0, 5, 0, 0, 0, 53, 0, 0, 0, 25, 0, 0, 0, 52, 0, 0, 0, 78, 0, 0, 0, 33, 0, + 0, 0, 15, 0, 0, 0, 68, 0, 0, 0, 75, 0, 0, 0, 68, 0, 0, 0, 44, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 52, 0, 0, 0, 10, 0, 0, 0, 61, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 21, 0, 0, 0, 66, 0, 0, 0, 38, 0, 0, 0, 51, 0, 0, 0, 60, 0, 0, 0, 25, 0, 0, 0, 77, 0, 0, 0, 70, 0, + 0, 0, 21, 0, 0, 0, 33, 0, 0, 0, 49, 0, 0, 0, 68, 0, 0, 0, 75, 0, 0, 0, 51, 0, 0, 0, 78, 0, 0, 0, 51, 0, }; -static const unsigned short m03_Ternary_model_scale_table[] = +static const unsigned short m03_T2_model_m1_scale_table[] = { - 24, 65, 119, 176, 152, 38, 93, 318, 90, 46, 46, 248, 73, 171, 160, 77, - 193, 182, 375, 292, 157, 62, 161, 68, 65, 274, 232, 241, 70, 303, 572, 271, - 242, 128, 178, 210, 128, 43, 134, 92, 134, 86, 158, 170, 146, 310, 182, 238, - 258, 71, 479, 229, 186, 177, 195, 258, 82, 83, 238, 896, 191, 191,31023, 139, - 326, 107, 281, 151, 164, 71, 155, 99, 52, 72, 264, 100, 444, 149, 330, 311, - 348, 169, 277, 228, 313, 135, 229, 88, 157, 67,28059, 309, 69, 218, 35, 186, - 387, 146, 318, 161, 308, 164, 1425, 35, 239, 107, 211, 61, 24, 927,31389, 256, - 538, 334, 351, 188, 115, 163, 1393, 69, 27, 73,27844, 201, 42, 455, 174, 189, - 181, 171, 316, 111, 256, 127, 53, 78, 141, 67,31567, 256, 392, 128,26907, 62, - 693, 363, 628, 258, 344, 70, 381, 81, 534, 163, 747, 545, 287, 128, 732, 31, - 377, 186, 204, 121, 178, 81, 537, 85, 522, 86, 688, 149, 4230, 300, 718, 150, - 450, 110, 237, 73, 111, 89, 479, 66, 231, 162,14002, 707,31447, 682, 596, 230, + 280,14104,24063, 1385, 7245, 603, 5952, 547, 1587, 247, 2726, 702, 272, 156, 512, 244, + 558, 249, 315, 85, 2437, 383, 734, 494, 225, 288, 823, 2158, 411, 334, 58, 811, + 790, 522, 399, 213, 1238, 595, 120, 131, 545, 700, 129, 258, 202, 703, 101, 180, + 201, 207, 574, 512, 775, 892, 494, 584, 186, 41, 117, 65, 2321, 593, 368, 162, + 66, 143, 135, 99, 862, 73, 155, 1146, 254, 78, 84, 65, 162, 71, 1534, 1413, }; -static const unsigned char m03_Tree_model_state_table[] = +static const unsigned char m03_T3_model_m0_state_table[] = { - 0,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 0,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171,125,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151,113,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,120,100,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,113, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171,125, 63, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,167,113, 63, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, - 0,120,100, 97, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 98, 62, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171, 71,118, 0,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171,108, 97, 0,113, 0,135, 0, 0, 0, 0, 0, 0, 0, 0, - 0,120, 87, 42, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,115,126, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171, 71,110, 0,125,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151,108,194, 0,113,152, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 0,120,115,110, 0,100, 72,169, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 62,116, 0,167,173,130, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171,191, 54, 87, 72, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171, 98, 54, 74,154, 92, 97, 0, 0, 0, 0, 0, 0, 0, 0, - 0,120,120,130, 87, 69, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0,189, 84,161,113,178,228, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171,191, 81, 87,152,139, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0,171, 98, 92,111,124,139,118, 0, 0, 0, 0, 0, 0, 0,139, - 0,168,191,118, 87, 69, 37,182, 0, 0, 0, 0, 0, 0, 0, 41, 0,120, 53, 0,106,130,189,204, 0, 0, 0, 0, 0, 0, 0, 65, - 0,223,125, 81, 87, 62,139, 93, 0, 0, 0, 72, 0, 0, 0, 0, 0,171, 87, 63, 86,122,158, 93, 0, 0, 0,113, 0, 0, 0, 0, - 0,168,100,118, 87,115, 0,182, 0, 0, 0,188, 0, 0, 0,225, 0,206,113,118,159,130, 52,126, 0, 0, 0,107, 0, 0, 0,145, - 0,223,125, 54, 87, 62,169, 93, 0, 0, 0, 43, 0,157, 0, 81, 0,188, 87, 54, 86, 83,122,117, 0, 0, 0,113, 0, 0, 0,139, - 0,168,191,140, 87,140, 7,182, 0, 0, 0, 34, 0,117, 0,208, 0,120,106, 81,106,193, 11,186, 0, 0, 0,188, 0,167, 0, 88, - 0,223,191, 54, 90, 62, 6, 93, 0,113, 0, 23, 0, 0, 0,121, 0,223, 53, 54, 55, 12,122,155, 0, 37, 0,134, 0,165, 0,126, - 0,168,168, 64, 90, 1,118,203, 0, 28, 0, 59, 0, 52, 0, 70, 0,206,171, 61,115,233,164,114, 0,140, 0,192, 0,205, 0,220, - 0,223,191, 81, 90, 62, 95,137, 0, 43, 0,157, 0,115,124,225, 0,171, 53, 32, 90,108, 83, 81, 0,134, 0, 43, 0,140,140, 70, - 0,168,168,164, 90,140,118,229, 0,159, 0,207, 0,165,189, 93, 0,206, 53, 0,140,130,143,219, 0,130, 0,215, 0,139,216, 50, - 0,223,191, 81, 90,167, 12, 81, 0,132, 80, 19, 0,135,153, 52, 0,171, 16, 81, 90, 72, 42,137, 0, 94, 34,154, 0,139,127,169, - 0,223,191,199,115,184,234, 0, 0,172,152,207, 0, 70,229,209, 0,168, 84,121,153,172,213, 3, 0, 0,229,219, 0,190,219,244, - 0,223,191, 54, 90,100, 0, 81, 0,132,158,157,140,130,115,160, 0,171, 16, 32, 50,107,112, 81, 0, 86,124,139,140,140,139,226, - 0,168, 96,197,115,189,165,174, 0,107,165, 44,109,163, 3,214, 0,215,120,229,103, 66,196,202, 0,172,141, 13,211, 54, 66,210, - 0,223,206, 81, 87,152,140, 81,115,116,157, 71, 0,130, 0, 0, 0,223, 53, 32,136, 72,119, 0,108, 60, 43,140,158,161,140,140, - 0,168, 96, 81, 84,161,188, 29,106,136, 9,228, 68,179, 3,175, 0,163,206,143, 16,189,194, 32,176,136,188, 92,202,117,192, 32, - 0,223,206, 81,136, 72, 92, 93, 52, 74,116, 82, 82, 13,122, 93, 0,223, 53, 81,210, 72, 92,117, 52,108,111, 19, 19, 12,118,126, - 0,223, 96, 93, 84,140, 62, 93,106, 74,135,102, 9, 32, 93,126, 0,223,206, 93, 53,165,127, 49, 16,130, 27,140,147, 45,198,126, - 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,151, 43,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 25, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,151,113,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,167, 37, 63, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,226, 97, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0,167,132, 97, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 87, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171,102, 63, 0,154, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0,178, 45, 97, 0,129, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, - 0,151, 76,118, 0,113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,115,138, 0,139, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, - 0,151, 55,194, 0, 43,152, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0,158, 45,178, 0, 94,148,119, 0, 0, 0, 0, 0, 0, 0, 0, - 0,151, 41, 79, 0,113,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,122,144, 0,139,140,139, 0, 0, 0, 0, 0, 0, 0, 0, - 0,171,113,194, 86,154, 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0,178, 89, 54,108,131,112,135, 0, 0, 0, 0, 0, 0, 0, 0, - 0,120,107,139,132, 72, 2, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,140, 0,130,159,130,202, 0, 0, 0, 0, 0, 0, 0, 0, - 0,151,132,173,226, 23, 92,118, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 89, 92,105,131, 8,118, 0, 0, 0, 0, 0, 0, 0, 92, - 0,151,107, 70,132,157,139,114, 0, 0, 0, 0, 0, 0, 0, 9, 0,146,141,175,115,198,153, 30, 0, 0, 0, 0, 0, 0, 0,140, - 0,171, 86, 54,108,121, 92, 42, 0, 0, 0, 23, 0, 0, 0, 0, 0,151, 41, 63, 88, 75,112, 42, 0, 0, 0, 37, 0, 0, 0, 81, - 0,163,132,118,132, 83,139, 65, 0, 0, 0,146, 0, 0, 0,122, 0, 98, 85,228,136,159,173,182, 0, 0, 0,115, 0, 0, 0,179, - 0,171,226,194,108, 91, 82, 93, 0, 0, 0,158, 0,119, 0, 0, 0,152, 41,194,108, 50, 10, 93, 0, 0, 0,115, 0,116, 0, 0, - 0,163,132, 92,132,118, 38, 20, 0, 0, 0,140, 0,137, 0,115, 0, 51,189,140,159, 3,219,203, 0, 0, 0,188, 0,189, 0,212, - 0,171,113, 54, 61,121, 12, 93, 0, 86, 0,157, 0,119, 0, 42, 0,151, 89, 92, 24, 75,122,117, 0, 38, 0,140, 0,172, 0,140, - 0,163,107,139,231, 95,145, 33, 0, 74, 0,115, 0,139, 0, 93, 0, 66, 98, 33, 75, 9,180, 49, 0,120, 0,115, 0,206, 0,207, - 0,171,132, 54, 61,121, 12, 54, 0, 86, 0,124, 0, 17, 0,139, 0, 72, 89, 92, 3, 75, 12,157, 0,103, 0, 16, 0,140,144,140, - 0,163,107,138, 41,121,143,164, 0,139, 0, 59, 0,140,139, 0, 0,141,159, 33,211,180,192,216, 0,136, 0,198, 0,200, 40,143, - 0,171, 86, 54, 33, 39,118, 0, 0, 86, 1,124, 0, 5, 31,127, 0, 66,133, 32, 40,111,122,130, 0, 89,139, 2, 0,140, 0,115, - 0,163,141,138,103,157, 40, 93, 0,140,130,189, 0, 34, 3,160, 0, 53, 11, 38,192, 16,192,182, 0, 87,219,161, 0,202, 28, 52, - 0,171, 86,189, 33, 39,119,139, 0,226,134, 80,146, 1,115, 0, 0,167,133,173,143,153,100, 62, 0, 86,130, 25, 17,130,115,160, - 0,163,107, 81,103, 59,139, 0, 0,130,130,140,140, 54, 43, 40, 0,194,106,200,127, 78,228, 77, 0,136,229,191,208,142, 72, 3, - 0,215, 16, 54,105, 39, 54, 0,108, 86,124, 80, 23, 0, 0, 82, 0,151, 89, 32, 73, 74, 51, 0,136, 12,127,139, 17,105, 70, 42, - 0,163, 84, 81,141,110,140, 44,139,131, 27,115,115, 1,204,193, 0,140,223,193,115,189,192,199,184,140,232, 9,191,189,213,184, - 0,215, 16, 54, 9, 39, 92, 42, 9, 41,111,135, 82, 82, 82, 42, 0, 66,133, 32,133,111, 92,117,133,102, 64, 15, 0, 38, 18,126, - 0,163, 84, 42,141,112, 19, 65,141, 41, 99,122, 15, 3, 83, 49, 0, 66, 53,126, 53,130, 0, 47,176, 60,137,139,130, 13, 61, 47, - 0,158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 83, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 83, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,167, 94,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 73,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,167, 37,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 60, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 23, 73, 63, 0, 0, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 73,118, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, - 0,124, 86, 97, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 21, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0,178, 46, 63, 0, 2, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0,158, 46,118, 0, 86, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0,167, 50,118, 0,129, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,144,114, 0,115, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, - 0,152, 33,194, 0, 94, 11,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,128,173, 0,108, 17,119, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 72, 50, 79, 0, 37,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,130, 83, 0,133,192, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0,151,226,194, 77,131,170,119, 0, 0, 0, 0, 0, 0, 0, 0, 0,146,108,173, 88, 25, 26, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0,167,132, 79, 89,129, 85, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,159,230,137,181,211,233, 0, 0, 0, 0, 0, 0, 0, 0, - 0,167,105,173, 77, 60,157, 97, 0, 0, 0, 0, 0, 0, 0, 92, 0, 37, 88, 92, 41, 0, 1,137, 0, 0, 0, 0, 0, 0, 0, 85, - 0, 51,132, 70, 89,130, 85, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,172,137, 80, 9,204,162, 0, 0, 0, 0, 0, 0, 0,198, - 0,151, 50,173, 77, 75,170, 42, 0, 0, 0,134, 0, 0, 0, 1, 0,152, 61, 63, 89, 46,127, 93, 0, 0, 0,111, 0, 0, 0,139, - 0, 51, 89, 70, 89, 56,139,114, 0, 0, 0, 17, 0, 0, 0, 97, 0,189,133,212,151,217, 90,182, 0, 0, 0,208, 0, 0, 0,199, - 0,167, 61,189, 77, 21,127,118, 0, 0, 0,134, 0,157, 0, 85, 0,131, 61, 54,115,143, 95, 6, 0, 0, 0, 94, 0,115, 0,140, - 0, 51, 89, 85, 89, 6, 97, 65, 0, 0, 0,134, 0, 25, 0, 61, 0, 78,140, 85,223,193, 56,221, 0, 0, 0, 48, 0,213, 0, 88, - 0,151,105,194, 40, 75,127, 42, 0,104, 0,131, 0,119, 0, 0, 0, 34, 41,173, 45,143, 83,114, 0, 41, 0,130, 0,140, 0,155, - 0,178,132, 0,103, 7, 35, 4, 0, 89, 0, 74, 0, 0, 0,164, 0,132,224,193, 3, 50,182,182, 0,128, 0,214, 0,220, 0,200, - 0,178,105,194, 40, 75, 12, 54, 0,105, 0,131, 0,148,119, 0, 0, 1,133, 32,143, 67,155, 23, 0,115, 0,140, 0, 19, 87,140, - 0, 98,132, 70, 88, 55,121, 97, 0,139, 0,139, 0,139,140, 3, 0,140,223,145, 63, 56,217, 58, 0,205, 0,211, 0, 3,151,193, - 0,188, 50,194, 40,134, 12, 92, 0,105, 99,131, 0,157, 92, 0, 0,146,143, 54, 3,138,166,139, 0, 48, 88, 2, 0,130,139,198, - 0,178, 89,122,103, 92, 6, 12, 0, 99, 60,140, 0,140, 9, 55, 0,171,233,175, 9, 3, 3, 33, 0,229,209,210, 0,189,217, 3, - 0,178, 61,189, 40, 25,165, 92, 0, 41, 99,131,148, 92, 92, 0, 0,123, 9, 54,145,108,139,139, 0,103, 50,139, 81, 97, 79,193, - 0,188, 89,139, 88,139, 79,138, 0,134, 60,140,140,144, 0, 95, 0,159, 87,198, 86,150, 32,180, 0,228,193,180,202,183,189,230, - 0,188,105,189, 9,131,165, 92, 48, 27, 94,129,157, 92, 0, 0, 0, 72, 61,173,133,115,119, 92,130, 89, 10, 71,139,139,130,105, - 0, 98,141,122,141, 43,140, 75,115,226, 0,115,140,153, 0,145, 0,184,215, 9,215,194, 59, 4,115,179,189, 41,207, 52, 39, 3, - 0,188, 9,189, 9,111,119, 32, 48, 45, 27, 31,135, 82, 82, 42, 0,146,133, 32,133, 41, 92,117,133, 7,101, 91, 15, 62,122,126, - 0, 98,141, 70,141, 60, 85, 65, 78,103, 99, 13, 0, 76, 97, 65, 0, 51, 53,117,163, 19, 62,182,100,153, 3, 45,227,244,198, 22, - 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,154,104,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,108,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,157,108,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 77,127, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 88, 95, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 73,118, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,115,109,185, 0, 0, 0,181, 0, 0, 0, 0, 0, 0, 0, 0, - 0,158, 36, 63, 0, 99, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 36,118, 0,108, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0,157, 61,118, 0, 94, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 3,175, 0,231, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 19, 36,194, 0,104, 80,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 3, 92, 0, 10,123, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 61, 79, 0,108, 80, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 0, 39, 0,134,172,143, 0, 0, 0, 0, 0, 0, 0, 0, - 0,152, 50,194, 50, 94,157,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 41, 32, 41,122, 17,127, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 89, 79, 89, 94, 85, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0,210,113, 91,133,107,207, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0,131, 50,173, 50, 73,124, 97, 0, 0, 0, 0, 0, 0, 0,173, 0, 94, 48, 63,115, 83, 0, 95, 0, 0, 0, 0, 0, 0, 0,139, - 0,129, 89, 70, 89, 76, 17,114, 0, 0, 0, 0, 0, 0, 0, 14, 0,140,123,192,115, 3,109,203, 0, 0, 0, 0, 0, 0, 0, 84, - 0,152, 40,173, 50, 65,157, 97, 0, 0, 0, 94, 0, 0, 0, 92, 0, 17, 24, 63,143, 46,139,114, 0, 0, 0, 76, 0, 0, 0,116, - 0, 34, 88, 70, 89, 57,124,114, 0, 0, 0, 5, 0, 0, 0,102, 0,179, 12,164, 85, 97, 84, 40, 0, 0, 0,202, 0, 0, 0,189, - 0, 23, 40,189, 50, 33,121, 97, 0, 0, 0, 76, 0,157, 0,119, 0, 99,128,173, 89, 33, 75,155, 0, 0, 0,115, 0,144, 0, 0, - 0,124, 88, 79, 89, 46,145,114, 0, 0, 0, 0, 0, 60, 0, 0, 0,205,214,182,188, 24,216, 65, 0, 0, 0,172, 0, 56, 0, 3, - 0,152, 61,189, 30, 65, 12, 42, 0, 50, 0, 60, 0,157, 0, 92, 0, 37, 24,173,143,145, 6,155, 0,115, 0,122, 0,130, 0, 26, - 0,146, 89, 70, 7, 21,118,114, 0, 89, 0, 0, 0,165, 0, 44, 0,115,208,115,200,217,217, 3, 0,208, 0,171, 0, 52, 0,143, - 0,154, 61,194, 30, 65,121,194, 0, 58, 0, 38, 0,148,119, 32, 0, 0, 9, 32,143, 21, 57,135, 0,140, 0,231, 0,130,140, 0, - 0,157, 89, 70,103, 46,118,122, 0, 25, 0, 38, 0, 74, 19, 42, 0, 0, 16,118, 3,194, 65, 55, 0,183, 0, 32, 0, 48, 46,214, - 0,152, 40,194, 40, 64, 12,194, 0, 77,104, 60, 0,157,119, 0, 0,124, 24, 54,143,103,169,140, 0,160,139,115, 0,140,117, 0, - 0, 43, 88, 70,103,108,118,122, 0,139, 94, 94, 0,115,139,145, 0, 54,106,174,221,205, 36, 29, 0,221,147,133, 0,165,165, 83, - 0,157, 40,189, 40,104,170,119, 0, 41,104, 94,124,148, 92, 85, 0,115,128,110, 65, 52,106,130, 0,104, 75, 38, 0,159, 42,115, - 0, 23, 88, 70,101,130,146, 42, 0,139, 86,130,140, 0, 0,122, 0,208,193,198,219,213,200,200, 0,211, 40, 61,151, 53,181, 54, - 0,211, 61,189, 9, 99,165,119, 48,105, 73, 19,124,135, 17, 82, 0,140, 50,161,109,109,112,117,202,164,140,127,140,130,159, 0, - 0,146,109, 70,109,137,139, 42, 17,130,130, 60, 0, 0,140, 83, 0,112,172,128,168,197, 30, 22,182,223,151,206,211,194, 28, 42, - 0,211, 3,189, 24, 58,165, 32, 48, 45, 67, 13, 8,135, 82, 42, 0,124, 9, 32,133, 67,112,117,133,102, 55,104, 15, 82,138,126, - 0,146,109, 70, 78, 41, 85, 65, 78,103, 41, 13, 82, 18,102, 65, 0,115,141,162,141, 9, 42, 47, 69,228,209,118, 0,155,114, 47, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 77, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,102,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 19,105,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,130,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 57, 12, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 41,122, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 77,118, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,185, 0,114, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 47,127, 0,104, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,128, 95, 0, 68, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 40,118, 0, 18, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,189,126, 0, 3, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 22,150, 0, 77,123,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 49,170, 0,104,131,139, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 18, 40, 79, 0,105,129, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101,217, 0,181,228,220, 0, 0, 0, 0, 0, 0, 0, 0, - 0,129, 61,194, 50, 64,124,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,101, 54, 52,103,139, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0,129, 88, 79, 89, 76,124, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,153,230,149,140, 54, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 18, 61,170, 50,104,131, 97, 0, 0, 0, 0, 0, 0, 0,173, 0,103, 24,144,172,108,130, 0, 0, 0, 0, 0, 0, 0, 0,140, - 0, 99, 88, 97, 89, 27, 60,114, 0, 0, 0, 0, 0, 0, 0, 85, 0,227,173, 65, 92,196,213,208, 0, 0, 0, 0, 0, 0, 0, 46, - 0,129, 30,173, 50, 49,124, 97, 0, 0, 0, 64, 0, 0, 0,173, 0,130,128,127, 9, 33,144,137, 0, 0, 0, 99, 0, 0, 0,139, - 0,129,101, 70, 89, 46, 5,114, 0, 0, 0, 38, 0, 0, 0, 70, 0,109, 52,193,192,196,223, 47, 0, 0, 0,172, 0, 0, 0, 30, - 0, 18, 30,184, 50, 36, 95, 97, 0, 0, 0,104, 0,124, 0,173, 0, 10, 24,170, 86,143, 75,175, 0, 0, 0,115, 0,115, 0,130, - 0, 38,101, 79, 89, 36, 95,114, 0, 0, 0,108, 0, 62, 0, 31, 0,115, 16,191,182,165,164,203, 0, 0, 0,228, 0,189, 0, 9, - 0,129, 40,184, 30, 49,121, 97, 0, 50, 0, 99, 0,157, 0,119, 0, 94,128,150,143,128, 91, 4, 0, 63, 0,130, 0,140, 0,159, - 0, 8, 88, 70,101, 33,118,114, 0, 99, 0, 18, 0, 74, 0,117, 0,140,115, 70,216, 49,213,182, 0, 52, 0, 97, 0,205, 0, 36, - 0, 76, 40,194, 30, 49, 95,194, 0, 50, 0, 64, 0,124,170,119, 0, 18,160,139,128, 61,166,190, 0, 52, 0, 76, 0, 0,159,216, - 0, 15, 88, 70,101, 46,143, 70, 0, 89, 0,102, 0,131,111,118, 0, 52,232,207,221,209,115,182, 0,213, 0, 61, 0, 53,188,189, - 0,129, 3,194, 3, 57, 95,194, 0, 50, 77, 99, 0,157,170, 32, 0,115,128, 79, 30,145, 75,117, 0, 0, 29,130, 0,159,140, 44, - 0, 1,101, 70,101,105, 95, 70, 0,108, 77, 76, 0, 71,115, 75, 0,206,192,212, 8,208,190,200, 0,165,202,215, 0,177,166,216, - 0, 38, 3,189, 40, 67, 11,194, 0, 50, 58, 18,123,157,119,119, 0, 68, 56,167,128, 27,154,210, 0,198,109,140, 0,192, 26,231, - 0, 38,101, 70,103, 67,116,122, 0,130, 86, 99, 5,112, 70,122, 0,158,192,219,149,215,188,182, 0,209,215, 57,171,158, 52, 9, - 0,129, 3,189, 9, 77,170,173, 18, 67, 77, 38,131,157,112, 85, 0,139, 9,165, 52,145,139, 0, 0,174, 89,140,148,170, 71, 57, - 0, 5,109, 70, 89, 41, 34,122,139, 89,103, 0, 17,129, 60,122, 0,211,223, 97,111, 26, 92,209,215,194,188,202,189, 33,118,205, - 0, 1, 3,189, 24, 56,165, 32, 48, 45, 45, 57, 8,135,135, 42, 0, 60, 9, 32,133, 67,112,117,133,121, 41, 75,111, 82,122,126, - 0, 2,109, 70, 78, 50, 85, 65, 78, 76, 67, 57, 8, 14, 91, 65, 0,139, 53,126,151, 0,140, 47,130, 45,212,115,216,198,128, 33, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 57, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,105,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 77,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,189,140,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 50, 44, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 41, 44, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 77, 95, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,151,110, 0, 0, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 22,127, 0, 77, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 24, 12, 0,231, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,126,118, 0, 18, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,109, 0,172, 0,221, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 22,150, 0, 58, 28,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,143, 69, 0,140, 44,192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 35, 40, 79, 0,104,148,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,217,189, 0,217,192,151, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 56,150, 61,104,124,173, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 57,178,105,185, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, - 0,140, 41, 85,105, 48,140,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,156,215,183,199,194,150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 40, 69, 45, 77, 44, 63, 0, 0, 0, 0, 0, 0, 0,170, 0,149, 61,150,143,193, 28, 81, 0, 0, 0, 0, 0, 0, 0,190, - 0,103,105,122,139,127, 0,114, 0, 0, 0, 0, 0, 0, 0,144, 0, 16,196,215,153, 56, 32, 3, 0, 0, 0, 0, 0, 0, 0, 66, - 0, 15, 30,170, 88, 36,124, 97, 0, 0, 0,104, 0, 0, 0,170, 0, 87,128,150,115,128, 8, 42, 0, 0, 0,130, 0, 0, 0, 53, - 0, 25, 45, 0, 80, 30, 74,145, 0, 0, 0, 0, 0, 0, 0,225, 0,192, 11,164,188, 40, 42,214, 0, 0, 0, 8, 0, 0, 0, 52, - 0, 29, 30,184, 67, 47, 44,127, 0, 0, 0,102, 0,124, 0,173, 0, 73,128,187,115,186,196,244, 0, 0, 0,153, 0, 73, 0,210, - 0, 55,145, 79,129, 65,145, 33, 0, 0, 0,115, 0,174, 0, 95, 0,171,183, 39, 56,174, 50,171, 0, 0, 0,188, 0,142, 0, 44, - 0, 60, 40,184, 3, 36, 95,122, 0, 57, 0,104, 0, 80, 0, 97, 0,141,128,206, 29,128,155,155, 0,208, 0,193, 0, 17, 0,175, - 0, 14, 89, 31, 48,126,145,186, 0,231, 0,227, 0,115, 0,137, 0, 61,221, 84,125,210,114, 24, 0, 53, 0, 9, 0,141, 0, 8, - 0, 35, 30,150, 30, 36, 44,194, 0, 9, 0,102, 0,148, 69,139, 0,140, 56,201,143, 0,177,110, 0, 3, 0,115, 0,110,206, 9, - 0, 73, 89,169,143,143, 77,122, 0,115, 0,220, 0,147, 0,228, 0,229, 81,120,184, 20,219, 16, 0,173, 0, 32, 0,170, 83, 29, - 0, 15, 3,194,126, 57, 95,150, 0, 90, 67,102, 0,124, 39,127, 0, 16, 56,165,174, 20,181,173, 0, 54,210,216, 0,202,236,136, - 0,139,101,130,143,103, 46,137, 0,140,130, 0, 0,104,211,185, 0, 96, 16,165,207,188, 42,165, 0,213,194, 84, 0, 58, 33, 56, - 0, 29, 30,184, 36, 45, 28,167, 0,101,104, 27, 28,112, 97,158, 0,195,143,189,208,217, 69,188, 0,200, 53,209,156,194,171, 66, - 0,118, 18,165,143,115, 0,139, 0,174,179,103, 54, 79,161,197, 0,171,171,206,165,184, 66, 22, 0,207, 80,215,142, 24, 33, 24, - 0, 15, 3,184, 61, 50,170,184,137, 55, 41, 73,131,139,173,115, 0, 23,101,151, 3,133,165,201,149,115,198,109,199,142,189, 59, - 0,121,103,140,172,139,115,238,159,220,143, 63, 39,143, 40, 3, 0,191,163, 13, 24, 92, 30, 61,213,208, 63, 32, 0, 39, 8, 0, - 0, 68, 3,189, 24, 56, 69, 32, 48, 67, 45, 65, 44, 8,135, 42, 0,142,101,187,140, 24,156, 70,115, 88,198, 67,177,140, 95, 99, - 0, 82,109, 70, 78, 41,130,126,130,137,143,143, 44, 70,101,126, 0,213, 9,163,192,182,196,181,184, 47,189, 58,163, 79,200,109, + 17, 0, 44, 0, 35, 0, 0, 0, 38, 0, 37, 0, 31, 0, 37, 0, 34, 0, 24, 0, 38, 0, 37, 0, 38, 0, 37, 0, 38, 0, 37, 0, + 0, 0, 25, 0, 0, 0, 10, 0, 0, 0, 38, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, + 0, 0, 17, 0, 0, 0, 33, 0, 0, 0, 26, 0, 0, 0, 36, 0, 0, 0, 19, 0, 0, 0, 44, 0, 0, 0, 34, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 26, 0, 0, 0, 19, 0, 0, 0, 35, 0, + 17, 0, 25, 0, 0, 0, 26, 0, 38, 0, 37, 0, 37, 0, 37, 0, 25, 0, 34, 0, 24, 0, 24, 0, 38, 0, 37, 0, 37, 0, 37, 0, + 0, 0, 17, 0, 0, 0, 40, 0, 0, 0, 34, 0, 0, 0, 37, 0, 0, 0, 17, 0, 0, 0, 25, 0, 0, 0, 34, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 25, 0, 0, 0, 34, 0, 0, 0, 37, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 0, 44, 0, + 44, 0, 44, 0, 38, 0, 37, 0, 38, 0, 37, 0, 34, 0, 0, 0, 34, 0, 35, 0, 24, 0, 24, 0, 38, 0, 38, 0, 37, 0, 37, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 37, 0, 0, 0, 17, 0, 0, 0, 24, 0, 0, 0, 38, 0, 0, 0, 37, 0, + 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 44, 0, 0, 0, 31, 0, 0, 0, 24, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 0, 35, 0, + 26, 0, 34, 0, 37, 0, 37, 0, 38, 0, 37, 0, 38, 0, 37, 0, 34, 0, 44, 0, 24, 0, 37, 0, 38, 0, 38, 0, 37, 0, 37, 0, + 0, 0, 35, 0, 0, 0, 39, 0, 0, 0, 35, 0, 0, 0, 37, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 44, 0, 0, 0, 37, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 28, 0, 0, 0, 17, 0, 0, 0, 42, 0, 0, 0, 35, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 44, 0, + 26, 0, 24, 0, 34, 0, 0, 0, 38, 0, 37, 0, 37, 0, 37, 0, 24, 0, 24, 0, 35, 0, 37, 0, 31, 0, 37, 0, 37, 0, 37, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 35, 0, 0, 0, 24, 0, 0, 0, 38, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 46, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 44, 0, 0, 0, 15, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 35, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 23, 0, + 24, 0, 38, 0, 34, 0, 37, 0, 24, 0, 35, 0, 35, 0, 37, 0, 22, 0, 35, 0, 35, 0, 37, 0, 35, 0, 35, 0, 32, 0, 37, 0, + 0, 0, 38, 0, 0, 0, 37, 0, 0, 0, 35, 0, 0, 0, 37, 0, 0, 0, 35, 0, 0, 0, 31, 0, 0, 0, 35, 0, 0, 0, 35, 0, + 0, 0, 32, 0, 0, 0, 38, 0, 0, 0, 15, 0, 0, 0, 37, 0, 0, 0, 32, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 31, 0, + 0, 0, 15, 0, 0, 0, 37, 0, 0, 0, 15, 0, 0, 0, 37, 0, 0, 0, 15, 0, 0, 0, 31, 0, 0, 0, 15, 0, 0, 0, 31, 0, + 47, 0, 12, 0, 0, 0, 44, 0, 26, 0, 24, 0, 18, 0, 44, 0, 19, 0, 28, 0, 34, 0, 24, 0, 26, 0, 24, 0, 26, 0, 24, 0, + 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 12, 0, 0, 0, 33, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 23, 0, 0, 0, 12, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 47, 0, 33, 0, 19, 0, 23, 0, 26, 0, 26, 0, 19, 0, 0, 0, 19, 0, 42, 0, 28, 0, 26, 0, 26, 0, 26, 0, 24, 0, 24, 0, + 0, 0, 21, 0, 0, 0, 44, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 21, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 39, 0, 0, 0, 46, 0, + 19, 0, 33, 0, 25, 0, 0, 0, 34, 0, 19, 0, 31, 0, 35, 0, 19, 0, 17, 0, 26, 0, 24, 0, 26, 0, 26, 0, 19, 0, 24, 0, + 0, 0, 15, 0, 0, 0, 24, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 34, 0, + 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 12, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 12, 0, + 33, 0, 19, 0, 35, 0, 0, 0, 26, 0, 26, 0, 37, 0, 37, 0, 42, 0, 17, 0, 35, 0, 32, 0, 34, 0, 42, 0, 34, 0, 34, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 19, 0, 0, 0, 44, 0, 0, 0, 24, 0, + 0, 0, 45, 0, 0, 0, 7, 0, 0, 0, 42, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 0, 27, 0, 25, 0, 0, 0, 33, 0, 32, 0, 0, 0, 0, 0, 19, 0, 37, 0, 35, 0, 37, 0, 26, 0, 28, 0, 28, 0, 37, 0, + 0, 0, 33, 0, 0, 0, 7, 0, 0, 0, 23, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 34, 0, + 0, 0, 47, 0, 0, 0, 34, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 23, 0, 0, 0, 35, 0, 0, 0, 44, 0, 0, 0, 27, 0, 0, 0, 24, 0, 0, 0, 22, 0, 0, 0, 18, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 42, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 37, 0, 0, 0, 12, 0, 0, 0, 44, 0, 0, 0, 12, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 12, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 36, 0, 0, 0, 32, 0, + 17, 0, 19, 0, 26, 0, 26, 0, 42, 0, 19, 0, 26, 0, 34, 0, 25, 0, 26, 0, 23, 0, 34, 0, 25, 0, 17, 0, 44, 0, 34, 0, + 0, 0, 17, 0, 0, 0, 38, 0, 0, 0, 17, 0, 0, 0, 34, 0, 0, 0, 17, 0, 0, 0, 32, 0, 0, 0, 17, 0, 0, 0, 34, 0, + 0, 0, 15, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 32, 0, 0, 0, 21, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 29, 0, 0, 0, 33, 0, 0, 0, 33, 0, 28, 0, 44, 0, 28, 0, 21, 0, 23, 0, 23, 0, 28, 0, 33, 0, 28, 0, 23, 0, 24, 0, + 0, 0, 14, 0, 0, 0, 33, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 5, 0, 0, 0, 39, 0, 0, 0, 29, 0, 0, 0, 23, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 43, 0, 0, 0, 5, 0, 0, 0, 19, 0, 0, 0, 8, 0, 0, 0, 23, 0, + 21, 0, 12, 0, 0, 0, 0, 0, 33, 0, 33, 0, 34, 0, 35, 0, 21, 0, 12, 0, 19, 0, 0, 0, 33, 0, 33, 0, 28, 0, 28, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 33, 0, + 0, 0, 39, 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 4, 0, + 21, 0, 33, 0, 19, 0, 23, 0, 33, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 19, 0, 19, 0, 33, 0, 33, 0, 19, 0, 28, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 47, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 7, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 22, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 19, 0, 0, 0, 21, 0, 0, 0, 0, 0, 37, 0, 39, 0, 0, 0, 0, 0, 35, 0, 33, 0, 23, 0, 26, 0, 28, 0, + 0, 0, 34, 0, 0, 0, 25, 0, 0, 0, 10, 0, 0, 0, 4, 0, 0, 0, 27, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 18, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39, 0, 35, 0, 46, 0, 37, 0, 0, 0, 24, 0, 37, 0, 28, 0, 12, 0, 19, 0, 0, 0, 34, 0, 0, 0, 10, 0, 35, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 27, 0, 0, 0, 12, 0, 34, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 36, 0, 0, 0, 15, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 12, 0, 33, 0, 0, 0, 0, 0, 15, 0, 33, 0, 0, 0, 0, 0, 20, 0, 29, 0, 0, 0, 19, 0, 29, 0, 21, 0, 47, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 35, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 12, 0, 19, 0, 26, 0, 12, 0, 21, 0, 19, 0, 0, 0, 47, 0, 21, 0, 27, 0, 15, 0, 12, 0, 21, 0, 26, 0, 15, 0, + 0, 0, 12, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 21, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 14, 0, 14, 0, 0, 0, 0, 0, 39, 0, 27, 0, 25, 0, 18, 0, 0, 0, 0, 0, 23, 0, 28, 0, 21, 0, 28, 0, 23, 0, 28, 0, + 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 35, 0, 0, 0, 8, 0, 0, 0, 19, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 14, 0, 14, 0, 0, 0, 0, 0, 12, 0, 12, 0, 34, 0, 26, 0, 0, 0, 0, 0, 23, 0, 0, 0, 21, 0, 27, 0, 23, 0, 40, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 27, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 36, 0, 0, 0, 20, 0, 0, 0, 13, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 23, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 21, 0, 27, 0, 23, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 45, 0, 0, 0, 14, 0, 0, 0, 45, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 25, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 2, 0, 0, 0, 20, 0, 14, 0, 27, 0, 0, 0, 36, 0, 14, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 27, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 5, 0, 0, 0, 12, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 39, 0, 0, 0, 3, 0, 14, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 5, 0, 12, 0, 12, 0, 5, 0, 5, 0, 12, 0, 0, 0, 14, 0, 14, 0, 12, 0, 21, 0, 5, 0, 14, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 5, 0, 3, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 23, 0, 23, 0, 29, 0, 13, 0, 0, 0, 18, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 20, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 34, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 16, 0, 16, 0, 0, 0, 0, 0, 29, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 44, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 3, 0, 8, 0, 8, 0, 2, 0, 5, 0, 14, 0, 0, 0, 11, 0, 8, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 16, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 23, 0, + 0, 0, 5, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, + 3, 0, 3, 0, 8, 0, 8, 0, 8, 0, 8, 0, 0, 0, 0, 0, 8, 0, 5, 0, 0, 0, 0, 0, 3, 0, 2, 0, 8, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 27, 0, 0, 0, 8, 0, 0, 0, 12, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 11, 0, 0, 0, 39, 0, + 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 31, 0, 0, 0, 4, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 27, 0, + 3, 0, 3, 0, 8, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 5, 0, 36, 0, 12, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 7, 0, 0, 0, 0, 0, 30, 0, 8, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 18, 0, 30, 0, 13, 0, 0, 0, 18, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 29, 0, 0, 0, 16, 0, 0, 0, 13, 0, + 0, 0, 3, 0, 0, 0, 46, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 23, 0, 0, 0, 36, 0, 0, 0, 23, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 38, 0, 0, 0, 36, 0, 0, 0, 39, 0, 0, 0, 36, 0, 0, 0, 6, 0, + 2, 0, 2, 0, 0, 0, 0, 0, 8, 0, 8, 0, 0, 0, 10, 0, 16, 0, 8, 0, 0, 0, 0, 0, 30, 0, 8, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 39, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 2, 0, 8, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 11, 0, 8, 0, 0, 0, 8, 0, 3, 0, 7, 0, 20, 0, 8, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 36, 0, 0, 0, 17, 0, 0, 0, 39, 0, 0, 0, 25, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 36, 0, 0, 0, 39, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 33, 0, + 3, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 4, 0, 0, 0, 25, 0, 0, 0, 4, 0, 0, 0, 28, 0, 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 7, 0, 8, 0, 9, 0, 16, 0, 11, 0, 0, 0, 0, 0, 16, 0, 16, 0, 0, 0, 0, 0, 16, 0, 6, 0, 13, 0, 18, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 11, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 39, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 39, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 34, 0, 0, 0, 41, 0, 0, 0, 33, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 33, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 16, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 39, 0, 0, 0, 7, 0, 0, 0, 47, 0, + 0, 0, 39, 0, 0, 0, 18, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 39, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 39, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 4, 0, 8, 0, 2, 0, 11, 0, 9, 0, 0, 0, 0, 0, 11, 0, 9, 0, 0, 0, 0, 0, 11, 0, 6, 0, 6, 0, 18, 0, + 0, 0, 7, 0, 0, 0, 20, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 19, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 36, 0, 0, 0, 16, 0, 0, 0, 6, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 39, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 20, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 31, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 33, 0, 0, 0, 7, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 36, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 29, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 29, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 6, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 1, 0, 0, 0, 34, 0, 0, 0, 45, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 4, 0, 2, 0, 9, 0, 11, 0, 9, 0, 0, 0, 0, 0, 11, 0, 9, 0, 0, 0, 0, 0, 11, 0, 10, 0, 6, 0, 18, 0, + 0, 0, 4, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 16, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 25, 0, 0, 0, 2, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 13, 0, + 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 39, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 36, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 0, 44, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 22, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 30, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -static const unsigned short m03_Tree_model_scale_table[] = +static const unsigned short m03_T3_model_m0_scale_table[] = { - 265, 905,15033, 41, 2356, 7293, 2448, 5501, 256, 45, 882, 597, 441, 489, 2315,27063, - 79, 2509, 1595, 2105, 418, 2698, 291, 786, 71, 2016, 352, 256, 149, 231, 210, 311, - 86, 256, 618, 276, 501, 716, 666, 150, 185, 253, 180, 815, 116, 395, 400, 396, - 149, 506, 378, 360, 31, 79, 61, 310, 99, 428, 256, 158, 5611, 211, 275, 175, - 650, 432, 160, 535, 187, 83, 51, 300, 186, 425, 210, 1676, 2369, 703, 161, 200, - 725, 67, 735, 690, 56, 434, 659, 255, 161, 227, 117, 4210, 324, 131, 1582, 448, - 51, 217, 163, 1711, 177, 128, 1495, 681, 719, 349, 33, 401, 1346, 33, 57, 374, - 570, 892, 149, 395, 827, 106, 396, 302, 77, 564, 807, 426, 747, 396, 199, 393, - 138, 3118, 2875, 1185, 481, 85, 1097, 678, 33, 571, 1131, 513, 2922, 79, 21, 162, - 31130, 649, 381, 79, 855, 36, 195, 197, 697, 6173, 710, 338, 40, 1358, 909, 194, - 275, 133,25152, 50, 217, 83,24896, 337, 52, 600, 413, 83, 142, 211,19336,18998, - 181, 60, 262,11455,28608, 2132,25256, 100, 159,16578, 480, 64, 77, 41,14331, 234, - 164, 404, 129, 30, 19, 4704, 4058, 67,25256, 29, 1480, 856, 77, 67, 59, 252, - 1321, 545, 47, 155, 256, 337, 256, 37, 1672, 151,25226, 132,12928,25038, 7924, 39, - 7,31225, 253, 451, 959, 114, 80, 292,28595, 35, 256, 252, 7212, 259, 256, 256, - 256, 4364, 240, 256, 4, 256, 256, 256, 256, 256, 256, 256, 592, 262, 256, 256, + 175, 361, 263, 192, 202, 264, 71, 263, 149, 115, 57, 243, 237, 77, 277, 157, + 273, 163, 59, 201, 202, 326, 59, 218, 205, 132, 301, 190, 219, 635, 163, 163, + 113, 360, 170, 171, 224, 222, 354, 157, 187, 58, 268, 57, 81, 34, 198, 144, +}; + +static const unsigned char m03_T3_model_m1_state_table[] = +{ + 27, 0, 38, 0, 27, 0, 20, 0, 14, 0, 38, 0, 12, 0, 20, 0, 44, 0, 38, 0, 54, 0, 38, 0, 50, 0, 38, 0, 50, 0, 38, 0, + 0, 0, 54, 0, 0, 0, 44, 0, 0, 0, 54, 0, 0, 0, 38, 0, 0, 0, 44, 0, 0, 0, 55, 0, 0, 0, 50, 0, 0, 0, 50, 0, + 0, 0, 37, 0, 0, 0, 55, 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 0, 50, 0, 0, 0, 35, 0, 0, 0, 50, 0, 0, 0, 11, 0, + 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 41, 0, 0, 0, 50, 0, + 27, 0, 54, 0, 25, 0, 34, 0, 11, 0, 54, 0, 24, 0, 38, 0, 44, 0, 54, 0, 54, 0, 54, 0, 50, 0, 54, 0, 11, 0, 54, 0, + 0, 0, 11, 0, 0, 0, 14, 0, 0, 0, 50, 0, 0, 0, 56, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 11, 0, 0, 0, 11, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 7, 0, + 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 24, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 7, 0, + 27, 0, 24, 0, 0, 0, 0, 0, 7, 0, 37, 0, 24, 0, 54, 0, 55, 0, 50, 0, 27, 0, 58, 0, 11, 0, 37, 0, 11, 0, 37, 0, + 0, 0, 11, 0, 0, 0, 61, 0, 0, 0, 14, 0, 0, 0, 50, 0, 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 12, 0, + 0, 0, 12, 0, 0, 0, 35, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 7, 0, + 0, 0, 12, 0, 0, 0, 24, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, + 24, 0, 5, 0, 21, 0, 0, 0, 7, 0, 13, 0, 12, 0, 60, 0, 11, 0, 50, 0, 0, 0, 24, 0, 14, 0, 55, 0, 7, 0, 24, 0, + 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 15, 0, + 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 15, 0, + 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 35, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 19, 0, + 11, 0, 24, 0, 52, 0, 55, 0, 12, 0, 35, 0, 6, 0, 55, 0, 14, 0, 55, 0, 37, 0, 50, 0, 15, 0, 37, 0, 35, 0, 5, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 19, 0, + 0, 0, 19, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 7, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 14, 0, + 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 44, 0, 0, 0, 38, 0, 0, 0, 29, 0, 0, 0, 60, 0, 0, 0, 38, 0, 0, 0, 44, 0, 0, 0, 38, 0, + 0, 0, 60, 0, 0, 0, 18, 0, 0, 0, 34, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 34, 0, 0, 0, 57, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 34, 0, 0, 0, 38, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 60, 0, + 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, 19, 0, + 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, + 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 19, 0, + 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 35, 0, 0, 0, 52, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 14, 0, + 27, 0, 54, 0, 16, 0, 20, 0, 11, 0, 38, 0, 0, 0, 20, 0, 44, 0, 20, 0, 54, 0, 20, 0, 41, 0, 38, 0, 41, 0, 38, 0, + 0, 0, 44, 0, 0, 0, 54, 0, 0, 0, 37, 0, 0, 0, 57, 0, 0, 0, 44, 0, 0, 0, 16, 0, 0, 0, 41, 0, 0, 0, 59, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 37, 0, 0, 0, 27, 0, 0, 0, 5, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 57, 0, 0, 0, 55, 0, 0, 0, 49, 0, 0, 0, 17, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, + 27, 0, 24, 0, 0, 0, 32, 0, 11, 0, 37, 0, 0, 0, 37, 0, 44, 0, 37, 0, 54, 0, 16, 0, 24, 0, 37, 0, 24, 0, 54, 0, + 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 50, 0, + 0, 0, 21, 0, 0, 0, 24, 0, 0, 0, 50, 0, 0, 0, 13, 0, 0, 0, 6, 0, 0, 0, 50, 0, 0, 0, 11, 0, 0, 0, 7, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 41, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 24, 0, 0, 0, 14, 0, + 24, 0, 24, 0, 49, 0, 0, 0, 7, 0, 24, 0, 59, 0, 37, 0, 27, 0, 11, 0, 0, 0, 27, 0, 11, 0, 37, 0, 50, 0, 37, 0, + 0, 0, 12, 0, 0, 0, 58, 0, 0, 0, 7, 0, 0, 0, 12, 0, 0, 0, 7, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 6, 0, + 0, 0, 7, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 59, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 59, 0, 0, 0, 12, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 29, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 0, 0, + 24, 0, 7, 0, 0, 0, 0, 0, 7, 0, 24, 0, 12, 0, 24, 0, 50, 0, 6, 0, 24, 0, 37, 0, 7, 0, 7, 0, 7, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 5, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 15, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 11, 0, 0, 0, 5, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 12, 0, 55, 0, 35, 0, 12, 0, 12, 0, 14, 0, 14, 0, 11, 0, 15, 0, 24, 0, 14, 0, 14, 0, 12, 0, 24, 0, 24, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 41, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 27, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 42, 0, 0, 0, 6, 0, 0, 0, 55, 0, + 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 7, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 59, 0, + 0, 0, 58, 0, 0, 0, 52, 0, 0, 0, 63, 0, 0, 0, 36, 0, 0, 0, 35, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, 4, 0, + 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 15, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 11, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 5, 0, 0, 0, 24, 0, + 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 12, 0, + 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 15, 0, + 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 12, 0, + 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 24, 0, 0, 0, 52, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 7, 0, 0, 0, 7, 0, + 16, 0, 34, 0, 16, 0, 34, 0, 59, 0, 20, 0, 21, 0, 20, 0, 34, 0, 20, 0, 34, 0, 20, 0, 41, 0, 20, 0, 41, 0, 20, 0, + 0, 0, 16, 0, 0, 0, 49, 0, 0, 0, 16, 0, 0, 0, 57, 0, 0, 0, 34, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 43, 0, + 0, 0, 47, 0, 0, 0, 49, 0, 0, 0, 16, 0, 0, 0, 61, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, + 27, 0, 0, 0, 27, 0, 16, 0, 24, 0, 37, 0, 56, 0, 18, 0, 44, 0, 37, 0, 16, 0, 16, 0, 41, 0, 37, 0, 24, 0, 16, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 24, 0, 0, 0, 13, 0, 0, 0, 24, 0, 0, 0, 7, 0, + 0, 0, 24, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 59, 0, 0, 0, 24, 0, 0, 0, 7, 0, 0, 0, 24, 0, 0, 0, 24, 0, + 0, 0, 13, 0, 0, 0, 21, 0, 0, 0, 21, 0, 0, 0, 11, 0, 0, 0, 5, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 6, 0, + 21, 0, 7, 0, 39, 0, 0, 0, 24, 0, 24, 0, 6, 0, 61, 0, 27, 0, 24, 0, 0, 0, 21, 0, 24, 0, 24, 0, 24, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 12, 0, + 0, 0, 5, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 54, 0, 0, 0, 7, 0, 0, 0, 56, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 6, 0, 5, 0, 56, 0, 7, 0, 12, 0, 14, 0, 50, 0, 24, 0, 12, 0, 0, 0, 14, 0, 11, 0, 7, 0, 24, 0, 5, 0, + 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 59, 0, 41, 0, 13, 0, 11, 0, 56, 0, 0, 0, 11, 0, 50, 0, 0, 0, 37, 0, 14, 0, 21, 0, 0, 0, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 12, 0, 19, 0, 14, 0, 41, 0, 14, 0, 10, 0, 12, 0, 7, 0, 12, 0, 37, 0, 14, 0, 19, 0, 12, 0, 15, 0, 14, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 15, 0, + 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 21, 0, 0, 0, 56, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 11, 0, 0, 0, 7, 0, + 0, 0, 21, 0, 0, 0, 59, 0, 0, 0, 43, 0, 0, 0, 47, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 56, 0, + 12, 0, 15, 0, 19, 0, 12, 0, 27, 0, 12, 0, 19, 0, 12, 0, 11, 0, 12, 0, 19, 0, 15, 0, 7, 0, 12, 0, 14, 0, 7, 0, + 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 12, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 11, 0, 0, 0, 12, 0, + 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 60, 0, 0, 0, 6, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 12, 0, + 12, 0, 15, 0, 14, 0, 15, 0, 12, 0, 12, 0, 12, 0, 7, 0, 12, 0, 15, 0, 14, 0, 15, 0, 12, 0, 12, 0, 14, 0, 12, 0, + 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 12, 0, + 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 14, 0, + 0, 0, 35, 0, 0, 0, 15, 0, 0, 0, 56, 0, 0, 0, 52, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 5, 0, 0, 0, 6, 0, + 16, 0, 16, 0, 16, 0, 16, 0, 41, 0, 20, 0, 0, 0, 20, 0, 34, 0, 20, 0, 34, 0, 20, 0, 41, 0, 20, 0, 17, 0, 20, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, + 0, 0, 32, 0, 0, 0, 25, 0, 0, 0, 47, 0, 0, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 58, 0, + 0, 0, 53, 0, 0, 0, 22, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 26, 0, + 0, 0, 24, 0, 17, 0, 3, 0, 24, 0, 37, 0, 17, 0, 37, 0, 44, 0, 27, 0, 9, 0, 16, 0, 21, 0, 37, 0, 17, 0, 16, 0, + 0, 0, 24, 0, 0, 0, 11, 0, 0, 0, 24, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 6, 0, + 0, 0, 21, 0, 0, 0, 13, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 7, 0, 0, 0, 0, 0, 24, 0, 11, 0, 6, 0, 49, 0, 27, 0, 11, 0, 0, 0, 46, 0, 24, 0, 7, 0, 24, 0, 24, 0, + 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 55, 0, 0, 0, 59, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 61, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 59, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 15, 0, 0, 0, 12, 0, 14, 0, 7, 0, 13, 0, 7, 0, 12, 0, 12, 0, 14, 0, 15, 0, 14, 0, 7, 0, 12, 0, 11, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 14, 0, + 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 5, 0, 0, 0, 57, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 24, 0, 0, 0, 7, 0, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 12, 0, 14, 0, 14, 0, 15, 0, 12, 0, 59, 0, 11, 0, 7, 0, 15, 0, 14, 0, 14, 0, 7, 0, 12, 0, 12, 0, 11, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 12, 0, + 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 6, 0, 0, 0, 35, 0, + 0, 0, 5, 0, 0, 0, 59, 0, 0, 0, 57, 0, 0, 0, 42, 0, 0, 0, 61, 0, 0, 0, 12, 0, 0, 0, 49, 0, 0, 0, 61, 0, + 7, 0, 15, 0, 13, 0, 15, 0, 7, 0, 12, 0, 6, 0, 7, 0, 7, 0, 12, 0, 14, 0, 15, 0, 7, 0, 7, 0, 14, 0, 12, 0, + 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 19, 0, 0, 0, 7, 0, 0, 0, 14, 0, + 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 13, 0, 0, 0, 14, 0, + 0, 0, 46, 0, 0, 0, 13, 0, 0, 0, 49, 0, 0, 0, 52, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 16, 0, 16, 0, 9, 0, 16, 0, 41, 0, 32, 0, 17, 0, 29, 0, 34, 0, 20, 0, 34, 0, 20, 0, 16, 0, 20, 0, 16, 0, 20, 0, + 0, 0, 9, 0, 0, 0, 49, 0, 0, 0, 32, 0, 0, 0, 47, 0, 0, 0, 32, 0, 0, 0, 3, 0, 0, 0, 32, 0, 0, 0, 9, 0, + 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, + 0, 0, 22, 0, 0, 0, 57, 0, 0, 0, 23, 0, 0, 0, 41, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 53, 0, + 27, 0, 24, 0, 0, 0, 0, 0, 21, 0, 21, 0, 41, 0, 37, 0, 16, 0, 37, 0, 9, 0, 0, 0, 21, 0, 37, 0, 0, 0, 27, 0, + 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 61, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 59, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, 0, 0, 35, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 24, 0, 0, 0, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 12, 0, 11, 0, 14, 0, 24, 0, 11, 0, 11, 0, 6, 0, 7, 0, 12, 0, 11, 0, 14, 0, 6, 0, 7, 0, 6, 0, 7, 0, + 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 13, 0, + 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 49, 0, 0, 0, 43, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 5, 0, 0, 0, 11, 0, + 0, 0, 49, 0, 0, 0, 46, 0, 0, 0, 51, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 26, 0, 0, 0, 58, 0, + 7, 0, 12, 0, 7, 0, 14, 0, 6, 0, 7, 0, 6, 0, 6, 0, 7, 0, 7, 0, 7, 0, 14, 0, 11, 0, 7, 0, 13, 0, 11, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 14, 0, + 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 59, 0, 0, 0, 52, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 5, 0, 0, 0, 13, 0, + 0, 0, 56, 0, 0, 0, 1, 0, 0, 0, 30, 0, 0, 0, 63, 0, 0, 0, 6, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 56, 0, + 7, 0, 12, 0, 11, 0, 12, 0, 6, 0, 55, 0, 6, 0, 6, 0, 7, 0, 7, 0, 7, 0, 15, 0, 7, 0, 12, 0, 7, 0, 11, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 15, 0, + 0, 0, 59, 0, 0, 0, 15, 0, 0, 0, 46, 0, 0, 0, 35, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 6, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 30, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 49, 0, 0, 0, 21, 0, + 16, 0, 16, 0, 9, 0, 16, 0, 0, 0, 42, 0, 58, 0, 28, 0, 36, 0, 20, 0, 28, 0, 20, 0, 16, 0, 20, 0, 53, 0, 20, 0, + 0, 0, 9, 0, 0, 0, 43, 0, 0, 0, 9, 0, 0, 0, 60, 0, 0, 0, 18, 0, 0, 0, 17, 0, 0, 0, 47, 0, 0, 0, 3, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 41, 0, 0, 0, 2, 0, 0, 0, 46, 0, 0, 0, 9, 0, 0, 0, 9, 0, + 0, 0, 58, 0, 0, 0, 61, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 25, 0, 0, 0, 23, 0, 0, 0, 58, 0, + 17, 0, 24, 0, 3, 0, 21, 0, 21, 0, 21, 0, 4, 0, 4, 0, 32, 0, 21, 0, 9, 0, 39, 0, 17, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 49, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 46, 0, 0, 0, 61, 0, 0, 0, 16, 0, 0, 0, 62, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 22, 0, 0, 0, 58, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 7, 0, 11, 0, 13, 0, 6, 0, 46, 0, 4, 0, 21, 0, 6, 0, 35, 0, 6, 0, 7, 0, 6, 0, 6, 0, 6, 0, 41, 0, + 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 46, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 41, 0, 0, 0, 14, 0, + 0, 0, 58, 0, 0, 0, 46, 0, 0, 0, 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 59, 0, + 0, 0, 49, 0, 0, 0, 44, 0, 0, 0, 8, 0, 0, 0, 62, 0, 0, 0, 46, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 53, 0, + 6, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 49, 0, 0, 0, 12, 0, 0, 0, 59, 0, 0, 0, 15, 0, 0, 0, 14, 0, 0, 0, 13, 0, + 0, 0, 24, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 58, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 62, 0, 0, 0, 39, 0, 0, 0, 35, 0, 0, 0, 47, 0, 0, 0, 61, 0, + 6, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 21, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 63, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 19, 0, 0, 0, 6, 0, 0, 0, 14, 0, + 0, 0, 45, 0, 0, 0, 61, 0, 0, 0, 2, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 61, 0, 0, 0, 56, 0, + 9, 0, 16, 0, 9, 0, 16, 0, 4, 0, 32, 0, 4, 0, 28, 0, 28, 0, 20, 0, 28, 0, 29, 0, 9, 0, 10, 0, 53, 0, 20, 0, + 0, 0, 9, 0, 0, 0, 58, 0, 0, 0, 9, 0, 0, 0, 49, 0, 0, 0, 18, 0, 0, 0, 3, 0, 0, 0, 23, 0, 0, 0, 3, 0, + 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 27, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 26, 0, + 0, 0, 48, 0, 0, 0, 57, 0, 0, 0, 8, 0, 0, 0, 60, 0, 0, 0, 23, 0, 0, 0, 58, 0, 0, 0, 33, 0, 0, 0, 45, 0, + 17, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 56, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 25, 0, 0, 0, 46, 0, 0, 0, 49, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 49, 0, 0, 0, 9, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 57, 0, 0, 0, 62, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 24, 0, 0, 0, 13, 0, 0, 0, 11, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 58, 0, 0, 0, 57, 0, + 0, 0, 43, 0, 0, 0, 50, 0, 0, 0, 62, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 9, 0, 0, 0, 48, 0, + 5, 0, 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 17, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 24, 0, 0, 0, 61, 0, 0, 0, 63, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 0, 0, 56, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 41, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 0, 0, 0, 51, 0, 0, 0, 10, 0, 0, 0, 42, 0, 0, 0, 46, 0, 0, 0, 6, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 17, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 19, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 24, 0, + 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 36, 0, 0, 0, 31, 0, 0, 0, 46, 0, 0, 0, 59, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 49, 0, 0, 0, 23, 0, 0, 0, 51, 0, 0, 0, 49, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 61, 0, 0, 0, 9, 0, 0, 0, 51, 0, 0, 0, 49, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 2, 0, 0, 0, 39, 0, 0, 0, 49, 0, 0, 0, 23, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 39, 0, 0, 0, 39, 0, 0, 0, 39, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 0, 0, 0, 17, 0, 0, 0, 22, 0, 0, 0, 4, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 9, 0, 2, 0, 18, 0, 26, 0, 18, 0, 26, 0, 28, 0, 28, 0, 10, 0, 51, 0, 29, 0, 23, 0, 10, 0, 2, 0, 10, 0, + 0, 0, 23, 0, 0, 0, 26, 0, 0, 0, 23, 0, 0, 0, 49, 0, 0, 0, 33, 0, 0, 0, 3, 0, 0, 0, 23, 0, 0, 0, 25, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 49, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 25, 0, + 0, 0, 30, 0, 0, 0, 57, 0, 0, 0, 40, 0, 0, 0, 45, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 26, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 49, 0, 0, 0, 28, 0, 0, 0, 51, 0, 0, 0, 40, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 48, 0, 0, 0, 26, 0, 0, 0, 61, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 22, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 47, 0, 0, 0, 53, 0, 0, 0, 56, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 49, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 9, 0, 0, 0, 49, 0, 0, 0, 61, 0, 0, 0, 58, 0, 0, 0, 51, 0, 0, 0, 26, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 47, 0, 0, 0, 3, 0, 0, 0, 39, 0, 0, 0, 22, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 19, 0, 0, 0, 26, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 19, 0, 0, 0, 56, 0, 0, 0, 56, 0, + 0, 0, 22, 0, 0, 0, 58, 0, 0, 0, 51, 0, 0, 0, 62, 0, 0, 0, 56, 0, 0, 0, 13, 0, 0, 0, 40, 0, 0, 0, 49, 0, + 0, 0, 53, 0, 0, 0, 48, 0, 0, 0, 31, 0, 0, 0, 62, 0, 0, 0, 4, 0, 0, 0, 55, 0, 0, 0, 62, 0, 0, 0, 40, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 3, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 62, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 61, 0, 0, 0, 58, 0, + 0, 0, 62, 0, 0, 0, 18, 0, 0, 0, 31, 0, 0, 0, 10, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 58, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 3, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 0, 59, 0, 0, 0, 33, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 25, 0, 0, 0, 0, 0, + 0, 0, 57, 0, 0, 0, 16, 0, 0, 0, 62, 0, 0, 0, 31, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 8, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 26, 0, 0, 0, 40, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 51, 0, 0, 0, 2, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 22, 0, 0, 0, 40, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 48, 0, 0, 0, 25, 0, 0, 0, 49, 0, 0, 0, 33, 0, 0, 0, 51, 0, 0, 0, 22, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 47, 0, 0, 0, 49, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 23, 0, 0, 0, 9, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 53, 0, 0, 0, 30, 0, 0, 0, 1, 0, 0, 0, 26, 0, 0, 0, 53, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 26, 0, 0, 0, 61, 0, 0, 0, 31, 0, 0, 0, 62, 0, 0, 0, 53, 0, 0, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 31, 0, 0, 0, 62, 0, 0, 0, 8, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 26, 0, 0, 0, 58, 0, 0, 0, 28, 0, 0, 0, 51, 0, 0, 0, 53, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 62, 0, 0, 0, 53, 0, 0, 0, 53, 0, 0, 0, 30, 0, 0, 0, 51, 0, 0, 0, 30, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 0, 0, 0, 8, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 59, 0, 0, 0, 29, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 22, 0, 0, 0, 63, 0, 0, 0, 34, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 38, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 53, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 8, 0, 30, 0, 8, 0, 25, 0, 8, 0, 40, 0, 33, 0, 31, 0, 8, 0, 51, 0, 2, 0, 30, 0, 8, 0, 8, 0, 2, 0, + 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 8, 0, 0, 0, 40, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 8, 0, 0, 0, 25, 0, + 0, 0, 8, 0, 0, 0, 26, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 3, 0, + 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 45, 0, + 8, 0, 0, 0, 8, 0, 0, 0, 45, 0, 0, 0, 40, 0, 0, 0, 31, 0, 0, 0, 51, 0, 0, 0, 8, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 23, 0, 0, 0, 48, 0, 0, 0, 3, 0, 0, 0, 31, 0, 0, 0, 51, 0, 0, 0, 8, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 23, 0, 0, 0, 48, 0, 0, 0, 47, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 23, 0, 0, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0, 55, 0, 0, 0, 18, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 8, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 23, 0, 0, 0, 53, 0, 0, 0, 48, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 13, 0, 0, 0, 57, 0, 0, 0, 12, 0, 0, 0, 59, 0, 0, 0, 19, 0, 0, 0, 39, 0, 0, 0, 13, 0, + 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 58, 0, 0, 0, 19, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 57, 0, 0, 0, 19, 0, + 8, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 2, 0, 0, 0, 33, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 12, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 19, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, 48, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 34, 0, 0, 0, 19, 0, 0, 0, 39, 0, 0, 0, 15, 0, 0, 0, 14, 0, 0, 0, 35, 0, + 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 35, 0, 0, 0, 19, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 5, 0, 0, 0, 12, 0, +}; + +static const unsigned short m03_T3_model_m1_scale_table[] = +{ + 146, 5988, 8766, 1635, 945, 416, 357, 243, 1723, 199, 94, 244, 278, 420, 455, 420, + 97, 205, 150, 955, 65, 214, 252, 446, 201, 717, 786, 95, 148, 38, 685, 349, + 165, 1081, 41, 93, 55, 86, 27, 273, 2276, 136, 57, 115, 61, 504, 1055, 400, + 275, 1722, 130, 191, 13, 768, 32, 56,17460,23635, 1003, 376, 89, 8333, 3175, 78, +}; + +static const unsigned char m03_T3_model_m2_state_table[] = +{ + 0, 0, 16, 0, 0, 0, 26, 0, 10, 0, 31, 0, 31, 0, 0, 0, 16, 0, 16, 0, 31, 0, 0, 0, 14, 0, 31, 0, 14, 0, 31, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 19, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 19, 0, 0, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 11, 0, 0, 0, 30, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 21, 0, 0, 0, 28, 0, 12, 0, 22, 0, 6, 0, 0, 0, 16, 0, 20, 0, 0, 0, 14, 0, 14, 0, 10, 0, 31, 0, 14, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 29, 0, 0, 0, 19, 0, 0, 0, 29, 0, + 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 14, 0, + 12, 0, 25, 0, 26, 0, 0, 0, 27, 0, 20, 0, 27, 0, 25, 0, 14, 0, 29, 0, 14, 0, 14, 0, 17, 0, 14, 0, 14, 0, 14, 0, + 0, 0, 22, 0, 0, 0, 30, 0, 0, 0, 27, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 20, 0, 0, 0, 14, 0, + 0, 0, 25, 0, 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 14, 0, + 0, 0, 22, 0, 0, 0, 30, 0, 0, 0, 14, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 29, 0, + 25, 0, 28, 0, 22, 0, 7, 0, 27, 0, 27, 0, 28, 0, 30, 0, 14, 0, 22, 0, 0, 0, 19, 0, 14, 0, 14, 0, 29, 0, 14, 0, + 0, 0, 14, 0, 0, 0, 31, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 31, 0, 0, 0, 12, 0, 0, 0, 6, 0, + 0, 0, 20, 0, 0, 0, 30, 0, 0, 0, 29, 0, 0, 0, 20, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 17, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 29, 0, 21, 0, 10, 0, 27, 0, 17, 0, 16, 0, 19, 0, 29, 0, 29, 0, 23, 0, 29, 0, 22, 0, 22, 0, 0, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 10, 0, + 0, 0, 5, 0, 0, 0, 22, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 20, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 16, 0, 0, 0, 29, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, + 0, 0, 29, 0, 0, 0, 20, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 28, 0, 0, 0, 17, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 20, 0, 0, 0, 30, 0, 0, 0, 24, 0, 0, 0, 21, 0, + 22, 0, 22, 0, 22, 0, 22, 0, 17, 0, 17, 0, 17, 0, 22, 0, 20, 0, 22, 0, 22, 0, 30, 0, 30, 0, 22, 0, 17, 0, 17, 0, + 0, 0, 22, 0, 0, 0, 30, 0, 0, 0, 17, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 22, 0, + 0, 0, 14, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 14, 0, 0, 0, 17, 0, + 0, 0, 14, 0, 0, 0, 29, 0, 0, 0, 19, 0, 0, 0, 24, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 25, 0, 2, 0, 19, 0, 19, 0, 14, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 19, 0, 19, 0, 19, 0, 19, 0, + 0, 0, 16, 0, 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 24, 0, 0, 0, 19, 0, 0, 0, 16, 0, + 0, 0, 7, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 25, 0, + 0, 0, 16, 0, 0, 0, 26, 0, 0, 0, 25, 0, 0, 0, 20, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 5, 0, 0, 0, 21, 0, + 0, 0, 19, 0, 7, 0, 25, 0, 14, 0, 10, 0, 21, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 19, 0, 19, 0, 19, 0, 14, 0, + 0, 0, 12, 0, 0, 0, 30, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 29, 0, + 0, 0, 31, 0, 0, 0, 2, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 14, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 23, 0, 0, 0, 10, 0, 0, 0, 14, 0, + 19, 0, 12, 0, 23, 0, 12, 0, 14, 0, 22, 0, 31, 0, 10, 0, 12, 0, 10, 0, 0, 0, 25, 0, 10, 0, 27, 0, 6, 0, 19, 0, + 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 17, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 14, 0, + 0, 0, 14, 0, 0, 0, 21, 0, 0, 0, 12, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 29, 0, + 0, 0, 29, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 27, 0, + 14, 0, 20, 0, 14, 0, 6, 0, 17, 0, 27, 0, 6, 0, 30, 0, 6, 0, 20, 0, 0, 0, 30, 0, 19, 0, 29, 0, 14, 0, 14, 0, + 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 29, 0, 0, 0, 27, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 28, 0, 0, 0, 17, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 0, 22, 0, 0, 0, 6, 0, 30, 0, 14, 0, 13, 0, 22, 0, 27, 0, 0, 0, 0, 0, 14, 0, 30, 0, 29, 0, 27, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 16, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 13, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 19, 0, + 0, 0, 24, 0, 0, 0, 7, 0, 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, 30, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 0, 0, 31, 0, 0, 0, 20, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 29, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 6, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 17, 0, + 0, 0, 17, 0, 0, 0, 25, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 29, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 11, 0, + 10, 0, 10, 0, 10, 0, 17, 0, 14, 0, 10, 0, 14, 0, 29, 0, 14, 0, 10, 0, 20, 0, 19, 0, 14, 0, 17, 0, 22, 0, 10, 0, + 0, 0, 10, 0, 0, 0, 22, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 17, 0, 0, 0, 10, 0, 0, 0, 10, 0, + 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 6, 0, + 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 17, 0, 0, 0, 11, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 19, 0, 25, 0, 25, 0, 16, 0, 0, 0, 16, 0, 0, 0, 19, 0, 6, 0, 19, 0, 24, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 11, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 23, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 25, 0, + 16, 0, 12, 0, 15, 0, 25, 0, 12, 0, 12, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0, 0, 0, 12, 0, 10, 0, 0, 0, 10, 0, + 0, 0, 12, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 19, 0, + 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 29, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 13, 0, 0, 0, 14, 0, + 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 30, 0, + 0, 0, 19, 0, 12, 0, 14, 0, 6, 0, 19, 0, 0, 0, 24, 0, 12, 0, 10, 0, 0, 0, 14, 0, 10, 0, 19, 0, 6, 0, 22, 0, + 0, 0, 29, 0, 0, 0, 14, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 24, 0, 0, 0, 14, 0, 0, 0, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 29, 0, 0, 0, 26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 14, 0, 24, 0, 0, 0, 19, 0, 22, 0, 31, 0, 0, 0, 19, 0, 14, 0, 23, 0, 30, 0, 17, 0, 17, 0, 6, 0, 27, 0, + 0, 0, 22, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 17, 0, 0, 0, 22, 0, 0, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 29, 0, 14, 0, 13, 0, 20, 0, 10, 0, 31, 0, 0, 0, 24, 0, 27, 0, 0, 0, 7, 0, 14, 0, 30, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 19, 0, 17, 0, 10, 0, 0, 0, 14, 0, 0, 0, 25, 0, 0, 0, 14, 0, 7, 0, 22, 0, 17, 0, 14, 0, 29, 0, 14, 0, + 0, 0, 10, 0, 0, 0, 25, 0, 0, 0, 19, 0, 0, 0, 17, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 24, 0, 0, 0, 14, 0, + 0, 0, 5, 0, 0, 0, 30, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 14, 0, 10, 0, 0, 0, 22, 0, 14, 0, 14, 0, 20, 0, 22, 0, 29, 0, 10, 0, 27, 0, 14, 0, 14, 0, 10, 0, 29, 0, 22, 0, + 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 29, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 10, 0, 0, 0, 14, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 29, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 21, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 21, 0, 0, 0, 21, 0, + 10, 0, 17, 0, 10, 0, 10, 0, 19, 0, 14, 0, 6, 0, 14, 0, 10, 0, 10, 0, 10, 0, 17, 0, 10, 0, 10, 0, 20, 0, 10, 0, + 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 17, 0, 0, 0, 10, 0, 0, 0, 10, 0, + 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 22, 0, 0, 0, 19, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 5, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 24, 0, 15, 0, 11, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 16, 0, 11, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, + 0, 0, 15, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 25, 0, 0, 0, 13, 0, 0, 0, 23, 0, + 0, 0, 9, 0, 0, 0, 30, 0, 0, 0, 24, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 0, 29, 0, 0, 0, 24, 0, 0, 0, 23, 0, + 0, 0, 6, 0, 25, 0, 0, 0, 0, 0, 6, 0, 19, 0, 23, 0, 0, 0, 12, 0, 11, 0, 0, 0, 12, 0, 6, 0, 0, 0, 12, 0, + 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 14, 0, + 0, 0, 23, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 30, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 10, 0, 0, 0, 14, 0, 6, 0, 14, 0, 23, 0, 30, 0, 0, 0, 10, 0, 0, 0, 14, 0, 6, 0, 27, 0, 0, 0, 19, 0, + 0, 0, 13, 0, 0, 0, 29, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 30, 0, 0, 0, 22, 0, 0, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 25, 0, 0, 0, 30, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 10, 0, 0, 0, 6, 0, 14, 0, 10, 0, 14, 0, 12, 0, 22, 0, 19, 0, 0, 0, 19, 0, 14, 0, 10, 0, 21, 0, 10, 0, + 0, 0, 6, 0, 0, 0, 17, 0, 0, 0, 19, 0, 0, 0, 25, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 24, 0, + 0, 0, 11, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 5, 0, 0, 0, 23, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 24, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 6, 0, 10, 0, 14, 0, 10, 0, 25, 0, 10, 0, 31, 0, 19, 0, 0, 0, 10, 0, 19, 0, 14, 0, 14, 0, 10, 0, 17, 0, 12, 0, + 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 20, 0, + 0, 0, 19, 0, 0, 0, 29, 0, 0, 0, 25, 0, 0, 0, 29, 0, 0, 0, 19, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 22, 0, + 6, 0, 10, 0, 6, 0, 10, 0, 6, 0, 14, 0, 12, 0, 25, 0, 6, 0, 10, 0, 6, 0, 10, 0, 6, 0, 10, 0, 6, 0, 19, 0, + 0, 0, 6, 0, 0, 0, 29, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 19, 0, 0, 0, 6, 0, 0, 0, 12, 0, + 0, 0, 10, 0, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 11, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0, 0, 0, + 4, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 0, 16, 0, 16, 0, 3, 0, 16, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 13, 0, 0, 0, 3, 0, + 0, 0, 16, 0, 0, 0, 18, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 21, 0, 0, 0, 4, 0, 0, 0, 11, 0, + 0, 0, 24, 0, 0, 0, 30, 0, 0, 0, 24, 0, 0, 0, 28, 0, 0, 0, 26, 0, 0, 0, 25, 0, 0, 0, 4, 0, 0, 0, 25, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 0, 11, 0, 11, 0, 6, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0, 30, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 6, 0, 14, 0, 6, 0, 6, 0, 6, 0, 19, 0, 11, 0, 11, 0, 6, 0, 0, 0, 19, 0, 6, 0, 6, 0, 12, 0, 12, 0, + 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 15, 0, 0, 0, 25, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 22, 0, 0, 0, 5, 0, 0, 0, 25, 0, + 12, 0, 6, 0, 6, 0, 12, 0, 12, 0, 10, 0, 6, 0, 19, 0, 6, 0, 10, 0, 6, 0, 10, 0, 6, 0, 6, 0, 11, 0, 13, 0, + 0, 0, 6, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 12, 0, 0, 0, 19, 0, + 0, 0, 11, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, + 0, 0, 23, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 25, 0, + 6, 0, 19, 0, 6, 0, 14, 0, 12, 0, 20, 0, 12, 0, 11, 0, 11, 0, 12, 0, 11, 0, 14, 0, 6, 0, 14, 0, 6, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 6, 0, + 0, 0, 23, 0, 0, 0, 27, 0, 0, 0, 25, 0, 0, 0, 18, 0, 0, 0, 14, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 25, 0, + 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 15, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 0, 0, 5, 0, 16, 0, 5, 0, 13, 0, 13, 0, 23, 0, 0, 0, 3, 0, 16, 0, 3, 0, 0, 0, 13, 0, 13, 0, 18, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 21, 0, 0, 0, 5, 0, 0, 0, 23, 0, 0, 0, 7, 0, 0, 0, 25, 0, 0, 0, 7, 0, 0, 0, 7, 0, + 0, 0, 15, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 21, 0, 0, 0, 9, 0, 0, 0, 2, 0, + 0, 0, 25, 0, 0, 0, 14, 0, 0, 0, 24, 0, 0, 0, 17, 0, 0, 0, 15, 0, 0, 0, 21, 0, 0, 0, 2, 0, 0, 0, 23, 0, + 5, 0, 13, 0, 5, 0, 13, 0, 13, 0, 13, 0, 0, 0, 0, 0, 4, 0, 13, 0, 0, 0, 0, 0, 13, 0, 13, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 13, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 13, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 12, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0, 13, 0, + 0, 0, 5, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 4, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 0, 0, 15, 0, 0, 0, 11, 0, 0, 0, 23, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 23, 0, 0, 0, 29, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 23, 0, + 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 24, 0, + 0, 0, 16, 0, 0, 0, 7, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 25, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 5, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 21, 0, 0, 0, 3, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 24, 0, 0, 0, 22, 0, + 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 23, 0, 0, 0, 25, 0, + 0, 0, 23, 0, 0, 0, 15, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 30, 0, 0, 0, 24, 0, 0, 0, 25, 0, + 5, 0, 5, 0, 3, 0, 16, 0, 5, 0, 0, 0, 0, 0, 15, 0, 3, 0, 7, 0, 1, 0, 4, 0, 4, 0, 5, 0, 4, 0, 4, 0, + 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 25, 0, 0, 0, 7, 0, 0, 0, 18, 0, + 0, 0, 15, 0, 0, 0, 21, 0, 0, 0, 9, 0, 0, 0, 24, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 25, 0, + 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 23, 0, + 5, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 7, 0, 0, 0, 18, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 24, 0, 0, 0, 15, 0, 0, 0, 25, 0, 0, 0, 7, 0, 0, 0, 21, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 3, 0, 0, 0, 24, 0, 0, 0, 7, 0, 0, 0, 24, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0, 0, 27, 0, 0, 0, 18, 0, 0, 0, 31, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 21, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 26, 0, + 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 25, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 25, 0, + 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 2, 0, 0, 0, 15, 0, 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 21, 0, + 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 11, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 21, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 3, 0, 0, 0, 31, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 26, 0, 0, 0, 25, 0, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 26, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 24, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 15, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 3, 0, 1, 0, 7, 0, 3, 0, 7, 0, 18, 0, 3, 0, 9, 0, 7, 0, 1, 0, 7, 0, 15, 0, 7, 0, 3, 0, 4, 0, + 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0, 15, 0, + 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 24, 0, 0, 0, 9, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 15, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 25, 0, 0, 0, 15, 0, 0, 0, 23, 0, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 5, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 24, 0, 0, 0, 30, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 23, 0, 0, 0, 25, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 15, 0, 0, 0, 25, 0, + 0, 0, 21, 0, 0, 0, 4, 0, 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 23, 0, 0, 0, 31, 0, 0, 0, 9, 0, 0, 0, 31, 0, + 0, 0, 21, 0, 0, 0, 26, 0, 0, 0, 25, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2, 0, 0, 0, 30, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 25, 0, 0, 0, 6, 0, + 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 31, 0, 0, 0, 26, 0, 0, 0, 21, 0, 0, 0, 9, 0, 0, 0, 25, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 2, 0, 0, 0, 15, 0, 0, 0, 9, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 9, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 8, 0, 0, 0, 26, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 18, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 21, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 24, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 15, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 25, 0, 0, 0, 8, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 21, 0, 0, 0, 3, 0, 0, 0, 25, 0, 0, 0, 9, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 14, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 2, 0, 8, 0, 2, 0, 2, 0, 8, 0, 2, 0, 2, 0, 2, 0, 2, 0, 8, 0, 15, 0, 2, 0, 2, 0, 2, 0, 8, 0, + 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 8, 0, + 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 23, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 26, 0, 0, 0, 8, 0, 0, 0, 24, 0, 0, 0, 2, 0, 0, 0, 8, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 15, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 15, 0, 0, 0, 2, 0, 0, 0, 23, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 25, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 28, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 9, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, 7, 0, 0, 0, 18, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 21, 0, 0, 0, 12, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, 9, 0, 0, 0, 28, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 15, 0, 0, 0, 30, 0, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, 30, 0, 0, 0, 28, 0, 0, 0, 23, 0, 0, 0, 30, 0, 0, 0, 18, 0, 0, 0, 31, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 26, 0, 0, 0, 17, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, +}; + +static const unsigned short m03_T3_model_m2_scale_table[] = +{ + 472,20762,24765, 7318, 5757, 1556, 689, 518, 1234,11325, 372, 350, 711, 192, 239, 5770, + 375, 247, 2701, 396, 244, 4087, 122, 1641, 1171, 576, 612, 186, 99, 94, 68, 185, +}; + +static const unsigned char m03_Tx_model_m0_state_table[] = +{ + 50, 50, 60, 18, 0, 0, 0, 0, 50, 60, 62, 62, 40, 40, 19, 19, 27, 50, 27, 27, 0, 0, 0, 0, 27, 27, 27, 19, 50, 50, 15, 19, + 50, 50, 50, 27, 0, 0, 0, 0, 27, 50, 60, 62, 38, 50, 19, 19, 27, 27, 50, 27, 0, 0, 0, 0, 27, 27, 62, 62, 60, 50, 25, 19, + 50, 50, 49, 27, 0, 0, 0, 0, 0, 50, 62, 27, 14, 43, 0, 62, 62, 27, 27, 62, 0, 0, 0, 0, 49, 27, 27, 62, 27, 50, 62, 62, + 27, 27, 27, 62, 0, 0, 0, 0, 27, 27, 62, 62, 60, 62, 62, 62, 27, 27, 27, 19, 0, 0, 0, 0, 27, 27, 27, 62, 27, 27, 27, 62, + 38, 50, 40, 40, 0, 0, 0, 0, 60, 40, 40, 62, 38, 52, 60, 19, 50, 50, 50, 27, 0, 0, 0, 0, 27, 27, 27, 19, 60, 40, 44, 19, + 60, 50, 40, 27, 0, 0, 0, 0, 27, 50, 50, 62, 38, 38, 15, 19, 50, 50, 50, 27, 0, 0, 0, 0, 27, 27, 62, 19, 60, 40, 38, 19, + 0, 62, 0, 49, 0, 0, 0, 0, 27, 62, 49, 62, 0, 40, 0, 62, 27, 53, 49, 62, 0, 0, 0, 0, 27, 49, 27, 62, 0, 50, 62, 62, + 27, 62, 27, 62, 0, 0, 0, 0, 27, 27, 60, 62, 40, 60, 40, 62, 27, 27, 27, 19, 0, 0, 0, 0, 27, 27, 27, 62, 50, 27, 62, 62, + 38, 38, 30, 25, 0, 0, 0, 0, 60, 40, 0, 40, 44, 15, 0, 18, 40, 60, 15, 22, 0, 0, 0, 0, 27, 50, 27, 19, 38, 30, 0, 18, + 60, 40, 40, 51, 0, 0, 0, 0, 27, 40, 50, 19, 44, 46, 11, 18, 40, 40, 40, 51, 0, 0, 0, 0, 27, 27, 62, 19, 38, 30, 44, 18, + 0, 60, 0, 49, 0, 0, 0, 0, 62, 0, 49, 49, 52, 40, 25, 62, 27, 25, 0, 62, 0, 0, 0, 0, 27, 0, 27, 62, 0, 14, 19, 62, + 62, 62, 40, 62, 0, 0, 0, 0, 27, 27, 62, 62, 60, 25, 50, 62, 27, 27, 27, 62, 0, 0, 0, 0, 27, 27, 27, 62, 60, 60, 22, 19, + 46, 46, 31, 46, 0, 0, 0, 0, 62, 25, 0, 16, 18, 0, 0, 16, 60, 38, 0, 22, 0, 0, 0, 0, 62, 62, 18, 19, 38, 46, 10, 57, + 46, 46, 51, 51, 0, 0, 0, 0, 27, 60, 62, 51, 31, 31, 0, 16, 40, 40, 52, 51, 0, 0, 0, 0, 27, 62, 40, 18, 44, 38, 0, 48, + 51, 40, 0, 36, 0, 0, 0, 0, 9, 27, 42, 22, 25, 0, 59, 60, 0, 0, 51, 62, 0, 0, 0, 0, 0, 62, 49, 62, 40, 0, 53, 19, + 62, 60, 60, 51, 0, 0, 0, 0, 27, 49, 62, 27, 19, 25, 50, 19, 25, 60, 30, 62, 0, 0, 0, 0, 27, 27, 27, 62, 60, 38, 50, 19, + 46, 0, 4, 54, 0, 0, 0, 0, 62, 0, 34, 46, 0, 16, 39, 39, 51, 38, 0, 39, 0, 0, 0, 0, 53, 62, 16, 57, 44, 46, 61, 39, + 51, 44, 11, 54, 0, 0, 0, 0, 27, 62, 46, 16, 55, 29, 39, 39, 46, 46, 0, 39, 0, 0, 0, 0, 27, 62, 0, 60, 44, 54, 0, 39, + 38, 0, 0, 36, 0, 0, 0, 0, 50, 0, 46, 18, 21, 14, 0, 60, 0, 0, 39, 18, 0, 0, 0, 0, 27, 53, 16, 40, 0, 27, 22, 19, + 53, 53, 52, 36, 0, 0, 0, 0, 27, 27, 16, 27, 46, 43, 0, 19, 22, 22, 0, 19, 0, 0, 0, 0, 27, 49, 62, 62, 36, 0, 26, 19, + 34, 34, 34, 32, 0, 0, 0, 0, 22, 47, 9, 39, 0, 0, 39, 39, 51, 51, 34, 39, 0, 0, 0, 0, 27, 0, 56, 0, 0, 44, 45, 39, + 57, 0, 0, 54, 0, 0, 0, 0, 27, 62, 0, 39, 34, 0, 0, 39, 51, 0, 48, 0, 0, 0, 0, 0, 27, 49, 27, 16, 0, 0, 2, 39, + 53, 16, 4, 54, 0, 0, 0, 0, 40, 10, 0, 50, 0, 4, 20, 60, 51, 19, 39, 20, 0, 0, 0, 0, 9, 36, 62, 60, 43, 62, 42, 50, + 0, 0, 19, 48, 0, 0, 0, 0, 49, 62, 9, 27, 18, 18, 61, 22, 22, 0, 25, 62, 0, 0, 0, 0, 27, 36, 27, 49, 0, 47, 40, 25, + 34, 0, 34, 34, 0, 0, 0, 0, 0, 53, 57, 2, 61, 32, 34, 56, 20, 59, 61, 56, 0, 0, 0, 0, 27, 30, 0, 46, 37, 0, 56, 56, + 56, 61, 0, 56, 0, 0, 0, 0, 49, 1, 39, 57, 61, 61, 61, 56, 48, 48, 33, 56, 0, 0, 0, 0, 62, 27, 0, 44, 34, 32, 63, 56, + 7, 0, 17, 0, 0, 0, 0, 0, 24, 24, 0, 60, 57, 0, 43, 14, 53, 38, 16, 52, 0, 0, 0, 0, 0, 49, 49, 10, 18, 17, 8, 50, + 54, 43, 12, 48, 0, 0, 0, 0, 27, 26, 0, 62, 37, 0, 19, 22, 46, 9, 53, 8, 0, 0, 0, 0, 27, 62, 46, 58, 23, 22, 0, 0, + 34, 48, 13, 45, 0, 0, 0, 0, 27, 16, 17, 4, 56, 55, 0, 56, 10, 19, 61, 45, 0, 0, 0, 0, 43, 53, 27, 56, 34, 0, 13, 56, + 56, 2, 63, 56, 0, 0, 0, 0, 49, 22, 24, 56, 3, 55, 0, 56, 0, 0, 12, 33, 0, 0, 0, 0, 27, 27, 0, 52, 55, 32, 56, 56, + 11, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 46, 34, 55, 61, 0, 19, 35, 43, 54, 0, 0, 0, 0, 27, 0, 18, 16, 0, 36, 35, 18, + 9, 8, 10, 26, 0, 0, 0, 0, 19, 0, 7, 20, 38, 0, 9, 0, 16, 48, 39, 13, 0, 0, 0, 0, 62, 0, 0, 27, 49, 35, 0, 0, + 30, 30, 50, 25, 0, 0, 0, 0, 30, 30, 25, 50, 52, 15, 15, 19, 50, 50, 50, 40, 0, 0, 0, 0, 62, 50, 40, 36, 52, 52, 14, 36, + 60, 40, 40, 60, 0, 0, 0, 0, 62, 60, 40, 60, 17, 15, 17, 19, 40, 50, 50, 40, 0, 0, 0, 0, 27, 50, 50, 60, 25, 52, 59, 19, + 25, 30, 50, 50, 0, 0, 0, 0, 50, 62, 49, 62, 62, 40, 50, 62, 62, 62, 49, 50, 0, 0, 0, 0, 27, 49, 40, 49, 27, 30, 19, 62, + 50, 62, 62, 60, 0, 0, 0, 0, 62, 62, 62, 62, 53, 40, 60, 62, 62, 62, 27, 19, 0, 0, 0, 0, 27, 62, 62, 62, 53, 62, 50, 19, + 15, 38, 25, 25, 0, 0, 0, 0, 52, 15, 0, 25, 11, 15, 46, 17, 60, 30, 30, 52, 0, 0, 0, 0, 62, 19, 22, 25, 51, 46, 0, 17, + 51, 52, 15, 51, 0, 0, 0, 0, 53, 15, 59, 36, 31, 11, 16, 17, 60, 52, 40, 51, 0, 0, 0, 0, 62, 50, 25, 52, 17, 17, 31, 17, + 0, 50, 0, 53, 0, 0, 0, 0, 50, 50, 19, 19, 30, 40, 40, 50, 60, 62, 40, 50, 0, 0, 0, 0, 50, 49, 49, 50, 50, 40, 62, 62, + 53, 60, 62, 60, 0, 0, 0, 0, 62, 53, 49, 19, 51, 38, 60, 19, 60, 60, 49, 19, 0, 0, 0, 0, 27, 27, 30, 40, 25, 25, 19, 19, + 46, 31, 11, 15, 0, 0, 0, 0, 36, 17, 0, 17, 0, 8, 0, 16, 38, 52, 11, 44, 0, 0, 0, 0, 62, 52, 0, 0, 59, 7, 0, 16, + 46, 44, 14, 46, 0, 0, 0, 0, 53, 59, 0, 46, 31, 0, 0, 16, 38, 14, 11, 46, 0, 0, 0, 0, 62, 53, 44, 46, 31, 31, 0, 16, + 0, 40, 0, 53, 0, 0, 0, 0, 62, 27, 26, 60, 0, 43, 30, 50, 0, 50, 22, 50, 0, 0, 0, 0, 27, 27, 62, 19, 25, 14, 40, 62, + 53, 22, 60, 60, 0, 0, 0, 0, 27, 49, 50, 62, 0, 0, 51, 19, 25, 53, 22, 36, 0, 0, 0, 0, 49, 27, 49, 19, 22, 22, 19, 19, + 8, 0, 4, 8, 0, 0, 0, 0, 14, 0, 0, 0, 21, 10, 0, 0, 44, 31, 0, 0, 0, 0, 0, 0, 49, 0, 44, 0, 0, 33, 34, 0, + 0, 31, 31, 54, 0, 0, 0, 0, 53, 0, 0, 16, 0, 37, 61, 0, 44, 31, 37, 0, 0, 0, 0, 0, 49, 20, 0, 54, 48, 0, 10, 32, + 0, 0, 60, 59, 0, 0, 0, 0, 50, 0, 39, 50, 51, 11, 38, 19, 53, 50, 0, 51, 0, 0, 0, 0, 27, 49, 58, 18, 49, 19, 22, 62, + 36, 53, 0, 36, 0, 0, 0, 0, 49, 49, 43, 0, 0, 0, 22, 19, 51, 22, 0, 47, 0, 0, 0, 0, 49, 27, 40, 19, 0, 16, 58, 18, + 10, 0, 56, 34, 0, 0, 0, 0, 0, 57, 0, 0, 35, 61, 35, 39, 44, 0, 56, 4, 0, 0, 0, 0, 49, 0, 0, 0, 34, 32, 35, 39, + 0, 0, 0, 54, 0, 0, 0, 0, 62, 0, 18, 54, 61, 35, 35, 39, 44, 0, 56, 4, 0, 0, 0, 0, 49, 44, 0, 32, 34, 32, 56, 39, + 25, 0, 0, 59, 0, 0, 0, 0, 51, 0, 42, 59, 9, 24, 50, 19, 43, 60, 29, 17, 0, 0, 0, 0, 60, 53, 49, 62, 0, 0, 59, 19, + 53, 36, 0, 36, 0, 0, 0, 0, 49, 49, 17, 16, 57, 42, 0, 22, 22, 22, 30, 47, 0, 0, 0, 0, 49, 40, 19, 0, 31, 0, 0, 18, + 32, 34, 56, 2, 0, 0, 0, 0, 0, 33, 3, 0, 61, 56, 61, 2, 0, 9, 56, 2, 0, 0, 0, 0, 49, 51, 1, 39, 34, 12, 45, 39, + 32, 34, 45, 2, 0, 0, 0, 0, 27, 57, 32, 61, 12, 45, 1, 2, 34, 0, 39, 56, 0, 0, 0, 0, 49, 53, 27, 61, 34, 3, 45, 56, + 0, 0, 0, 59, 0, 0, 0, 0, 4, 58, 0, 0, 0, 0, 0, 0, 0, 62, 41, 16, 0, 0, 0, 0, 60, 27, 9, 62, 16, 0, 50, 19, + 0, 0, 36, 25, 0, 0, 0, 0, 0, 0, 35, 2, 0, 0, 43, 38, 0, 0, 20, 0, 0, 0, 0, 0, 27, 50, 62, 22, 52, 28, 0, 0, + 1, 12, 6, 2, 0, 0, 0, 0, 0, 44, 1, 56, 1, 56, 56, 56, 0, 0, 45, 56, 0, 0, 0, 0, 42, 7, 10, 10, 61, 0, 45, 56, + 34, 0, 12, 1, 0, 0, 0, 0, 49, 61, 0, 13, 45, 56, 12, 56, 34, 61, 45, 56, 0, 0, 0, 0, 27, 27, 0, 10, 34, 56, 56, 56, + 4, 32, 51, 14, 0, 0, 0, 0, 21, 35, 3, 7, 0, 8, 37, 59, 18, 20, 63, 0, 0, 0, 0, 0, 15, 0, 53, 0, 16, 2, 0, 0, + 49, 44, 21, 0, 0, 0, 0, 0, 27, 49, 49, 38, 31, 18, 0, 40, 18, 0, 2, 44, 0, 0, 0, 0, 27, 0, 35, 58, 42, 26, 0, 0, + 13, 1, 5, 3, 0, 0, 0, 0, 27, 57, 15, 55, 45, 6, 6, 3, 0, 0, 34, 1, 0, 0, 0, 0, 20, 14, 19, 2, 42, 32, 5, 56, + 56, 56, 0, 3, 0, 0, 0, 0, 27, 22, 9, 56, 45, 56, 3, 3, 0, 56, 6, 56, 0, 0, 0, 0, 27, 27, 10, 0, 61, 35, 45, 56, + 18, 48, 57, 0, 0, 0, 0, 0, 0, 62, 0, 45, 0, 0, 0, 14, 37, 0, 62, 9, 0, 0, 0, 0, 9, 37, 27, 0, 43, 35, 38, 15, + 0, 0, 27, 33, 0, 0, 0, 0, 0, 27, 17, 60, 0, 33, 16, 44, 0, 56, 2, 0, 0, 0, 0, 0, 27, 0, 38, 54, 0, 20, 0, 51, + 52, 15, 30, 15, 0, 0, 0, 0, 14, 15, 14, 15, 11, 14, 14, 17, 52, 30, 15, 52, 0, 0, 0, 0, 62, 30, 59, 15, 19, 14, 11, 17, + 52, 52, 52, 17, 0, 0, 0, 0, 53, 17, 59, 17, 11, 11, 17, 17, 25, 30, 15, 52, 0, 0, 0, 0, 62, 30, 15, 15, 14, 17, 59, 17, + 50, 50, 40, 53, 0, 0, 0, 0, 50, 50, 60, 53, 38, 25, 53, 62, 50, 50, 62, 50, 0, 0, 0, 0, 27, 62, 62, 53, 62, 62, 62, 62, + 50, 60, 62, 60, 0, 0, 0, 0, 62, 62, 40, 19, 36, 51, 19, 19, 62, 60, 25, 50, 0, 0, 0, 0, 27, 62, 40, 19, 53, 19, 19, 19, + 11, 11, 14, 11, 0, 0, 0, 0, 14, 46, 14, 11, 7, 0, 11, 11, 14, 14, 11, 11, 0, 0, 0, 0, 53, 46, 0, 11, 11, 43, 11, 11, + 14, 11, 14, 11, 0, 0, 0, 0, 36, 14, 8, 11, 31, 11, 7, 11, 15, 52, 11, 11, 0, 0, 0, 0, 53, 25, 11, 11, 59, 8, 28, 11, + 15, 30, 25, 30, 0, 0, 0, 0, 53, 40, 62, 50, 0, 51, 60, 50, 49, 50, 14, 53, 0, 0, 0, 0, 49, 50, 62, 50, 62, 0, 19, 50, + 53, 53, 40, 36, 0, 0, 0, 0, 49, 62, 22, 19, 36, 46, 25, 19, 53, 53, 22, 36, 0, 0, 0, 0, 27, 53, 30, 19, 22, 22, 36, 19, + 0, 0, 0, 8, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 31, 31, 0, 8, 0, 0, 0, 0, 53, 17, 0, 0, 28, 0, 0, 0, + 0, 0, 8, 8, 0, 0, 0, 0, 53, 28, 4, 0, 0, 23, 0, 16, 31, 31, 0, 8, 0, 0, 0, 0, 49, 20, 0, 0, 0, 21, 0, 0, + 51, 25, 0, 14, 0, 0, 0, 0, 62, 53, 0, 19, 0, 0, 30, 50, 50, 40, 15, 17, 0, 0, 0, 0, 27, 27, 49, 18, 50, 50, 30, 50, + 53, 22, 0, 17, 0, 0, 0, 0, 27, 49, 0, 19, 11, 22, 38, 19, 19, 53, 22, 47, 0, 0, 0, 0, 27, 49, 0, 18, 22, 22, 36, 19, + 10, 0, 63, 2, 0, 0, 0, 0, 0, 16, 32, 9, 35, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 20, 58, 37, 0, 37, 0, 10, 4, + 0, 0, 0, 54, 0, 0, 0, 0, 36, 0, 0, 0, 35, 35, 10, 0, 0, 0, 0, 4, 0, 0, 0, 0, 49, 20, 0, 0, 37, 10, 12, 32, + 42, 0, 0, 14, 0, 0, 0, 0, 62, 25, 0, 20, 0, 59, 0, 36, 42, 14, 0, 52, 0, 0, 0, 0, 62, 53, 58, 40, 52, 0, 40, 40, + 22, 22, 0, 17, 0, 0, 0, 0, 27, 27, 43, 51, 51, 59, 38, 51, 0, 22, 0, 47, 0, 0, 0, 0, 49, 49, 0, 0, 22, 0, 0, 47, + 61, 10, 1, 2, 0, 0, 0, 0, 0, 0, 12, 10, 35, 35, 13, 2, 0, 0, 56, 2, 0, 0, 0, 0, 58, 0, 0, 0, 35, 33, 10, 2, + 10, 0, 35, 2, 0, 0, 0, 0, 62, 32, 13, 12, 35, 13, 13, 2, 34, 0, 56, 56, 0, 0, 0, 0, 49, 58, 13, 35, 35, 10, 13, 2, + 60, 19, 0, 9, 0, 0, 0, 0, 50, 0, 43, 20, 43, 23, 52, 0, 38, 0, 0, 0, 0, 0, 0, 0, 27, 50, 50, 0, 0, 0, 30, 50, + 53, 22, 43, 0, 0, 0, 0, 0, 49, 49, 21, 0, 0, 0, 58, 38, 22, 0, 0, 0, 0, 0, 0, 0, 49, 27, 30, 30, 0, 0, 0, 38, + 56, 12, 56, 1, 0, 0, 0, 0, 0, 0, 2, 39, 35, 56, 13, 1, 34, 55, 45, 2, 0, 0, 0, 0, 58, 0, 23, 34, 35, 33, 35, 12, + 61, 13, 45, 2, 0, 0, 0, 0, 49, 0, 2, 56, 13, 45, 56, 1, 0, 34, 45, 56, 0, 0, 0, 0, 49, 20, 29, 56, 34, 45, 45, 56, + 38, 0, 44, 9, 0, 0, 0, 0, 62, 39, 50, 7, 0, 48, 0, 38, 48, 62, 0, 16, 0, 0, 0, 0, 0, 17, 50, 62, 62, 4, 57, 40, + 22, 0, 45, 0, 0, 0, 0, 0, 49, 62, 18, 31, 55, 0, 17, 51, 22, 0, 51, 16, 0, 0, 0, 0, 49, 27, 43, 28, 0, 0, 0, 20, + 56, 0, 5, 3, 0, 0, 0, 0, 0, 0, 54, 5, 61, 34, 56, 3, 61, 33, 13, 3, 0, 0, 0, 0, 0, 62, 28, 4, 61, 13, 45, 12, + 61, 45, 6, 3, 0, 0, 0, 0, 27, 58, 56, 45, 45, 45, 39, 1, 0, 0, 6, 56, 0, 0, 0, 0, 27, 27, 0, 45, 61, 6, 45, 56, + 38, 0, 0, 31, 0, 0, 0, 0, 19, 53, 17, 0, 0, 0, 9, 44, 47, 28, 0, 0, 0, 0, 0, 0, 62, 44, 27, 0, 50, 0, 0, 0, + 22, 0, 60, 0, 0, 0, 0, 0, 27, 49, 10, 29, 0, 56, 39, 38, 9, 50, 0, 0, 0, 0, 0, 0, 27, 43, 18, 47, 43, 0, 22, 0, + 45, 1, 6, 5, 0, 0, 0, 0, 0, 0, 13, 5, 1, 6, 6, 3, 0, 48, 45, 3, 0, 0, 0, 0, 27, 0, 35, 9, 0, 7, 5, 56, + 34, 56, 56, 3, 0, 0, 0, 0, 27, 27, 16, 56, 45, 39, 13, 3, 0, 56, 6, 5, 0, 0, 0, 0, 27, 49, 2, 1, 61, 45, 56, 3, + 32, 0, 55, 0, 0, 0, 0, 0, 0, 19, 0, 4, 3, 0, 7, 0, 61, 0, 0, 0, 0, 0, 0, 0, 49, 0, 49, 0, 16, 55, 0, 25, + 4, 0, 0, 31, 0, 0, 0, 0, 60, 27, 18, 2, 61, 12, 0, 44, 60, 57, 0, 0, 0, 0, 0, 0, 0, 27, 27, 0, 44, 27, 0, 0, + 11, 14, 11, 11, 0, 0, 0, 0, 14, 14, 11, 11, 31, 8, 11, 11, 14, 17, 11, 11, 0, 0, 0, 0, 53, 17, 11, 46, 59, 14, 11, 43, + 36, 14, 11, 11, 0, 0, 0, 0, 36, 14, 11, 17, 11, 11, 11, 11, 14, 52, 11, 11, 0, 0, 0, 0, 53, 30, 11, 11, 59, 11, 11, 11, + 30, 36, 25, 30, 0, 0, 0, 0, 60, 30, 30, 40, 22, 0, 53, 53, 40, 50, 50, 30, 0, 0, 0, 0, 27, 50, 50, 53, 62, 60, 62, 50, + 53, 53, 19, 36, 0, 0, 0, 0, 62, 53, 36, 19, 25, 14, 50, 19, 60, 53, 30, 36, 0, 0, 0, 0, 49, 62, 19, 36, 53, 52, 53, 19, + 0, 8, 0, 8, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 16, 0, 59, 11, 9, 8, 0, 0, 0, 0, 20, 31, 0, 11, 43, 0, 0, 0, + 31, 31, 0, 8, 0, 0, 0, 0, 36, 43, 0, 16, 0, 21, 8, 16, 59, 11, 8, 8, 0, 0, 0, 0, 53, 11, 28, 28, 28, 21, 0, 0, + 40, 52, 11, 14, 0, 0, 0, 0, 36, 25, 15, 36, 0, 0, 40, 19, 20, 50, 20, 30, 0, 0, 0, 0, 27, 62, 38, 19, 40, 0, 53, 50, + 53, 36, 19, 17, 0, 0, 0, 0, 62, 53, 59, 18, 59, 0, 19, 19, 53, 53, 22, 17, 0, 0, 0, 0, 49, 53, 0, 47, 22, 59, 19, 19, + 37, 21, 0, 4, 0, 0, 0, 0, 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 10, 10, 4, 0, 28, 28, 4, 0, 0, 0, 0, 0, 49, 20, 9, 0, 37, 0, 10, 0, + 17, 15, 0, 14, 0, 0, 0, 0, 0, 62, 0, 17, 0, 0, 51, 40, 30, 50, 0, 43, 0, 0, 0, 0, 49, 27, 0, 60, 46, 30, 19, 19, + 53, 22, 38, 17, 0, 0, 0, 0, 49, 49, 18, 18, 59, 43, 36, 18, 53, 53, 20, 47, 0, 0, 0, 0, 49, 49, 59, 59, 20, 22, 58, 19, + 10, 10, 13, 2, 0, 0, 0, 0, 0, 54, 35, 61, 10, 2, 10, 2, 37, 0, 35, 2, 0, 0, 0, 0, 58, 0, 0, 0, 37, 0, 61, 4, + 0, 35, 13, 2, 0, 0, 0, 0, 58, 42, 2, 61, 35, 35, 0, 2, 37, 37, 35, 2, 0, 0, 0, 0, 58, 26, 0, 61, 35, 12, 35, 2, + 59, 0, 0, 9, 0, 0, 0, 0, 27, 62, 0, 0, 44, 0, 15, 51, 17, 25, 30, 52, 0, 0, 0, 0, 49, 25, 22, 38, 0, 33, 50, 40, + 22, 22, 0, 44, 0, 0, 0, 0, 49, 0, 57, 18, 0, 59, 38, 51, 0, 22, 58, 0, 0, 0, 0, 0, 49, 49, 47, 0, 59, 0, 40, 22, + 12, 12, 3, 1, 0, 0, 0, 0, 0, 0, 5, 1, 12, 35, 13, 2, 61, 61, 45, 1, 0, 0, 0, 0, 26, 0, 0, 0, 35, 0, 13, 12, + 35, 12, 45, 1, 0, 0, 0, 0, 58, 0, 61, 56, 12, 45, 61, 1, 35, 35, 45, 1, 0, 0, 0, 0, 49, 42, 35, 56, 35, 13, 56, 12, + 57, 44, 0, 9, 0, 0, 0, 0, 49, 48, 0, 0, 0, 0, 0, 52, 50, 40, 0, 0, 0, 0, 0, 0, 27, 27, 0, 18, 0, 46, 9, 50, + 22, 22, 17, 44, 0, 0, 0, 0, 27, 49, 53, 0, 44, 57, 0, 47, 0, 22, 0, 46, 0, 0, 0, 0, 27, 0, 18, 40, 0, 39, 0, 38, + 13, 13, 6, 3, 0, 0, 0, 0, 58, 0, 29, 0, 13, 56, 56, 1, 61, 55, 45, 3, 0, 0, 0, 0, 47, 0, 0, 0, 35, 45, 45, 12, + 35, 35, 45, 1, 0, 0, 0, 0, 49, 0, 0, 56, 45, 45, 35, 3, 35, 35, 5, 1, 0, 0, 0, 0, 49, 0, 56, 0, 34, 6, 45, 56, + 46, 0, 0, 0, 0, 0, 0, 0, 25, 62, 3, 38, 0, 36, 0, 43, 12, 0, 34, 0, 0, 0, 0, 0, 0, 21, 0, 60, 0, 4, 46, 15, + 22, 0, 0, 44, 0, 0, 0, 0, 27, 22, 0, 33, 44, 31, 0, 38, 0, 0, 36, 0, 0, 0, 0, 0, 27, 7, 10, 53, 0, 0, 0, 0, + 13, 13, 6, 3, 0, 0, 0, 0, 42, 0, 2, 13, 45, 56, 45, 3, 61, 37, 45, 3, 0, 0, 0, 0, 26, 41, 19, 4, 34, 6, 56, 12, + 35, 56, 5, 3, 0, 0, 0, 0, 53, 8, 3, 56, 13, 45, 56, 1, 56, 35, 6, 1, 0, 0, 0, 0, 49, 44, 34, 0, 34, 35, 5, 56, + 0, 22, 0, 33, 0, 0, 0, 0, 62, 0, 2, 32, 0, 41, 25, 0, 42, 20, 40, 0, 0, 0, 0, 0, 53, 62, 18, 0, 0, 0, 30, 16, + 43, 0, 26, 0, 0, 0, 0, 0, 0, 35, 0, 29, 2, 0, 0, 0, 22, 0, 3, 31, 0, 0, 0, 0, 27, 49, 62, 19, 0, 26, 62, 0, + 45, 56, 6, 5, 0, 0, 0, 0, 49, 27, 2, 37, 45, 5, 56, 5, 56, 56, 6, 3, 0, 0, 0, 0, 27, 0, 12, 0, 0, 0, 45, 45, + 55, 0, 6, 5, 0, 0, 0, 0, 49, 42, 24, 2, 45, 45, 45, 3, 55, 56, 45, 5, 0, 0, 0, 0, 27, 0, 0, 0, 34, 0, 13, 45, + 0, 0, 0, 33, 0, 0, 0, 0, 51, 4, 63, 17, 19, 0, 0, 31, 56, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, + 0, 0, 0, 31, 0, 0, 0, 0, 50, 51, 0, 19, 8, 44, 0, 0, 62, 60, 13, 0, 0, 0, 0, 0, 0, 27, 37, 0, 0, 7, 0, 51, + 11, 11, 8, 8, 0, 0, 0, 0, 7, 7, 8, 8, 31, 8, 7, 11, 11, 14, 0, 8, 0, 0, 0, 0, 20, 11, 28, 0, 59, 31, 11, 0, + 11, 11, 8, 8, 0, 0, 0, 0, 36, 59, 8, 8, 31, 0, 28, 11, 11, 11, 8, 8, 0, 0, 0, 0, 53, 11, 8, 31, 59, 7, 28, 11, + 25, 30, 14, 14, 0, 0, 0, 0, 36, 53, 17, 38, 22, 58, 36, 19, 40, 50, 40, 30, 0, 0, 0, 0, 27, 36, 14, 25, 53, 27, 53, 50, + 53, 36, 14, 17, 0, 0, 0, 0, 53, 53, 36, 36, 25, 25, 19, 19, 25, 53, 36, 17, 0, 0, 0, 0, 49, 53, 17, 47, 36, 25, 36, 19, + 21, 21, 0, 4, 0, 0, 0, 0, 0, 21, 0, 21, 0, 21, 0, 0, 31, 31, 0, 8, 0, 0, 0, 0, 20, 0, 0, 23, 28, 21, 0, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 41, 0, 0, 7, 31, 0, 4, 0, 0, 0, 0, 53, 28, 0, 21, 28, 4, 0, 0, + 15, 14, 0, 14, 0, 0, 0, 0, 53, 25, 59, 14, 25, 0, 30, 36, 60, 30, 0, 43, 0, 0, 0, 0, 49, 49, 36, 0, 0, 25, 53, 22, + 36, 36, 36, 17, 0, 0, 0, 0, 49, 62, 17, 17, 59, 59, 51, 36, 36, 36, 59, 43, 0, 0, 0, 0, 49, 20, 17, 17, 47, 59, 59, 18, + 10, 10, 10, 2, 0, 0, 0, 0, 0, 0, 10, 4, 10, 12, 10, 0, 37, 0, 10, 4, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 33, 4, + 0, 0, 0, 4, 0, 0, 0, 0, 47, 0, 0, 0, 35, 10, 0, 0, 37, 0, 10, 2, 0, 0, 0, 0, 53, 26, 0, 0, 37, 0, 37, 0, + 51, 59, 0, 7, 0, 0, 0, 0, 30, 40, 0, 43, 31, 0, 38, 38, 40, 40, 0, 43, 0, 0, 0, 0, 27, 62, 36, 0, 25, 0, 53, 36, + 20, 51, 0, 43, 0, 0, 0, 0, 49, 58, 18, 18, 44, 9, 36, 51, 53, 53, 42, 16, 0, 0, 0, 0, 27, 49, 24, 0, 22, 46, 40, 36, + 35, 10, 13, 2, 0, 0, 0, 0, 0, 0, 1, 1, 12, 35, 12, 2, 35, 0, 13, 2, 0, 0, 0, 0, 58, 0, 0, 61, 35, 55, 61, 61, + 35, 35, 12, 2, 0, 0, 0, 0, 47, 0, 0, 61, 12, 45, 12, 2, 37, 35, 12, 2, 0, 0, 0, 0, 58, 58, 37, 61, 35, 35, 35, 61, + 59, 0, 44, 9, 0, 0, 0, 0, 53, 62, 0, 17, 59, 0, 59, 38, 0, 40, 0, 0, 0, 0, 0, 0, 27, 50, 18, 38, 60, 36, 38, 51, + 51, 22, 20, 44, 0, 0, 0, 0, 49, 22, 51, 16, 0, 26, 38, 36, 38, 22, 0, 47, 0, 0, 0, 0, 49, 27, 0, 38, 0, 0, 0, 22, + 12, 13, 13, 1, 0, 0, 0, 0, 0, 0, 12, 1, 12, 13, 12, 12, 61, 35, 45, 1, 0, 0, 0, 0, 20, 44, 0, 0, 61, 45, 61, 2, + 12, 12, 13, 1, 0, 0, 0, 0, 20, 0, 61, 61, 12, 3, 13, 1, 35, 35, 45, 1, 0, 0, 0, 0, 49, 26, 0, 45, 35, 45, 13, 12, + 0, 0, 0, 9, 0, 0, 0, 0, 40, 27, 21, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 42, 50, 17, 60, + 22, 22, 0, 44, 0, 0, 0, 0, 49, 62, 58, 22, 44, 29, 0, 47, 60, 25, 0, 0, 0, 0, 0, 0, 49, 27, 20, 25, 51, 0, 43, 38, + 13, 13, 6, 3, 0, 0, 0, 0, 22, 0, 61, 45, 12, 45, 13, 1, 56, 45, 45, 3, 0, 0, 0, 0, 22, 0, 0, 0, 35, 6, 1, 1, + 35, 12, 45, 3, 0, 0, 0, 0, 58, 0, 32, 56, 13, 45, 13, 1, 0, 35, 45, 1, 0, 0, 0, 0, 49, 32, 26, 45, 56, 13, 45, 13, + 0, 0, 0, 33, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 31, 0, 0, 50, 0, 11, 0, 0, 0, 0, 27, 27, 36, 0, 19, 2, 0, 51, + 20, 0, 0, 0, 0, 0, 0, 0, 27, 47, 62, 0, 0, 7, 42, 59, 44, 40, 0, 0, 0, 0, 0, 0, 27, 62, 0, 0, 0, 21, 0, 0, + 45, 45, 6, 5, 0, 0, 0, 0, 0, 21, 13, 56, 13, 13, 13, 3, 55, 45, 45, 3, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 45, 45, + 35, 45, 45, 3, 0, 0, 0, 0, 49, 21, 56, 45, 45, 45, 45, 1, 2, 35, 45, 5, 0, 0, 0, 0, 49, 2, 10, 3, 34, 45, 56, 56, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 49, 60, 45, 5, 8, 0, 31, 35, 22, 0, 44, 0, 0, 0, 0, 23, 40, 27, 0, 32, 60, 0, 38, + 51, 0, 44, 44, 0, 0, 0, 0, 49, 19, 1, 38, 54, 46, 0, 31, 0, 15, 37, 0, 0, 0, 0, 0, 27, 52, 62, 53, 52, 12, 22, 0, + 45, 56, 5, 5, 0, 0, 0, 0, 20, 60, 5, 0, 45, 5, 45, 5, 56, 56, 5, 5, 0, 0, 0, 0, 62, 25, 7, 2, 0, 6, 45, 45, + 55, 56, 6, 5, 0, 0, 0, 0, 27, 0, 45, 6, 45, 6, 5, 5, 56, 35, 6, 5, 0, 0, 0, 0, 27, 0, 45, 3, 45, 45, 6, 56, + 0, 17, 0, 33, 0, 0, 0, 0, 44, 33, 0, 0, 0, 0, 55, 54, 4, 0, 0, 0, 0, 0, 0, 0, 27, 36, 27, 62, 0, 2, 0, 0, + 36, 0, 0, 31, 0, 0, 0, 0, 0, 0, 24, 2, 1, 5, 0, 46, 60, 60, 62, 0, 0, 0, 0, 0, 27, 27, 14, 14, 0, 9, 60, 53, + 8, 8, 8, 8, 0, 0, 0, 0, 21, 0, 21, 4, 21, 0, 8, 0, 7, 11, 0, 8, 0, 0, 0, 0, 20, 20, 0, 0, 28, 0, 0, 11, + 11, 11, 0, 8, 0, 0, 0, 0, 20, 0, 28, 0, 0, 0, 0, 16, 59, 11, 8, 8, 0, 0, 0, 0, 53, 20, 0, 0, 28, 0, 7, 0, + 14, 36, 14, 14, 0, 0, 0, 0, 36, 53, 43, 0, 59, 0, 36, 19, 36, 53, 43, 43, 0, 0, 0, 0, 49, 49, 47, 0, 62, 0, 30, 36, + 53, 36, 11, 43, 0, 0, 0, 0, 49, 53, 43, 53, 47, 0, 36, 19, 53, 36, 14, 47, 0, 0, 0, 0, 49, 40, 44, 59, 19, 0, 53, 18, + 23, 21, 4, 4, 0, 0, 0, 0, 0, 21, 4, 4, 23, 63, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 47, 0, 0, 37, 0, 0, 0, 16, 28, 28, 4, 4, 0, 0, 0, 0, 20, 28, 0, 21, 0, 63, 0, 0, + 14, 14, 7, 7, 0, 0, 0, 0, 22, 0, 17, 0, 14, 0, 14, 36, 36, 36, 0, 43, 0, 0, 0, 0, 49, 49, 0, 0, 51, 0, 19, 53, + 36, 36, 43, 43, 0, 0, 0, 0, 53, 22, 43, 17, 59, 49, 19, 51, 36, 53, 0, 43, 0, 0, 0, 0, 49, 62, 47, 25, 22, 21, 17, 19, + 10, 10, 2, 2, 0, 0, 0, 0, 10, 0, 2, 2, 10, 0, 10, 61, 37, 0, 10, 2, 0, 0, 0, 0, 58, 26, 61, 61, 37, 10, 4, 61, + 37, 0, 2, 2, 0, 0, 0, 0, 42, 0, 10, 61, 35, 37, 4, 0, 37, 37, 10, 2, 0, 0, 0, 0, 58, 26, 0, 61, 37, 61, 0, 0, + 59, 14, 0, 9, 0, 0, 0, 0, 53, 49, 43, 43, 59, 33, 0, 38, 20, 40, 0, 0, 0, 0, 0, 0, 27, 27, 36, 22, 38, 26, 38, 18, + 36, 36, 0, 43, 0, 0, 0, 0, 49, 60, 0, 0, 47, 24, 22, 19, 22, 22, 11, 43, 0, 0, 0, 0, 49, 27, 59, 0, 22, 8, 47, 51, + 12, 12, 1, 1, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 2, 12, 35, 35, 12, 1, 0, 0, 0, 0, 58, 58, 33, 0, 37, 55, 12, 61, + 35, 35, 12, 2, 0, 0, 0, 0, 42, 0, 63, 1, 12, 45, 12, 2, 35, 35, 1, 2, 0, 0, 0, 0, 58, 58, 63, 61, 35, 13, 35, 61, + 44, 0, 43, 9, 0, 0, 0, 0, 60, 49, 0, 0, 59, 3, 0, 52, 22, 25, 0, 0, 0, 0, 0, 0, 49, 27, 0, 0, 60, 0, 51, 51, + 22, 22, 0, 44, 0, 0, 0, 0, 49, 49, 58, 22, 44, 24, 0, 36, 22, 22, 11, 0, 0, 0, 0, 0, 27, 27, 0, 14, 22, 35, 0, 38, + 13, 13, 3, 3, 0, 0, 0, 0, 0, 0, 13, 13, 12, 6, 12, 12, 13, 35, 45, 1, 0, 0, 0, 0, 58, 42, 37, 0, 35, 0, 1, 12, + 12, 12, 1, 1, 0, 0, 0, 0, 0, 0, 45, 56, 12, 6, 13, 12, 35, 35, 45, 1, 0, 0, 0, 0, 58, 0, 0, 55, 12, 28, 35, 12, + 31, 0, 33, 9, 0, 0, 0, 0, 0, 49, 16, 33, 0, 33, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 22, 0, 0, 37, 0, 0, + 47, 51, 0, 44, 0, 0, 0, 0, 49, 40, 0, 0, 57, 23, 0, 59, 40, 0, 32, 44, 0, 0, 0, 0, 27, 27, 0, 62, 7, 11, 0, 0, + 13, 13, 5, 3, 0, 0, 0, 0, 0, 0, 45, 45, 13, 6, 45, 1, 35, 45, 45, 1, 0, 0, 0, 0, 0, 0, 0, 61, 55, 0, 45, 12, + 61, 13, 5, 3, 0, 0, 0, 0, 0, 0, 45, 56, 12, 6, 45, 1, 12, 35, 45, 3, 0, 0, 0, 0, 49, 0, 56, 0, 12, 0, 45, 1, + 0, 0, 0, 33, 0, 0, 0, 0, 27, 27, 38, 41, 21, 2, 0, 44, 0, 0, 9, 31, 0, 0, 0, 0, 50, 27, 0, 0, 8, 1, 30, 0, + 0, 43, 0, 0, 0, 0, 0, 0, 27, 52, 43, 0, 31, 34, 44, 57, 22, 51, 61, 44, 0, 0, 0, 0, 27, 49, 0, 15, 0, 62, 15, 22, + 45, 45, 6, 5, 0, 0, 0, 0, 0, 0, 45, 45, 45, 5, 45, 3, 13, 13, 3, 3, 0, 0, 0, 0, 0, 0, 32, 0, 61, 2, 45, 12, + 13, 45, 45, 3, 0, 0, 0, 0, 27, 0, 33, 6, 45, 2, 45, 45, 34, 3, 55, 5, 0, 0, 0, 0, 62, 20, 8, 45, 0, 5, 56, 45, + 0, 0, 0, 33, 0, 0, 0, 0, 27, 0, 45, 32, 0, 53, 0, 57, 51, 40, 0, 0, 0, 0, 0, 0, 0, 48, 27, 40, 27, 0, 0, 0, + 9, 57, 0, 0, 0, 0, 0, 0, 49, 3, 49, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 16, 0, 0, 0, 0, + 45, 6, 6, 5, 0, 0, 0, 0, 0, 60, 5, 6, 45, 0, 45, 5, 55, 1, 6, 5, 0, 0, 0, 0, 27, 49, 0, 55, 56, 5, 45, 45, + 45, 56, 45, 5, 0, 0, 0, 0, 27, 0, 56, 0, 56, 6, 3, 5, 45, 41, 6, 5, 0, 0, 0, 0, 27, 53, 0, 0, 12, 1, 5, 45, + 0, 4, 54, 55, 0, 0, 0, 0, 0, 38, 7, 10, 0, 6, 0, 9, 32, 62, 44, 33, 0, 0, 0, 0, 27, 62, 25, 15, 0, 43, 19, 59, + 22, 0, 0, 0, 0, 0, 0, 0, 27, 27, 0, 9, 33, 0, 0, 0, 0, 62, 0, 38, 0, 0, 0, 0, 27, 27, 24, 27, 54, 0, 0, 0, + 21, 21, 21, 4, 0, 0, 0, 0, 21, 0, 4, 0, 21, 0, 0, 0, 31, 43, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 28, 0, 8, 0, + 28, 28, 0, 0, 0, 0, 0, 0, 47, 0, 8, 0, 28, 0, 0, 28, 31, 31, 0, 4, 0, 0, 0, 0, 20, 0, 0, 0, 28, 0, 8, 11, + 14, 14, 7, 7, 0, 0, 0, 0, 14, 0, 43, 0, 17, 0, 17, 19, 20, 19, 43, 43, 0, 0, 0, 0, 53, 0, 16, 0, 19, 0, 0, 27, + 36, 36, 43, 43, 0, 0, 0, 0, 53, 0, 36, 0, 0, 0, 19, 62, 20, 53, 43, 43, 0, 0, 0, 0, 49, 0, 28, 0, 36, 0, 53, 19, + 23, 4, 10, 4, 0, 0, 0, 0, 10, 0, 10, 10, 0, 0, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 28, 0, 10, 37, 0, 0, 0, 0, + 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 23, 37, 37, 0, 0, 0, 0, 28, 0, 4, 0, 0, 0, 0, 20, 0, 4, 35, 0, 0, 21, 0, + 11, 14, 0, 7, 0, 0, 0, 0, 14, 0, 0, 43, 0, 0, 14, 38, 36, 36, 43, 0, 0, 0, 0, 0, 53, 0, 0, 9, 50, 0, 51, 22, + 36, 36, 43, 43, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 17, 18, 20, 36, 0, 43, 0, 0, 0, 0, 49, 0, 43, 59, 36, 0, 17, 18, + 10, 2, 12, 2, 0, 0, 0, 0, 10, 0, 12, 12, 10, 0, 12, 61, 10, 10, 12, 2, 0, 0, 0, 0, 42, 0, 61, 61, 10, 0, 10, 0, + 37, 10, 12, 2, 0, 0, 0, 0, 42, 0, 61, 61, 35, 0, 61, 61, 37, 37, 2, 2, 0, 0, 0, 0, 58, 0, 10, 13, 35, 0, 0, 61, + 14, 14, 9, 9, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 44, 0, 47, 36, 0, 0, 0, 0, 0, 0, 62, 0, 18, 38, 0, 0, 0, 0, + 20, 36, 0, 43, 0, 0, 0, 0, 49, 0, 59, 0, 59, 0, 25, 36, 53, 22, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 22, 0, 0, 38, + 12, 12, 1, 1, 0, 0, 0, 0, 10, 0, 13, 1, 12, 0, 1, 12, 35, 35, 12, 1, 0, 0, 0, 0, 0, 0, 61, 61, 10, 0, 12, 61, + 35, 35, 1, 1, 0, 0, 0, 0, 42, 0, 12, 13, 12, 0, 12, 61, 35, 35, 13, 1, 0, 0, 0, 0, 58, 0, 35, 13, 35, 0, 12, 61, + 0, 0, 0, 9, 0, 0, 0, 0, 60, 0, 54, 0, 0, 0, 0, 44, 38, 40, 0, 0, 0, 0, 0, 0, 49, 0, 0, 22, 0, 0, 0, 38, + 22, 22, 38, 0, 0, 0, 0, 0, 27, 0, 0, 22, 0, 0, 47, 38, 36, 22, 0, 0, 0, 0, 0, 0, 27, 0, 44, 38, 38, 0, 53, 0, + 13, 13, 3, 3, 0, 0, 0, 0, 39, 0, 13, 45, 12, 0, 13, 1, 13, 13, 45, 3, 0, 0, 0, 0, 58, 0, 35, 61, 35, 0, 1, 12, + 12, 12, 45, 3, 0, 0, 0, 0, 47, 0, 56, 45, 13, 0, 12, 12, 12, 35, 1, 3, 0, 0, 0, 0, 58, 0, 0, 45, 35, 0, 56, 12, + 0, 0, 0, 33, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 59, 0, 46, 0, 44, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 44, 44, 0, 0, 0, 0, 62, 0, 0, 0, 57, 0, 0, 59, 22, 0, 42, 44, 0, 0, 0, 0, 49, 0, 19, 57, 50, 0, 0, 22, + 13, 3, 5, 3, 0, 0, 0, 0, 35, 0, 45, 45, 13, 0, 45, 3, 13, 35, 45, 3, 0, 0, 0, 0, 22, 0, 0, 0, 13, 0, 13, 12, + 35, 13, 45, 3, 0, 0, 0, 0, 58, 0, 45, 56, 13, 0, 13, 3, 35, 35, 45, 3, 0, 0, 0, 0, 49, 0, 54, 56, 12, 0, 45, 45, + 0, 0, 33, 33, 0, 0, 0, 0, 0, 0, 4, 29, 0, 0, 0, 0, 0, 0, 4, 31, 0, 0, 0, 0, 27, 0, 22, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 28, 44, 0, 0, 37, 0, 0, 0, 0, 0, 49, 0, 42, 34, 43, 0, 0, 0, + 13, 45, 6, 5, 0, 0, 0, 0, 0, 0, 61, 5, 45, 0, 45, 3, 45, 45, 45, 3, 0, 0, 0, 0, 49, 0, 0, 0, 12, 0, 45, 45, + 45, 45, 45, 3, 0, 0, 0, 0, 53, 0, 5, 0, 45, 0, 45, 45, 45, 6, 5, 3, 0, 0, 0, 0, 49, 0, 0, 0, 45, 0, 45, 45, + 41, 44, 0, 33, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 54, 52, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 59, 3, 28, 0, 44, 59, 14, 46, 45, 0, 0, 0, 0, 0, 27, 0, 51, 15, 0, 0, 0, 59, + 45, 6, 6, 6, 0, 0, 0, 0, 48, 0, 61, 6, 45, 0, 45, 5, 45, 6, 6, 5, 0, 0, 0, 0, 0, 0, 3, 55, 45, 0, 45, 45, + 55, 56, 45, 5, 0, 0, 0, 0, 27, 0, 0, 6, 55, 0, 6, 5, 41, 6, 6, 5, 0, 0, 0, 0, 27, 0, 9, 41, 3, 0, 45, 45, + 0, 52, 3, 55, 0, 0, 0, 0, 60, 0, 4, 0, 0, 0, 0, 54, 0, 0, 41, 33, 0, 0, 0, 0, 0, 0, 9, 40, 0, 0, 0, 38, + 47, 0, 38, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 24, 0, 54, 16, 60, 32, 0, 0, 0, 0, 0, 0, 10, 27, 7, 0, 18, 59, + 21, 21, 4, 4, 0, 0, 0, 0, 23, 0, 4, 0, 0, 0, 0, 0, 28, 28, 4, 4, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, 7, 28, + 28, 28, 0, 0, 0, 0, 0, 0, 47, 0, 28, 0, 28, 0, 0, 44, 28, 21, 4, 4, 0, 0, 0, 0, 20, 0, 23, 0, 28, 0, 0, 47, + 14, 14, 7, 7, 0, 0, 0, 0, 14, 0, 43, 0, 17, 0, 17, 22, 14, 36, 7, 43, 0, 0, 0, 0, 53, 0, 15, 0, 36, 0, 53, 27, + 36, 36, 47, 43, 0, 0, 0, 0, 53, 0, 16, 0, 36, 0, 36, 19, 20, 36, 0, 28, 0, 0, 0, 0, 49, 0, 42, 0, 20, 0, 19, 62, + 10, 10, 2, 2, 0, 0, 0, 0, 10, 0, 12, 13, 10, 0, 4, 0, 0, 0, 10, 2, 0, 0, 0, 0, 0, 0, 10, 12, 0, 0, 0, 0, + 0, 0, 10, 4, 0, 0, 0, 0, 0, 0, 61, 0, 37, 0, 0, 0, 37, 0, 10, 2, 0, 0, 0, 0, 26, 0, 35, 10, 37, 0, 10, 41, + 0, 14, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 22, 14, 36, 0, 0, 0, 0, 0, 0, 53, 0, 0, 25, 20, 0, 60, 25, + 36, 36, 43, 43, 0, 0, 0, 0, 36, 0, 0, 57, 43, 0, 22, 38, 20, 36, 0, 0, 0, 0, 0, 0, 49, 0, 58, 2, 20, 0, 17, 46, + 12, 2, 1, 1, 0, 0, 0, 0, 12, 0, 1, 12, 12, 0, 2, 61, 35, 35, 12, 2, 0, 0, 0, 0, 42, 0, 61, 61, 10, 0, 12, 61, + 10, 35, 12, 2, 0, 0, 0, 0, 42, 0, 12, 61, 35, 0, 61, 61, 10, 37, 12, 1, 0, 0, 0, 0, 58, 0, 10, 63, 35, 0, 61, 61, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 39, 28, 0, 0, 43, 47, 40, 0, 0, 0, 0, 0, 0, 62, 0, 0, 22, 22, 0, 0, 18, + 51, 36, 0, 0, 0, 0, 0, 0, 49, 0, 0, 16, 0, 0, 0, 18, 0, 38, 0, 28, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 38, 17, + 13, 12, 3, 1, 0, 0, 0, 0, 12, 0, 3, 45, 12, 0, 1, 1, 35, 35, 1, 1, 0, 0, 0, 0, 42, 0, 61, 12, 35, 0, 12, 12, + 35, 35, 3, 1, 0, 0, 0, 0, 42, 0, 13, 56, 12, 0, 1, 12, 35, 35, 13, 1, 0, 0, 0, 0, 58, 0, 12, 45, 35, 0, 35, 12, + 0, 0, 0, 9, 0, 0, 0, 0, 25, 0, 0, 0, 10, 0, 0, 44, 59, 19, 28, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 38, + 25, 22, 0, 0, 0, 0, 0, 0, 27, 0, 44, 0, 59, 0, 0, 43, 22, 22, 0, 0, 0, 0, 0, 0, 27, 0, 0, 52, 51, 0, 0, 17, + 13, 13, 3, 3, 0, 0, 0, 0, 13, 0, 1, 45, 13, 0, 13, 1, 12, 2, 45, 3, 0, 0, 0, 0, 0, 0, 56, 0, 35, 0, 13, 12, + 12, 12, 45, 3, 0, 0, 0, 0, 58, 0, 45, 56, 12, 0, 12, 12, 12, 13, 45, 3, 0, 0, 0, 0, 58, 0, 0, 45, 12, 0, 45, 56, + 31, 0, 33, 33, 0, 0, 0, 0, 49, 0, 39, 0, 0, 0, 0, 33, 51, 11, 9, 0, 0, 0, 0, 0, 27, 0, 19, 0, 51, 0, 0, 0, + 22, 0, 59, 44, 0, 0, 0, 0, 49, 0, 60, 39, 0, 0, 51, 38, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 16, + 13, 3, 5, 5, 0, 0, 0, 0, 13, 0, 45, 6, 45, 0, 45, 3, 13, 35, 45, 3, 0, 0, 0, 0, 0, 0, 2, 55, 12, 0, 1, 1, + 61, 45, 45, 3, 0, 0, 0, 0, 58, 0, 5, 45, 45, 0, 45, 1, 35, 13, 45, 3, 0, 0, 0, 0, 58, 0, 45, 37, 12, 0, 45, 45, + 0, 0, 33, 33, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 57, 0, 37, 0, 0, 0, 0, 0, 0, 0, 62, 25, 0, 0, 0, 44, + 51, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 9, 16, 0, 44, 44, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 51, 4, 0, 0, 25, 0, + 45, 45, 5, 5, 0, 0, 0, 0, 0, 0, 45, 6, 45, 0, 45, 3, 13, 45, 45, 5, 0, 0, 0, 0, 0, 0, 44, 0, 45, 0, 45, 45, + 45, 45, 45, 5, 0, 0, 0, 0, 53, 0, 4, 45, 45, 0, 45, 45, 45, 1, 6, 3, 0, 0, 0, 0, 49, 0, 12, 9, 3, 0, 45, 45, + 37, 0, 63, 33, 0, 0, 0, 0, 0, 0, 55, 0, 18, 0, 54, 0, 22, 0, 61, 33, 0, 0, 0, 0, 0, 0, 36, 30, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 25, 25, 4, 0, 0, 0, 0, 43, 0, 44, 0, 0, 0, 0, 27, 0, 45, 47, 0, 0, 61, 16, + 45, 6, 6, 6, 0, 0, 0, 0, 0, 0, 61, 6, 45, 0, 45, 5, 45, 6, 6, 5, 0, 0, 0, 0, 49, 0, 0, 0, 45, 0, 45, 45, + 56, 45, 5, 5, 0, 0, 0, 0, 49, 0, 34, 6, 45, 0, 6, 5, 56, 6, 6, 5, 0, 0, 0, 0, 49, 0, 45, 3, 2, 0, 13, 45, + 0, 11, 8, 55, 0, 0, 0, 0, 0, 0, 11, 29, 0, 0, 0, 34, 0, 46, 0, 61, 0, 0, 0, 0, 0, 0, 19, 60, 9, 0, 51, 0, + 61, 60, 0, 34, 0, 0, 0, 0, 0, 0, 0, 53, 31, 0, 0, 0, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 47, 20, 46, 0, 0, 0, + 21, 21, 4, 4, 0, 0, 0, 0, 10, 0, 0, 0, 23, 0, 0, 0, 28, 28, 4, 4, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, 21, 0, + 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 21, 0, 4, 0, 0, 0, 0, 20, 0, 0, 0, 28, 0, 21, 11, + 14, 14, 7, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 17, 38, 20, 36, 7, 43, 0, 0, 0, 0, 53, 0, 0, 0, 36, 0, 38, 62, + 36, 36, 43, 43, 0, 0, 0, 0, 20, 0, 0, 0, 28, 0, 53, 19, 20, 36, 0, 28, 0, 0, 0, 0, 53, 0, 0, 0, 20, 0, 17, 0, + 10, 10, 2, 2, 0, 0, 0, 0, 10, 0, 12, 10, 10, 0, 10, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 61, 0, + 0, 0, 10, 2, 0, 0, 0, 0, 42, 0, 61, 0, 37, 0, 0, 0, 37, 0, 10, 2, 0, 0, 0, 0, 26, 0, 61, 33, 37, 0, 55, 37, + 7, 7, 0, 9, 0, 0, 0, 0, 0, 0, 33, 54, 28, 0, 44, 0, 14, 14, 0, 0, 0, 0, 0, 0, 53, 0, 25, 22, 25, 0, 22, 58, + 36, 36, 43, 43, 0, 0, 0, 0, 53, 0, 38, 62, 0, 0, 0, 40, 20, 0, 28, 0, 0, 0, 0, 0, 49, 0, 0, 59, 59, 0, 59, 0, + 12, 2, 1, 1, 0, 0, 0, 0, 12, 0, 3, 13, 12, 0, 1, 12, 10, 35, 12, 2, 0, 0, 0, 0, 42, 0, 61, 61, 10, 0, 10, 61, + 35, 10, 2, 2, 0, 0, 0, 0, 0, 0, 61, 61, 35, 0, 10, 61, 35, 35, 2, 1, 0, 0, 0, 0, 58, 0, 12, 63, 35, 0, 12, 61, + 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 47, 36, 0, 0, 0, 0, 0, 0, 53, 0, 57, 16, 14, 0, 15, 38, + 47, 36, 0, 0, 0, 0, 0, 0, 53, 0, 0, 18, 59, 0, 47, 18, 47, 0, 0, 28, 0, 0, 0, 0, 49, 0, 0, 57, 22, 0, 59, 59, + 13, 13, 3, 3, 0, 0, 0, 0, 12, 0, 1, 45, 13, 0, 1, 1, 12, 12, 13, 1, 0, 0, 0, 0, 42, 0, 13, 61, 35, 0, 12, 12, + 35, 35, 3, 1, 0, 0, 0, 0, 0, 0, 1, 13, 12, 0, 12, 12, 12, 35, 13, 1, 0, 0, 0, 0, 58, 0, 13, 45, 35, 0, 13, 12, + 0, 0, 33, 9, 0, 0, 0, 0, 0, 0, 12, 33, 0, 0, 0, 0, 43, 40, 44, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 38, 22, + 0, 25, 44, 0, 0, 0, 0, 0, 62, 0, 0, 51, 44, 0, 38, 43, 47, 22, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 38, 0, 38, 22, + 13, 13, 3, 3, 0, 0, 0, 0, 12, 0, 5, 3, 13, 0, 3, 3, 12, 1, 45, 3, 0, 0, 0, 0, 37, 0, 0, 13, 35, 0, 13, 12, + 12, 12, 45, 3, 0, 0, 0, 0, 0, 0, 45, 45, 12, 0, 13, 1, 13, 13, 45, 3, 0, 0, 0, 0, 58, 0, 45, 45, 35, 0, 45, 13, + 0, 0, 33, 33, 0, 0, 0, 0, 50, 0, 0, 0, 29, 0, 29, 0, 0, 0, 0, 44, 0, 0, 0, 0, 27, 0, 20, 0, 0, 0, 0, 17, + 51, 25, 0, 44, 0, 0, 0, 0, 27, 0, 0, 57, 57, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 27, 0, 7, 0, 44, 0, 0, 51, + 45, 3, 6, 5, 0, 0, 0, 0, 12, 0, 45, 6, 45, 0, 3, 3, 13, 12, 45, 3, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 12, 13, + 12, 13, 45, 3, 0, 0, 0, 0, 28, 0, 0, 45, 45, 0, 45, 45, 45, 13, 45, 5, 0, 0, 0, 0, 58, 0, 0, 45, 12, 0, 45, 13, + 29, 0, 0, 33, 0, 0, 0, 0, 0, 0, 41, 37, 0, 0, 0, 0, 0, 9, 61, 31, 0, 0, 0, 0, 27, 0, 0, 22, 23, 0, 0, 0, + 22, 0, 44, 33, 0, 0, 0, 0, 62, 0, 22, 0, 59, 0, 44, 0, 25, 0, 0, 44, 0, 0, 0, 0, 27, 0, 0, 50, 0, 0, 43, 44, + 45, 45, 6, 5, 0, 0, 0, 0, 37, 0, 5, 45, 45, 0, 45, 5, 13, 45, 45, 3, 0, 0, 0, 0, 0, 0, 9, 0, 45, 0, 45, 45, + 45, 45, 45, 5, 0, 0, 0, 0, 0, 0, 35, 45, 45, 0, 45, 45, 45, 6, 45, 5, 0, 0, 0, 0, 49, 0, 41, 0, 45, 0, 45, 45, + 23, 0, 32, 33, 0, 0, 0, 0, 27, 0, 54, 1, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 22, 0, 49, 30, 37, 0, 59, 44, + 42, 48, 54, 0, 0, 0, 0, 0, 0, 0, 2, 8, 44, 0, 0, 31, 14, 0, 61, 0, 0, 0, 0, 0, 49, 0, 28, 16, 0, 0, 0, 0, + 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 5, 6, 45, 0, 6, 5, 45, 55, 6, 5, 0, 0, 0, 0, 62, 0, 0, 1, 13, 0, 45, 5, + 45, 45, 6, 5, 0, 0, 0, 0, 58, 0, 13, 6, 45, 0, 45, 5, 45, 6, 6, 5, 0, 0, 0, 0, 49, 0, 9, 0, 45, 0, 45, 45, + 55, 0, 34, 55, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 55, 31, 40, 0, 61, 0, 0, 0, 0, 0, 0, 25, 62, 14, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 50, 0, 4, 0, 1, 0, 0, 54, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 62, 8, 0, 41, 0, + 23, 21, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 21, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 14, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 7, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 36, 43, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 36, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 2, 2, 0, 0, 0, 0, 10, 0, 13, 0, 10, 0, 10, 61, 37, 0, 2, 2, 0, 0, 0, 0, 42, 0, 61, 0, 37, 0, 0, 0, + 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 61, 0, 10, 0, 61, 0, 37, 0, 2, 2, 0, 0, 0, 0, 26, 0, 63, 0, 37, 0, 35, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 7, 0, 12, 0, 0, 0, 0, 0, 14, 36, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 36, 0, 38, 0, + 36, 36, 43, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 51, 19, 20, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 22, 0, 17, 38, + 12, 12, 1, 1, 0, 0, 0, 0, 12, 0, 3, 3, 12, 0, 12, 12, 35, 35, 1, 2, 0, 0, 0, 0, 42, 0, 61, 61, 35, 0, 2, 61, + 10, 10, 12, 2, 0, 0, 0, 0, 0, 0, 12, 0, 10, 0, 12, 0, 35, 35, 13, 1, 0, 0, 0, 0, 58, 0, 13, 63, 35, 0, 10, 61, + 0, 0, 9, 9, 0, 0, 0, 0, 14, 0, 13, 10, 0, 0, 28, 0, 36, 0, 43, 0, 0, 0, 0, 0, 49, 0, 17, 38, 0, 0, 46, 38, + 36, 36, 0, 0, 0, 0, 0, 0, 53, 0, 16, 0, 44, 0, 59, 18, 59, 22, 0, 0, 0, 0, 0, 0, 27, 0, 44, 0, 22, 0, 20, 38, + 13, 13, 3, 3, 0, 0, 0, 0, 12, 0, 3, 5, 13, 0, 13, 1, 12, 12, 13, 1, 0, 0, 0, 0, 0, 0, 13, 12, 12, 0, 12, 12, + 35, 12, 13, 1, 0, 0, 0, 0, 0, 0, 13, 13, 12, 0, 1, 1, 12, 35, 13, 3, 0, 0, 0, 0, 58, 0, 45, 3, 35, 0, 1, 1, + 0, 0, 33, 9, 0, 0, 0, 0, 0, 0, 0, 10, 33, 0, 61, 0, 0, 36, 0, 0, 0, 0, 0, 0, 62, 0, 42, 0, 51, 0, 44, 16, + 0, 36, 54, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 38, 58, 0, 0, 28, 0, 0, 0, 0, 27, 0, 44, 30, 0, 0, 0, 22, + 13, 13, 5, 3, 0, 0, 0, 0, 13, 0, 5, 5, 13, 0, 3, 3, 12, 12, 45, 3, 0, 0, 0, 0, 42, 0, 12, 0, 13, 0, 45, 12, + 12, 12, 45, 3, 0, 0, 0, 0, 42, 0, 45, 45, 13, 0, 45, 12, 12, 13, 45, 3, 0, 0, 0, 0, 58, 0, 0, 45, 35, 0, 13, 1, + 37, 0, 0, 33, 0, 0, 0, 0, 0, 0, 45, 55, 37, 0, 37, 33, 44, 0, 0, 0, 0, 0, 0, 0, 27, 0, 44, 40, 0, 0, 0, 0, + 44, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 44, 0, 0, 59, 47, 22, 0, 31, 0, 0, 0, 0, 49, 0, 15, 0, 7, 0, 0, 48, + 45, 13, 6, 5, 0, 0, 0, 0, 13, 0, 6, 6, 45, 0, 45, 5, 13, 1, 45, 3, 0, 0, 0, 0, 42, 0, 0, 45, 13, 0, 13, 3, + 12, 13, 45, 3, 0, 0, 0, 0, 0, 0, 6, 45, 13, 0, 45, 45, 13, 1, 6, 5, 0, 0, 0, 0, 58, 0, 0, 45, 45, 0, 45, 45, + 29, 0, 33, 33, 0, 0, 0, 0, 53, 0, 23, 55, 33, 0, 61, 0, 57, 54, 0, 31, 0, 0, 0, 0, 49, 0, 60, 60, 41, 0, 29, 44, + 0, 0, 0, 44, 0, 0, 0, 0, 27, 0, 9, 2, 0, 0, 0, 44, 22, 51, 33, 0, 0, 0, 0, 0, 27, 0, 24, 59, 38, 0, 0, 0, + 45, 6, 6, 5, 0, 0, 0, 0, 55, 0, 6, 6, 45, 0, 5, 5, 45, 45, 6, 5, 0, 0, 0, 0, 0, 0, 63, 13, 45, 0, 45, 45, + 45, 45, 45, 5, 0, 0, 0, 0, 53, 0, 34, 45, 45, 0, 45, 5, 45, 6, 6, 5, 0, 0, 0, 0, 49, 0, 51, 6, 6, 0, 45, 45, + 37, 0, 63, 33, 0, 0, 0, 0, 51, 0, 21, 55, 0, 0, 0, 55, 42, 62, 0, 31, 0, 0, 0, 0, 0, 0, 38, 0, 38, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 27, 0, 27, 61, 34, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 27, 0, 30, 57, 52, 0, 29, 0, + 45, 6, 6, 6, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 6, 6, 45, 1, 6, 5, 0, 0, 0, 0, 49, 0, 0, 0, 45, 0, 45, 5, + 45, 45, 6, 5, 0, 0, 0, 0, 49, 0, 1, 5, 45, 0, 45, 5, 45, 6, 6, 6, 0, 0, 0, 0, 49, 0, 14, 0, 45, 0, 5, 45, + 0, 0, 2, 55, 0, 0, 0, 0, 51, 0, 29, 13, 0, 0, 0, 0, 0, 25, 0, 34, 0, 0, 0, 0, 49, 0, 15, 62, 0, 0, 0, 33, + 38, 43, 41, 34, 0, 0, 0, 0, 0, 0, 1, 3, 35, 0, 57, 32, 59, 43, 33, 0, 0, 0, 0, 0, 27, 0, 15, 8, 2, 0, 0, 0, + 21, 21, 21, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 14, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 36, 25, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 30, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 35, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 36, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 2, 1, 1, 0, 0, 0, 0, 12, 0, 5, 45, 13, 0, 13, 1, 10, 35, 12, 2, 0, 0, 0, 0, 35, 0, 45, 61, 35, 0, 56, 61, + 35, 10, 12, 2, 0, 0, 0, 0, 0, 0, 45, 0, 35, 0, 13, 9, 35, 35, 13, 1, 0, 0, 0, 0, 58, 0, 35, 55, 35, 0, 56, 0, + 0, 0, 9, 9, 0, 0, 0, 0, 59, 0, 45, 63, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 49, 0, 59, 30, 22, 0, 0, 38, + 22, 14, 44, 0, 0, 0, 0, 0, 62, 0, 48, 42, 22, 0, 59, 0, 47, 22, 9, 0, 0, 0, 0, 0, 49, 0, 0, 16, 0, 0, 2, 0, + 13, 13, 3, 3, 0, 0, 0, 0, 12, 0, 5, 5, 13, 0, 13, 3, 35, 35, 13, 1, 0, 0, 0, 0, 42, 0, 56, 10, 35, 0, 13, 12, + 12, 35, 1, 1, 0, 0, 0, 0, 0, 0, 13, 0, 12, 0, 13, 12, 12, 13, 13, 3, 0, 0, 0, 0, 58, 0, 45, 0, 35, 0, 13, 13, + 31, 0, 33, 9, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 33, 51, 30, 9, 0, 0, 0, 0, 0, 49, 0, 25, 22, 0, 0, 59, 0, + 0, 36, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 22, 51, 22, 44, 28, 0, 0, 0, 0, 27, 0, 0, 0, 59, 0, 40, 0, + 13, 13, 5, 3, 0, 0, 0, 0, 13, 0, 5, 6, 13, 0, 5, 3, 12, 1, 45, 3, 0, 0, 0, 0, 0, 0, 0, 35, 13, 0, 1, 1, + 12, 12, 3, 3, 0, 0, 0, 0, 0, 0, 45, 45, 13, 0, 13, 1, 13, 13, 45, 3, 0, 0, 0, 0, 58, 0, 0, 45, 13, 0, 13, 13, + 23, 0, 33, 33, 0, 0, 0, 0, 0, 0, 45, 63, 0, 0, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 51, 44, 0, 38, 16, + 0, 0, 33, 0, 0, 0, 0, 0, 62, 0, 0, 0, 28, 0, 0, 0, 51, 51, 0, 0, 0, 0, 0, 0, 49, 0, 33, 34, 8, 0, 0, 59, + 45, 13, 5, 5, 0, 0, 0, 0, 13, 0, 5, 6, 45, 0, 3, 5, 13, 13, 45, 3, 0, 0, 0, 0, 42, 0, 56, 61, 13, 0, 45, 45, + 13, 3, 45, 3, 0, 0, 0, 0, 0, 0, 5, 45, 45, 0, 45, 45, 13, 1, 45, 3, 0, 0, 0, 0, 58, 0, 63, 45, 13, 0, 45, 45, + 29, 54, 63, 33, 0, 0, 0, 0, 0, 0, 10, 63, 0, 0, 34, 33, 51, 0, 0, 31, 0, 0, 0, 0, 27, 0, 0, 0, 17, 0, 0, 59, + 51, 0, 0, 31, 0, 0, 0, 0, 62, 0, 15, 0, 0, 0, 0, 46, 0, 16, 0, 0, 0, 0, 0, 0, 27, 0, 50, 0, 7, 0, 0, 0, + 45, 3, 6, 5, 0, 0, 0, 0, 45, 0, 6, 6, 45, 0, 6, 5, 3, 45, 45, 5, 0, 0, 0, 0, 0, 0, 0, 34, 13, 0, 45, 45, + 45, 13, 45, 5, 0, 0, 0, 0, 0, 0, 56, 6, 45, 0, 45, 5, 13, 6, 6, 5, 0, 0, 0, 0, 58, 0, 56, 6, 45, 0, 56, 45, + 29, 0, 55, 10, 0, 0, 0, 0, 53, 0, 0, 45, 0, 0, 41, 0, 0, 11, 29, 41, 0, 0, 0, 0, 50, 0, 53, 62, 0, 0, 0, 0, + 22, 0, 0, 31, 0, 0, 0, 0, 49, 0, 23, 2, 0, 0, 0, 0, 0, 16, 31, 0, 0, 0, 0, 0, 49, 0, 36, 26, 0, 0, 46, 0, + 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 6, 6, 45, 13, 45, 5, 0, 0, 0, 0, 20, 0, 0, 61, 45, 0, 45, 45, + 45, 45, 6, 5, 0, 0, 0, 0, 58, 0, 61, 56, 45, 0, 45, 5, 45, 6, 6, 6, 0, 0, 0, 0, 49, 0, 41, 0, 13, 0, 5, 45, + 55, 36, 4, 55, 0, 0, 0, 0, 62, 0, 6, 0, 0, 0, 61, 34, 44, 60, 0, 61, 0, 0, 0, 0, 62, 0, 62, 25, 0, 0, 59, 0, + 21, 44, 0, 0, 0, 0, 0, 0, 27, 0, 49, 11, 0, 0, 0, 0, 0, 15, 56, 0, 0, 0, 0, 0, 27, 0, 30, 27, 8, 0, 0, 0, + 23, 4, 4, 4, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 21, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 21, 16, 41, 63, 63, 4, 0, 0, 0, 0, 24, 0, 0, 0, 29, 0, 0, 46, + 0, 14, 7, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 22, 8, 14, 36, 0, 43, 0, 0, 0, 0, 53, 0, 0, 0, 20, 0, 25, 19, + 36, 36, 43, 43, 0, 0, 0, 0, 53, 0, 0, 0, 47, 0, 19, 62, 47, 20, 0, 28, 0, 0, 0, 0, 49, 0, 0, 0, 20, 0, 36, 0, + 10, 10, 2, 2, 0, 0, 0, 0, 10, 0, 5, 0, 10, 0, 12, 0, 37, 37, 2, 2, 0, 0, 0, 0, 0, 0, 61, 0, 10, 0, 61, 0, + 37, 0, 10, 2, 0, 0, 0, 0, 42, 0, 61, 0, 10, 0, 23, 0, 55, 0, 2, 2, 0, 0, 0, 0, 26, 0, 0, 0, 10, 0, 61, 0, + 0, 0, 23, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 53, 0, 57, 0, 14, 0, 0, 60, + 36, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 59, 0, 19, 27, 20, 20, 0, 0, 0, 0, 0, 0, 49, 0, 60, 0, 59, 0, 36, 0, + 12, 12, 3, 1, 0, 0, 0, 0, 12, 0, 6, 6, 12, 0, 3, 12, 35, 10, 1, 1, 0, 0, 0, 0, 0, 0, 61, 0, 10, 0, 13, 55, + 10, 35, 12, 1, 0, 0, 0, 0, 42, 0, 61, 12, 12, 0, 12, 61, 12, 12, 13, 3, 0, 0, 0, 0, 58, 0, 0, 0, 35, 0, 61, 35, + 0, 0, 23, 9, 0, 0, 0, 0, 14, 0, 63, 13, 0, 0, 0, 0, 51, 36, 0, 43, 0, 0, 0, 0, 49, 0, 25, 27, 38, 0, 0, 0, + 25, 38, 44, 0, 0, 0, 0, 0, 27, 0, 0, 27, 0, 0, 59, 19, 59, 0, 0, 28, 0, 0, 0, 0, 49, 0, 57, 0, 44, 0, 0, 59, + 13, 13, 3, 3, 0, 0, 0, 0, 12, 0, 6, 6, 13, 0, 13, 1, 12, 13, 13, 3, 0, 0, 0, 0, 42, 0, 56, 61, 35, 0, 56, 45, + 35, 55, 13, 1, 0, 0, 0, 0, 42, 0, 45, 61, 12, 0, 1, 1, 12, 12, 13, 3, 0, 0, 0, 0, 58, 0, 45, 63, 35, 0, 1, 13, + 31, 22, 33, 9, 0, 0, 0, 0, 58, 0, 63, 2, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 49, 0, 0, 22, 0, 0, 10, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 49, 0, 58, 53, 0, 0, 0, 36, 0, 20, 29, 0, 0, 0, 0, 0, 27, 0, 50, 7, 0, 0, 0, 0, + 13, 13, 5, 5, 0, 0, 0, 0, 12, 0, 45, 6, 45, 0, 5, 5, 35, 45, 45, 1, 0, 0, 0, 0, 0, 0, 45, 2, 13, 0, 45, 45, + 35, 45, 3, 45, 0, 0, 0, 0, 58, 0, 12, 0, 13, 0, 45, 56, 45, 1, 45, 5, 0, 0, 0, 0, 58, 0, 39, 13, 13, 0, 45, 45, + 0, 0, 0, 33, 0, 0, 0, 0, 49, 0, 5, 5, 0, 0, 0, 0, 57, 23, 0, 0, 0, 0, 0, 0, 49, 0, 62, 40, 59, 0, 0, 0, + 0, 0, 0, 44, 0, 0, 0, 0, 27, 0, 0, 9, 0, 0, 0, 0, 0, 25, 13, 52, 0, 0, 0, 0, 49, 0, 0, 59, 0, 0, 59, 29, + 45, 13, 5, 5, 0, 0, 0, 0, 55, 0, 6, 6, 45, 0, 5, 5, 56, 45, 56, 45, 0, 0, 0, 0, 0, 0, 0, 56, 45, 0, 45, 45, + 56, 5, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 45, 63, 45, 45, 5, 45, 0, 0, 0, 0, 58, 0, 26, 1, 45, 0, 6, 45, + 0, 60, 0, 33, 0, 0, 0, 0, 27, 0, 56, 12, 33, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 5, 14, 0, 0, 0, 3, + 0, 59, 22, 0, 0, 0, 0, 0, 27, 0, 36, 0, 0, 0, 0, 8, 38, 47, 59, 26, 0, 0, 0, 0, 49, 0, 18, 52, 47, 0, 49, 38, + 6, 6, 6, 6, 0, 0, 0, 0, 55, 0, 3, 6, 6, 0, 6, 6, 35, 0, 45, 45, 0, 0, 0, 0, 58, 0, 56, 10, 0, 0, 6, 56, + 61, 35, 6, 45, 0, 0, 0, 0, 20, 0, 5, 3, 6, 0, 5, 45, 6, 45, 6, 6, 0, 0, 0, 0, 49, 0, 1, 12, 12, 0, 10, 1, + 12, 7, 34, 41, 0, 0, 0, 0, 15, 0, 0, 5, 6, 0, 56, 0, 4, 62, 1, 0, 0, 0, 0, 0, 62, 0, 2, 22, 13, 0, 24, 13, + 10, 1, 13, 4, 0, 0, 0, 0, 27, 0, 0, 17, 9, 0, 12, 25, 0, 63, 22, 54, 0, 0, 0, 0, 27, 0, 2, 42, 0, 0, 18, 60, + 6, 0, 6, 6, 0, 0, 0, 0, 0, 0, 39, 61, 45, 0, 6, 45, 5, 0, 56, 45, 0, 0, 0, 0, 49, 0, 20, 5, 45, 0, 6, 6, + 2, 0, 6, 5, 0, 0, 0, 0, 27, 0, 4, 3, 55, 0, 0, 45, 6, 48, 45, 6, 0, 0, 0, 0, 27, 0, 0, 44, 13, 0, 12, 6, + 18, 40, 2, 1, 0, 0, 0, 0, 62, 0, 0, 0, 5, 0, 45, 0, 56, 22, 55, 33, 0, 0, 0, 0, 27, 0, 0, 34, 49, 0, 5, 61, + 28, 56, 15, 33, 0, 0, 0, 0, 27, 0, 0, 42, 58, 0, 2, 17, 19, 39, 60, 19, 0, 0, 0, 0, 27, 0, 0, 20, 27, 0, 0, 0, +}; + +static const unsigned short m03_Tx_model_m0_scale_table[] = +{ + 59, 111, 111, 205, 205, 249, 441, 129, 133, 37, 117, 178, 153, 277, 107, 137, + 83, 138, 72, 119, 81, 213, 111, 137, 36, 117, 71, 158, 149, 129, 190, 247, + 53, 27, 42, 208, 109, 133, 236, 25, 183, 93, 66, 79, 75, 181, 82, 93, + 29, 55, 171, 107, 224, 93, 23, 47, 39, 50, 95, 153, 138, 79, 143, 75, +}; + +static const unsigned char m03_Tx_model_m1_state_table[] = +{ + 47, 47, 75, 9, 0, 0, 0, 0, 50, 47, 5, 9, 47, 21, 52, 11, 28, 6, 7, 9, 0, 0, 0, 0, 62, 59, 5, 9, 47, 6, 50, 13, + 47, 47, 64, 9, 0, 0, 0, 0, 62, 0, 35, 9, 47, 6, 22, 9, 28, 28, 18, 9, 0, 0, 0, 0, 62, 59, 47, 9, 28, 6, 76, 7, + 56, 15, 63, 9, 0, 0, 0, 0, 16, 29, 0, 11, 0, 22, 60, 11, 76, 76, 20, 9, 0, 0, 0, 0, 16, 30, 0, 13, 0, 55, 62, 13, + 50, 47, 21, 9, 0, 0, 0, 0, 62, 79, 7, 9, 28, 18, 75, 9, 75, 6, 12, 9, 0, 0, 0, 0, 62, 50, 47, 20, 75, 6, 47, 11, + 3, 28, 21, 9, 0, 0, 0, 0, 50, 47, 22, 9, 47, 22, 47, 11, 21, 6, 13, 9, 0, 0, 0, 0, 62, 59, 50, 9, 47, 6, 50, 13, + 47, 47, 28, 9, 0, 0, 0, 0, 62, 50, 47, 9, 47, 6, 76, 9, 28, 6, 6, 20, 0, 0, 0, 0, 62, 59, 59, 9, 28, 6, 76, 7, + 0, 47, 75, 9, 0, 0, 0, 0, 68, 0, 69, 9, 79, 64, 50, 9, 23, 20, 13, 9, 0, 0, 0, 0, 16, 72, 68, 18, 0, 36, 62, 13, + 47, 0, 21, 9, 0, 0, 0, 0, 62, 50, 0, 20, 28, 11, 7, 9, 28, 28, 7, 20, 0, 0, 0, 0, 62, 47, 0, 20, 28, 6, 50, 18, + 28, 28, 28, 9, 0, 0, 0, 0, 50, 47, 28, 9, 47, 6, 50, 11, 21, 6, 47, 9, 0, 0, 0, 0, 62, 50, 62, 13, 47, 22, 50, 13, + 47, 47, 28, 9, 0, 0, 0, 0, 62, 50, 74, 9, 47, 6, 28, 9, 28, 6, 7, 9, 0, 0, 0, 0, 65, 50, 0, 20, 28, 6, 47, 7, + 0, 15, 0, 9, 0, 0, 0, 0, 41, 62, 0, 20, 0, 21, 46, 18, 0, 0, 52, 13, 0, 0, 0, 0, 54, 77, 68, 13, 79, 7, 42, 13, + 50, 0, 58, 9, 0, 0, 0, 0, 62, 50, 0, 20, 28, 18, 28, 9, 36, 36, 22, 9, 0, 0, 0, 0, 49, 62, 65, 20, 28, 6, 47, 18, + 47, 28, 5, 9, 0, 0, 0, 0, 62, 50, 0, 9, 47, 13, 50, 20, 64, 6, 47, 13, 0, 0, 0, 0, 62, 62, 62, 13, 47, 28, 50, 13, + 50, 47, 7, 9, 0, 0, 0, 0, 62, 50, 0, 20, 47, 6, 76, 9, 28, 36, 6, 20, 0, 0, 0, 0, 49, 51, 30, 20, 28, 6, 76, 7, + 0, 0, 60, 9, 0, 0, 0, 0, 41, 65, 0, 20, 56, 13, 72, 13, 0, 0, 60, 13, 0, 0, 0, 0, 49, 49, 49, 48, 0, 58, 62, 48, + 50, 79, 0, 20, 0, 0, 0, 0, 49, 62, 0, 9, 28, 6, 58, 9, 35, 28, 28, 20, 0, 0, 0, 0, 49, 54, 65, 20, 28, 18, 79, 18, + 47, 47, 76, 9, 0, 0, 0, 0, 62, 62, 47, 7, 47, 55, 62, 13, 36, 75, 50, 13, 0, 0, 0, 0, 65, 62, 62, 48, 28, 36, 62, 48, + 62, 47, 36, 9, 0, 0, 0, 0, 68, 68, 48, 9, 47, 18, 60, 9, 28, 28, 35, 9, 0, 0, 0, 0, 62, 62, 62, 20, 28, 28, 47, 7, + 47, 47, 73, 9, 0, 0, 0, 0, 68, 73, 0, 20, 0, 74, 77, 13, 72, 76, 0, 13, 0, 0, 0, 0, 41, 77, 68, 48, 61, 20, 62, 48, + 50, 0, 0, 9, 0, 0, 0, 0, 68, 77, 45, 18, 58, 64, 0, 9, 59, 28, 75, 20, 0, 0, 0, 0, 68, 68, 42, 54, 28, 75, 46, 64, + 0, 47, 20, 9, 0, 0, 0, 0, 68, 65, 24, 18, 47, 64, 62, 64, 22, 64, 47, 13, 0, 0, 0, 0, 45, 68, 50, 48, 47, 64, 29, 48, + 62, 47, 18, 9, 0, 0, 0, 0, 68, 41, 5, 20, 47, 64, 0, 9, 60, 28, 22, 9, 0, 0, 0, 0, 68, 68, 7, 22, 47, 64, 60, 18, + 60, 35, 21, 18, 0, 0, 0, 0, 0, 16, 0, 13, 19, 9, 68, 64, 27, 24, 68, 13, 0, 0, 0, 0, 16, 16, 68, 62, 12, 13, 68, 48, + 62, 72, 0, 20, 0, 0, 0, 0, 68, 16, 0, 11, 0, 64, 4, 9, 60, 48, 17, 13, 0, 0, 0, 0, 49, 16, 50, 0, 55, 28, 24, 18, + 47, 15, 47, 9, 0, 0, 0, 0, 68, 49, 73, 20, 59, 15, 48, 64, 64, 36, 47, 13, 0, 0, 0, 0, 41, 49, 68, 28, 0, 11, 50, 48, + 62, 66, 0, 9, 0, 0, 0, 0, 68, 68, 49, 20, 28, 64, 60, 9, 28, 50, 9, 13, 0, 0, 0, 0, 49, 49, 49, 48, 60, 13, 50, 64, + 0, 0, 60, 20, 0, 0, 0, 0, 62, 12, 0, 20, 0, 20, 65, 64, 0, 0, 0, 48, 0, 0, 0, 0, 0, 49, 68, 68, 51, 22, 77, 48, + 77, 59, 49, 20, 0, 0, 0, 0, 62, 68, 0, 0, 59, 0, 75, 18, 6, 21, 0, 4, 0, 0, 0, 0, 49, 68, 49, 41, 44, 18, 47, 64, + 50, 28, 11, 9, 0, 0, 0, 0, 41, 68, 37, 48, 62, 60, 48, 48, 0, 7, 0, 48, 0, 0, 0, 0, 68, 49, 28, 28, 50, 60, 68, 48, + 0, 47, 76, 20, 0, 0, 0, 0, 68, 42, 34, 7, 46, 64, 60, 9, 76, 35, 0, 20, 0, 0, 0, 0, 35, 49, 49, 49, 47, 48, 60, 64, + 77, 65, 68, 20, 0, 0, 0, 0, 0, 49, 0, 61, 76, 0, 53, 48, 47, 5, 68, 0, 0, 0, 0, 0, 49, 0, 49, 68, 41, 0, 68, 0, + 68, 60, 41, 20, 0, 0, 0, 0, 49, 54, 44, 37, 48, 6, 18, 9, 30, 9, 47, 0, 0, 0, 0, 0, 68, 68, 0, 49, 48, 7, 39, 20, + 47, 35, 22, 11, 0, 0, 0, 0, 50, 35, 6, 9, 0, 22, 76, 11, 6, 6, 6, 11, 0, 0, 0, 0, 62, 0, 7, 11, 0, 22, 76, 7, + 50, 47, 28, 11, 0, 0, 0, 0, 45, 47, 6, 9, 15, 6, 6, 9, 35, 36, 64, 11, 0, 0, 0, 0, 51, 59, 64, 11, 35, 64, 76, 7, + 47, 33, 63, 11, 0, 0, 0, 0, 51, 0, 0, 9, 0, 64, 76, 9, 52, 35, 75, 11, 0, 0, 0, 0, 62, 40, 0, 13, 47, 55, 66, 11, + 50, 0, 22, 11, 0, 0, 0, 0, 16, 47, 63, 9, 0, 6, 18, 9, 35, 28, 7, 9, 0, 0, 0, 0, 45, 14, 55, 18, 35, 6, 55, 7, + 47, 28, 6, 11, 0, 0, 0, 0, 50, 0, 0, 9, 0, 6, 76, 11, 6, 6, 21, 11, 0, 0, 0, 0, 50, 0, 66, 18, 35, 75, 66, 12, + 50, 47, 55, 11, 0, 0, 0, 0, 51, 47, 7, 9, 0, 6, 6, 9, 35, 6, 6, 9, 0, 0, 0, 0, 51, 59, 35, 11, 35, 6, 76, 7, + 0, 35, 63, 11, 0, 0, 0, 0, 62, 0, 0, 9, 0, 58, 76, 9, 79, 5, 13, 11, 0, 0, 0, 0, 68, 71, 66, 13, 47, 21, 46, 13, + 50, 0, 15, 11, 0, 0, 0, 0, 16, 59, 0, 9, 0, 22, 75, 9, 28, 22, 7, 18, 0, 0, 0, 0, 16, 78, 60, 18, 15, 22, 26, 7, + 47, 28, 21, 11, 0, 0, 0, 0, 62, 0, 23, 11, 0, 22, 66, 11, 64, 6, 47, 11, 0, 0, 0, 0, 51, 59, 65, 21, 35, 21, 50, 12, + 50, 47, 64, 9, 0, 0, 0, 0, 45, 47, 22, 9, 47, 6, 36, 9, 35, 36, 6, 9, 0, 0, 0, 0, 45, 78, 0, 11, 35, 6, 76, 7, + 0, 15, 37, 11, 0, 0, 0, 0, 30, 50, 0, 9, 44, 21, 71, 11, 66, 55, 52, 18, 0, 0, 0, 0, 68, 29, 41, 21, 0, 76, 42, 21, + 50, 47, 58, 9, 0, 0, 0, 0, 62, 29, 0, 9, 0, 7, 76, 9, 36, 36, 22, 7, 0, 0, 0, 0, 68, 34, 69, 7, 47, 21, 74, 7, + 47, 28, 36, 9, 0, 0, 0, 0, 62, 0, 0, 9, 50, 8, 50, 11, 64, 6, 50, 13, 0, 0, 0, 0, 62, 14, 42, 21, 50, 35, 46, 21, + 50, 47, 36, 9, 0, 0, 0, 0, 49, 78, 5, 9, 47, 6, 76, 9, 35, 36, 28, 11, 0, 0, 0, 0, 45, 78, 0, 21, 35, 75, 76, 7, + 0, 74, 0, 9, 0, 0, 0, 0, 77, 41, 79, 11, 0, 76, 66, 11, 0, 55, 66, 13, 0, 0, 0, 0, 68, 16, 41, 48, 50, 0, 68, 48, + 50, 0, 6, 9, 0, 0, 0, 0, 68, 51, 0, 18, 0, 6, 0, 9, 35, 22, 58, 18, 0, 0, 0, 0, 41, 65, 53, 13, 0, 21, 61, 18, + 0, 0, 58, 9, 0, 0, 0, 0, 49, 77, 29, 9, 50, 28, 46, 12, 6, 6, 50, 13, 0, 0, 0, 0, 68, 67, 68, 48, 50, 60, 67, 13, + 62, 47, 64, 9, 0, 0, 0, 0, 68, 46, 61, 9, 47, 6, 47, 9, 28, 28, 0, 9, 0, 0, 0, 0, 45, 62, 51, 13, 35, 76, 19, 7, + 62, 74, 61, 9, 0, 0, 0, 0, 68, 0, 46, 18, 0, 76, 41, 13, 0, 20, 77, 13, 0, 0, 0, 0, 49, 54, 41, 0, 0, 11, 49, 48, + 50, 0, 22, 9, 0, 0, 0, 0, 68, 68, 77, 64, 0, 18, 17, 9, 0, 0, 60, 9, 0, 0, 0, 0, 41, 68, 0, 0, 43, 36, 53, 64, + 0, 47, 76, 9, 0, 0, 0, 0, 49, 68, 0, 11, 50, 37, 46, 13, 7, 64, 62, 13, 0, 0, 0, 0, 49, 68, 41, 0, 47, 0, 77, 48, + 62, 0, 35, 9, 0, 0, 0, 0, 68, 49, 49, 18, 79, 44, 60, 9, 47, 28, 6, 13, 0, 0, 0, 0, 65, 68, 14, 20, 0, 21, 0, 18, + 72, 61, 49, 9, 0, 0, 0, 0, 68, 0, 0, 18, 59, 21, 62, 13, 0, 9, 62, 13, 0, 0, 0, 0, 68, 24, 68, 53, 62, 60, 41, 48, + 54, 74, 0, 9, 0, 0, 0, 0, 49, 65, 0, 55, 0, 64, 0, 9, 72, 0, 6, 7, 0, 0, 0, 0, 68, 68, 77, 48, 0, 0, 77, 18, + 50, 47, 61, 9, 0, 0, 0, 0, 49, 68, 0, 20, 29, 18, 46, 64, 64, 7, 42, 13, 0, 0, 0, 0, 68, 49, 77, 77, 0, 28, 42, 48, + 62, 0, 6, 11, 0, 0, 0, 0, 49, 62, 68, 13, 47, 0, 60, 9, 64, 47, 18, 13, 0, 0, 0, 0, 68, 68, 62, 13, 0, 11, 57, 21, + 78, 0, 59, 64, 0, 0, 0, 0, 16, 48, 0, 0, 30, 18, 46, 64, 0, 0, 51, 64, 0, 0, 0, 0, 49, 0, 41, 54, 12, 4, 49, 48, + 54, 74, 29, 11, 0, 0, 0, 0, 68, 49, 0, 20, 0, 50, 59, 9, 60, 0, 0, 11, 0, 0, 0, 0, 49, 65, 45, 35, 77, 0, 0, 58, + 62, 59, 71, 9, 0, 0, 0, 0, 49, 49, 16, 0, 46, 48, 53, 64, 0, 20, 51, 13, 0, 0, 0, 0, 49, 78, 68, 0, 35, 22, 51, 48, + 46, 72, 59, 9, 0, 0, 0, 0, 68, 54, 29, 21, 50, 76, 5, 9, 50, 18, 0, 11, 0, 0, 0, 0, 45, 68, 24, 0, 50, 75, 0, 7, + 50, 49, 0, 64, 0, 0, 0, 0, 59, 49, 0, 0, 0, 0, 30, 64, 0, 0, 48, 0, 0, 0, 0, 0, 77, 16, 41, 68, 41, 9, 49, 48, + 68, 60, 0, 20, 0, 0, 0, 0, 68, 68, 47, 11, 0, 0, 0, 9, 74, 60, 0, 21, 0, 0, 0, 0, 49, 68, 49, 49, 64, 7, 0, 64, + 0, 15, 22, 7, 0, 0, 0, 0, 14, 15, 18, 9, 50, 22, 21, 11, 28, 21, 22, 7, 0, 0, 0, 0, 78, 15, 7, 7, 0, 55, 21, 12, + 50, 0, 22, 7, 0, 0, 0, 0, 42, 59, 7, 11, 19, 36, 7, 11, 35, 36, 6, 7, 0, 0, 0, 0, 45, 59, 22, 7, 0, 22, 22, 7, + 59, 0, 4, 18, 0, 0, 0, 0, 29, 0, 18, 9, 0, 5, 21, 9, 8, 55, 55, 12, 0, 0, 0, 0, 46, 70, 55, 6, 74, 64, 25, 12, + 34, 0, 58, 7, 0, 0, 0, 0, 42, 0, 18, 9, 25, 21, 18, 9, 35, 22, 63, 18, 0, 0, 0, 0, 45, 59, 36, 18, 15, 22, 21, 11, + 0, 15, 22, 11, 0, 0, 0, 0, 50, 15, 18, 9, 19, 22, 21, 11, 36, 6, 21, 7, 0, 0, 0, 0, 45, 35, 76, 11, 0, 22, 76, 12, + 50, 47, 36, 11, 0, 0, 0, 0, 42, 59, 11, 11, 19, 6, 6, 9, 35, 36, 6, 7, 0, 0, 0, 0, 45, 59, 7, 7, 0, 6, 22, 7, + 0, 3, 63, 18, 0, 0, 0, 0, 65, 32, 21, 9, 79, 6, 21, 9, 71, 55, 37, 12, 0, 0, 0, 0, 41, 79, 52, 12, 79, 58, 66, 12, + 34, 0, 17, 11, 0, 0, 0, 0, 41, 0, 11, 9, 52, 7, 18, 9, 15, 35, 75, 18, 0, 0, 0, 0, 41, 78, 8, 6, 0, 64, 37, 7, + 0, 0, 5, 11, 0, 0, 0, 0, 78, 0, 7, 9, 0, 6, 76, 11, 36, 36, 76, 7, 0, 0, 0, 0, 16, 0, 66, 21, 14, 76, 66, 21, + 50, 47, 28, 11, 0, 0, 0, 0, 16, 50, 18, 9, 0, 6, 6, 9, 35, 36, 6, 11, 0, 0, 0, 0, 68, 59, 76, 12, 0, 75, 37, 7, + 57, 33, 75, 11, 0, 0, 0, 0, 68, 72, 0, 9, 0, 64, 76, 9, 74, 64, 66, 12, 0, 0, 0, 0, 68, 46, 46, 21, 59, 11, 66, 21, + 34, 0, 58, 18, 0, 0, 0, 0, 41, 78, 36, 18, 0, 11, 21, 9, 0, 63, 7, 18, 0, 0, 0, 0, 16, 78, 0, 18, 35, 75, 76, 18, + 0, 15, 36, 11, 0, 0, 0, 0, 41, 14, 0, 9, 50, 64, 52, 12, 36, 22, 0, 12, 0, 0, 0, 0, 68, 67, 30, 21, 50, 75, 66, 21, + 50, 47, 55, 11, 0, 0, 0, 0, 41, 79, 6, 9, 50, 21, 55, 9, 0, 36, 0, 11, 0, 0, 0, 0, 68, 62, 38, 21, 19, 64, 76, 7, + 71, 79, 0, 18, 0, 0, 0, 0, 68, 30, 35, 9, 0, 58, 0, 18, 60, 55, 60, 12, 0, 0, 0, 0, 68, 46, 46, 52, 35, 48, 46, 21, + 50, 0, 0, 18, 0, 0, 0, 0, 68, 51, 0, 9, 0, 11, 64, 9, 0, 0, 22, 18, 0, 0, 0, 0, 49, 67, 40, 64, 43, 13, 3, 6, + 79, 0, 76, 11, 0, 0, 0, 0, 49, 72, 62, 9, 46, 63, 50, 12, 47, 64, 46, 12, 0, 0, 0, 0, 41, 41, 16, 0, 46, 0, 46, 37, + 62, 47, 28, 11, 0, 0, 0, 0, 49, 16, 67, 18, 50, 75, 55, 11, 0, 76, 0, 18, 0, 0, 0, 0, 49, 77, 0, 64, 0, 55, 0, 12, + 46, 70, 60, 18, 0, 0, 0, 0, 68, 65, 6, 11, 35, 20, 0, 18, 0, 0, 73, 12, 0, 0, 0, 0, 49, 50, 41, 48, 0, 60, 46, 48, + 77, 0, 63, 18, 0, 0, 0, 0, 68, 68, 0, 64, 0, 58, 76, 9, 61, 47, 35, 12, 0, 0, 0, 0, 68, 41, 60, 0, 19, 0, 60, 64, + 0, 47, 60, 9, 0, 0, 0, 0, 49, 68, 53, 11, 46, 17, 67, 13, 28, 75, 29, 12, 0, 0, 0, 0, 41, 68, 68, 0, 50, 0, 46, 48, + 62, 78, 13, 11, 0, 0, 0, 0, 41, 41, 74, 0, 50, 48, 0, 9, 44, 47, 76, 18, 0, 0, 0, 0, 68, 41, 0, 48, 60, 0, 60, 21, + 49, 60, 60, 64, 0, 0, 0, 0, 49, 65, 51, 21, 0, 20, 46, 13, 0, 74, 42, 18, 0, 0, 0, 0, 68, 50, 68, 46, 62, 7, 42, 0, + 62, 0, 48, 18, 0, 0, 0, 0, 68, 49, 49, 28, 0, 6, 58, 11, 0, 0, 0, 64, 0, 0, 0, 0, 49, 0, 66, 0, 61, 61, 60, 21, + 54, 32, 17, 9, 0, 0, 0, 0, 68, 49, 54, 20, 50, 0, 46, 13, 0, 5, 51, 13, 0, 0, 0, 0, 68, 68, 68, 0, 62, 0, 46, 21, + 41, 56, 5, 18, 0, 0, 0, 0, 49, 65, 77, 0, 46, 0, 40, 64, 48, 0, 63, 7, 0, 0, 0, 0, 49, 49, 41, 6, 56, 0, 46, 55, + 65, 72, 60, 9, 0, 0, 0, 0, 68, 34, 65, 20, 54, 18, 70, 18, 20, 8, 62, 21, 0, 0, 0, 0, 65, 16, 41, 0, 72, 72, 68, 0, + 62, 59, 20, 20, 0, 0, 0, 0, 62, 16, 0, 12, 0, 0, 0, 11, 0, 60, 11, 11, 0, 0, 0, 0, 49, 41, 0, 0, 0, 25, 52, 21, + 29, 59, 61, 9, 0, 0, 0, 0, 68, 51, 49, 57, 40, 48, 53, 64, 11, 22, 42, 13, 0, 0, 0, 0, 74, 72, 16, 0, 30, 59, 68, 0, + 46, 0, 0, 13, 0, 0, 0, 0, 68, 77, 16, 48, 77, 64, 0, 9, 16, 15, 59, 18, 0, 0, 0, 0, 41, 65, 68, 0, 31, 0, 0, 64, + 54, 52, 38, 18, 0, 0, 0, 0, 68, 49, 0, 0, 0, 23, 67, 64, 41, 60, 59, 64, 0, 0, 0, 0, 51, 0, 68, 65, 65, 13, 41, 52, + 59, 0, 64, 64, 0, 0, 0, 0, 49, 48, 5, 6, 0, 8, 4, 9, 59, 59, 12, 64, 0, 0, 0, 0, 68, 49, 0, 68, 55, 6, 30, 64, + 0, 15, 22, 7, 0, 0, 0, 0, 14, 22, 11, 7, 14, 22, 12, 7, 15, 22, 6, 12, 0, 0, 0, 0, 34, 15, 6, 6, 19, 55, 36, 21, + 50, 0, 22, 7, 0, 0, 0, 0, 16, 15, 7, 7, 19, 6, 6, 18, 0, 55, 22, 7, 0, 0, 0, 0, 45, 59, 6, 6, 19, 36, 22, 22, + 69, 3, 55, 12, 0, 0, 0, 0, 34, 0, 18, 11, 48, 22, 18, 9, 43, 63, 13, 6, 0, 0, 0, 0, 30, 70, 6, 6, 0, 75, 37, 64, + 34, 61, 17, 7, 0, 0, 0, 0, 16, 19, 18, 18, 47, 5, 18, 9, 19, 15, 22, 12, 0, 0, 0, 0, 41, 0, 6, 12, 44, 21, 21, 6, + 0, 15, 22, 7, 0, 0, 0, 0, 14, 15, 7, 9, 14, 36, 21, 11, 75, 36, 21, 12, 0, 0, 0, 0, 45, 59, 21, 6, 14, 55, 25, 21, + 34, 0, 36, 7, 0, 0, 0, 0, 42, 70, 11, 7, 0, 75, 18, 11, 35, 36, 6, 7, 0, 0, 0, 0, 45, 59, 6, 6, 19, 22, 22, 6, + 61, 0, 13, 12, 0, 0, 0, 0, 29, 0, 18, 18, 4, 64, 12, 18, 70, 55, 63, 6, 0, 0, 0, 0, 77, 47, 52, 6, 79, 13, 37, 12, + 34, 61, 17, 7, 0, 0, 0, 0, 16, 40, 6, 9, 17, 7, 12, 9, 56, 3, 55, 12, 0, 0, 0, 0, 41, 78, 4, 75, 0, 55, 36, 12, + 0, 15, 22, 7, 0, 0, 0, 0, 34, 0, 21, 9, 14, 22, 21, 11, 15, 36, 76, 12, 0, 0, 0, 0, 45, 0, 52, 21, 14, 15, 0, 21, + 34, 47, 22, 7, 0, 0, 0, 0, 68, 0, 7, 11, 14, 6, 6, 11, 19, 36, 22, 7, 0, 0, 0, 0, 68, 78, 22, 12, 19, 55, 28, 6, + 79, 17, 5, 12, 0, 0, 0, 0, 62, 67, 64, 9, 47, 21, 21, 11, 76, 55, 76, 12, 0, 0, 0, 0, 51, 14, 66, 21, 59, 28, 0, 21, + 34, 61, 58, 18, 0, 0, 0, 0, 16, 59, 64, 9, 17, 21, 18, 9, 0, 33, 55, 12, 0, 0, 0, 0, 68, 78, 0, 22, 35, 55, 55, 12, + 50, 15, 5, 7, 0, 0, 0, 0, 77, 0, 21, 11, 14, 5, 76, 12, 35, 22, 66, 12, 0, 0, 0, 0, 41, 59, 66, 21, 78, 0, 66, 37, + 34, 0, 55, 7, 0, 0, 0, 0, 68, 78, 8, 18, 14, 7, 13, 11, 0, 55, 36, 7, 0, 0, 0, 0, 41, 46, 0, 21, 14, 0, 52, 21, + 50, 70, 25, 7, 0, 0, 0, 0, 49, 53, 0, 18, 60, 12, 13, 18, 44, 21, 0, 21, 0, 0, 0, 0, 68, 46, 46, 52, 40, 76, 66, 21, + 34, 61, 43, 18, 0, 0, 0, 0, 68, 46, 13, 7, 0, 74, 55, 9, 0, 44, 21, 12, 0, 0, 0, 0, 68, 46, 60, 0, 79, 21, 35, 21, + 61, 35, 36, 11, 0, 0, 0, 0, 41, 61, 0, 18, 34, 75, 70, 12, 0, 22, 66, 21, 0, 0, 0, 0, 68, 72, 49, 76, 73, 44, 66, 37, + 46, 48, 58, 18, 0, 0, 0, 0, 68, 24, 0, 18, 69, 0, 13, 18, 79, 0, 0, 18, 0, 0, 0, 0, 41, 51, 51, 0, 39, 0, 76, 21, + 50, 0, 70, 12, 0, 0, 0, 0, 68, 65, 58, 64, 46, 0, 76, 12, 2, 7, 66, 21, 0, 0, 0, 0, 41, 65, 68, 71, 0, 76, 46, 37, + 62, 0, 0, 18, 0, 0, 0, 0, 68, 62, 60, 11, 79, 17, 37, 18, 79, 0, 6, 18, 0, 0, 0, 0, 68, 68, 79, 48, 0, 43, 44, 21, + 79, 76, 59, 18, 0, 0, 0, 0, 68, 42, 0, 9, 73, 13, 71, 21, 0, 8, 62, 21, 0, 0, 0, 0, 49, 68, 68, 50, 73, 0, 46, 0, + 62, 47, 21, 7, 0, 0, 0, 0, 41, 42, 73, 0, 50, 8, 0, 18, 50, 0, 0, 18, 0, 0, 0, 0, 41, 16, 0, 0, 0, 64, 66, 21, + 0, 0, 76, 18, 0, 0, 0, 0, 68, 51, 54, 9, 66, 60, 0, 13, 0, 0, 0, 21, 0, 0, 0, 0, 68, 65, 49, 50, 65, 21, 46, 0, + 30, 0, 58, 18, 0, 0, 0, 0, 68, 29, 40, 0, 0, 11, 64, 18, 0, 28, 60, 64, 0, 0, 0, 0, 68, 77, 59, 0, 0, 6, 0, 0, + 46, 60, 0, 18, 0, 0, 0, 0, 49, 0, 74, 0, 46, 0, 79, 21, 0, 58, 60, 21, 0, 0, 0, 0, 68, 77, 77, 60, 16, 48, 68, 48, + 54, 14, 20, 64, 0, 0, 0, 0, 49, 54, 5, 75, 46, 43, 0, 64, 0, 0, 0, 18, 0, 0, 0, 0, 54, 54, 62, 73, 62, 22, 15, 55, + 24, 0, 68, 64, 0, 0, 0, 0, 65, 68, 0, 64, 65, 13, 0, 7, 0, 20, 41, 64, 0, 0, 0, 0, 41, 46, 0, 53, 77, 0, 41, 0, + 49, 0, 0, 64, 0, 0, 0, 0, 49, 51, 0, 0, 0, 9, 0, 7, 73, 76, 71, 18, 0, 0, 0, 0, 68, 62, 68, 65, 0, 0, 0, 21, + 73, 0, 14, 18, 0, 0, 0, 0, 49, 54, 16, 20, 77, 0, 14, 64, 7, 6, 30, 64, 0, 0, 0, 0, 49, 41, 49, 30, 68, 22, 30, 0, + 68, 0, 48, 18, 0, 0, 0, 0, 68, 54, 49, 0, 46, 59, 0, 18, 59, 55, 0, 7, 0, 0, 0, 0, 16, 41, 0, 54, 38, 19, 71, 64, + 0, 0, 14, 12, 0, 0, 0, 0, 68, 49, 0, 0, 76, 0, 55, 21, 0, 74, 20, 64, 0, 0, 0, 0, 16, 68, 29, 42, 11, 47, 49, 0, + 68, 0, 59, 64, 0, 0, 0, 0, 42, 0, 0, 48, 0, 0, 0, 11, 0, 36, 47, 36, 0, 0, 0, 0, 49, 41, 0, 41, 25, 22, 0, 64, + 19, 15, 22, 6, 0, 0, 0, 0, 19, 8, 7, 7, 14, 22, 12, 12, 35, 36, 22, 5, 0, 0, 0, 0, 78, 15, 12, 21, 14, 35, 4, 63, + 34, 19, 22, 6, 0, 0, 0, 0, 42, 35, 7, 7, 14, 55, 12, 18, 19, 15, 22, 6, 0, 0, 0, 0, 16, 59, 6, 12, 14, 21, 58, 8, + 19, 17, 22, 6, 0, 0, 0, 0, 14, 43, 7, 7, 47, 21, 18, 64, 0, 33, 21, 5, 0, 0, 0, 0, 46, 44, 21, 21, 79, 0, 37, 21, + 34, 61, 58, 22, 0, 0, 0, 0, 16, 0, 11, 18, 17, 7, 9, 9, 0, 3, 8, 22, 0, 0, 0, 0, 16, 19, 22, 22, 44, 22, 75, 64, + 0, 15, 6, 6, 0, 0, 0, 0, 14, 37, 11, 9, 14, 15, 21, 12, 4, 22, 22, 6, 0, 0, 0, 0, 16, 15, 21, 21, 14, 5, 76, 37, + 34, 19, 22, 6, 0, 0, 0, 0, 16, 59, 18, 18, 14, 7, 12, 18, 0, 36, 22, 6, 0, 0, 0, 0, 41, 59, 36, 6, 14, 75, 36, 8, + 14, 44, 21, 22, 0, 0, 0, 0, 78, 0, 18, 7, 55, 64, 12, 18, 74, 55, 21, 5, 0, 0, 0, 0, 41, 0, 37, 21, 47, 75, 52, 21, + 34, 61, 58, 12, 0, 0, 0, 0, 16, 0, 18, 18, 38, 7, 11, 9, 0, 37, 21, 22, 0, 0, 0, 0, 41, 0, 55, 18, 43, 11, 8, 21, + 19, 15, 22, 7, 0, 0, 0, 0, 77, 0, 18, 11, 14, 63, 21, 12, 75, 36, 76, 21, 0, 0, 0, 0, 16, 0, 17, 21, 14, 4, 17, 37, + 34, 0, 22, 6, 0, 0, 0, 0, 41, 50, 7, 9, 14, 64, 6, 18, 19, 55, 22, 6, 0, 0, 0, 0, 41, 59, 15, 28, 56, 15, 36, 21, + 79, 33, 55, 12, 0, 0, 0, 0, 67, 29, 64, 18, 17, 12, 21, 12, 35, 33, 0, 5, 0, 0, 0, 0, 41, 78, 66, 52, 0, 11, 56, 37, + 53, 61, 37, 12, 0, 0, 0, 0, 68, 73, 11, 9, 27, 58, 9, 9, 57, 17, 75, 22, 0, 0, 0, 0, 41, 69, 0, 0, 0, 64, 37, 12, + 14, 37, 22, 7, 0, 0, 0, 0, 16, 29, 55, 7, 39, 64, 37, 12, 55, 63, 66, 21, 0, 0, 0, 0, 41, 59, 46, 52, 46, 0, 32, 17, + 34, 70, 44, 12, 0, 0, 0, 0, 41, 51, 55, 11, 39, 60, 6, 18, 0, 63, 48, 12, 0, 0, 0, 0, 41, 78, 0, 58, 14, 37, 63, 75, + 72, 33, 55, 12, 0, 0, 0, 0, 62, 24, 64, 18, 0, 6, 21, 12, 0, 55, 37, 37, 0, 0, 0, 0, 68, 34, 46, 71, 0, 21, 69, 52, + 34, 61, 58, 12, 0, 0, 0, 0, 41, 78, 21, 20, 3, 20, 21, 9, 79, 33, 52, 22, 0, 0, 0, 0, 49, 29, 66, 28, 69, 0, 5, 8, + 79, 0, 35, 7, 0, 0, 0, 0, 41, 29, 0, 11, 29, 66, 70, 21, 0, 5, 66, 21, 0, 0, 0, 0, 68, 60, 66, 71, 46, 0, 71, 52, + 46, 71, 37, 7, 0, 0, 0, 0, 68, 62, 0, 64, 79, 64, 76, 18, 56, 35, 0, 22, 0, 0, 0, 0, 41, 77, 51, 0, 71, 0, 52, 55, + 79, 33, 25, 12, 0, 0, 0, 0, 41, 16, 0, 6, 0, 0, 25, 13, 60, 64, 47, 5, 0, 0, 0, 0, 68, 54, 41, 73, 0, 0, 66, 48, + 46, 72, 0, 12, 0, 0, 0, 0, 41, 62, 60, 64, 74, 6, 21, 18, 72, 35, 3, 6, 0, 0, 0, 0, 68, 51, 65, 0, 0, 55, 0, 63, + 50, 35, 52, 7, 0, 0, 0, 0, 68, 77, 0, 64, 78, 60, 56, 21, 0, 25, 67, 21, 0, 0, 0, 0, 41, 65, 68, 24, 67, 20, 71, 0, + 45, 47, 55, 12, 0, 0, 0, 0, 41, 50, 6, 28, 67, 21, 75, 18, 79, 47, 0, 18, 0, 0, 0, 0, 68, 77, 0, 0, 40, 52, 74, 28, + 30, 28, 35, 12, 0, 0, 0, 0, 16, 49, 23, 63, 0, 12, 0, 13, 5, 18, 65, 36, 0, 0, 0, 0, 68, 49, 49, 50, 40, 0, 46, 69, + 62, 72, 20, 6, 0, 0, 0, 0, 49, 68, 0, 13, 67, 4, 8, 18, 61, 60, 0, 18, 0, 0, 0, 0, 49, 46, 77, 0, 0, 0, 79, 0, + 50, 43, 0, 18, 0, 0, 0, 0, 49, 68, 4, 64, 49, 76, 60, 13, 60, 20, 60, 21, 0, 0, 0, 0, 49, 0, 62, 41, 0, 41, 60, 0, + 41, 0, 60, 13, 0, 0, 0, 0, 68, 65, 45, 0, 67, 74, 43, 13, 0, 0, 76, 21, 0, 0, 0, 0, 68, 48, 0, 62, 0, 68, 4, 63, + 30, 74, 0, 64, 0, 0, 0, 0, 49, 41, 0, 5, 61, 19, 0, 21, 40, 20, 60, 28, 0, 0, 0, 0, 42, 0, 68, 65, 60, 20, 0, 71, + 49, 1, 31, 7, 0, 0, 0, 0, 68, 24, 6, 0, 0, 7, 74, 9, 0, 0, 5, 21, 0, 0, 0, 0, 68, 42, 50, 51, 0, 6, 28, 64, + 50, 4, 11, 12, 0, 0, 0, 0, 49, 54, 48, 28, 40, 0, 46, 37, 0, 11, 62, 21, 0, 0, 0, 0, 49, 41, 16, 71, 0, 0, 73, 52, + 68, 0, 60, 64, 0, 0, 0, 0, 49, 54, 0, 32, 77, 52, 0, 18, 74, 0, 0, 64, 0, 0, 0, 0, 49, 68, 0, 41, 73, 25, 48, 7, + 17, 17, 45, 63, 0, 0, 0, 0, 68, 68, 49, 0, 0, 0, 55, 21, 48, 64, 53, 64, 0, 0, 0, 0, 49, 16, 68, 68, 41, 0, 0, 0, + 49, 61, 0, 75, 0, 0, 0, 0, 49, 49, 0, 6, 0, 6, 60, 64, 0, 22, 0, 64, 0, 0, 0, 0, 49, 68, 16, 29, 47, 76, 10, 0, + 19, 15, 5, 5, 0, 0, 0, 0, 19, 22, 7, 22, 14, 0, 21, 6, 15, 4, 22, 5, 0, 0, 0, 0, 78, 55, 58, 52, 79, 0, 23, 79, + 34, 19, 22, 5, 0, 0, 0, 0, 16, 25, 12, 6, 14, 0, 12, 6, 19, 33, 22, 22, 0, 0, 0, 0, 45, 15, 21, 0, 69, 0, 23, 33, + 19, 27, 22, 8, 0, 0, 0, 0, 14, 44, 18, 18, 0, 0, 18, 18, 0, 55, 36, 4, 0, 0, 0, 0, 46, 76, 21, 52, 44, 0, 69, 0, + 34, 61, 58, 22, 0, 0, 0, 0, 77, 58, 18, 11, 0, 0, 18, 20, 1, 15, 58, 55, 0, 0, 0, 0, 16, 0, 22, 58, 63, 0, 36, 0, + 19, 15, 22, 6, 0, 0, 0, 0, 14, 5, 18, 18, 14, 75, 21, 12, 15, 8, 5, 5, 0, 0, 0, 0, 78, 59, 0, 21, 14, 0, 17, 0, + 34, 19, 22, 5, 0, 0, 0, 0, 16, 55, 12, 18, 14, 37, 12, 6, 19, 37, 36, 22, 0, 0, 0, 0, 45, 33, 36, 21, 14, 5, 55, 58, + 19, 17, 36, 8, 0, 0, 0, 0, 14, 52, 18, 18, 15, 0, 6, 18, 52, 55, 37, 4, 0, 0, 0, 0, 45, 33, 52, 17, 56, 64, 69, 48, + 53, 61, 22, 22, 0, 0, 0, 0, 16, 0, 18, 9, 0, 12, 9, 9, 31, 33, 55, 22, 0, 0, 0, 0, 41, 70, 28, 0, 52, 6, 37, 75, + 19, 15, 22, 6, 0, 0, 0, 0, 29, 70, 18, 18, 14, 0, 36, 12, 15, 22, 37, 21, 0, 0, 0, 0, 46, 23, 52, 37, 14, 76, 26, 52, + 46, 0, 55, 6, 0, 0, 0, 0, 41, 3, 18, 18, 14, 47, 12, 18, 19, 63, 55, 22, 0, 0, 0, 0, 68, 0, 0, 21, 69, 8, 0, 58, + 79, 35, 8, 8, 0, 0, 0, 0, 77, 40, 7, 18, 33, 11, 21, 12, 17, 22, 52, 37, 0, 0, 0, 0, 45, 63, 66, 66, 31, 11, 66, 52, + 67, 61, 8, 22, 0, 0, 0, 0, 16, 5, 12, 18, 17, 11, 9, 9, 2, 23, 63, 22, 0, 0, 0, 0, 68, 0, 0, 63, 0, 0, 58, 6, + 14, 15, 22, 6, 0, 0, 0, 0, 77, 60, 55, 18, 56, 36, 25, 21, 44, 63, 52, 21, 0, 0, 0, 0, 77, 15, 50, 66, 79, 0, 66, 17, + 46, 19, 58, 6, 0, 0, 0, 0, 68, 56, 21, 7, 34, 4, 55, 18, 69, 55, 55, 22, 0, 0, 0, 0, 68, 50, 0, 35, 56, 0, 76, 58, + 61, 70, 5, 22, 0, 0, 0, 0, 46, 61, 37, 18, 0, 76, 75, 12, 37, 55, 35, 37, 0, 0, 0, 0, 68, 15, 71, 73, 0, 15, 66, 52, + 67, 61, 0, 22, 0, 0, 0, 0, 68, 0, 58, 13, 17, 7, 21, 18, 0, 58, 55, 22, 0, 0, 0, 0, 68, 3, 2, 0, 70, 68, 37, 55, + 61, 0, 8, 6, 0, 0, 0, 0, 77, 60, 55, 6, 40, 20, 52, 21, 33, 5, 66, 21, 0, 0, 0, 0, 68, 66, 78, 71, 29, 0, 38, 17, + 16, 14, 55, 55, 0, 0, 0, 0, 41, 65, 17, 7, 79, 13, 76, 18, 79, 35, 0, 22, 0, 0, 0, 0, 41, 71, 69, 0, 67, 18, 0, 21, + 79, 23, 37, 22, 0, 0, 0, 0, 77, 77, 6, 20, 0, 13, 55, 6, 55, 11, 66, 37, 0, 0, 0, 0, 41, 76, 16, 71, 0, 76, 71, 40, + 62, 61, 64, 75, 0, 0, 0, 0, 41, 0, 76, 18, 0, 64, 55, 11, 73, 60, 0, 8, 0, 0, 0, 0, 41, 0, 0, 28, 0, 11, 79, 35, + 67, 44, 15, 12, 0, 0, 0, 0, 68, 71, 58, 11, 67, 0, 0, 21, 60, 25, 66, 37, 0, 0, 0, 0, 68, 3, 49, 62, 72, 0, 72, 52, + 77, 0, 37, 12, 0, 0, 0, 0, 68, 38, 9, 21, 46, 41, 75, 6, 19, 0, 0, 0, 0, 0, 0, 0, 49, 65, 34, 38, 79, 0, 15, 58, + 40, 60, 0, 8, 0, 0, 0, 0, 68, 24, 60, 11, 19, 0, 0, 13, 0, 64, 0, 36, 0, 0, 0, 0, 24, 74, 62, 53, 19, 0, 24, 66, + 77, 61, 69, 6, 0, 0, 0, 0, 68, 21, 21, 13, 70, 22, 7, 12, 60, 60, 0, 6, 0, 0, 0, 0, 68, 61, 46, 48, 0, 45, 0, 0, + 78, 44, 37, 6, 0, 0, 0, 0, 41, 0, 60, 20, 77, 39, 0, 36, 0, 36, 46, 0, 0, 0, 0, 0, 68, 6, 16, 68, 54, 0, 50, 0, + 77, 72, 22, 64, 0, 0, 0, 0, 54, 51, 66, 18, 30, 62, 74, 13, 79, 0, 0, 64, 0, 0, 0, 0, 54, 32, 50, 3, 0, 21, 76, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 62, 54, 14, 12, 0, 50, 0, 75, 74, 25, 74, 28, 0, 0, 0, 0, 68, 9, 65, 62, 58, 0, 46, 71, + 49, 60, 11, 22, 0, 0, 0, 0, 49, 61, 0, 0, 0, 0, 5, 20, 34, 17, 60, 64, 0, 0, 0, 0, 68, 54, 48, 0, 5, 0, 0, 0, + 53, 56, 26, 21, 0, 0, 0, 0, 41, 51, 76, 0, 46, 29, 71, 75, 7, 76, 46, 0, 0, 0, 0, 0, 49, 8, 16, 49, 66, 0, 0, 66, + 62, 0, 64, 55, 0, 0, 0, 0, 49, 54, 0, 0, 77, 0, 0, 64, 0, 76, 0, 55, 0, 0, 0, 0, 68, 0, 49, 0, 0, 0, 56, 0, + 0, 4, 55, 63, 0, 0, 0, 0, 49, 61, 0, 0, 0, 71, 34, 55, 15, 47, 0, 0, 0, 0, 0, 0, 68, 6, 68, 62, 20, 0, 51, 0, + 62, 61, 0, 58, 0, 0, 0, 0, 49, 45, 0, 30, 0, 0, 11, 64, 20, 22, 0, 0, 0, 0, 0, 0, 54, 17, 62, 68, 74, 0, 18, 0, + 19, 3, 5, 5, 0, 0, 0, 0, 19, 0, 18, 0, 14, 0, 8, 58, 3, 4, 4, 4, 0, 0, 0, 0, 78, 0, 0, 0, 14, 0, 52, 0, + 34, 19, 4, 4, 0, 0, 0, 0, 16, 0, 28, 0, 14, 0, 22, 28, 19, 4, 4, 4, 0, 0, 0, 0, 16, 0, 21, 0, 14, 0, 37, 55, + 19, 27, 8, 8, 0, 0, 0, 0, 14, 0, 18, 0, 0, 0, 6, 75, 44, 55, 25, 25, 0, 0, 0, 0, 34, 0, 48, 0, 17, 0, 52, 52, + 29, 61, 8, 8, 0, 0, 0, 0, 77, 0, 7, 0, 63, 0, 18, 7, 70, 23, 4, 55, 0, 0, 0, 0, 16, 0, 15, 0, 0, 0, 22, 74, + 19, 15, 5, 5, 0, 0, 0, 0, 14, 0, 7, 6, 14, 0, 36, 55, 15, 63, 37, 4, 0, 0, 0, 0, 29, 0, 0, 0, 79, 0, 52, 52, + 34, 14, 22, 5, 0, 0, 0, 0, 16, 0, 18, 21, 56, 0, 8, 58, 19, 33, 8, 22, 0, 0, 0, 0, 41, 0, 37, 23, 14, 0, 33, 0, + 38, 27, 8, 8, 0, 0, 0, 0, 29, 0, 18, 18, 15, 0, 21, 6, 70, 55, 0, 25, 0, 0, 0, 0, 46, 0, 32, 52, 44, 0, 32, 52, + 29, 61, 8, 8, 0, 0, 0, 0, 16, 0, 18, 22, 0, 0, 18, 9, 56, 23, 37, 55, 0, 0, 0, 0, 41, 0, 23, 0, 43, 0, 37, 63, + 19, 15, 8, 5, 0, 0, 0, 0, 29, 0, 6, 18, 14, 0, 37, 36, 37, 58, 0, 4, 0, 0, 0, 0, 16, 0, 66, 73, 79, 0, 66, 32, + 34, 19, 36, 5, 0, 0, 0, 0, 41, 0, 5, 18, 71, 0, 22, 18, 2, 15, 4, 5, 0, 0, 0, 0, 41, 0, 0, 0, 79, 0, 44, 27, + 31, 27, 8, 8, 0, 0, 0, 0, 29, 0, 21, 18, 35, 0, 21, 75, 33, 55, 52, 37, 0, 0, 0, 0, 77, 0, 66, 66, 32, 0, 71, 66, + 67, 61, 55, 8, 0, 0, 0, 0, 41, 0, 18, 9, 57, 0, 18, 9, 38, 35, 27, 8, 0, 0, 0, 0, 41, 0, 0, 0, 44, 0, 33, 58, + 19, 3, 8, 5, 0, 0, 0, 0, 77, 0, 18, 18, 71, 0, 25, 13, 8, 8, 17, 37, 0, 0, 0, 0, 16, 0, 67, 73, 40, 0, 66, 32, + 30, 39, 55, 5, 0, 0, 0, 0, 68, 0, 55, 7, 46, 0, 36, 18, 79, 63, 37, 22, 0, 0, 0, 0, 41, 0, 59, 0, 69, 0, 70, 23, + 38, 17, 8, 8, 0, 0, 0, 0, 77, 0, 55, 18, 15, 0, 28, 12, 74, 28, 35, 37, 0, 0, 0, 0, 49, 0, 46, 73, 79, 0, 71, 71, + 53, 61, 55, 8, 0, 0, 0, 0, 41, 0, 64, 18, 57, 0, 18, 9, 0, 33, 8, 55, 0, 0, 0, 0, 68, 0, 79, 48, 0, 0, 0, 22, + 38, 35, 28, 8, 0, 0, 0, 0, 77, 0, 64, 11, 61, 0, 52, 21, 58, 64, 71, 37, 0, 0, 0, 0, 41, 0, 73, 71, 46, 0, 66, 32, + 16, 39, 17, 55, 0, 0, 0, 0, 41, 0, 0, 0, 34, 0, 76, 13, 79, 37, 79, 0, 0, 0, 0, 0, 68, 0, 78, 0, 67, 0, 0, 37, + 0, 3, 58, 8, 0, 0, 0, 0, 77, 0, 64, 64, 21, 0, 52, 58, 60, 75, 0, 52, 0, 0, 0, 0, 68, 0, 54, 73, 0, 0, 50, 71, + 30, 61, 15, 22, 0, 0, 0, 0, 41, 0, 6, 75, 0, 0, 36, 18, 0, 60, 74, 75, 0, 0, 0, 0, 41, 0, 49, 0, 79, 0, 43, 35, + 79, 79, 35, 8, 0, 0, 0, 0, 41, 0, 76, 75, 61, 0, 69, 37, 76, 64, 40, 37, 0, 0, 0, 0, 68, 0, 51, 73, 30, 0, 46, 69, + 46, 46, 21, 55, 0, 0, 0, 0, 41, 0, 37, 28, 40, 0, 37, 13, 0, 47, 79, 75, 0, 0, 0, 0, 41, 0, 46, 30, 56, 0, 66, 27, + 72, 0, 76, 8, 0, 0, 0, 0, 68, 0, 75, 20, 0, 0, 52, 58, 44, 0, 0, 52, 0, 0, 0, 0, 68, 0, 68, 49, 14, 0, 30, 32, + 53, 61, 75, 58, 0, 0, 0, 0, 49, 0, 54, 6, 71, 0, 18, 18, 0, 0, 73, 58, 0, 0, 0, 0, 49, 0, 51, 0, 72, 0, 74, 75, + 50, 0, 47, 21, 0, 0, 0, 0, 49, 0, 59, 13, 46, 0, 60, 28, 20, 60, 60, 37, 0, 0, 0, 0, 41, 0, 68, 62, 46, 0, 72, 66, + 68, 38, 17, 55, 0, 0, 0, 0, 49, 0, 7, 0, 73, 0, 48, 13, 62, 60, 60, 36, 0, 0, 0, 0, 41, 0, 0, 65, 30, 0, 0, 0, + 0, 0, 3, 36, 0, 0, 0, 0, 54, 0, 61, 18, 74, 0, 66, 37, 27, 7, 60, 69, 0, 0, 0, 0, 49, 0, 68, 68, 0, 0, 46, 46, + 30, 0, 0, 22, 0, 0, 0, 0, 68, 0, 45, 0, 66, 0, 60, 18, 47, 0, 0, 0, 0, 0, 0, 0, 41, 0, 49, 0, 46, 0, 71, 58, + 0, 25, 5, 21, 0, 0, 0, 0, 49, 0, 60, 0, 77, 0, 0, 0, 0, 5, 46, 0, 0, 0, 0, 0, 68, 0, 68, 77, 61, 0, 72, 52, + 65, 38, 0, 55, 0, 0, 0, 0, 49, 0, 11, 42, 46, 0, 74, 64, 0, 76, 0, 0, 0, 0, 0, 0, 49, 0, 49, 68, 74, 0, 44, 0, + 61, 22, 3, 36, 0, 0, 0, 0, 54, 0, 4, 7, 0, 0, 4, 75, 4, 75, 60, 0, 0, 0, 0, 0, 54, 0, 68, 68, 15, 0, 49, 71, + 49, 0, 13, 36, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 64, 74, 32, 40, 48, 0, 0, 0, 0, 49, 0, 0, 49, 74, 0, 59, 0, + 19, 27, 4, 4, 0, 0, 0, 0, 14, 0, 18, 0, 14, 0, 58, 27, 3, 23, 25, 3, 0, 0, 0, 0, 29, 0, 0, 0, 56, 0, 32, 40, + 34, 14, 3, 4, 0, 0, 0, 0, 16, 0, 21, 0, 39, 0, 8, 23, 14, 17, 33, 4, 0, 0, 0, 0, 16, 0, 0, 0, 14, 0, 44, 79, + 2, 2, 23, 4, 0, 0, 0, 0, 14, 0, 18, 0, 27, 0, 22, 36, 17, 33, 0, 25, 0, 0, 0, 0, 30, 0, 0, 0, 52, 0, 71, 79, + 53, 61, 23, 23, 0, 0, 0, 0, 77, 0, 18, 0, 17, 0, 18, 58, 14, 0, 27, 4, 0, 0, 0, 0, 16, 0, 35, 0, 52, 0, 0, 37, + 19, 27, 4, 4, 0, 0, 0, 0, 14, 0, 7, 7, 14, 0, 37, 23, 25, 58, 0, 17, 0, 0, 0, 0, 29, 0, 50, 0, 71, 0, 32, 69, + 46, 14, 4, 4, 0, 0, 0, 0, 16, 0, 18, 0, 34, 0, 22, 55, 56, 3, 0, 4, 0, 0, 0, 0, 16, 0, 69, 0, 14, 0, 43, 52, + 38, 2, 58, 4, 0, 0, 0, 0, 29, 0, 18, 11, 37, 0, 37, 75, 44, 70, 70, 26, 0, 0, 0, 0, 16, 0, 71, 71, 0, 0, 73, 40, + 53, 61, 5, 23, 0, 0, 0, 0, 77, 0, 18, 12, 0, 0, 18, 18, 79, 27, 0, 15, 0, 0, 0, 0, 16, 0, 35, 0, 43, 0, 0, 36, + 19, 27, 4, 4, 0, 0, 0, 0, 29, 0, 12, 18, 14, 0, 37, 55, 63, 58, 52, 17, 0, 0, 0, 0, 46, 0, 73, 71, 56, 0, 66, 32, + 30, 14, 15, 4, 0, 0, 0, 0, 41, 0, 64, 18, 34, 0, 64, 18, 56, 3, 63, 4, 0, 0, 0, 0, 41, 0, 69, 66, 14, 0, 37, 70, + 38, 27, 23, 4, 0, 0, 0, 0, 46, 0, 13, 18, 35, 0, 55, 22, 43, 33, 52, 17, 0, 0, 0, 0, 24, 0, 73, 73, 79, 0, 71, 71, + 34, 72, 23, 23, 0, 0, 0, 0, 41, 0, 64, 18, 0, 0, 18, 18, 0, 0, 52, 23, 0, 0, 0, 0, 41, 0, 70, 0, 0, 0, 55, 15, + 1, 2, 37, 5, 0, 0, 0, 0, 77, 0, 13, 22, 69, 0, 15, 55, 25, 23, 26, 17, 0, 0, 0, 0, 68, 0, 24, 73, 67, 0, 61, 40, + 46, 14, 37, 15, 0, 0, 0, 0, 41, 0, 63, 22, 39, 0, 8, 18, 56, 44, 0, 0, 0, 0, 0, 0, 41, 0, 66, 65, 39, 0, 69, 0, + 38, 0, 58, 4, 0, 0, 0, 0, 49, 0, 58, 18, 28, 0, 37, 63, 74, 28, 26, 52, 0, 0, 0, 0, 41, 0, 46, 46, 70, 0, 66, 73, + 73, 61, 35, 8, 0, 0, 0, 0, 68, 0, 55, 18, 0, 0, 64, 18, 79, 0, 56, 23, 0, 0, 0, 0, 41, 0, 0, 48, 19, 0, 44, 0, + 38, 79, 15, 4, 0, 0, 0, 0, 49, 0, 0, 8, 67, 0, 25, 23, 58, 75, 0, 52, 0, 0, 0, 0, 45, 0, 24, 51, 67, 0, 53, 66, + 16, 73, 55, 15, 0, 0, 0, 0, 68, 0, 0, 0, 73, 0, 0, 55, 79, 37, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 67, 0, 71, 0, + 0, 35, 52, 4, 0, 0, 0, 0, 16, 0, 4, 64, 63, 0, 76, 0, 79, 75, 66, 52, 0, 0, 0, 0, 68, 0, 41, 49, 79, 0, 46, 73, + 72, 72, 79, 28, 0, 0, 0, 0, 68, 0, 7, 18, 71, 0, 21, 20, 56, 0, 0, 55, 0, 0, 0, 0, 41, 0, 65, 47, 0, 0, 70, 15, + 79, 69, 35, 8, 0, 0, 0, 0, 49, 0, 0, 20, 67, 0, 69, 37, 52, 25, 72, 17, 0, 0, 0, 0, 49, 0, 68, 68, 46, 0, 71, 66, + 46, 46, 55, 63, 0, 0, 0, 0, 41, 0, 59, 60, 0, 0, 0, 22, 0, 19, 0, 44, 0, 0, 0, 0, 41, 0, 68, 0, 73, 0, 60, 0, + 0, 0, 0, 4, 0, 0, 0, 0, 41, 0, 18, 12, 58, 0, 0, 28, 0, 25, 53, 69, 0, 0, 0, 0, 41, 0, 62, 51, 0, 0, 50, 73, + 77, 72, 60, 15, 0, 0, 0, 0, 68, 0, 66, 0, 58, 0, 33, 7, 0, 10, 59, 8, 0, 0, 0, 0, 41, 0, 42, 60, 47, 0, 0, 52, + 10, 0, 79, 8, 0, 0, 0, 0, 49, 0, 66, 0, 67, 0, 0, 0, 8, 3, 46, 52, 0, 0, 0, 0, 49, 0, 68, 49, 46, 0, 77, 66, + 45, 0, 20, 33, 0, 0, 0, 0, 49, 0, 0, 12, 0, 0, 38, 13, 67, 0, 0, 0, 0, 0, 0, 0, 49, 0, 49, 0, 71, 0, 71, 76, + 0, 0, 71, 8, 0, 0, 0, 0, 68, 0, 15, 64, 0, 0, 60, 25, 60, 5, 74, 69, 0, 0, 0, 0, 68, 0, 65, 41, 0, 0, 77, 71, + 77, 32, 58, 58, 0, 0, 0, 0, 68, 0, 39, 60, 1, 0, 0, 7, 60, 15, 66, 15, 0, 0, 0, 0, 49, 0, 17, 68, 0, 0, 0, 60, + 61, 0, 15, 37, 0, 0, 0, 0, 49, 0, 41, 0, 46, 0, 67, 3, 6, 55, 41, 0, 0, 0, 0, 0, 41, 0, 62, 49, 0, 0, 46, 50, + 42, 0, 6, 55, 0, 0, 0, 0, 49, 0, 3, 48, 62, 0, 60, 35, 74, 22, 66, 55, 0, 0, 0, 0, 68, 0, 49, 42, 0, 0, 0, 40, + 72, 40, 4, 33, 0, 0, 0, 0, 68, 0, 0, 0, 61, 0, 0, 0, 0, 64, 27, 69, 0, 0, 0, 0, 68, 0, 68, 42, 0, 0, 73, 73, + 65, 61, 0, 75, 0, 0, 0, 0, 49, 0, 0, 64, 74, 0, 0, 11, 0, 8, 25, 0, 0, 0, 0, 0, 49, 0, 45, 68, 0, 0, 13, 32, + 2, 2, 3, 3, 0, 0, 0, 0, 14, 0, 0, 0, 1, 0, 3, 31, 23, 23, 17, 17, 0, 0, 0, 0, 29, 0, 0, 0, 1, 0, 32, 71, + 30, 39, 3, 3, 0, 0, 0, 0, 24, 0, 0, 0, 39, 0, 23, 35, 31, 2, 3, 3, 0, 0, 0, 0, 16, 0, 0, 0, 31, 0, 1, 79, + 38, 1, 27, 3, 0, 0, 0, 0, 29, 0, 0, 0, 43, 0, 63, 27, 33, 25, 70, 26, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 73, 72, + 67, 61, 27, 23, 0, 0, 0, 0, 53, 0, 0, 0, 23, 0, 75, 5, 31, 1, 27, 3, 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 43, 0, + 2, 2, 3, 3, 0, 0, 0, 0, 29, 0, 22, 15, 31, 0, 3, 25, 3, 23, 17, 17, 0, 0, 0, 0, 78, 0, 46, 71, 66, 0, 73, 72, + 30, 34, 3, 3, 0, 0, 0, 0, 16, 0, 75, 8, 39, 0, 55, 75, 56, 70, 44, 3, 0, 0, 0, 0, 41, 0, 56, 17, 14, 0, 19, 61, + 1, 2, 3, 3, 0, 0, 0, 0, 29, 0, 22, 75, 35, 0, 21, 27, 70, 33, 70, 26, 0, 0, 0, 0, 46, 0, 46, 68, 66, 0, 73, 51, + 29, 72, 23, 23, 0, 0, 0, 0, 77, 0, 64, 75, 74, 0, 7, 75, 14, 44, 43, 33, 0, 0, 0, 0, 41, 0, 0, 0, 17, 0, 0, 0, + 2, 2, 3, 3, 0, 0, 0, 0, 29, 0, 55, 18, 10, 0, 17, 43, 23, 23, 26, 17, 0, 0, 0, 0, 24, 0, 73, 73, 71, 0, 73, 72, + 30, 34, 15, 15, 0, 0, 0, 0, 41, 0, 21, 18, 39, 0, 36, 58, 61, 70, 43, 4, 0, 0, 0, 0, 41, 0, 32, 0, 66, 0, 69, 44, + 38, 1, 23, 3, 0, 0, 0, 0, 29, 0, 4, 75, 15, 0, 37, 36, 37, 55, 71, 32, 0, 0, 0, 0, 68, 0, 68, 68, 0, 0, 71, 73, + 67, 61, 15, 23, 0, 0, 0, 0, 16, 0, 55, 11, 17, 0, 22, 18, 69, 70, 69, 27, 0, 0, 0, 0, 41, 0, 57, 79, 0, 0, 35, 63, + 1, 27, 43, 3, 0, 0, 0, 0, 77, 0, 35, 21, 10, 0, 15, 70, 37, 63, 66, 17, 0, 0, 0, 0, 16, 0, 24, 46, 79, 0, 53, 73, + 46, 39, 0, 15, 0, 0, 0, 0, 41, 0, 21, 13, 71, 0, 55, 58, 56, 57, 69, 0, 0, 0, 0, 0, 41, 0, 0, 72, 34, 0, 43, 17, + 38, 2, 27, 3, 0, 0, 0, 0, 77, 0, 37, 22, 74, 0, 0, 15, 44, 25, 71, 32, 0, 0, 0, 0, 45, 0, 16, 42, 0, 0, 34, 46, + 67, 72, 75, 23, 0, 0, 0, 0, 41, 0, 64, 11, 0, 0, 64, 18, 79, 35, 52, 15, 0, 0, 0, 0, 41, 0, 30, 0, 0, 0, 69, 35, + 38, 2, 0, 4, 0, 0, 0, 0, 77, 0, 0, 55, 66, 0, 0, 0, 25, 75, 79, 52, 0, 0, 0, 0, 41, 0, 49, 68, 69, 0, 67, 67, + 16, 67, 35, 15, 0, 0, 0, 0, 41, 0, 74, 18, 73, 0, 33, 75, 79, 32, 0, 0, 0, 0, 0, 0, 41, 0, 46, 0, 71, 0, 38, 57, + 10, 0, 58, 3, 0, 0, 0, 0, 49, 0, 0, 55, 17, 0, 44, 70, 0, 55, 79, 61, 0, 0, 0, 0, 68, 0, 68, 68, 0, 0, 73, 73, + 67, 72, 58, 23, 0, 0, 0, 0, 41, 0, 0, 20, 0, 0, 63, 18, 0, 74, 76, 33, 0, 0, 0, 0, 41, 0, 24, 0, 0, 0, 0, 74, + 61, 0, 0, 3, 0, 0, 0, 0, 41, 0, 0, 63, 39, 0, 44, 70, 17, 5, 72, 52, 0, 0, 0, 0, 68, 0, 41, 49, 72, 0, 66, 73, + 16, 62, 0, 44, 0, 0, 0, 0, 68, 0, 64, 0, 46, 0, 0, 13, 40, 47, 0, 70, 0, 0, 0, 0, 41, 0, 65, 59, 72, 0, 60, 79, + 79, 72, 0, 3, 0, 0, 0, 0, 49, 0, 0, 0, 70, 0, 52, 15, 52, 18, 71, 32, 0, 0, 0, 0, 68, 0, 51, 49, 60, 0, 46, 46, + 29, 72, 0, 8, 0, 0, 0, 0, 68, 0, 74, 60, 0, 0, 64, 58, 46, 36, 69, 27, 0, 0, 0, 0, 41, 0, 40, 60, 66, 0, 17, 0, + 79, 0, 60, 3, 0, 0, 0, 0, 41, 0, 65, 0, 72, 0, 27, 0, 63, 22, 0, 52, 0, 0, 0, 0, 68, 0, 49, 41, 60, 0, 72, 71, + 16, 29, 23, 0, 0, 0, 0, 0, 49, 0, 15, 35, 65, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 49, 0, 77, 77, 78, 0, 0, 0, + 1, 32, 0, 43, 0, 0, 0, 0, 49, 0, 0, 17, 60, 0, 48, 0, 0, 4, 46, 66, 0, 0, 0, 0, 68, 0, 68, 68, 46, 0, 67, 46, + 30, 60, 52, 33, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 20, 64, 0, 0, 46, 75, 0, 0, 0, 0, 68, 0, 53, 51, 0, 0, 65, 0, + 14, 0, 44, 33, 0, 0, 0, 0, 68, 0, 22, 32, 72, 0, 40, 0, 0, 66, 26, 17, 0, 0, 0, 0, 68, 0, 68, 68, 46, 0, 78, 67, + 68, 72, 64, 44, 0, 0, 0, 0, 49, 0, 59, 48, 40, 0, 58, 28, 70, 39, 14, 69, 0, 0, 0, 0, 68, 0, 49, 51, 16, 0, 0, 70, + 72, 0, 3, 43, 0, 0, 0, 0, 49, 0, 63, 0, 61, 0, 3, 37, 0, 64, 56, 66, 0, 0, 0, 0, 54, 0, 68, 68, 0, 0, 0, 67, + 51, 59, 0, 3, 0, 0, 0, 0, 68, 0, 16, 0, 0, 0, 0, 64, 74, 53, 72, 0, 0, 0, 0, 0, 49, 0, 65, 68, 0, 0, 61, 28, + 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 43, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 39, 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 10, 27, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 32, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 72, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 2, 2, 0, 0, 0, 0, 29, 0, 55, 0, 1, 0, 3, 70, 23, 23, 26, 1, 0, 0, 0, 0, 29, 0, 77, 0, 39, 0, 53, 30, + 30, 34, 2, 2, 0, 0, 0, 0, 16, 0, 5, 0, 39, 0, 8, 58, 31, 1, 27, 2, 0, 0, 0, 0, 16, 0, 69, 0, 39, 0, 52, 79, + 38, 31, 2, 2, 0, 0, 0, 0, 29, 0, 75, 0, 15, 0, 0, 3, 3, 44, 32, 32, 0, 0, 0, 0, 30, 0, 46, 0, 35, 0, 46, 73, + 53, 72, 23, 27, 0, 0, 0, 0, 77, 0, 22, 0, 0, 0, 18, 18, 1, 69, 27, 2, 0, 0, 0, 0, 41, 0, 56, 0, 17, 0, 69, 0, + 1, 1, 2, 2, 0, 0, 0, 0, 29, 0, 3, 70, 32, 0, 2, 57, 23, 58, 32, 32, 0, 0, 0, 0, 24, 0, 68, 73, 29, 0, 53, 73, + 30, 30, 27, 2, 0, 0, 0, 0, 16, 0, 5, 15, 34, 0, 55, 58, 40, 2, 0, 2, 0, 0, 0, 0, 41, 0, 67, 77, 39, 0, 26, 69, + 38, 1, 2, 2, 0, 0, 0, 0, 24, 0, 55, 55, 0, 0, 0, 0, 33, 70, 71, 40, 0, 0, 0, 0, 16, 0, 68, 68, 79, 0, 73, 46, + 29, 72, 27, 27, 0, 0, 0, 0, 77, 0, 18, 7, 58, 0, 13, 18, 32, 57, 44, 2, 0, 0, 0, 0, 41, 0, 71, 0, 43, 0, 52, 69, + 1, 1, 27, 2, 0, 0, 0, 0, 77, 0, 0, 0, 79, 0, 17, 0, 63, 58, 32, 32, 0, 0, 0, 0, 16, 0, 24, 68, 10, 0, 72, 24, + 46, 73, 3, 44, 0, 0, 0, 0, 68, 0, 21, 15, 40, 0, 75, 8, 71, 74, 79, 43, 0, 0, 0, 0, 41, 0, 72, 72, 40, 0, 69, 1, + 69, 79, 26, 2, 0, 0, 0, 0, 16, 0, 8, 55, 17, 0, 0, 0, 44, 52, 71, 40, 0, 0, 0, 0, 77, 0, 68, 41, 0, 0, 53, 46, + 67, 72, 58, 23, 0, 0, 0, 0, 49, 0, 12, 20, 48, 0, 12, 18, 61, 61, 0, 2, 0, 0, 0, 0, 41, 0, 79, 40, 79, 0, 52, 79, + 79, 69, 0, 2, 0, 0, 0, 0, 77, 0, 43, 59, 79, 0, 10, 0, 23, 55, 66, 32, 0, 0, 0, 0, 77, 0, 42, 73, 67, 0, 73, 67, + 16, 46, 44, 44, 0, 0, 0, 0, 41, 0, 74, 0, 79, 0, 33, 22, 69, 79, 40, 43, 0, 0, 0, 0, 41, 0, 24, 77, 10, 0, 0, 26, + 38, 0, 79, 2, 0, 0, 0, 0, 41, 0, 44, 21, 0, 0, 74, 70, 52, 55, 46, 71, 0, 0, 0, 0, 41, 0, 68, 68, 0, 0, 46, 46, + 67, 72, 70, 23, 0, 0, 0, 0, 41, 0, 64, 13, 58, 0, 75, 75, 79, 61, 0, 44, 0, 0, 0, 0, 41, 0, 62, 62, 74, 0, 70, 38, + 10, 2, 0, 2, 0, 0, 0, 0, 68, 0, 0, 28, 78, 0, 0, 26, 25, 63, 72, 61, 0, 0, 0, 0, 41, 0, 41, 68, 71, 0, 29, 73, + 46, 72, 0, 44, 0, 0, 0, 0, 41, 0, 27, 28, 46, 0, 37, 75, 39, 61, 44, 57, 0, 0, 0, 0, 41, 0, 38, 0, 19, 0, 50, 0, + 79, 71, 27, 43, 0, 0, 0, 0, 68, 0, 0, 55, 0, 0, 0, 69, 70, 20, 79, 66, 0, 0, 0, 0, 49, 0, 41, 68, 0, 0, 16, 46, + 46, 0, 47, 27, 0, 0, 0, 0, 41, 0, 13, 13, 0, 0, 58, 13, 69, 60, 66, 0, 0, 0, 0, 0, 41, 0, 54, 60, 0, 0, 79, 0, + 38, 56, 0, 2, 0, 0, 0, 0, 77, 0, 58, 62, 0, 0, 74, 79, 58, 0, 50, 61, 0, 0, 0, 0, 41, 0, 77, 41, 65, 0, 71, 46, + 41, 30, 64, 44, 0, 0, 0, 0, 68, 0, 19, 60, 71, 0, 47, 55, 78, 0, 48, 79, 0, 0, 0, 0, 68, 0, 0, 65, 47, 0, 60, 38, + 72, 0, 34, 2, 0, 0, 0, 0, 68, 0, 77, 0, 60, 0, 60, 17, 48, 20, 50, 73, 0, 0, 0, 0, 68, 0, 68, 68, 0, 0, 51, 73, + 41, 0, 28, 15, 0, 0, 0, 0, 49, 0, 60, 13, 60, 0, 0, 58, 68, 0, 77, 31, 0, 0, 0, 0, 41, 0, 30, 79, 60, 0, 0, 0, + 0, 32, 50, 44, 0, 0, 0, 0, 49, 0, 29, 0, 60, 0, 0, 31, 43, 0, 60, 79, 0, 0, 0, 0, 49, 0, 68, 51, 46, 0, 54, 73, + 77, 0, 21, 69, 0, 0, 0, 0, 49, 0, 26, 0, 46, 0, 0, 0, 62, 0, 60, 79, 0, 0, 0, 0, 49, 0, 41, 68, 0, 0, 49, 0, + 61, 74, 47, 27, 0, 0, 0, 0, 49, 0, 39, 34, 74, 0, 0, 69, 20, 11, 61, 71, 0, 0, 0, 0, 68, 0, 68, 68, 46, 0, 71, 46, + 54, 0, 60, 27, 0, 0, 0, 0, 49, 0, 35, 0, 61, 0, 8, 75, 0, 15, 65, 0, 0, 0, 0, 0, 49, 0, 49, 16, 0, 0, 0, 0, + 10, 10, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 43, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 30, 56, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 66, 79, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 10, 79, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 52, 74, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 72, 72, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 10, 38, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 79, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 73, 79, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 57, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 10, 69, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33, 26, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 72, 57, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 32, 79, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 10, 38, 1, 0, 0, 0, 0, 29, 0, 0, 21, 29, 0, 69, 27, 23, 23, 61, 32, 0, 0, 0, 0, 77, 0, 42, 68, 67, 0, 46, 72, + 30, 30, 70, 2, 0, 0, 0, 0, 41, 0, 64, 55, 40, 0, 55, 55, 66, 32, 56, 1, 0, 0, 0, 0, 41, 0, 29, 62, 79, 0, 60, 60, + 10, 10, 32, 1, 0, 0, 0, 0, 24, 0, 30, 0, 0, 0, 28, 33, 3, 70, 40, 32, 0, 0, 0, 0, 67, 0, 51, 42, 0, 0, 46, 68, + 67, 72, 38, 27, 0, 0, 0, 0, 77, 0, 4, 20, 58, 0, 21, 64, 56, 10, 38, 1, 0, 0, 0, 0, 49, 0, 42, 68, 56, 0, 0, 0, + 31, 31, 31, 1, 0, 0, 0, 0, 24, 0, 0, 70, 39, 0, 56, 0, 23, 3, 53, 32, 0, 0, 0, 0, 77, 0, 41, 68, 40, 0, 46, 46, + 30, 30, 70, 44, 0, 0, 0, 0, 41, 0, 58, 55, 34, 0, 58, 44, 40, 38, 0, 57, 0, 0, 0, 0, 41, 0, 60, 30, 40, 0, 79, 56, + 79, 69, 79, 1, 0, 0, 0, 0, 24, 0, 0, 0, 17, 0, 79, 43, 69, 74, 39, 66, 0, 0, 0, 0, 68, 0, 41, 41, 79, 0, 73, 42, + 29, 72, 35, 27, 0, 0, 0, 0, 77, 0, 64, 18, 55, 0, 75, 13, 79, 0, 71, 31, 0, 0, 0, 0, 68, 0, 24, 66, 15, 0, 0, 79, + 10, 0, 10, 1, 0, 0, 0, 0, 77, 0, 0, 0, 71, 0, 1, 31, 63, 35, 67, 32, 0, 0, 0, 0, 16, 0, 49, 49, 73, 0, 73, 73, + 16, 46, 33, 44, 0, 0, 0, 0, 41, 0, 8, 74, 34, 0, 55, 58, 32, 0, 40, 1, 0, 0, 0, 0, 41, 0, 60, 46, 40, 0, 38, 71, + 10, 69, 79, 1, 0, 0, 0, 0, 49, 0, 0, 28, 0, 0, 31, 26, 70, 75, 71, 71, 0, 0, 0, 0, 41, 0, 41, 68, 79, 0, 53, 68, + 67, 67, 0, 44, 0, 0, 0, 0, 68, 0, 0, 22, 43, 0, 58, 13, 53, 0, 79, 79, 0, 0, 0, 0, 68, 0, 68, 68, 74, 0, 79, 74, + 10, 10, 27, 31, 0, 0, 0, 0, 77, 0, 0, 60, 39, 0, 79, 79, 13, 75, 72, 61, 0, 0, 0, 0, 16, 0, 68, 49, 67, 0, 72, 67, + 46, 68, 79, 19, 0, 0, 0, 0, 41, 0, 60, 36, 67, 0, 52, 22, 31, 0, 0, 10, 0, 0, 0, 0, 41, 0, 41, 68, 73, 0, 71, 61, + 56, 61, 79, 10, 0, 0, 0, 0, 49, 0, 15, 64, 74, 0, 47, 0, 74, 0, 46, 73, 0, 0, 0, 0, 68, 0, 68, 68, 57, 0, 30, 24, + 72, 72, 0, 15, 0, 0, 0, 0, 68, 0, 75, 20, 17, 0, 6, 13, 46, 0, 59, 19, 0, 0, 0, 0, 68, 0, 0, 62, 0, 0, 40, 0, + 29, 10, 79, 31, 0, 0, 0, 0, 68, 0, 63, 47, 0, 0, 0, 79, 0, 20, 72, 40, 0, 0, 0, 0, 41, 0, 68, 41, 74, 0, 46, 67, + 77, 74, 74, 56, 0, 0, 0, 0, 68, 0, 0, 59, 0, 0, 0, 55, 38, 33, 0, 79, 0, 0, 0, 0, 41, 0, 24, 65, 57, 0, 0, 0, + 69, 74, 52, 31, 0, 0, 0, 0, 62, 0, 50, 41, 8, 0, 60, 0, 3, 5, 79, 66, 0, 0, 0, 0, 68, 0, 68, 68, 60, 0, 41, 46, + 78, 49, 0, 27, 0, 0, 0, 0, 62, 0, 13, 60, 74, 0, 0, 75, 74, 0, 49, 69, 0, 0, 0, 0, 54, 0, 49, 30, 0, 0, 0, 48, + 39, 27, 69, 1, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 69, 38, 37, 59, 69, 61, 0, 0, 0, 0, 41, 0, 49, 41, 72, 0, 72, 67, + 46, 56, 0, 69, 0, 0, 0, 0, 49, 0, 62, 0, 72, 0, 0, 0, 66, 40, 49, 69, 0, 0, 0, 0, 41, 0, 62, 74, 46, 0, 0, 0, + 61, 39, 47, 57, 0, 0, 0, 0, 54, 0, 49, 0, 74, 0, 0, 0, 37, 20, 0, 67, 0, 0, 0, 0, 0, 0, 77, 66, 62, 0, 62, 42, + 72, 72, 22, 27, 0, 0, 0, 0, 49, 0, 0, 65, 0, 0, 59, 58, 26, 66, 79, 79, 0, 0, 0, 0, 54, 0, 45, 77, 0, 0, 60, 44, + 10, 10, 10, 10, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 8, 7, 43, 38, 10, 10, 0, 0, 0, 0, 38, 0, 0, 0, 10, 0, 63, 6, + 30, 73, 10, 1, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 6, 7, 10, 38, 10, 10, 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 21, 64, + 10, 57, 10, 10, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 64, 20, 26, 44, 40, 71, 0, 0, 0, 0, 40, 0, 0, 0, 26, 0, 64, 20, + 53, 72, 27, 38, 0, 0, 0, 0, 57, 0, 0, 0, 37, 0, 9, 20, 10, 56, 69, 10, 0, 0, 0, 0, 38, 0, 0, 0, 17, 0, 64, 20, + 10, 10, 10, 10, 0, 0, 0, 0, 57, 0, 31, 0, 10, 0, 8, 18, 44, 38, 32, 10, 0, 0, 0, 0, 10, 0, 62, 0, 10, 0, 70, 64, + 30, 73, 31, 38, 0, 0, 0, 0, 10, 0, 63, 0, 39, 0, 6, 7, 10, 74, 10, 10, 0, 0, 0, 0, 32, 0, 70, 0, 10, 0, 58, 63, + 31, 32, 10, 10, 0, 0, 0, 0, 38, 0, 54, 0, 0, 0, 9, 18, 44, 44, 39, 71, 0, 0, 0, 0, 56, 0, 41, 0, 0, 0, 63, 20, + 72, 29, 27, 27, 0, 0, 0, 0, 27, 0, 6, 0, 23, 0, 9, 18, 32, 69, 10, 52, 0, 0, 0, 0, 57, 0, 79, 0, 23, 0, 18, 64, + 10, 31, 69, 10, 0, 0, 0, 0, 38, 0, 17, 29, 10, 0, 6, 18, 3, 43, 72, 32, 0, 0, 0, 0, 31, 0, 73, 73, 38, 0, 25, 21, + 46, 73, 44, 44, 0, 0, 0, 0, 40, 0, 7, 6, 39, 0, 18, 18, 10, 40, 66, 69, 0, 0, 0, 0, 32, 0, 60, 39, 10, 0, 58, 58, + 38, 38, 56, 1, 0, 0, 0, 0, 38, 0, 32, 77, 15, 0, 18, 9, 26, 70, 46, 40, 0, 0, 0, 0, 38, 0, 41, 68, 69, 0, 0, 21, + 67, 72, 3, 27, 0, 0, 0, 0, 0, 0, 20, 18, 5, 0, 9, 9, 31, 79, 79, 61, 0, 0, 0, 0, 38, 0, 0, 0, 35, 0, 64, 13, + 32, 38, 69, 10, 0, 0, 0, 0, 38, 0, 50, 47, 66, 0, 21, 18, 33, 60, 77, 66, 0, 0, 0, 0, 0, 0, 41, 73, 79, 0, 44, 74, + 67, 66, 33, 3, 0, 0, 0, 0, 38, 0, 12, 23, 66, 0, 18, 18, 69, 32, 79, 56, 0, 0, 0, 0, 32, 0, 48, 23, 73, 0, 64, 63, + 69, 47, 69, 10, 0, 0, 0, 0, 0, 0, 65, 62, 17, 0, 7, 20, 79, 43, 72, 73, 0, 0, 0, 0, 74, 0, 41, 68, 0, 0, 0, 21, + 29, 24, 48, 44, 0, 0, 0, 0, 57, 0, 20, 18, 0, 0, 9, 9, 71, 19, 15, 79, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 20, 11, + 0, 38, 79, 32, 0, 0, 0, 0, 38, 0, 0, 48, 67, 0, 11, 9, 33, 0, 46, 32, 0, 0, 0, 0, 26, 0, 68, 73, 69, 0, 60, 0, + 77, 51, 60, 0, 0, 0, 0, 0, 0, 0, 12, 11, 10, 0, 11, 7, 14, 48, 0, 0, 0, 0, 0, 0, 32, 0, 60, 0, 74, 0, 0, 21, + 0, 47, 0, 69, 0, 0, 0, 0, 74, 0, 62, 60, 79, 0, 11, 11, 0, 0, 30, 46, 0, 0, 0, 0, 60, 0, 45, 68, 52, 0, 0, 0, + 30, 50, 37, 0, 0, 0, 0, 0, 36, 0, 20, 20, 0, 0, 11, 20, 65, 46, 66, 74, 0, 0, 0, 0, 74, 0, 0, 47, 13, 0, 18, 48, + 43, 77, 72, 79, 0, 0, 0, 0, 60, 0, 65, 60, 30, 0, 9, 11, 25, 38, 45, 72, 0, 0, 0, 0, 26, 0, 54, 78, 79, 0, 0, 0, + 0, 29, 60, 44, 0, 0, 0, 0, 34, 0, 18, 0, 61, 0, 18, 11, 40, 35, 0, 71, 0, 0, 0, 0, 32, 0, 65, 47, 74, 0, 6, 20, + 0, 58, 32, 59, 0, 0, 0, 0, 18, 0, 0, 24, 72, 0, 9, 9, 0, 0, 45, 68, 0, 0, 0, 0, 25, 0, 19, 68, 60, 0, 0, 0, + 0, 63, 0, 0, 0, 0, 0, 0, 60, 0, 18, 23, 0, 0, 11, 20, 60, 64, 68, 0, 0, 0, 0, 0, 0, 0, 7, 52, 0, 0, 13, 13, + 17, 0, 0, 59, 0, 0, 0, 0, 63, 0, 58, 16, 74, 0, 11, 20, 32, 47, 60, 0, 0, 0, 0, 0, 60, 0, 51, 49, 69, 0, 15, 52, + 54, 62, 0, 74, 0, 0, 0, 0, 43, 0, 0, 7, 42, 0, 20, 9, 54, 34, 34, 51, 0, 0, 0, 0, 66, 0, 0, 21, 14, 0, 48, 66, + 47, 65, 4, 52, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 7, 12, 0, 12, 0, 50, 0, 0, 0, 0, 0, 0, 35, 46, 22, 0, 0, 36, + 0, 0, 30, 64, 0, 0, 0, 0, 20, 0, 0, 22, 71, 0, 11, 20, 41, 76, 0, 57, 0, 0, 0, 0, 20, 0, 0, 34, 11, 0, 37, 21, + 40, 45, 0, 26, 0, 0, 0, 0, 3, 0, 0, 11, 19, 0, 7, 9, 60, 68, 0, 0, 0, 0, 0, 0, 60, 0, 0, 45, 60, 0, 28, 0, + 60, 49, 32, 0, 0, 0, 0, 0, 29, 0, 11, 62, 25, 0, 9, 28, 50, 66, 0, 59, 0, 0, 0, 0, 70, 0, 0, 41, 21, 0, 0, 0, + 0, 51, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 11, 48, 0, 0, 46, 0, 0, 0, 0, 20, 0, 0, 0, 13, 0, 68, 0, + 51, 46, 24, 72, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 14, 9, 32, 41, 52, 70, 0, 0, 0, 0, 20, 0, 0, 0, 11, 0, 0, 5, +}; + +static const unsigned short m03_Tx_model_m1_scale_table[] = +{ + 100, 4481, 1245, 580, 314, 182, 228, 225, 366, 647, 1, 211, 189, 138, 143, 214, + 85, 146, 260, 135, 361, 111, 232, 258, 182, 244, 329, 258, 155, 114, 202, 1038, + 125, 586, 91, 132, 217, 144, 161, 320, 167, 76, 45, 537, 205, 43, 113, 69, + 27, 115, 41, 26, 102, 180, 55, 223, 477, 195, 218, 128, 80, 81, 25, 179, + 90, 48, 77, 168, 63, 1302, 531, 147, 343, 85, 45, 167, 36, 41, 67, 289, +}; + +static const unsigned char m03_Tx_model_m2_state_table[] = +{ + 0,110, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153, 0,200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,148, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,252, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,202, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0,142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,181, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170, 0,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253, 0,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,249, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127,157,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 90,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 35,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 84,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90, 50,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,153,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,144,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,104, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,141,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 61,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,117,165,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 84,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,199,144, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,226,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,144,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,104,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 88,227,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,166,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,137, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186,142,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,229,138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,230,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,157,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,149,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,106,226,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,166,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,181,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 84,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,214,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,226, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,246,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,132,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127, 36,207, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 27,195, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 85,222,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 84,222, 0, 0, 0,137, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 18,207, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,142,126,242, 0, 0, 0,189, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,144,195, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,104,170, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,104,110, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,157,146, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 85,153, 0, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 84, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,157,112,236, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,205,246, 0, 0, 0,193, 0, 0, 0, 0, 0, 0, 0, 0, + 0,155,204,195, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,112, 37, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,174,221, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,174,207, 0, 0, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, + 0,199,199,217, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,142,164, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,238,202, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0,251,253,162, 0, 0, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,247,224, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0,151,104,201, 0, 0, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,229,202, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,174,174, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,111,254, 0, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,149, 0, 0, 0, 0,234, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,227, 21, 0, 0, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,112,214, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0,213,231,217, 0, 0, 0,206, 0, 0, 0, 0, 0, 0, 0, 0, 0,161,222,235, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127,201,163, 0, 65, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,225,249, 0,102, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 82,227,218, 0,244, 0,178, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 90, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127,218,213, 0,148, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,236,163, 0,226, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 85,116,250, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,121,164, 0, 27, 0,251, 0, 0, 0, 0, 0, 0, 0, 0, + 0,151,144, 78, 0,157, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18,238, 0, 92, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, + 0,219,144,183, 0,174, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,175,201, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230, 96,207, 0, 37, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,225, 0, 0,246, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59,203,195, 0,253, 0,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,146,201, 0,187, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,159,128,250, 0,227, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,119,184, 0,251, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,137, 0,221, 0,128, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0,186,193,216, 0,106, 0,237, 0, 0, 0, 0, 0, 0, 0, 0, + 0,145,118,217, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,217,241, 0,232, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, + 0,193,245, 4, 0,220, 0,135, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,253,231, 0,199, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230, 20,198, 0,227, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,174,238, 0,157, 0,159, 0, 0, 0, 0, 0, 0, 0, 0, + 0,100,253,241, 0, 68, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,175, 0, 0,199, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 88,213,217, 0,121, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,246,241, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,217, 56, 0,232, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,125,207, 0,227, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127,148,238, 0, 34,247,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,148,235, 0,229,222,134, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49,247,233, 0, 45,248,197, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,144,100, 0,226,149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65,203,214, 0,119,226,119, 0, 0, 0, 0, 0, 0, 0, 0, 0,230,228,246, 0,204,244, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 0,244,195,174, 0, 38,227,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 75,142, 0, 92,187,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,201,233, 0, 36,230,124, 0, 0, 0, 0, 0, 0, 0, 0, 0,179,144,128, 0,222,227,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49,170,201, 0,253, 43,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,175,246, 0,161,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46,213,230, 0, 18,204,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,212,219, 0,227,227,207, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 88,210,246, 0,246,125,218, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 24,100, 0,126,233,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,213,238, 0,247,245,207, 0, 0, 0, 0, 0, 0, 0, 0, 0,227,231,238, 0,199,138,215, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,247,234, 0,172,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186,193, 6, 0, 88, 29,198, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,246,202, 0,227, 22,192, 0, 0, 0, 0, 0, 0, 0, 0, 0,119,223,198, 0,248, 93,160, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,241,253, 0, 41,171,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,144,201, 0,145,227,223, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,243,231, 0,227, 85,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,253,232, 0, 82,234,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,223,241, 0,227,250,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,175,242, 0, 41, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0,137, 0,144, 0,149, 43,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,234,254, 0,140,192,206, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119, 19,245, 0,241,145,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,236,201, 0,233,159,217, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127, 53,252,227, 0,234,139, 0, 0, 0, 0, 0, 0, 0, 0, 0,159,161,128,187,227,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,114,244,202, 35,227, 0,168, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,105,251,126,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127,112,247,236,227,204,232, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,222,172,130,235,227,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0,240,155,119, 0,242,231,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 84,199,126,229,229,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 68,238, 27,227,247,243, 0, 0, 0, 0, 0, 0, 0, 0, 0,179,230,147,226,174,232,234, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 8,195,227,222,253, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,165, 6,175,199, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,106,174,233,201,200,199,233, 0, 0, 0, 0, 0, 0, 0, 0, 0,179,230,179,119,166,181,150, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 85,140,247,225,246,201,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 84,127,112,166,222, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127, 29,238,209,192,250,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,166,218,145,198,232,245, 0, 0, 0, 0, 0, 0, 0, 0, + 0,159,175, 11,114,160,241,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,186,179,199,166, 0,248,251, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 45,172,241,246,192,124,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 29,184,145, 24,115,248, 0, 0, 0, 0, 0, 0, 0, 0, + 0,181,117,192,209, 6,209,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,240,246,230,193, 42,248, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 68,247,246,172,240,250, 0, 0, 0, 0, 0, 0, 0, 0, 0,179,151,195,193,227, 85,198, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,172,224, 0,124, 94,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41,234,114,198, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 41,145,155,248, 27, 42, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,159, 17,145,244, 14, 97, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,106,245,119, 15,230,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,166,245,174,227,235,115, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127,100,180, 9,200,119, 3, 0, 0, 0, 0, 0, 0, 0,110, 0,114,100,195, 18, 42,181,129, 0, 0, 0, 0, 0, 0, 0,231, + 0,114,165,183,227,152,108,231, 0, 0, 0, 0, 0, 0, 0, 63, 0,160,105,175,126,187,227,216, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,227,110,236,144,247,195, 0, 0, 0, 0, 0, 0, 0,119, 0,114,227,217,247,199,227,234, 0, 0, 0, 0, 0, 0, 0,234, + 0,114,193,254,194,193,223,237, 0, 0, 0, 0, 0, 0, 0,198, 0, 29, 84,204,154,153,144,178, 0, 0, 0, 0, 0, 0, 0,235, + 0,151,105,147,187,247,241,224, 0, 0, 0, 0, 0, 0, 0,147, 0,179,230,147,226, 27,214,220, 0, 0, 0, 0, 0, 0, 0, 63, + 0,244,244,218,247,246,246, 56, 0, 0, 0, 0, 0, 0, 0,183, 0, 41,105, 0,149,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8,226,233,225, 18, 84,176, 0, 0, 0, 0, 0, 0, 0,232, 0,179,157,235, 0,190, 37,180, 0, 0, 0, 0, 0, 0, 0, 71, + 0,120,246,188, 0, 0,202,224, 0, 0, 0, 0, 0, 0, 0,211, 0, 17,149,170, 0,222,174,139, 0, 0, 0, 0, 0, 0, 0,217, + 0, 49,142,220,253,250,209, 3, 0, 0, 0, 0, 0, 0, 0,209, 0,166,199,217,232,248,198, 81, 0, 0, 0, 0, 0, 0, 0,194, + 0,232,145,217,179, 53, 53, 55, 0, 0, 0, 0, 0, 0, 0,224, 0,160,151,147,193,165, 0,108, 0, 0, 0, 0, 0, 0, 0,220, + 0,209,141,202,192, 4, 70, 56, 0, 0, 0, 0, 0, 0, 0,221, 0, 93,234, 49,241,135,180,212, 0, 0, 0, 0, 0, 0, 0, 85, + 0,233,107,231,245,135, 23,241, 0, 0, 0, 0, 0, 0, 0, 29, 0, 93,240,235,240,247,246,246, 0, 0, 0, 0, 0, 0, 0,129, + 0,172,128,238,227, 31,241,221, 0, 0, 0, 0, 0, 0, 0,232, 0,160, 8,242,119,227, 85,250, 0, 0, 0, 0, 0, 0, 0, 29, + 0,247,227,184,218,217, 41,143, 0, 0, 0, 0, 0, 0, 0,224, 0, 41,160,254,145, 68,126, 3, 0, 0, 0, 0, 0, 0, 0, 62, + 0,172, 53,101,227,232,134,192, 0, 0, 0, 0, 0, 0, 0, 69, 0, 82,220,198, 31,214,219, 69, 0, 0, 0, 0, 0, 0, 0, 6, + 0,241, 15,241,143,152, 24,108, 0, 0, 0, 0, 0, 0, 0,224, 0,165, 31,249,248,227,231, 87, 0, 0, 0, 0, 0, 0, 0,245, + 0,127,229,180,227,201,207,221, 0, 0, 0,227, 0, 0, 0,238, 0, 6,187,238, 20, 0,223,216, 0, 0, 0,225, 0, 0, 0,227, + 0, 60,187, 3,147, 0,130,250, 0, 0, 0,209, 0, 0, 0,214, 0,160,142,236,126,153, 0,254, 0, 0, 0,227, 0, 0, 0,246, + 0, 85,119,207,119,218,208,197, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,204, 0,241,218,218,129, 0, 0, 0,119, 0, 0, 0,248, + 0,114,130,119,253, 24,253,216, 0, 0, 0,162, 0, 0, 0,218, 0, 41,126,144, 31,146,244,218, 0, 0, 0,227, 0, 0, 0,121, + 0,159,230,147, 84,236,220,250, 0, 0, 0, 0, 0, 0, 0,217, 0,179, 68,207,144, 7,207,243, 0, 0, 0,227, 0, 0, 0, 0, + 0, 68,227,197,223,144, 4,232, 0, 0, 0,138, 0, 0, 0, 24, 0, 41,145, 0,144, 0, 0,197, 0, 0, 0,227, 0, 0, 0, 0, + 0,151,236,253,215, 96,238,224, 0, 0, 0,119, 0, 0, 0,198, 0, 6,227,227,201,245,227,250, 0, 0, 0, 61, 0, 0, 0,141, + 0,114,119,243,220,243,128,108, 0, 0, 0,227, 0, 0, 0,225, 0, 82,126,238,121,201,229,195, 0, 0, 0,132, 0, 0, 0,218, + 0, 10,186,202,235,110,220,241, 0, 0, 0, 19, 0, 0, 0,231, 0,137, 82,129, 86,223,202,224, 0, 0, 0,145, 0, 0, 0, 94, + 0,239,198,241, 29,220, 55,248, 0, 0, 0, 36, 0, 0, 0,196, 0,160,240, 49,193,125,246,216, 0, 0, 0,227, 0, 0, 0, 33, + 0,159,246, 5,241,247, 14, 55, 0, 0, 0, 89, 0, 0, 0,159, 0,117,112, 65,192, 0, 59,189, 0, 0, 0, 68, 0, 0, 0, 62, + 0,190,184, 0,165,161,173, 4, 0, 0, 0, 45, 0, 0, 0, 6, 0,160, 60, 85,253,217,232, 33, 0, 0, 0,240, 0, 0, 0,224, + 0, 17,165,241,147,223,192,217, 0, 0, 0,248, 0, 0, 0,241, 0, 6,145,247,227,227,216, 4, 0, 0, 0,140, 0, 0, 0, 4, + 0,181,145,217,234, 85,148,217, 0, 0, 0,105, 0, 0, 0, 8, 0,179,105, 4,140, 21,224,220, 0, 0, 0, 68, 0, 0, 0,254, + 0,209,145,202,140,116,254,115, 0, 0, 0,162, 0, 0, 0, 46, 0, 68,253,233,217,220, 59,192, 0, 0, 0, 6, 0, 0, 0, 6, + 0,241,107,224,231, 79, 42,232, 0, 0, 0,254, 0, 0, 0,232, 0, 82,253,217,145,116,155,221, 0, 0, 0, 45, 0, 0, 0,241, + 0,127,187,101,119,201,195,224, 0, 0, 0,215, 0,185, 0,254, 0, 49,104,235,227,231,195,136, 0, 0, 0,247, 0,201, 0,227, + 0, 49,128, 0,223,231,250,129, 0, 0, 0, 35, 0, 91, 0,231, 0,160, 84,100,126,154, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, + 0, 90,236,233,125, 96,208,108, 0, 0, 0,119, 0,253, 0,245, 0,240,247,247,119,231,253,231, 0, 0, 0,132, 0,241, 0,217, + 0,114,144,234,218,220,197, 48, 0, 0, 0,162, 0,214, 0,202, 0, 29,126,222, 86, 24,118,218, 0, 0, 0, 36, 0,253, 0,235, + 0,151,227,247, 9, 7,246,129, 0, 0, 0, 71, 0,246, 0,241, 0,179,141,207, 18,119,241,241, 0, 0, 0, 16, 0,234, 0,232, + 0,159,174,242,235,254,129,220, 0, 0, 0,251, 0,232, 0, 87, 0, 41,145, 0,144,247, 0,197, 0, 0, 0,222, 0,134, 0, 0, + 0,172,234, 46,168, 96, 25,108, 0, 0, 0,189, 0,241, 0,231, 0, 17,202,246,148,231,254,108, 0, 0, 0,121, 0,248, 0,109, + 0,244,246, 24,201,119,129,129, 0, 0, 0,227, 0,246, 0,213, 0, 82,125,227, 0, 0,238,129, 0, 0, 0,149, 0,235, 0,194, + 0,114,199,231,219,232,245, 87, 0, 0, 0,192, 0,124, 0,248, 0,199,132,245,247, 43,129,163, 0, 0, 0,120, 0, 85, 0, 93, + 0,248,159,241,137, 68, 0,241, 0, 0, 0, 31, 0,111, 0,241, 0,160,111,227, 98,144,192,250, 0, 0, 0,226, 0, 53, 0,242, + 0,159,157,192,165, 55,245, 23, 0, 0, 0, 88, 0,232, 0,232, 0,106, 85,192,206,241,221, 4, 0, 0, 0,241, 0, 66, 0,126, + 0, 0, 55,209, 4,117, 54, 4, 0, 0, 0,207, 0,239, 0, 15, 0,179,114,220,199,242,196,224, 0, 0, 0,248, 0, 0, 0,202, + 0,179,247,192,119,246,155, 87, 0, 0, 0, 29, 0,254, 0, 51, 0, 82,137,192,162,253, 48,129, 0, 0, 0,165, 0,192, 0, 49, + 0,241,217,241, 65,136, 22, 66, 0, 0, 0,232, 0, 50, 0,192, 0,160,165,238,226,248, 0,197, 0, 0, 0, 86, 0,250, 0, 0, + 0, 68,181,186,123,217, 10,162, 0, 0, 0, 10, 0, 68, 0, 55, 0,179,119,233,253,227,250,116, 0, 0, 0,111, 0,105, 0,115, + 0,192,209, 79,192, 4, 66, 56, 0, 0, 0, 15, 0, 90, 0,192, 0, 82,232,217,246,232,245, 56, 0, 0, 0,231, 0, 64, 0,241, + 0,159,161,195, 0,218,217,217, 0, 73, 0,223, 0,232, 0, 22, 0,114,105,238,201,191,217,216, 0,227, 0,232, 0,146, 0, 9, + 0,172, 8,178,216,129,250,129, 0,227, 0,227, 0,192, 0,224, 0,160, 93, 0, 76,202,238,196, 0,193, 0, 0, 0,227, 0,181, + 0,230, 20,214,217,119,232,143, 0,231, 0,218, 0,214, 0,241, 0,179,174,181,136,241,234, 90, 0,247, 0,232, 0, 0, 0,241, + 0, 49,247,246,213, 0,224,249, 0,246, 0,217, 0,217, 0,250, 0, 41, 84,157, 95,236,218,201, 0, 77, 0,227, 0,144, 0, 63, + 0, 6,172,195,119,220,224,108, 0,251, 0,232, 0, 59, 0,217, 0, 29,230,246,201, 65,243,227, 0,112, 0,247, 0,216, 0, 16, + 0,145, 45,213,231,247,224, 83, 0,247, 0,248, 0,254, 0,231, 0, 41,117, 0,107,213,238,180, 0,144, 0,227, 0,212, 0,188, + 0,172,100,159,218, 24,191,250, 0, 86, 0,241, 0,232, 0,224, 0,179,226,232,231,246, 0,192, 0,241, 0,193, 0,106, 0, 16, + 0,114,246,223,217,216,197, 87, 0, 38, 0,246, 0, 0, 0,245, 0, 82, 84,233, 11,212,238,250, 0,236, 0, 0, 0,246, 0,195, + 0,172, 70,217,231,209,213, 87, 0, 70, 0, 29, 0,192, 0,241, 0,199,137, 0,196,108,224,129, 0,250, 0,241, 0,232, 0,129, + 0,159,159, 91, 85, 41,160, 56, 0, 65, 0, 14, 0, 14, 0, 96, 0,160,179,200, 31,213, 4,184, 0,141, 0,137, 0,140, 0, 65, + 0,181,141,192,241,203,209,221, 0,192, 0,235, 0, 96, 0,120, 0,159,192,102,220, 22,209,184, 0,240, 0, 41, 0, 41, 0, 29, + 0,209, 61,192, 22, 70, 49, 81, 0, 55, 0,162, 0,160, 0, 4, 0, 41, 99, 6,246,198,254, 14, 0,183, 0,192, 0, 55, 0, 0, + 0,117, 99,136,178,220, 22,181, 0,231, 0,240, 0, 65, 0, 22, 0,128, 93,202,178,246,200,254, 0,232, 0,254, 0,254, 0,192, + 0,253,160,245, 4, 0,217,254, 0,246, 0, 65, 0,241, 0,216, 0,160,160,250,246,254, 0,197, 0,246, 0,248, 0, 5, 0,248, + 0, 29,232,209,129,231, 44,134, 0, 2, 0, 65, 0, 22, 0,160, 0, 6, 93, 39,248,134, 81, 99, 0,224, 0, 0, 0,185, 0, 72, + 0,241, 29,224,245, 0,196,129, 0,141, 0, 4, 0, 0, 0,184, 0, 82,179,207,218,254, 55,250, 0,201, 0, 21, 0,235, 0, 3, + 0, 85, 85,195,182,197,129,195, 0, 16, 0,247, 0,198,234,254, 0,159, 61,195,218,224,231,220, 0,104, 0, 38, 0, 74,232,254, + 0,114,240,124,208, 42,217,231, 0,132, 0,192, 0, 0,248,234, 0,160,105, 65, 76,175,250, 65, 0,229, 0,246, 0, 97, 0,169, + 0,100,200,208,139,234,245,246, 0, 31, 0,119, 0,231,234,214, 0, 29,246,247,129,213,129,222, 0,212, 0,165, 0,190,241,233, + 0,114,253,195,122,234,224,232, 0,231, 0,241, 0, 0,248,231, 0, 29, 45, 88,203,236,238,201, 0,185, 0,229, 0,181,235,217, + 0,151,106,232,119,227,220,241, 0,227, 0,243, 0,243, 55,248, 0,179,230,233,154, 0,223,241, 0,144, 0,223, 0,162,232,231, + 0,247,172,183,203,231,231,171, 0,247, 0,145, 0,241,224,202, 0, 41,117, 0,135,247,218, 22, 0,144, 0, 0, 0,118,238,232, + 0,230,229, 65,129,218,241,232, 0,223, 0,223, 0,223,223,202, 0,179,230,230,201,234, 62, 29, 0,231, 0,110, 0,241,251, 50, + 0,244, 88,217, 3,220,245, 12, 0,252, 0,190, 0,142,214,202, 0, 29,166,201,122, 0,212,207, 0,168, 0,164, 0,246,246,249, + 0,159, 85,241,192, 25,248, 11, 0,220, 0,142, 0,159,134,251, 0,159, 6,241, 25,241,184,169, 0,242, 0,217, 0, 0,232,220, + 0,140, 93,163,220, 14,122, 47, 0,192, 0, 82, 0,211,240, 54, 0,160,160,235, 32,234, 0,143, 0, 61, 0,242, 0, 0,248, 49, + 0, 29,179,192,246, 65,184, 49, 0, 60, 0,230, 0, 63,216,127, 0,190, 61,254,233, 8, 15, 41, 0,186, 0,170, 0, 55,217, 41, + 0,241,114,195, 72, 15,230, 87, 0, 41, 0, 82, 0, 44, 0,120, 0, 29,240, 61,107,218,217, 0, 0,232, 0,232, 0, 9, 82, 97, + 0, 49, 68, 64,196,230, 87,181, 0, 46, 0,111, 0,105, 6, 44, 0,160, 41,159,247,140,127,182, 0, 93, 0,239, 0, 39,112,241, + 0, 41,192,207, 66,254,192, 4, 0, 61, 0,192, 0,165, 41, 76, 0,160, 93, 0, 90,170,250,177, 0,223, 0, 10, 0,231, 41,245, + 0,159,145, 89,173, 67,192,127, 0, 85, 0, 97, 0, 6,147,116, 0, 73,248,111, 33, 0,224,248, 0, 98, 0,159, 0, 68, 55, 6, + 0,239,140, 5,217, 12, 43,143, 0,135, 0,248, 0,128, 82, 7, 0,246,145,217,199,115,253, 25, 0,152, 0,209, 0,181,241, 64, + 0,127,100,207,119, 90, 24, 51, 0,119,222,209, 0,198,245,243, 0,240,100,119,176,246,224,220, 0,227,246,246, 0,231,246,218, + 0,159,137,181,243, 59,224,241, 0,181,140, 46, 0,220, 50,241, 0,160,105, 0,116, 8, 0, 0, 0,144,187, 0, 0,128,202,232, + 0,159,227,241,211,140,254,198, 0,231, 0,224, 0,220, 80,217, 0,186,164,254,217,247,192,198, 0,245,239,239, 0, 6, 0,156, + 0, 85, 0,220, 11,253,250,241, 0,157,192,132, 0,232,231,231, 0, 41,149,100, 13,102,195,216, 0,130,144,227, 0,218,241,129, + 0,151,172,247,234,141,248, 4, 0,174,132,251, 0,247,150,177, 0,179,172,245,249, 98,241,198, 0,121,144,248, 0,245, 44,245, + 0, 49,246,243,216, 17,224, 0, 0,223,244,208, 0,248,192,129, 0, 41,105, 0,135,100, 0,231, 0,175,198, 0, 0,250,254,200, + 0,151,227,235,178, 7,231,220, 0,231, 0, 0, 0,243,209,241, 0, 17,170,207,224, 6, 6,117, 0,227,251,232, 0, 0,108,123, + 0,114,174,207,183,153,217,198, 0,234, 8, 46, 0,245,234,224, 0, 82,222,195, 67,174,238,231, 0,175,130,227, 0,235,237,206, + 0, 6,137,108, 62,192,207,184, 0, 64,248,219, 0,102, 62,224, 0,232,244,241,241, 5,224,129, 0,234, 2,108, 0,217,224,245, + 0,159,186, 65, 22, 40, 31, 41, 0,190,103,104, 0, 66, 6, 64, 0,160,179, 94,214,172,250, 82, 0,107, 0,238, 0,233,248,124, + 0,117,192, 55,241,140, 96,245, 0,192, 43,159, 0, 89, 53,192, 0, 93,159, 4,248,114, 0, 14, 0,235, 82, 8, 0, 93, 3, 0, + 0, 95, 92,250, 68, 82, 4,136, 0,130,100, 0, 0, 22, 56, 14, 0,179,179,255,128, 8,232,137, 0,232, 0, 22, 0, 49, 93,250, + 0, 6, 93,192,241, 29, 23, 49, 0,118, 0, 88, 0, 77, 98, 22, 0,160,172,143,241,172,244,212, 0,223,160,250, 0, 4, 49,206, + 0,231,165,217, 54, 62, 81,209, 0,171, 68, 65, 0,112, 83, 51, 0, 93, 82,242,193, 10, 65, 4, 0,144,141,239, 0,254, 49,195, + 0, 93,250, 70,218,140, 72, 4, 0,197,241,214, 0, 2, 49, 2, 0,179,223, 17,248,197,128,135, 0, 22, 90,169, 0, 15,135, 0, + 0,245,232,172,232,232,224, 90, 0, 4,131,241, 0,230,107,147, 0, 68,193, 10,234,192, 5,241, 0,246, 0,192, 0,224, 22, 22, + 0,159,100,147,119, 42,195,250, 0,247,132,127,214,223,223,195, 0, 85,246,144,218,247,248,195, 0,185,144, 34,209,234,241, 0, + 0,159,193,231,207,199,241,169, 0, 0,144,192,181,240, 52,241, 0,160,105, 0,146,165, 0, 0, 0,229,227, 0, 0,232, 0,197, + 0, 8,236,202,218,234, 42,250, 0,234, 0, 0, 0,232,223,107, 0,159,234,231,220, 98,232,202, 0,232,174,209,112, 85, 41,234, + 0, 82,227,241,167,223,209,234, 0,246,166,231,140,231,224,227, 0, 29, 84,200,211,145,235,201, 0, 0,144,144,199,202,201,225, + 0, 29,230,128,213,141,144,241, 0,119,223,223,127,241, 79,241, 0,179, 68,192,139, 82,214,232, 0, 77,251,140,127,248,151, 12, + 0,159,141,217,254,209,241,195, 0,234,241,165,129,188,217, 79, 0, 41,142, 0,135, 60, 49, 0, 0,222,227,227, 0, 38,254, 4, + 0, 8,251,128,218,132,232, 0, 0, 76,132,246,159, 68,192,234, 0,179,144,231,129, 60,248,217, 0,201,231, 59,234, 15,238,217, + 0,114,223,246,217,193,200,243, 0,110,253, 65,124,209,232,217, 0, 99,175,247,254,102,246,188, 0,168,205,227,202,246,135, 94, + 0, 70,137,197,209, 49,165,254, 0,192,248,206, 93, 50,161, 66, 0,202,179,224,242,199,202,231, 0,160,105, 57, 61,116,232,241, + 0, 6, 93,138,101, 15, 82, 22, 0, 39, 49, 22, 6, 65,165, 56, 0,160,179,242, 0,151, 0,248, 0,229, 49, 23,147, 0, 22, 29, + 0, 93, 99,248,232, 99, 72, 29, 0,234,107, 0, 37, 29, 68, 23, 0,186,172, 94,240, 56, 8, 6, 0, 42, 8, 82,150, 8, 96, 6, + 0,241, 29,241, 22, 46, 19,241, 0, 49,134, 0, 4,238, 55,153, 0, 89,106,241,243,199,222, 5, 0,192,159, 14,149, 62,147, 53, + 0, 6,246, 44,248,247, 15, 17, 0,145, 49, 15,179, 62, 70, 44, 0,160,106, 89, 96, 0,180, 64, 0, 84, 74, 0, 30, 0, 4,197, + 0,189, 65, 4,250, 49, 31,118, 0,248,223,179, 16, 74, 55, 4, 0, 82,240,254,140,160, 0,231, 0,145, 49, 29, 5,117, 22,108, + 0,114, 53, 56,245, 15, 99, 81, 0,239,142, 4,133, 76, 51,169, 0,181, 89,231,241,110, 46, 37, 0, 49, 56, 5, 34, 22, 0, 31, + 0,254,241,232, 4,192,241,245, 0,160, 72, 22, 29,177,192, 8, 0,240,106,129,218, 62, 4,247, 0,209,190, 53, 82, 22,247,241, + 0,159,172,238,174,246,250,207, 0,231,223,231,241,223, 55,183, 0, 49,127,195,104,247,232,238,140,202,227,161, 60, 0,224,254, + 0,159, 6,129,181,209,234,234,195,130,179,248,232, 14,217, 0, 0,160, 93, 0,126,199, 0, 0,134,222,227, 0, 0,224, 0,241, + 0,159,251,181,154,235,231,181,140,232,201,232,192,209,245,248, 0, 41, 45,165,246, 58,247, 69,207,246, 18,140,227,248, 53, 4, + 0,145,190,192,225,232,138,181,245,192, 55,188, 10,153,254,135, 0,160, 45,100,112, 61,227,207,125,205,144,246,246,195,134,220, + 0,179,172,207,157,198, 26,231,226,251,223,198,209,243, 43,223, 0,179, 99, 10, 61,199,181,240,200,223, 7, 49,248,202, 0, 83, + 0,159,159,197,202,220,254,217,234,192,241,202,224,254,224,231, 0, 41,117, 0, 97,174,246,197,229,227,238,149,102, 78,220, 0, + 0,151,174, 74,144,227,209,231,182,140, 2,241, 2,253,209, 0, 0,160,227, 29,119,142,114, 4,202, 0,223, 53,141, 10,114, 44, + 0, 70,140,218, 0,102, 49,250,232,242, 20,241,245,232,192, 33, 0, 82, 84,238,205,247,246,212,134,238, 18,201,174,234,201,234, + 0,223,253, 30, 46, 16,224, 0,246,117, 4, 53, 46, 17,124, 0, 0,100,159,232,227,192,154, 4, 0,160, 31,128,224,250,189,250, + 0,241,111,241, 61,135, 6,241, 26,179,120,135,127, 49,131,241, 0,160,179, 62,105,226, 0, 48,141,109, 14, 0, 6,105, 0,122, + 0, 68,172, 63, 68,162,120,123,220, 31, 45, 82, 8,171, 49, 67, 0,160, 60,187,241,209, 99, 37, 99, 82,179, 6, 29, 0, 0,134, + 0,192, 0, 55, 8, 43, 72, 0, 55, 4, 48, 4, 0, 15, 88, 6, 0,160,160, 49,165,248,246, 4,172, 18,248,129,130,202, 29,248, + 0, 41,239, 63,240, 6, 62, 44,108, 41, 53,155, 85, 2, 10, 62, 0, 41,160,207, 93, 68, 49,232,231,163,126, 8, 81, 0,220, 94, + 0,254,185,232,110, 10,230, 4,239, 15, 97, 56,192, 31, 76,105, 0, 82, 89,220,240,239, 65,136,134,159,114, 95,134,232,118, 13, + 0, 31,142, 33,234, 74,165,161,192, 33,128, 77, 49, 4, 93, 16, 0, 41,248, 61,223,118, 95, 6, 4, 42, 69, 15, 5, 6, 10, 0, + 0,120, 45, 49, 49, 55, 14,184,221,124,152, 5, 41, 4, 54, 98, 0,172,239,217, 15,227,138,129,245,105,251,107, 5, 9,241,217, + 0, 49, 49,195,174,181,241,224,227, 0,231,220,241,115,242, 33, 0, 6, 6,238,226,170,232, 15,135,202,241,181,241,241,241,207, + 0,127, 49,136,192, 6,241,241,147, 34,106,192, 19,220,239,232, 0,160, 93,246, 97,187, 0,201,134,144, 86, 0,232, 22, 0,196, + 0,114,251,227, 0,251,242,232, 0,253, 65,228,192,232,209, 57, 0,240,199,192,134, 85,192, 22, 0, 0,241,241, 69, 0,127, 3, + 0,240,140,234,135,154,224, 0, 62,201,106,248, 70,241, 0, 0, 0, 41, 84,198,223,199,114,201,121, 0,222,246, 0,232,227, 13, + 0,179, 68,128,200,198,127, 56,251,195,231, 0,248,173, 14,220, 0, 6,172,246,157, 10,241,248,227,201,243,232, 0, 0,220,129, + 0,159, 53,178,132,181,232,250, 0, 46,198,248,232, 91,232,143, 0, 82,117,131,140,174,201,197,135,175,199,118, 4, 49,241,129, + 0,106,174,159,201,199,246,192, 0,125,220,133,232, 4,115, 66, 0,179,199,241,223,227,248, 0,234,202,218,173,130, 0,136, 10, + 0, 88,140,201,119,209,231,231,134,231,220,134,248, 53,136,254, 0, 82, 84, 0,135,157,235,218,238,201,247,247,201,232,218,184, + 0,226, 82,192,199, 0,129, 33,250,201, 35, 45,141, 44,185,248, 0, 49, 49,224,145,209, 28,159,145, 23,192,122, 15,129,145,148, + 0,232,224,232,174, 88, 44, 29,117,135, 29, 89, 0, 4,241, 57, 0,160, 89,170,151,248,200,192,144,209,246, 10, 82, 41,192, 56, + 0,127,137,207,248, 0, 15, 95, 0,134,219, 51, 16,231, 4, 44, 0,106,232,124,179,192, 46, 93, 68, 6, 0, 4,162, 0,160, 0, + 0,117,172, 29,135,109, 8, 68,113, 20, 96,180, 4, 57, 0, 65, 0, 89,179,192,240,232, 82, 22,240,179,130, 16,241, 6, 5, 15, + 0,179,240, 44, 41,216, 89, 15, 93, 81, 19,129, 22, 0, 29,217, 0, 85, 41, 29,111,137, 12, 96, 10,219, 82, 68, 49,202, 76, 56, + 0,227,172, 33,246, 4, 4, 33,248,179, 15, 45,105,118, 87,220, 0, 41,179, 0, 41, 62,254,197,140,192,231, 43, 6, 82,110,248, + 0, 93,209, 57,248, 90, 46, 41,250, 16, 50, 15,127, 60,239, 4, 0, 6,174, 49, 4, 29, 0,124, 26,233, 0, 82, 0, 0, 0, 93, + 0,241,152,241,147,120, 6,241, 29, 15, 14, 0,150,170, 0,241, 0,179,172, 66,248,232, 6, 56,231,192,202,192,159,216, 82, 15, + 0,159,172,180,187, 34, 39,180, 31, 16,236,119,249,119,195,184, 0, 6,172,147,187, 34,173,207,168,168,236,194, 37, 24,191,180, + 0, 85, 85,180,118,244, 0,129,118,144,204,238,215,183,231,143, 0, 89, 93,100, 97,157, 1,197,134,112, 0,147, 0, 0,116,197, + 0,159,251,147,168,156,238,136,191,191, 47, 0,234,206,245,207, 0,160,149,132,194,242,119, 21, 95,213, 0,119,231,241, 0,224, + 0,114,140,119,178,140,232,129,218,201, 0,205,241,231,250,213, 0, 41,105, 65, 97,102,153, 96,107, 75, 1, 0, 0,236,212, 96, + 0,179,172,147,187, 65,238,180,124,132,200,110,116,224,220, 4, 0,179, 99,235,100,246,174,207,225,236,236,227,146,243,224,143, + 0, 85, 8,207,200,229,227,197,225,144, 0,238,247,163,147, 33, 0, 82,117,197, 97,174,236,197,135, 34,164,147,147,176, 96,197, + 0,151, 36,147,225,227,222,231,135, 40, 52, 0,200,201,213,182, 0, 29,230,128,225,174,227, 23,231,212,247,124,119,110,224,250, + 0, 85,140,238,203, 16,214,249, 63,176,238,215,228,195,211,224, 0, 82, 84,147,135,174, 0, 48,135,116, 86,201,146,178,195,180, + 0,159, 82, 54,137,232, 65, 44,146,253,189,233,199,231,250, 33, 0,251,137,180,137, 74,237,180,166,223,164,167, 30,131,231, 44, + 0,232,145,216,159, 55,172,224,192, 13,197, 90,192, 53, 0, 56, 0, 89,179,197,105, 90, 22,197,141, 90, 0, 0,231, 78, 44,129, + 0,179, 6,241,199,253, 38,224,248,253,254,241,248,192,241,250, 0, 68,248,241,120,245,250,202,209,248,224, 0,192, 0,162,241, + 0,137, 68, 55, 95,239,207, 44, 97,213,250,162, 89,182, 63,228, 0, 89,179,207,105, 92,241,217,219,247,242, 0,248,220,184, 87, + 0,179, 93,207,166,227, 62,180,119,218,246,224,246,250,228,180, 0, 41, 93,134, 45, 16,232,115,119,223,110,102, 48,241,171, 44, + 0,127,244,221,251, 0,192, 51,234,234,239, 83,253,241,217,129, 0, 82,117,197,240,238, 0, 44,135,246,234,246,207, 14,207,197, + 0,172,145,202,206,223,198, 73,126, 31, 63,143,250,155,207, 33, 0,159,145,232, 97, 0,241,232, 91,248,140, 44,119,192,239, 35, + 0,231, 61,183,218,126,254,217,220,181, 33, 24,118,248,241,224, 0,161,105, 44, 97,226,202,184, 97,223,227,246, 0,206,246,108, + 0,110, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,148, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,182, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,236, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 73, 0,152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,188, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,237, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90, 18,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 50, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,111, 9,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,104, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90,121,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 47,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,142,125,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 69, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161, 32,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 32, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,111, 20,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,104, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,109, 47,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,144, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,109,185, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,121, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,199,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53,174,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227, 23,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,246,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,244,246,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,132,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 18,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,144,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,165,125,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,112, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,245,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,157,207,188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,222,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,170, 37,110, 0, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 86,110, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,185, 0, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,112, 92, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,194,110, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0,235,238,246, 0, 0, 0,193, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0,173, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,154,156, 0, 0, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, + 0,170, 18,110, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,185,208, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120, 9,164, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 32,153, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0,236,225,146, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,227,212,238, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 0, + 0,208, 76,178, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,222,237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,227,203, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,222,213, 0, 0, 0,242, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,112,153, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,232,217, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,121,241,217, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,201,201, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,199,199,146, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, + 0,222,251,201, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0,218, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,164,227,243, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,112,247, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, + 0,154,232,227, 0, 0, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 13,101, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0,199,235,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,175, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161, 96,182, 0, 18, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 96,110, 0, 50, 0,208, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 91,204, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 75,153, 0,104, 0,251, 0, 0, 0, 0, 0, 0, 0, 0, + 0,222,167,238, 0, 97, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,218,247, 0,246, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,177,178, 0,194, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 23,214, 0,185, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,201,110, 0, 92, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 58,173, 0,174, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 68,182,195, 0,104, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 75,153, 0,104, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, + 0,222, 64,146, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159,178,246, 0,227, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90,167, 71, 0,146, 0,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,122,148, 0,185, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,103,143, 0,227, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,194,216, 0,154, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0,114,201,207, 0,128, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0,158, 0,104, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,250,247, 0,241, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,227,246,248, 0,160, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, + 0,114,232,250, 0,181, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,238,246, 0,205, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230, 76, 23, 0,227, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,249,213, 0,238, 0,159, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,148,143, 0,183, 0,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,121,136, 0,102, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, + 0,100,254,253, 0,253, 0,181, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,247,209, 0, 6, 0,178, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,234,220, 0,119, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,177,243, 0,144, 0,183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90,178,147, 0, 34,252,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 19, 88, 0, 18,222,156, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,133, 90, 0,189,174,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 58,106, 0,104,102,156, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,177,127, 0,205,238,244, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,178, 8, 0,223,105,209, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,150,174, 0,144,227,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 19,120, 0, 86,187,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161, 95,233, 0,227, 34,233, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,158,240, 0, 27,209,134, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,213,164, 0,229, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 40,137, 0, 27,102,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 3,230, 0,201,200,235, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,249,142, 0,227,109,202, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,177,174, 0, 62,144,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 11,161, 0, 31,200,235, 0, 0, 0, 0, 0, 0, 0, 0, + 0,181,122,202, 0,248,198,206, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,197, 65, 0,118,227,119, 0, 0, 0, 0, 0, 0, 0, 0, + 0,140,234,253, 0,246,179,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,205,102, 0,144,161,200, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,241,241, 0,241,250, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0,151,209, 22, 0, 62,103, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,250,231, 0, 53,240,217, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,229,200, 0, 99, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,218,234, 0,145,227,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,145,249,235, 0,251,201,231, 0, 0, 0, 0, 0, 0, 0, 0, + 0,219,254,217, 0,227,145,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 75,247, 0,199,204,238, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232,250, 0, 0,231,168,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,123,160, 0,117,241, 15, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119,115,217, 0,232,246,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,174,218,200, 0,199,202,231, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,187,252,205,144,238,144, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,104,235,168, 18,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29,199,235,201,155,198,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 61,100, 86, 42, 36,225, 0, 0, 0, 0, 0, 0, 0, 0, + 0,102,215,174,171,236,246,147, 0, 0, 0, 0, 0, 0, 0, 0, 0,159,227, 77,220,223,109,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0,165,205, 49, 19,144,253,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,126,174, 31,164,229,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,104,233,168,132,153,212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,226, 10,236, 27,246,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,114,175,124, 26,144,246,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 84, 53, 76, 36,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,154,233,213,227,247,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,227,253,216,199, 17,254, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,103,170, 13,236,253,212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 86,102,194,175,144,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,253,212,201, 31,202,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,165, 27,201,227,246, 42,234, 0, 0, 0, 0, 0, 0, 0, 0, + 0,145,142,231, 0,232,181,224, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,193,144,185,227,137,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,172,223,198,234, 42,169,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,108,240,248, 53,111,159, 0, 0, 0, 0, 0, 0, 0, 0, + 0,111, 20,234,181,245,232,221, 0, 0, 0, 0, 0, 0, 0, 0, 0,186,223,246,246,165,159,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161, 45,178,154,223, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,227,227,246, 6,246, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0,145,246,249,234,253,192,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,166, 0, 76,222,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,154, 0,250, 82,192, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,129,186,209,227,239, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0,198,232, 0,181, 24,212, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,199,235,237, 0,220,247,217, 0, 0, 0, 0, 0, 0, 0, 0, + 0,127, 18,201, 0, 7,247,206, 0, 0, 0, 0, 0, 0, 0,191, 0,161,132,147,146,144,124,143, 0, 0, 0, 0, 0, 0, 0,238, + 0,114,187,238,201,174,253,129, 0, 0, 0, 0, 0, 0, 0,212, 0, 99,104,102,121, 20,153,182, 0, 0, 0, 0, 0, 0, 0,205, + 0,155,236,173, 19,231,223, 4, 0, 0, 0, 0, 0, 0, 0,223, 0,230,198,247,247, 0,232,201, 0, 0, 0, 0, 0, 0, 0,245, + 0,235, 1,204, 0,174,201,243, 0, 0, 0, 0, 0, 0, 0,247, 0,106,185,222,168, 32,154,238, 0, 0, 0, 0, 0, 0, 0,201, + 0,161,227,238, 40, 32,246,136, 0, 0, 0, 0, 0, 0, 0,238, 0, 17,226,233,236, 69,247,195, 0, 0, 0, 0, 0, 0, 0,232, + 0,244,153, 0,213,144,244,184, 0, 0, 0, 0, 0, 0, 0,119, 0, 99,104, 34,168,153,222,178, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,188,204,213,236,110,227, 0, 0, 0, 0, 0, 0, 0,227, 0, 17,225,240,216,119,246,243, 0, 0, 0, 0, 0, 0, 0,138, + 0, 35, 94,222,178,247,227,218, 0, 0, 0, 0, 0, 0, 0,201, 0,174, 0,170,158, 38,227,195, 0, 0, 0, 0, 0, 0, 0,234, + 0, 18,247,176,241,231,231,224, 0, 0, 0, 0, 0, 0, 0,224, 0,174,201,213,195, 0,241,195, 0, 0, 0, 0, 0, 0, 0,247, + 0,120,199,232,231,242,184,231, 0, 0, 0, 0, 0, 0, 0, 83, 0,111,166,247, 76,146, 0, 48, 0, 0, 0, 0, 0, 0, 0, 22, + 0,142, 0, 65, 0,224, 10,254, 0, 0, 0, 0, 0, 0, 0,255, 0,181,160,160, 89, 82, 85, 71, 0, 0, 0, 0, 0, 0, 0, 69, + 0,229,159,241,161,233, 21,241, 0, 0, 0, 0, 0, 0, 0,241, 0,151, 82,223,198,242, 68, 4, 0, 0, 0, 0, 0, 0, 0,132, + 0,247,227,247,227,223,232,183, 0, 0, 0, 0, 0, 0, 0,232, 0,174,246,196,223,227,245,108, 0, 0, 0, 0, 0, 0, 0,209, + 0,124,212,216,254,216, 62,216, 0, 0, 0, 0, 0, 0, 0,253, 0,137,132, 0,144,166, 0,143, 0, 0, 0, 0, 0, 0, 0,249, + 0,241,241,100,216,201,248, 56, 0, 0, 0, 0, 0, 0, 0, 22, 0,165, 4,124, 55,190, 0, 10, 0, 0, 0, 0, 0, 0, 0,139, + 0,220,231, 15,118, 0,245, 33, 0, 0, 0, 0, 0, 0, 0,224, 0,199,199,147,246,181,246,246, 0, 0, 0, 0, 0, 0, 0,129, + 0,127,201,180,205, 78,236,143, 0, 0, 0,247, 0, 0, 0,207, 0,114,121,173,225,213,246,207, 0, 0, 0,222, 0, 0, 0,246, + 0,114, 0,242, 96, 0,227, 12, 0, 0, 0, 18, 0, 0, 0,254, 0, 41,112,102, 7, 43,128,195, 0, 0, 0,102, 0, 0, 0, 0, + 0, 90,171, 52,248,217, 73,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,219,197,140,247,183,209, 44, 0, 0, 0,246, 0, 0, 0,232, + 0,174,178, 0,212, 0,198,217, 0, 0, 0,144, 0, 0, 0,253, 0,151,168, 73,168,237,156,201, 0, 0, 0,253, 0, 0, 0,245, + 0, 49,236,246,201,236, 37,182, 0, 0, 0,144, 0, 0, 0,246, 0, 17,236,235, 58,225,199,247, 0, 0, 0, 77, 0, 0, 0,234, + 0, 82, 0,218,203,238,125,183, 0, 0, 0,119, 0, 0, 0,201, 0, 99, 86, 0, 76, 0,222,183, 0, 0, 0, 27, 0, 0, 0,197, + 0,230,210,246,203,139,227,207, 0, 0, 0,223, 0, 0, 0, 70, 0, 82,249,105,143,227,253,137, 0, 0, 0,138, 0, 0, 0,248, + 0,193,254,148,171,211,247,224, 0, 0, 0,205, 0, 0, 0,250, 0,137,171,201, 91,171,247,217, 0, 0, 0,164, 0, 0, 0, 52, + 0,251,253,217,251,221, 28,108, 0, 0, 0,223, 0, 0, 0,241, 0,251,237,201,132,195,212,122, 0, 0, 0,248, 0, 0, 0,220, + 0,106,170,254,201,253,150,224, 0, 0, 0,235, 0, 0, 0,254, 0,160,166,213, 86,103,175,217, 0, 0, 0,230, 0, 0, 0,247, + 0,246,209,129, 22,176, 49,129, 0, 0, 0,177, 0, 0, 0,129, 0,135, 0,159, 72, 0,135,103, 0, 0, 0,116, 0, 0, 0, 74, + 0,223,234,224,248,221, 6,101, 0, 0, 0, 49, 0, 0, 0, 4, 0, 82,246,243,100,227,209,216, 0, 0, 0,253, 0, 0, 0,245, + 0,244, 59,245,234,231,106, 4, 0, 0, 0, 17, 0, 0, 0,254, 0,179,234,198,195,119, 91, 22, 0, 0, 0,246, 0, 0, 0,221, + 0,159,247,207,246,195,144, 56, 0, 0, 0,241, 0, 0, 0, 2, 0,137,104,237, 94,238,162,243, 0, 0, 0,235, 0, 0, 0, 0, + 0,246,234, 41,192,202,246, 15, 0, 0, 0,135, 0, 0, 0,196, 0, 82, 10, 29, 83, 81, 15, 81, 0, 0, 0,190, 0, 0, 0,190, + 0,246,198,216,232, 12, 10,218, 0, 0, 0, 27, 0, 0, 0,245, 0, 17,247,220,119,217,231,184, 0, 0, 0,243, 0, 0, 0,217, + 0,127,194,147, 26,201,213,167, 0, 0, 0,200, 0,144, 0,247, 0, 49, 24,174,168,249,213,123, 0, 0, 0,170, 0,212, 0,245, + 0, 85,156, 43, 95,195,238,220, 0, 0, 0,198, 0,248, 0,253, 0, 99,154, 8,121, 24,147,178, 0, 0, 0, 36, 0,128, 0,174, + 0,155,206,166,234,228,238,217, 0, 0, 0,146, 0,246, 0,250, 0,152,217,246,245,216,241,246, 0, 0, 0, 69, 0, 35, 0,129, + 0,226,245,219, 0,217,210,216, 0, 0, 0,234, 0, 45, 0,253, 0,106,107,100,201,249,191,243, 0, 0, 0,201, 0,205, 0,218, + 0,161,154,233, 78,119, 0,245, 0, 0, 0, 7, 0,202, 0,195, 0, 29, 40,235,201,194,121,245, 0, 0, 0,229, 0,208, 0,195, + 0, 85,146,238,212, 26,250,201, 0, 0, 0,235, 0,248, 0,207, 0, 68,154, 68, 76, 39,173, 0, 0, 0, 0,233, 0,223, 0, 0, + 0, 61,163,114,196,171,241,253, 0, 0, 0,174, 0,227, 0,198, 0,152,188,253,220,139,227,241, 0, 0, 0,227, 0, 16, 0,241, + 0,193,254,251,206,249,217, 14, 0, 0, 0, 0, 0,247, 0,232, 0,120, 25,174,249,178, 40,245, 0, 0, 0,229, 0,227, 0, 9, + 0,147,214,234,153,217,245,250, 0, 0, 0,198, 0,224, 0,220, 0,253,119, 0,132,217,217,221, 0, 0, 0, 86, 0,220, 0,224, + 0,190, 34,232,223,232,224,234, 0, 0, 0,241, 0,254, 0, 97, 0,117,187, 0,227,146,134,218, 0, 0, 0,204, 0,246, 0,247, + 0,192, 44,192,248, 39,198,216, 0, 0, 0,241, 0, 41, 0,224, 0, 93, 76, 41,224, 15, 10, 0, 0, 0, 0,192, 0, 90, 0, 0, + 0,111,245, 33, 80,192, 66, 44, 0, 0, 0,192, 0, 35, 0, 0, 0, 6,247,202,227,183,232,245, 0, 0, 0,164, 0,234, 0,192, + 0,227,220,209,227,246,245,184, 0, 0, 0,227, 0,221, 0,251, 0,246,232, 98,223,253,218,129, 0, 0, 0,145, 0,217, 0,227, + 0,246,209,129,250,254,248,129, 0, 0, 0, 42, 0, 0, 0,216, 0,199,251,250,144,218,254,207, 0, 0, 0,181, 0,246, 0,254, + 0,234,232, 59,248,192, 14, 81, 0, 0, 0, 4, 0, 45, 0, 89, 0,186, 44, 63, 15,229,214,126, 0, 0, 0, 4, 0, 3, 0, 14, + 0,223, 22,232, 41, 92, 81,224, 0, 0, 0, 85, 0, 45, 0,192, 0,126,254,224,247,246,218,224, 0, 0, 0,227, 0,165, 0,180, + 0,127,104,110,183,213,180,216, 0, 0, 0,247, 0,246, 0,201, 0, 6,187,222,177,212,245,129, 0,112, 0, 0, 0, 7, 0,246, + 0, 6,166,147,123,214,178,184, 0,201, 0,119, 0,231, 0,250, 0, 41, 84,137, 11, 37,228,249, 0, 86, 0,128, 0,235, 0,236, + 0, 90, 47,246,129,249,217,183, 0,218, 0,119, 0,234, 0,216, 0,179,201,251,129,231,254,241, 0,247, 0,231, 0,241, 0,231, + 0,199, 7,246,218,195,231,129, 0,201, 0,232, 0,202, 0,253, 0, 17,132,100,211,218,122,220, 0,238, 0,144, 0,174, 0, 0, + 0,151,104,247,217,234,108,217, 0,146, 0,174, 0,181, 0,224, 0, 29,141,147,210,119,182,231, 0,144, 0,227, 0, 88, 0,247, + 0, 85,222,234, 72,144,243,143, 0, 0, 0,125, 0,254, 0,245, 0, 82, 84, 0, 64,148, 30,163, 0, 0, 0,144, 0, 0, 0,207, + 0,230,188,128, 57,216,241,115, 0,231, 0,234, 0,190, 0,216, 0,179,247, 85,184, 90, 4, 5, 0,234, 0, 59, 0,240, 0,241, + 0,174,212,246,129,216,178,108, 0,241, 0,227, 0,209, 0,241, 0, 6, 76,222, 83,178,207,218, 0,124, 0,144, 0,253, 0,212, + 0,128,165,217,129,217, 0,224, 0,154, 0,224, 0,241, 0,250, 0,145,199,223,228, 73,217,184, 0,232, 0,232, 0,145, 0,140, + 0,223,105,224, 0,217,108,136, 0,240, 0,241, 0, 6, 0,232, 0,186,142,201,225, 0,246, 56, 0,227, 0,119, 0,225, 0,153, + 0, 41,248, 72,228,248, 79, 54, 0, 38, 0, 56, 0, 51, 0, 4, 0,179,186,248, 85, 82,114, 29, 0,152, 0, 0, 0, 70, 0, 0, + 0, 93,240, 5,228, 34,213,122, 0,142, 0, 61, 0, 14, 0, 55, 0,160,172,241,247,224, 57,250, 0,159, 0,245, 0,157, 0,232, + 0,106,246, 11,224,234, 0, 48, 0, 8, 0,217, 0, 94, 0, 5, 0,145,119,135,108,214,250,221, 0,232, 0, 86, 0,254, 0,255, + 0,152,137,224, 21, 88, 5, 57, 0,251, 0,104, 0, 13, 0, 59, 0, 29,165, 15,144,195, 0, 33, 0,246, 0,202, 0,227, 0, 33, + 0,234,241, 0, 0,231,248,192, 0,135, 0,241, 0, 4, 0, 67, 0, 62, 4, 77, 35, 54, 44, 0, 0, 87, 0, 56, 0, 49, 0, 0, + 0,246,209,216,241,151,177,129, 0,209, 0, 41, 0,223, 0,218, 0,251,247,224,216,228,234,255, 0,247, 0,105, 0, 15, 0,237, + 0,127,187,238,167,231,143,207, 0,154, 0,236, 0,246,180,195, 0, 49,187,147,167,234,218,238, 0, 0, 0,247, 0,231,201,201, + 0, 85,149,215,177,248,231,237, 0, 0, 0,253, 0,209,234,108, 0, 41, 84,102, 67, 0,171, 0, 0,130, 0,125, 0,154,204, 0, + 0,235,210,235, 22,201,213,218, 0,118, 0, 0, 0,129,247,241, 0,117,196, 70,221,196,248,117, 0,232, 0, 76, 0, 10, 53, 68, + 0,244, 0,201,113,213,183,202, 0,227, 0,156, 0,248,202,202, 0,106,198, 90,177, 11,212, 84, 0,238, 0,222, 0,198,173,212, + 0, 49,200,238,218, 96,220,223, 0,234, 0,119, 0,209,223,158, 0,117,141,238,218,191,243,190, 0,223, 0,252, 0,209,232,201, + 0,244,204,195, 54,246,220,243, 0, 97, 0,246, 0, 82,220,217, 0, 82,166,100, 11,101,195,247, 0, 31, 0, 10, 0,247,134,201, + 0,247,213,238, 51,210,220,235, 0,220, 0,119, 0,246,190,202, 0,253,227,242, 56,245,172,232, 0,216, 0,230, 0,241, 61, 56, + 0,174,212,231,216,216,234,220, 0,246, 0,181, 0,125,231, 85, 0, 68,194, 73, 72, 79,247,234, 0,194, 0,185, 0,247,198,119, + 0,227,227,129,125, 0,241,224, 0,117, 0,251, 0, 32,217,224, 0,145,253,254,254,241,171,198, 0,253, 0,250, 0, 59, 6,241, + 0, 49,159,217, 55,241, 22,241, 0,209, 0,219, 0, 55,239,220, 0,160,142, 0,171,128,218,225, 0,222, 0,233, 0, 6, 0, 30, + 0, 65,248,192,192, 44, 4,213, 0, 94, 0, 49, 0,160, 49, 15, 0,137, 81, 97,159, 0, 33, 82, 0, 56, 0,179, 0, 15, 19, 3, + 0,241, 22,234, 22, 55,241, 56, 0,251, 0, 0, 0,241, 55,221, 0,179,160, 10,212,232, 4,192, 0,232, 0, 68, 0,109,224,129, + 0, 49,227,216, 51,243, 22,216, 0,227, 0, 93, 0, 6, 4,216, 0,227,246,202,217,246,197,184, 0,234, 0,129, 0, 0,111,232, + 0,253,192,224,224,239, 87, 81, 0,210, 0, 19, 0, 57,201,254, 0, 29,199,180,178,110,212,183, 0,246, 0,159, 0,250, 0,217, + 0,118,232, 3,192, 63, 14,246, 0, 10, 0, 4, 0, 4,118,184, 0, 41,151, 6, 4, 54, 90, 0, 0,254, 0, 4, 0, 82, 0, 0, + 0,234,220,129,129,192, 56,227, 0, 15, 0, 0, 0, 4,129,243, 0,234,245,184,254,220,129,129, 0, 91, 0, 6, 0,246,117,218, + 0,127,205,195, 67,202,231,207, 0,205,227,119, 0,241,119,147, 0,114, 18,246,167,229,173, 0, 0,205,119,247, 0,223,246,217, + 0, 85,144,218,113,244,216,220, 0,174, 77,227, 0,227,217,209, 0, 41,187,153, 13,187,173, 0, 0,121, 32, 90, 0, 7,247,204, + 0,219, 76,147,224,132,231, 97, 0, 95,234,147, 0,202,220,239, 0, 89,220, 70,221,246,248,204, 0,250,192, 4, 0, 29, 44, 22, + 0, 17,249,119, 83, 0,220,223, 0,135,227,227, 0,243,231, 4, 0, 99,168,144,245,104,182,246, 0, 91,201,246, 0,183,173,129, + 0,151,200,147,177,144,231,207, 0,119,227,253, 0,241,247,217, 0,117, 18,253,183, 92,123,244, 0, 31,103,170, 0,232,234,235, + 0,244,185,241, 54,233,217,201, 0,195,222,174, 0, 34,183,254, 0, 82,187,236, 64,161,218, 0, 0, 76, 34,222, 0, 0,218, 0, + 0,100,210,238, 83, 7,169,247, 0, 24,218,119, 0,181,137, 35, 0, 93,123,239, 57, 34,125, 81, 0,133,215, 71, 0, 0, 81,244, + 0, 60,171,247, 5,251,206,254, 0,220, 1, 0, 0,129, 22,221, 0, 53,134,201, 15,155,201,231, 0, 91,189,144, 0,246,235,242, + 0,233,253,108,183,181,217,115, 0,210,113, 22, 0,232,241, 33, 0,227,185,249,250,253, 33,220, 0,111,240,239, 0,143, 79,239, + 0, 41, 6,150,129,232, 15,221, 0,190,111,232, 0,179, 22, 5, 0,160,199,124,210,104,213,125, 0,144,227,147, 0,135, 0,245, + 0,206,228,211,113,111,206,181, 0, 49, 15,172, 0,151,248, 0, 0,140, 60, 0, 4, 82, 0, 0, 0,241,101, 96, 0, 0, 0, 0, + 0,111,192, 50,129, 65, 8, 81, 0, 99,140,138, 0, 19, 14, 44, 0,179,165,202,246,220, 0,241, 0,247,151,151, 0,231, 0, 87, + 0,230,248,224,241,234,195, 57, 0,192, 6,248, 0,221, 84, 10, 0, 6, 62,217,234,120, 68, 9, 0,232, 0, 0, 0, 22, 57, 49, + 0,244,192,181,108,190,224,254, 0,107,107, 42, 0, 6, 49, 44, 0, 82,199,217,218,231, 15,201, 0, 0,128,247, 0,190, 38,181, + 0,223,217, 29, 44,234, 68, 2, 0, 22, 17,162, 0, 85, 4, 5, 0, 73, 85, 65,123, 80, 94,135, 0,175, 49,151, 0, 22, 0, 4, + 0, 4, 5,170,113, 68, 33, 57, 0, 65, 21, 16, 0,189, 10, 45, 0,172,246,224,232,227,208,224, 0,129,129, 4, 0, 49, 85,245, + 0,127,236,147,167,144,229, 14, 0,119,144,154,119,246, 0,213, 0,114,154,233,177,222,246,119, 0,236,154,201, 0,218,201,129, + 0, 85,185,231,184, 88,252, 1, 0,144,246,242,162,245,181,249, 0, 41,104,137, 64,102,102,144, 0,185,112, 32,185,246,246,231, + 0,235,249,246,183, 0,227,234, 0,196,254,220,175,241,245, 39, 0,239,198,246,129,199,253, 89, 0,115,232,144, 0, 85,227, 49, + 0, 17,245, 46,224,234,198, 0, 0,254,241,228,232,217, 36,202, 0, 99, 31,251,177,222,253,198, 0, 47, 0,238,227, 0,227,243, + 0,151,251,147,255,200,185,180, 0,119,234,181,126,202,189,232, 0,179,236,128, 66, 77,246, 35, 0,213,130,144,209, 49, 62,216, + 0,244,119, 0, 67, 2,247,217, 0, 28, 69,246,214,231,110,129, 0, 82,112,227, 67, 88, 34, 0, 0, 75, 0,199,247,227, 0,208, + 0,166,216,235, 5,119,227,119, 0,113,218,246,246, 68,123,218, 0,137,220, 29,129, 61,140, 10, 0,217,182, 92, 82, 53,132, 22, + 0,235,178,128,129,212,247,218, 0,168,201,253,216,250,138,250, 0,174,158,102, 15, 0,174,201, 0,249,236,212,198,198,145,220, + 0,128,231,217, 22,253,250,115, 0,110, 81, 55,185,232,149,224, 0,128,253,253,245, 21, 17,135, 0,162,220,226,234, 4,241,217, + 0, 10,220,248,192, 6, 6,167, 0,139, 6, 59, 49,114, 55,216, 0,117,141,232,201,227,246, 15, 0,227,174,230, 0,232,232,232, + 0, 29,118,213, 72, 15, 90, 82, 0, 70, 4, 31, 22, 4,126,180, 0, 95, 68, 65, 20, 0, 11, 55, 0,143, 0, 0, 0, 4, 29, 0, + 0,224, 6,224, 4, 4, 62,241, 0, 20, 37, 62,243, 29,106, 44, 0, 41, 99, 6,244, 62,159,159, 0,212,232, 0,222,118, 43, 73, + 0,246,159,246,250,231, 49,218, 0,172,192,241,240, 55,129,130, 0,192, 70, 49, 0,254, 55, 49, 0,248,161,198, 82, 45,227,155, + 0,124, 31,231,147,124,241,241, 0,100,137, 4, 86,224, 56,241, 0, 82,230,211,220,192,231,231, 0,227,223,145,128,137,239,231, + 0,153,248, 46,232, 63, 62, 22, 0,125, 46, 56, 75, 50, 82, 83, 0, 15,217, 6, 22, 89, 17, 55, 0,197, 88, 0, 17, 0, 0, 15, + 0,241, 59,241, 0,165,135,241, 0,151, 29, 0, 53, 81,111, 17, 0,193,129,220,140,247, 8, 33, 0,192,227,248,155,190, 22, 0, + 0,127, 36,195,118,246,246,129, 75,236,223,227,220,223,191,201, 0, 6,104,147,201,144,198,143, 31,220,227,247,146,132, 0,208, + 0,114,193,112,207,128, 0, 0,218,119,227,253,253,253,107,234, 0, 41, 45,100, 31,120,100,189, 58, 16, 69,153,174, 0,246,238, + 0,226,118,246, 62,234,148,246, 31,198,241,162,224, 0,243,234, 0, 41,234, 88,241,251,120,128,250,149,188, 0,211, 6, 53,172, + 0,226,189,247,217,132,227,241,198,138,234,192,247,100,108,248, 0, 29,132,235,205,247,174,108, 0, 52,205,235,234,103,246,108, + 0,151, 36,147, 96,204,198,241,218,174,100,227, 32,198,220,129, 0,117,157,246,168,232, 45,129,201,215,189,247,232,109,253,218, + 0,114,222,119, 58,246,234,241,218,247,175,244, 0,159, 0,220, 0, 82, 84,174, 76,226,174, 0,133, 7,144,247,174, 0,148,212, + 0,230, 76,244,241, 1,199,173,217,227,227,217,246,241,118, 6, 0, 41,248, 29,241,246,235, 44,181,241,198, 89, 74,138, 4, 2, + 0,244,216,199,254,227,201, 0,232,254,119,181,235,192,245,232, 0,137, 0,164,212,144,200,119,216,212,222,235,234,169,134,231, + 0,253,220,224, 6,217, 53, 22, 97,246,183, 68, 63,111,232,240, 0,128, 68,231, 29,192,145,241,248, 22, 27,219, 0,222, 62, 55, + 0,129,239,247,138, 65,227,220, 2,241, 5, 55,129, 5, 41,124, 0, 93,151,199,132,209, 0, 6,174,247,135, 6,234,231, 49, 54, + 0, 59,220, 0,151, 41, 82, 0,241,138, 0, 97,160, 82, 6,192, 0,111,244, 83, 36, 70, 1, 5, 4, 81, 6,144, 5, 37, 0, 89, + 0,241, 93,192, 33, 0, 36, 82, 72, 22,219, 94,241, 62, 4, 49, 0,186,172,192,223,241, 15, 88,223, 71,199,220, 14,180,107,151, + 0,239,198,254,209,240,107,254,192, 56,231,155, 97, 95,118,254, 0, 85,242, 0,118, 32, 98, 44,232,248, 55,128,210, 93, 89, 55, + 0,244,241, 72,196,231,241,177, 44,147,239,241, 15, 89, 21, 44, 0, 99,105, 33,126,234, 40,234,246,246,250, 49,231,250,115,108, + 0, 14,245,172, 22, 48, 22, 4, 97, 6,132,147, 37, 56,175,118, 0, 99, 5,100, 10, 41, 4, 0, 0, 68, 68, 0, 0, 4, 0, 0, + 0, 42,138,217,216,141, 41,241,135, 19, 51,222,117,160,177,220, 0,114, 82,232,165, 49,120, 38,234,207,254,108,192, 64, 15,100, + 0,127,200,195, 76,200,119,255,125,247,119,119, 0,232,232,250, 0,114,104,238, 76,246,246,129,213,251, 38,247,201,223,231,216, + 0,114, 61,247, 52, 70,246,171,234,247,193,254,192,253,241,223, 0, 41, 45,100, 31, 90,227,100, 58, 7,170,153,236,144,247,237, + 0, 74, 96,128,169,116,223,243,196,223,241,195,209, 28,182,234, 0,160,222,128,224,232,106,111,105,221,156,245, 85, 82, 26, 4, + 0,199,118,252,183,201,120,250,253,231,201, 0,198,192, 38, 22, 0, 68,205,235,212,229,164,254,238, 40,246, 0,205,242,192,129, + 0,151, 18,147,237,100,232, 40,220,231,234, 50, 32, 0,234, 56, 0,179,226,142, 95,232,223, 73,231, 0, 73,223,230,248, 4, 5, + 0,114,174,231,218,253,147,129,218,201,231,220,220,181,181,217, 0, 82, 84, 0, 94,161,198,195,133, 0, 59,222,208, 0,234,122, + 0,247,116,181,183,234,208,253,150,227,220,227,254,241,220,217, 0,137,198, 29,183, 68,239,136,203,134, 62, 8, 96,118, 41,242, + 0,174,183,181,201,253,246,202,201,217,247,162,144,254,250,221, 0,230,201,227, 94,223,199,238,248,220, 0,253,199,217,227,254, + 0,231,248,253,181, 82,135,119,204, 93, 15,127, 28, 10, 54,217, 0,227,234,135,241,246,250,250,152, 4, 9,129,234,104,254, 4, + 0,232,140,232, 5,248, 74,224,196, 55,217, 53,224, 53, 54,221, 0, 29,165,247,132, 77,250,245,164, 0, 0, 27,227, 62,248, 56, + 0, 0,141,140,241,127, 15, 59, 4, 62,127, 90, 41, 99, 0,221, 0, 64, 14, 89, 53, 19, 89, 0, 31, 55, 0, 82, 54, 0, 0, 0, + 0,117,232, 33, 87, 6,118,180, 15, 34, 35, 87, 41, 62, 0, 44, 0, 41,105,122,253,248,224, 4,223,253, 42,202, 49, 5, 55,184, + 0, 68,165,241,247,145, 20,167,232,232,211,239, 17, 93, 24, 15, 0,227,179,198,172, 85,241, 4,227,106,147,152,137, 99, 44, 83, + 0, 8,248, 79, 93,232, 4, 83,123, 16, 22,135, 97, 66, 78, 83, 0,137,199,207, 69,242,181,254,246,231, 10,248, 97,248,245,245, + 0, 0, 0, 56, 49, 49, 0,163, 31, 49, 6, 82, 0, 0, 41, 81, 0,186, 99, 0, 81, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, + 0,241,193,248,113, 6,102,241, 91,202, 49, 22, 33,183, 49,108, 0, 0,218,218,253,232,227,197,227, 22,254,241,227, 68,181,184, + 0,127, 36,207,150,170,247,180,150, 21,236, 0,236,191,195,143, 0, 6,104,147,171,170,153,195, 11,158, 52, 0,201, 80,238,197, + 0, 85,140,201,206, 88,144,195,196, 75,252, 0,194, 80,243, 3, 0, 41, 45,100, 62,102, 38, 96, 22, 75, 43, 43, 0, 39, 26, 96, + 0, 10,171,128,171, 75,208,207,171, 22, 28,236,252,236,242,180, 0, 93,228, 70, 63, 10, 82,231,254,123, 52,242,198,140,109,241, + 0, 49,134,201,206, 0, 0,249,218,150,225, 91,116,201,131,254, 0, 29,126, 65,107, 32, 65,178,107, 23, 75,103,144,146,194,180, + 0,151, 36,147,150,148,181,207,150, 95,119, 24,236,110,231,180, 0,179,157,147,188, 69, 90,207,171, 96,103,119,223,182,238, 57, + 0, 85,140, 96, 14,246,238,178,163,182, 16, 91,215,212,218,183, 0, 82, 84, 65, 94, 10,121, 96, 22,116, 16, 0, 0, 26,182, 96, + 0,230, 19,235,169,201,247,238,249, 48,158, 26,236,212,180,158, 0,179,212,244,183,149,106,241,183,129, 0,246,223,185,102, 4, + 0,251,169,170, 67,124,144,201,218,210,163,124,238,247,201,254, 0,137,134,147,169,164,205,122, 91,113, 40, 37,144,168,173,183, + 0,127,137,207,205,223,241,221,131,234,143,201,189,231,173, 51, 0,214,145,207,132, 0, 26,217, 37,220,178,248,152,143,220,255, + 0,242,240,231, 62,246,234,221,196,234,231,129,220,184, 65,216, 0, 41,151, 96,132,128, 0, 96,132, 47,146,146,200,178,249,197, + 0, 0,162,129, 68,224,220,241,132, 4,248,250,167, 37, 55,241, 0, 93,198, 89,248,187, 91, 87,220,250, 49, 89,239,102, 97,129, + 0, 6,232,129,250,231, 13,202,242,248, 6,209, 83,209, 33,224, 0, 29,151,249,142,154, 30,183,166,247,247,212,220,250,250,136, + 0, 49, 31,224,188,164,232,202,196,223,224,247,234,209, 6,224, 0,137, 45,241,246,234,219,136, 62,218,242,169,114,228,248,241, + 0,124,140,129, 63,246,115,216,224,220, 65,218,212,250,224,254, 0, 68,142, 51,149,204,171,184,251,201,201,212,197,247,129, 57, + 0,227,216,245,247,227,250, 10,241,108,240,181, 65,174,249,134, 0,140,223, 35, 66,161,221, 0, 22,217,120,208, 8, 0, 12,124, + 0,231,192,224,196,250, 80,167,245,198,220,108,217, 57, 0,221, 0,227,149,184,144,247,234,184,144,218,246,215,241,108,196,183, + 0, 78, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 58, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,121, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,211, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,101, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,213, 0,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,225, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90, 47, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,121, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,106, 86, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 86, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130,168,200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,119, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,157, 75,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187,185,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90,121, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 7, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 1, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 18, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,131,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,125,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,225,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 80,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,103,236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,236,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,106,112,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 86, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,218, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,138,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,145,227,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,145,246,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,229,205,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,144,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53,104, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 20,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,242,254,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,239, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,247,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 91,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,148, 47,110, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 75, 71, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42,121, 92, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 7, 73, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0,146, 80,195, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,216,223, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, + 0,208,168,147, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 75,148, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 73, 28,110, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 75,208, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 88, 47, 73, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 7, 34, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,213,236, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0,109,216,181, 0, 0, 0,186, 0, 0, 0, 0, 0, 0, 0, 0, + 0,208,212,191, 0, 0, 0,200, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 40,208, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,201,195, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,154,210, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 7, 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 86,148, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, + 0,125,241,254, 0, 0, 0,242, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 49, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62,227,241, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0,174,235,231, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, + 0,222,125, 0, 0, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,205,195, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,156,227,215, 0, 0, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 76,110, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, + 0,167,248,237, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0,241,115,241, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119,247, 12, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,253,212, 0, 0, 0,217, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90, 64,110, 0, 38, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,122, 71, 0, 38, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, + 0,106, 19,153, 0, 86, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 13,170, 0, 18, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,177,238, 0,146, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 4, 10, 0, 51, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, + 0,149, 25,238, 0,201, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0,199,139,194, 0,185, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90, 64,110, 0,185, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 19,173, 0, 86, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 79, 0, 0,112, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 13,153, 0, 32, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20,183,146, 0,191, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,135,232, 0,247, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, + 0,155,255,110, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 11,173, 0,212, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,228,183, 0,174, 0,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,178,213, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,114,158, 0, 0,144, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,133, 73, 0, 18, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0,214,254, 57, 0,223, 0,108, 0, 0, 0, 0, 0, 0, 0, 0, 0,166,239, 62, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,233,231,217, 0,129, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,205,217, 0,227, 0,242, 0, 0, 0, 0, 0, 0, 0, 0, + 0,229,217,217, 0, 75, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,213,231, 0,227, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,139,197, 0,144, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,133,173, 0,185, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,108,234, 0,181, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,120, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,129,220, 0,235, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,174,129,234, 0,246, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, + 0,170, 67, 88, 0,154,185,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 3, 35, 0, 1, 69,155, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120, 51,120, 0, 16,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 11,106, 0, 86, 74, 90, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,167,235, 0,119,144,204, 0, 0, 0, 0, 0, 0, 0, 0, 0,159,220,239, 0,192,165,160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,183,144, 0,168, 18,146, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,122,100, 0,205,144,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,170, 66,128, 0, 0,246,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 3, 85, 0,185,155,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 88, 3,120, 0,185,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 64,120, 0, 86, 59,130, 0, 0, 0, 0, 0, 0, 0, 0, + 0,205, 54,120, 0, 75, 9, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 95, 93, 0,241, 82,145, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255,174, 0, 0,238,201, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,167, 88, 0,194,227,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,183,247, 0,235,191,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,176,174, 0,212,246,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0,137,176,238, 0,174,232,201, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,131, 88, 0,112,144,235, 0, 0, 0, 0, 0, 0, 0, 0, + 0,209,217,241, 0,217, 38,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 81,102, 0, 41,217, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,202,247, 0,128,129,248, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 0,189, 0,246,181,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,183,233, 0, 75,232,129, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,169,144, 0,247,144,200, 0, 0, 0, 0, 0, 0, 0, 0, + 0,170,139,238, 0,235,106,201, 0, 0, 0, 0, 0, 0, 0, 0, 0,161,158,128, 0,153,227,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231,250,140, 0,234,217,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,117, 87, 81, 0, 87, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,245,247, 0,198,129,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,129,253, 0,204, 0,143, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161, 47,147,210, 43, 59,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 47,128,158,130,229,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 38,142, 95,144,226,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 86, 60, 58, 20, 90,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0,147,171,238,212,212,147,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,227, 70,129,106, 95, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 0,149,138,244,116,212, 38,227, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,185,204, 0,146, 86,238, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,154,233,203, 16,223,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 0,219, 13, 9, 46,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0,128,210,130,119,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 86, 10, 95, 69,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,150, 60, 52,138,204,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,169, 82, 98,248, 53, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153, 62,174,212,194,201,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,146,174,135,144,205,154, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119,214,147,242,214,220,218, 0, 0, 0, 0, 0, 0, 0, 0, 0,174,154,173,174,204,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,111, 18,246,134,199,231, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,174,246,185,154,204,171, 0, 0, 0, 0, 0, 0, 0, 0, + 0,238,132,254,210, 1,120,202, 0, 0, 0, 0, 0, 0, 0, 0, 0,186, 94, 0, 97,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,159,253,224, 10, 31, 85, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 17,192,218,224, 22,245, 0, 0, 0, 0, 0, 0, 0, 0, + 0,204,144,245, 45,227,247,224, 0, 0, 0, 0, 0, 0, 0, 0, 0,166,251,217,254,223,253,101, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230, 32,183,116,246,201,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,227,153,187,199, 78,238, 0, 0, 0, 0, 0, 0, 0, 0, + 0,233,241,239, 85,245,248, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0,219,135, 29, 29, 89, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,246,181, 95,218,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0,223, 97,241,181,118,208,244, 0, 0, 0, 0, 0, 0, 0, 0, + 0,170, 52,147,158,236, 0,176, 0, 0, 0, 0, 0, 0, 0,144, 0, 10, 75, 88, 95, 43,199,110, 0, 0, 0, 0, 0, 0, 0,155, + 0, 8, 0,102,131,125,214,119, 0, 0, 0, 0, 0, 0, 0,144, 0,106, 86,102, 95, 50, 36, 28, 0, 0, 0, 0, 0, 0, 0,170, + 0,119,118,227, 26,234,227,195, 0, 0, 0, 0, 0, 0, 0,112, 0,160,198,114, 73,232, 25,175, 0, 0, 0, 0, 0, 0, 0,100, + 0,229,118,235,228,238,198,231, 0, 0, 0, 0, 0, 0, 0,246, 0,149,185, 42, 91,144, 18,218, 0, 0, 0, 0, 0, 0, 0,242, + 0, 90, 26,247,218,236,156,180, 0, 0, 0, 0, 0, 0, 0,180, 0,233, 52,204,178,205, 42,147, 0, 0, 0, 0, 0, 0, 0,183, + 0,120,103,144,158,205,208,207, 0, 0, 0, 0, 0, 0, 0,238, 0, 53, 76, 10, 95, 18, 90,210, 0, 0, 0, 0, 0, 0, 0,153, + 0,227, 13,246,218, 91,232,110, 0, 0, 0, 0, 0, 0, 0,159, 0, 89,115,244, 66,202, 69, 14, 0, 0, 0, 0, 0, 0, 0, 93, + 0,146,203,236,119,207, 43,180, 0, 0, 0, 0, 0, 0, 0,247, 0,201,194, 73,249, 31,233,139, 0, 0, 0, 0, 0, 0, 0,119, + 0,252, 7,201,145,118,218,143, 0, 0, 0, 0, 0, 0, 0,201, 0,214,118,169,243,241,154,129, 0, 0, 0, 0, 0, 0, 0,198, + 0,226,144,119, 0,128,241,217, 0, 0, 0, 0, 0, 0, 0,231, 0,111,185,246,185,128, 0, 83, 0, 0, 0, 0, 0, 0, 0,194, + 0, 93,248,232,192,234, 10, 44, 0, 0, 0, 0, 0, 0, 0, 5, 0, 36, 0,101, 4, 0, 80, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0,198,223,152,169,207, 0, 49, 0, 0, 0, 0, 0, 0, 0,235, 0,240,105, 55, 0, 22, 82, 87, 0, 0, 0, 0, 0, 0, 0,209, + 0, 65,100,255,165,175,192, 66, 0, 0, 0, 0, 0, 0, 0,232, 0,227,227,254,119,202,232,231, 0, 0, 0, 0, 0, 0, 0,209, + 0,244,252,129,234,231,220,212, 0, 0, 0, 0, 0, 0, 0,217, 0,230,174,163,112,121,174, 33, 0, 0, 0, 0, 0, 0, 0,238, + 0,254,240,217, 97, 54, 0, 56, 0, 0, 0, 0, 0, 0, 0, 70, 0,219, 3, 4, 0, 62,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,115,171,241,254,103,248,224, 0, 0, 0, 0, 0, 0, 0,192, 0,220,246,218,118,129,234,178, 0, 0, 0, 0, 0, 0, 0,183, + 0,127,139,147,139,171,144,180, 0, 0, 0,201, 0, 0, 0,215, 0, 8,158,155,139, 12,185,143, 0, 0, 0,144, 0, 0, 0,238, + 0, 17, 95,144, 25,176,164,220, 0, 0, 0,155, 0, 0, 0,198, 0, 99, 95,102, 95,131,170, 24, 0, 0, 0, 9, 0, 0, 0,144, + 0, 59,245,247,218,143,112,180, 0, 0, 0,236, 0, 0, 0, 0, 0,209,250, 82,192,177, 8,134, 0, 0, 0,145, 0, 0, 0, 93, + 0,222,211,178,231,216,246,216, 0, 0, 0, 0, 0, 0, 0,119, 0, 70, 95,236,188, 11,134,218, 0, 0, 0,247, 0, 0, 0,195, + 0, 8, 76,238,171, 25,222,182, 0, 0, 0,227, 0, 0, 0,216, 0, 17,158,235,191,213,246,246, 0, 0, 0, 65, 0, 0, 0,227, + 0, 85,182,252,139,176,244,218, 0, 0, 0,222, 0, 0, 0,218, 0, 68, 58,120, 40, 24,187,206, 0, 0, 0, 27, 0, 0, 0, 0, + 0,222, 22,238,118,217,144,201, 0, 0, 0,231, 0, 0, 0,241, 0,117, 6,117, 10, 15, 29, 46, 0, 0, 0, 6, 0, 0, 0, 0, + 0,174,129,174,211,143,234,220, 0, 0, 0,148, 0, 0, 0,222, 0,149,169,164,218,206,226,217, 0, 0, 0,236, 0, 0, 0,181, + 0,174,118,231,201,249, 65, 44, 0, 0, 0,182, 0, 0, 0,211, 0,175,163,216, 31,183,231,255, 0, 0, 0,195, 0, 0, 0,232, + 0,165,144,220,234,169,234,224, 0, 0, 0,198, 0, 0, 0,251, 0,111,185,148, 62,147,144,213, 0, 0, 0,144, 0, 0, 0,238, + 0,246, 15,254, 17,220,241, 65, 0, 0, 0,242, 0, 0, 0, 8, 0,141, 46, 0, 63,188, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, + 0,223,241,202,192,220, 0,164, 0, 0, 0, 6, 0, 0, 0, 4, 0,172,227,218,227,209, 10,224, 0, 0, 0, 82, 0, 0, 0,232, + 0, 36, 22,181,192,250,223,184, 0, 0, 0, 67, 0, 0, 0, 57, 0,128,231,245,198,224,234,180, 0, 0, 0, 70, 0, 0, 0, 29, + 0,235,201,129,201,254,120,197, 0, 0, 0, 39, 0, 0, 0,129, 0, 68,121,195,185,191,227,216, 0, 0, 0,205, 0, 0, 0,238, + 0,192,169,232, 98,110,100, 87, 0, 0, 0, 63, 0, 0, 0, 41, 0,107, 82, 41, 0, 48, 88, 0, 0, 0, 0, 4, 0, 0, 0, 0, + 0,129,231, 6,209,254,227,224, 0, 0, 0,241, 0, 0, 0, 29, 0,144,201,217, 99,254,232,221, 0, 0, 0,202, 0, 0, 0,181, + 0, 90, 11,128, 95,122,212, 12, 0, 0, 0,205, 0, 34, 0, 0, 0,120, 95,120,212, 48,194,212, 0, 0, 0,189, 0,144, 0, 24, + 0,106,139,219, 25,237,195,201, 0, 0, 0,236, 0,247, 0, 0, 0, 17, 95, 8, 95, 25, 52,182, 0, 0, 0, 86, 0, 90, 0,205, + 0,144,255, 60,218,123,234,136, 0, 0, 0, 18, 0,234, 0,246, 0, 89, 87, 89,179,224,156, 0, 0, 0, 0, 65, 0,123, 0, 0, + 0,247,163, 59,246,245,254, 78, 0, 0, 0,124, 0,148, 0,217, 0,149,203, 60,238,143,238,218, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90,203,128,212, 96,231,216, 0, 0, 0,189, 0,247, 0,212, 0, 35,203,244,158, 13,252,238, 0, 0, 0,223, 0,140, 0,212, + 0, 88,139,233, 94,191,238, 33, 0, 0, 0,144, 0,165, 0,247, 0, 53, 19,120, 58, 28,147,167, 0, 0, 0,185, 0,125, 0, 0, + 0,227, 54,244, 96,218,241,241, 0, 0, 0, 0, 0,195, 0,223, 0,151, 94,111,220,118,111, 76, 0, 0, 0,220, 0, 17, 0, 4, + 0,204,129,219, 91,218,182,245, 0, 0, 0,144, 0,247, 0, 34, 0,144,167, 74,118,177,119,216, 0, 0, 0,178, 0,181, 0,119, + 0, 26,218,220,132,245,234,243, 0, 0, 0,234, 0,224, 0,162, 0,214,211,119,223,217,228,183, 0, 0, 0,138, 0,231, 0,119, + 0,227,205,244,227,195,220,253, 0, 0, 0,129, 0,247, 0,253, 0,111,185,204,227, 0,238,139, 0, 0, 0,185, 0,238, 0,242, + 0,229,232, 33,133, 22, 15,209, 0, 0, 0, 68, 0,223, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 22, 6,232,254, 14,127, 0, 0, 0,243, 0, 6, 0,185, 0,199,227,239,227,216,202,129, 0, 0, 0,217, 0,192, 0,129, + 0,220,234,147,231, 4,217, 65, 0, 0, 0, 61, 0,250, 0,245, 0,252, 80,239, 0,216,248, 14, 0, 0, 0,248, 0,245, 0,209, + 0,180,202,183, 15,249,209,129, 0, 0, 0,248, 0,241, 0,254, 0,137, 94,238,144,212,108,218, 0, 0, 0,247, 0,181, 0,218, + 0, 6, 57, 99,110,241, 0, 87, 0, 0, 0,232, 0,192, 0,170, 0, 0, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232,115,232, 0,228,254,217, 0, 0, 0,224, 0,216, 0,137, 0,227,172,254,247,143,224,184, 0, 0, 0, 4, 0,254, 0, 4, + 0,127,168,247,183, 96,178,180, 0,168, 0,201, 0,247, 0,238, 0,114,168,128, 54,176,195,123, 0,158, 0, 16, 0, 0, 0,246, + 0,111, 31, 88, 54, 91,208,167, 0,188, 0,222, 0,238, 0,248, 0, 99, 86, 6, 67, 24, 52,212, 0, 58, 0, 18, 0,156, 0, 0, + 0,227,171,246, 15,216,180,207, 0,129, 0,119, 0, 0, 0,241, 0, 93,231, 93,181, 15,192, 0, 0, 54, 0, 77, 0,123, 0, 0, + 0,244,119,100, 55,218,217,218, 0,198, 0,253, 0, 0, 0,118, 0,142, 0, 65,177,177,119,129, 0,168, 0,204, 0,193, 0,183, + 0,161,168,147,177,191,231,180, 0,215, 0, 77, 0,208, 0,218, 0,111, 18,235,183, 24,182,181, 0, 80, 0,252, 0, 77, 0,231, + 0,114,205,247,221,215,191,188, 0,212, 0,246, 0,227, 0,195, 0, 68,112,120, 51, 78, 0,123, 0, 58, 0, 69, 0,154, 0, 0, + 0, 60,139,128,169,218,234,224, 0, 12, 0,134, 0,223, 0, 54, 0,179,135,145, 15, 96, 76, 41, 0, 87, 0, 0, 0, 20, 0, 0, + 0,153,212,219,136, 64,207,129, 0,129, 0,216, 0,223, 0,231, 0, 90, 40,229, 14,211,238,129, 0,218, 0,212, 0,144, 0,201, + 0,153,170,234,201,231,234,136, 0, 55, 0,232, 0,241, 0,143, 0,253,227,231,125,202,167,243, 0,179, 0,231, 0,197, 0,220, + 0,199,183,227,218,119,246,224, 0,254, 0,165, 0, 0, 0,254, 0, 29,187,246,171, 52,163,183, 0,201, 0,236, 0,223, 0,183, + 0,251,115,184, 82, 90, 4,206, 0,107, 0, 6, 0, 97, 0,105, 0,117, 94, 0, 0, 15, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, + 0,240,220, 10, 62, 0,198, 48, 0, 0, 0,127, 0,173, 0, 56, 0, 6,106,241,247, 0, 56,217, 0,199, 0,161, 0,248, 0,217, + 0, 74,189,209,250,217,231,237, 0,198, 0,232, 0,224, 0,167, 0,240,149,202,234,168,254, 66, 0,250, 0,254, 0,156, 0,192, + 0,246,232,247, 87,231,234,217, 0,143, 0,234, 0,247, 0,217, 0,226,166,212,210,249,129,183, 0,189, 0,246, 0,201, 0,247, + 0,218,246, 17, 33,129, 44, 49, 0, 90, 0,216, 0,183, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,248,245,254,129,108,143, 0, 82, 0,247, 0, 0, 0, 55, 0,227,227,245,129,224,120,224, 0,227, 0,241, 0,130, 0,232, + 0,127, 76,147, 54,178,201,238, 0,212, 0, 0, 0,223, 39, 0, 0, 8,168,233,221,178,110,144, 0, 91, 0,130, 0,173,247,247, + 0,114, 75, 49,108,182,231,246, 0,171, 0,153, 0,103,208,227, 0, 99, 31,102, 14, 30,101,120, 0, 95, 0, 18, 0, 69,154,144, + 0,227,218,147,129,224,113,248, 0,247, 0,134, 0,181,242,250, 0, 60, 66, 99, 4,211, 44, 0, 0, 4, 0, 5, 0,160, 0, 0, + 0,199, 13,227,129,183,218,181, 0,218, 0,247, 0,231,232, 0, 0,174,125,174,177,211,213,198, 0,198, 0,227, 0,223, 62,231, + 0,161, 76,238,221,191,231,173, 0,191, 0, 0, 0,124,119,227, 0,244,201,253,183, 30,116,235, 0,178, 0,130, 0,246, 0,242, + 0, 85, 39,246,184,178,134, 0, 0,249, 0,201, 0,223,227,234, 0, 68, 76,120, 54, 78,101,238, 0, 95, 0,170, 0,227, 0, 0, + 0, 42,218,208,183,210,241, 27, 0,201, 0, 77, 0,232,192,114, 0,142,241, 41,177,241,224, 0, 0, 94, 0,152, 0, 6, 0, 0, + 0,247,129,246, 54,129,138,224, 0,163, 0,218, 0,253,202,239, 0,112, 94,174,184,216,178, 52, 0,183, 0, 80, 0,201, 0,220, + 0,199,246,234,108,129,231,211, 0,223, 0,218, 0,217,179,129, 0,253,230,217,207,224,224,223, 0, 41, 0,214, 0, 33,217,116, + 0,235,246,246,232,254,221,129, 0,135, 0,105, 0, 74, 34,218, 0,111,174,194,150, 52,238,169, 0,227, 0, 7, 0,235,208,238, + 0,209,241,213, 49,220, 56, 94, 0,232, 0, 6, 0, 82, 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,186,164,192,250,254, 44, 81, 0,137, 0, 29, 0,197, 4,101, 0,239,232,245,217,241,216,157, 0, 61, 0,241, 0, 85,209,196, + 0, 0,174, 4, 5,250, 0,224, 0,241, 0, 97, 0,241, 22,192, 0,235,212,241,136,217,221,241, 0,160, 0,241, 0,241,192, 88, + 0,119,223,224,231, 0,202,250, 0, 22, 0, 4, 0,192, 4,232, 0, 68,199,177,211,216, 0,183, 0,174, 0,227, 0,198,201,243, + 0, 42,120,117, 15, 55,118, 6, 0,135, 0, 31, 0, 49,111, 87, 0, 15, 0, 87, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 0,254,192,218, 56,245, 0, 56, 0, 83, 0,113,151,254, 0,129,149,129,254, 62,192,129, 0, 97, 0, 49, 0, 8,171,253, + 0,127,158,147,221,205,178,195, 0,212,124,144, 0,144,201,245, 0,114,158,235, 33,132, 0,247, 0,218, 0,174, 0,205,247,254, + 0,111, 80,144, 72,227,119,246, 0, 95, 0, 98, 0,199, 58,247, 0, 99, 75,102, 67, 20,101,156, 0, 58, 50,156, 0,227,247,246, + 0,149,183,233, 54,131,195,254, 0,197,231,234, 0,246,100,232, 0, 82,123, 6, 81, 88,239, 0, 0,151, 5, 68, 0, 17, 0, 0, + 0,174,249,102, 4,246,245,202, 0,247,218,205, 0,250,254,248, 0,104,228,252,177,175,238,253, 0,215,212,253, 0,201,108,218, + 0, 49,139,247,221,227,121,232, 0,150,215,227, 0,119,181, 65, 0,219,201, 49,184, 20,182,129, 0,201, 0,173, 0,247,192,212, + 0, 46,176,227, 4, 34,136,238, 0,211,215,238, 0,201,207,217, 0, 68, 75, 49, 72, 59,173,215, 0, 28, 38, 77, 0,144,247,195, + 0,226, 63,193,183,201,227,164, 0,234,250,202, 0,241, 49, 29, 0,179, 87,248,195,135, 83, 0, 0, 14, 85, 98, 0,123, 0, 0, + 0,233,129,247,171,212,220,189, 0,228,234,246, 0,198,234,254, 0,219,169, 0, 22,198,218,218, 0,220,212,201, 0,235,129,217, + 0,227,155,231,216,232,241,242, 0, 15,248,240, 0,234,192,241, 0,253,227,100,217,241,250,232, 0,224,248,199, 0,221,241,154, + 0, 8,227,234,217,199,232,250, 0,217,124,169, 0,220, 6, 91, 0,111,132,238,171,144,110,212, 0,154,164,119, 0,125,201,218, + 0, 93, 82, 39,224,245, 9, 55, 0,128, 6, 55, 0,100, 64, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,106,220,177, 76,248, 15, 89, 0, 65, 17,239, 0, 22, 14, 6, 0, 89,247,140,246,209, 49, 15, 0,227,192,224, 0, 88, 24, 5, + 0,253, 55,224,248,254,124,232, 0, 0, 77, 0, 0, 60,254,241, 0,232,209,202,143,161,220,241, 0,232, 0,214, 0, 0, 14,232, + 0,152,223,217,107,192,248,231, 0, 70,245,254, 0, 24,139,217, 0,199, 0,216,188,247,221,218, 0,212,119,183, 0, 6,246, 22, + 0,232,108, 4, 29,254, 85,129, 0, 82, 22, 56, 0, 81, 93, 2, 0,125, 90, 0, 24, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, + 0, 15, 10, 3, 58, 22, 79, 44, 0, 36,251, 78, 0, 22, 77, 32, 0,234, 0,241,239,231,254,224, 0,117,241, 41, 0,254, 62, 56, + 0, 90,150,233,221,144,144,195, 0,171,103,168,246,246,253,238, 0,114,150,128,221, 86,174,246, 0,234,236,119,119, 34,223,129, + 0,114,150,174, 33,112,204, 18, 0,211, 75,174,235,140, 26,198, 0, 99, 95, 8, 54, 36,102,235, 0, 95, 0, 43, 32,185, 0,215, + 0,144, 22,219,250,245,189,217, 0,188,140,168,227,195,192, 0, 0, 93, 4, 70, 15,202, 33, 0, 0, 70, 56, 51, 0, 66, 0, 0, + 0,247,171, 70,217,227, 2,248, 0,241,247,140, 18,234,240,241, 0,100,212,222,218, 7, 8,135, 0,225,191,247,253,253,220,218, + 0,199,163,147, 15,138,246,243, 0,138,234,227,189,232,162,223, 0, 17,203,128,177,252,120,243, 0,210, 0,227,153,232,207,223, + 0,219, 22,174,129,144,246,220, 0,218,144,227,242,227,234,218, 0, 68, 58,120, 51, 27,174, 0, 0, 95, 0,164,208,247, 0,242, + 0,247,129,164,184,234,246,145, 0,248,234,217,241, 88,232,209, 0,253,148, 73, 66, 68, 41, 15, 0, 97, 51,151, 61, 0,137, 94, + 0,100, 48,246,217,213,223,253, 0,248,231,220,241,192,119, 21, 0,155,169,251,218,134,235,201, 0,218,248,121,227,227,253,216, + 0,252,246,250,254,220,202, 5, 0, 44,223,232,192, 89, 4,245, 0,214,223,241, 96,220, 82,115, 0, 65,250,250,254, 75,135,220, + 0,106,175,248,224,154,209,224, 0,234,247,241,232, 49,241, 23, 0,142,132, 0,182,204,251,247, 0,227,227,119,246, 94,172,250, + 0,226, 89,221,241, 64, 10, 49, 0,160, 29,127,134, 17, 49, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,209,231, 95, 33,230,151,159, 0, 84,248, 23, 82, 5, 19, 20, 0,142,145,217,181,250,192, 29, 0,241,181, 41, 44,135,209, 0, + 0,192,232, 62,221,245, 21,221, 0,107,192, 82, 78,140, 31, 33, 0,248, 18, 6, 22,248,198,184, 0,254,248,114, 74,196, 6,126, + 0,198, 0, 81,129,104, 22,254, 0,172,250, 14, 4,209,192,245, 0, 49,175,220,178, 0,183,183, 0,199,247,223,235,217,144, 49, + 0, 0, 0, 98, 85, 70, 44, 44, 0, 89, 0, 10, 29,232, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,173, 72,113,155, 82,179, 8, 0, 2, 6, 4, 94, 93,135, 14, 0, 65,232,245, 4,150,111,224, 0, 0, 62, 99,248, 6,143, 41, + 0,127, 76,147,139,144,246, 0,210, 0,144,227, 71,246, 25,238, 0,114,168,235,163, 20,204,147, 95,191,144,144,199,201,253,223, + 0,114,164,114,171,189,102,118,254,208,164,174, 0,231,251,254, 0, 99, 31, 70, 22, 36,102,144, 22, 0, 0,153,164,236, 0,204, + 0,174, 21, 85,227,227,247, 0,253, 76,220,232,198,231,120,224, 0, 6, 46,179, 4, 59, 89, 0,147, 19, 97, 41,118, 0, 0, 0, + 0,142,188, 49,211,212,241,231,234,223,253,247,171,241,245,217, 0,219, 31,233,236,238,227,201, 0, 0,218,201,242,127,227,198, + 0, 49, 76,147,139,227,181,181,216,245,251, 39, 18, 0,110,228, 0,117,168,192, 64, 27,244,220, 19,212,125,226,162,246,245,192, + 0, 85,189,235,113,227,253, 64,218,212,119,201,245,244, 0,254, 0, 68,185, 49, 95, 59,226, 0,211,131,124,247,144,204,174,212, + 0,166, 5, 70,129,231,227,241,250,227,241,241, 0,140, 95,126, 0,238,118, 10, 55,140, 4, 0, 6, 71, 4, 4, 0, 6, 0, 0, + 0,227,218, 74,129, 0,192,253,135,220,241,140,181, 6, 75, 21, 0,174,178, 0,201,134,127,238,218, 0,201,119, 65,250,217,241, + 0,218,159,212,135,250,201,250, 93, 65, 56,248, 81,248,232,224, 0,214,181,232,242,192, 82,217,181, 0,231, 53, 83,206,110,224, + 0,246,251,253,226,192,246,253,207,209,241,151,120,253, 0,177, 0,111,141, 0,132,144,204,238, 0,103,204,251,215, 0,254,234, + 0,192, 4,192, 35, 45, 0, 46, 23, 6, 0,123, 55, 41, 6, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,185,106,196,241, 77,254, 4, 4,159,140, 91,112,254, 4, 6, 0,160,179,241,253, 41, 82,178,231, 0, 22, 12,126,184,241,111, + 0,246,248,253,241, 4,119, 40,101,220,211,138, 85,216, 4,175, 0,149,140,164, 93,248,140, 0,192, 95,168, 0, 15, 0,142, 44, + 0,192,253,217,191, 85, 85,220,192, 63, 45, 22, 41, 49,248, 55, 0,226,145,129,172,246, 0, 0,246,231,241,218,223,241,246,201, + 0,209,220,180,231, 42,111, 6, 55,240, 99,104, 14, 0,159,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,198, 41, 28,241,105,111, 48, 15,241, 29,160,198, 6, 68, 0, 0,246,202,227,192,224,246,224,220, 53,162, 22,160,160, 62,137, + 0, 90,225,204,218,227,144,195,218, 96,247,227,247,234,247,184, 0,114, 52,235, 63,227,175,208,212,212, 0,223, 18, 82,234,167, + 0,114,168,128,171,144,247,195,238,183,227,198, 17, 0, 10,218, 0, 99, 31,100, 95, 69,102,182, 91, 58,121, 69,156,144,246,237, + 0,246,254,247,250,124,234,217,220,177,118,202,220,247, 0,254, 0,239, 22, 85, 4, 94, 16, 0, 0, 17, 15,135, 4, 16, 0, 0, + 0,127,241,248,245,203,231,197,126, 0,224,207,224,201,241,224, 0,100,144,227, 0,119,223,108,218,218,118,119,174,222,242,254, + 0,199,178,246,183,215,238,247, 11,249,212,241,227,223,246, 66, 0,111,201,242,163,223, 8,116,218,191,215,252,246,180, 0, 3, + 0, 35,210,226,216,204,227,197,183,231,201,253,227,232,253,183, 0, 68, 76,185, 95, 69,132,195,171, 23, 16, 47,144, 0, 0,216, + 0, 69, 22, 85,168, 0,230,207,192,224,224,248,241,248, 96, 56, 0, 41, 63, 29,151, 17, 41, 0, 49, 68,202, 89, 5, 0, 0, 0, + 0,247,216,128,243, 75,198,224,108,196,213,156,192,192,201,241, 0,235,169,153,129,247,242,217,232,245,223,220,223,127,232,129, + 0,217,253,220,120,159,231, 56,227,118,192, 35,192,221, 53, 33, 0,112,145,129,220,209,205,214,248,250,115,144,247, 0,224,129, + 0,233,145,243,232, 36, 24,241,254, 55,192, 22, 99, 35,224,254, 0,114,141, 6,174, 18,120,158,185,185,212,246,181, 78,196,217, + 0, 45,157,107, 0, 82, 85, 14,179, 15,105,111,214, 66, 55, 49, 0, 54, 0, 94, 0, 0, 37, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 0,202,240,216,124, 99,241,221, 6, 10, 4, 0, 0, 6, 56,160, 0,132, 41,231,223,241, 59,217,209,250,227,217,250,111,192, 16, + 0,240,234,216, 99, 51, 18,244,217, 4,206,232,195, 63,159, 62, 0,140,232, 33, 6, 33,120,241,241,241, 35, 22, 76, 66,221, 76, + 0,231,145,202,234, 88,254,216,192, 45, 57,233, 90, 44, 49,224, 0,199,227,217, 77,247,245,183,219,202,153,235,247,254, 4, 4, + 0,111,186,118,206, 0, 4, 22, 82, 49, 0, 0,128, 69, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17,250, 82, 31,127,135, 72, 49, 4,101, 0, 4, 87, 0,221, 0,248, 15,119, 59, 17, 49,129, 22,245,241, 4, 22, 4, 0,129, + 0,127, 76,147, 22,148, 71,180,139, 19, 52, 39,236,182,110, 48, 0, 6, 95,128, 22,156, 73,147, 55, 14, 26,103,119,182,238,178, + 0,114, 95,128, 14, 69,156, 96,228,113,103, 0, 0,236,212,213, 0, 29, 31,100, 22, 2, 2, 65, 22, 19, 47, 43, 0, 0, 58, 96, + 0, 65,177,147,210,225,144,180,234,183,178,212,119,218,208,207, 0,117,221,192, 22, 10,241, 5, 4, 4,217,190, 10,232, 4, 70, + 0,142, 23, 65, 63,168,227,218,236,243,210,191,247,201,129,254, 0,142,107, 65,107,121,200, 96,107, 95,131, 0,205,182,173,122, + 0, 49, 76,147, 22,200,181,180, 22,113, 75,194,194, 26,182,143, 0,117, 95,128,177, 92,164,238,171,163, 75,116,174,238,234,249, + 0, 85,211,147, 83,175,227,110,188,129, 37,252, 0,110,201,206, 0, 68, 76, 65, 22, 59, 34, 96, 22, 11,103, 7, 43, 40, 26, 96, + 0,102,177,219, 22,212,174,147,231,139,171, 28,119,191, 21,195, 0,179, 54,128, 57,252, 53,127, 4, 97,216, 49, 14, 19, 15, 41, + 0, 90, 15,164,122,150,222,212,119,177,129,178,225,183,201,218, 0,153,169, 65,107,158, 34,207,144,211,139, 0,201,182,201,207, + 0,253,154,207,247,214,253, 72,247,238,135,201, 94,196,237, 33, 0,253,223,215,246,146,119,163,174,129,245,253,220,101,245,221, + 0, 35,144,119,236,125,232,183,246,218,119, 0,231, 23,129,217, 0, 29,141, 26,132, 16, 65,178,112,171, 0,146,194,238,191,167, + 0, 26,248,241,234,245,253,241, 41,254,241, 62, 30, 33,108,177, 0,160, 15, 4, 0, 11, 90, 0, 17, 0, 55,105, 61, 0, 0, 0, + 0,240,192,254,233,241, 64,217,140,181,232,220, 15,241,184,248, 0, 29,165,218,165,247,246,216,199,246,246, 0, 0,119,241,221, + 0,223,199, 83, 86,234,232,129, 6,249,223,224,192,237,250,129, 0,208,126, 4,106,253,220,224,209,220,241,129,250,250,250, 44, + 0,173,247,207,231, 0,246,184,241,220,241,243,108,216,129,217, 0,100, 84,180,149,205, 0,221,199, 0,238,171, 0,218,212,184, + 0,145,135,192,252,168, 55, 4,250,241,202,110, 0, 63, 68, 15, 0,114, 60,239, 96, 0, 17, 0, 0, 96, 0, 0, 15, 0, 0, 0, + 0,201,241,224,106,243,217,221,241,124,231,209,248,241,248,217, 0,196, 42,184,240,245,241,129,149,217,216,108,218,250,108, 87, + 0, 78, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,171, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,133, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,176, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,198, 0,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 58, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 75, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 75, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 75, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130,212,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 26, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,121,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 52, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 75, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 58,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 75, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130,178,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,125,225,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,166, 1, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 86, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,119,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,251,246,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 59,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2,201,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,236,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,185, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 47,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,129,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,225,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125,227,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 21,110, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 80, 71, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 58, 73, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 58, 73, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0,182,139,110, 0, 0, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,252,119,249, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 75,225, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16,133, 71, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,133, 71, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50,133,148, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 40, 34, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52,178,110, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,139,228,182, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,173, 0, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 95,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,225,176, 0, 0, 0,205, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27,121,252, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,121, 37, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,227,234, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144,247,216, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,198,224, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,168,238, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,212,238, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130,131, 0, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 75,110, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217,227,183, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,129,184, 0, 0, 0,178, 0, 0, 0, 0, 0, 0, 0, 0, 0,201,218,129, 0, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 67,110, 0, 40, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 67, 71, 0,121, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 67, 73, 0, 7, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 67, 73, 0, 7, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72,214, 0,178, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,223, 51,212, 0,178, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0,187,237,195, 0, 31, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90,167, 71, 0, 47, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67,208, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 74, 72, 37, 0, 0, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 67, 34, 0, 7, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, + 0,156, 51,252, 0,191, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,222, 83,237, 0, 91, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0,198, 11,215, 0,212, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, + 0,156,113,213, 0,144, 0,191, 0, 0, 0, 0, 0, 0, 0, 0, 0,175,167,213, 0,201, 0,212, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,176,194, 0,132, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 19,110, 0, 9, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0,245, 91,217, 0,192, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,223,216, 0, 41, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,159,234, 0,138, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0,223,177,218, 0,201, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,229, 76,173, 0,223, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,191,212, 0,238, 0,169, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,211,243, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,168,134,214, 0,250, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227, 0,217, 0,241, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0,201,129,217, 0,254, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 73, 72, 90, 0, 58, 34, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 54, 35, 0, 75, 59,155, 0, 0, 0, 0, 0, 0, 0, 0, + 0,104, 51,106, 0, 40, 20, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 67, 60, 0, 75, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178, 33, 88, 0,168,246,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,112,183,199, 0,191,146,199, 0, 0, 0, 0, 0, 0, 0, 0, 0,198,139,174, 0,212,252,205, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 73, 5,233, 0, 26, 34,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,167,142, 0, 40, 20, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0,156, 72,120, 0,168, 27,233, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 72, 53, 0, 0, 27, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0,205,177,174, 0,158,144,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,146, 15,222, 0, 0,247,199, 0, 0, 0, 0, 0, 0, 0, 0, 0,146,129,164, 0, 0,146,110, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,177,247, 0,138,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,177,214, 0,251,154,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61,139, 88, 0, 77,165,235, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 11, 59, 0,205,104,164, 0, 0, 0, 0, 0, 0, 0, 0, + 0,183,254,217, 0, 55,198,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,138,218,253, 0, 14,246,174, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,246,246, 0,239, 8,218, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144,183,205, 0, 0,227,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,163,235, 0,140,201,207, 0, 0, 0, 0, 0, 0, 0, 0, + 0,164,177,144, 0, 0,235,228, 0, 0, 0, 0, 0, 0, 0, 0, 0,130, 64,164, 0,225,187, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0,145,224, 0, 0,245,248,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217,203,129, 0,167,250,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,227,247,241, 0,241, 49,154, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 90, 95,128, 19, 0, 34,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 21,128, 19,185,153,144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 58, 8, 19, 1, 27,164, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 58, 60, 19, 1, 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77,212,247,129,119,144,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,244, 95,144,218,247, 61, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 0,252,212, 47,204,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,102,122,233, 95,121, 34,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,131,219,158,185,246,214, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,131,120, 95,130, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 95,120, 95,130, 20,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144, 13,235,188,215,227,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144, 64,235,201,144, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,168,153, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,214,252, 0,214,119,227,238, 0, 0, 0, 0, 0, 0, 0, 0, 0,174,144, 26,218,125,140,220, 0, 0, 0, 0, 0, 0, 0, 0, + 0,161,112,144, 0,246,201, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0,106,185,155,168,185,155,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,118, 62,198,167, 84,227,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,244,149,181,247,245, 70, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,227,227,246,111,108,189, 0, 0, 0, 0, 0, 0, 0, 0, + 0,126,193,247,201,248, 53,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,227,246,247,227,119, 49,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0,251,204,201,246,119, 0,217, 0, 0, 0, 0, 0, 0, 0, 0, 0,157,198,173,236,162,222, 12, 0, 0, 0, 0, 0, 0, 0, 0, + 0,248,217,182,244,241,250,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,227,217,129, 49,192,217, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,140,234, 7,224,231,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69,171,147,171, 0, 71,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,158, 88, 95,215, 27,195, 0, 0, 0, 0, 0, 0, 0,223, + 0, 61, 95, 10,188, 47, 92,148, 0, 0, 0, 0, 0, 0, 0, 88, 0, 61, 95, 10, 95, 7, 20,101, 0, 0, 0, 0, 0, 0, 0,205, + 0,238, 11,144,118,188,121,195, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38,188, 65,218,218,238,216, 0, 0, 0, 0, 0, 0, 0,227, 0,153,188,246,205,144,148,238, 0, 0, 0, 0, 0, 0, 0,253, + 0, 34,171,233,150, 24,174,180, 0, 0, 0, 0, 0, 0, 0,238, 0, 84,139, 35,203,236, 20,155, 0, 0, 0, 0, 0, 0, 0,149, + 0, 74, 21, 88,188, 0,252,203, 0, 0, 0, 0, 0, 0, 0,247, 0, 61, 95,120, 95, 0, 69,173, 0, 0, 0, 0, 0, 0, 0,153, + 0, 0,129, 35, 22,231,182,223, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26,218,130,188,194,195,129, 0, 0, 0, 0, 0, 0, 0,201, 0, 0, 94,201,169,183,253,245, 0, 0, 0, 0, 0, 0, 0,178, + 0,214,253,213,227,212, 0,184, 0, 0, 0, 0, 0, 0, 0,201, 0,253,218,214,247,202,243,228, 0, 0, 0, 0, 0, 0, 0,118, + 0,199,138,247,212,124,121,217, 0, 0, 0, 0, 0, 0, 0,223, 0,109,185,148,168,153,222,243, 0, 0, 0, 0, 0, 0, 0,210, + 0,245,192,181, 93, 97,254, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,200,231,108,166, 83, 93,224, 0, 0, 0, 0, 0, 0, 0,232, 0,105, 97, 36,235,198,214, 57, 0, 0, 0, 0, 0, 0, 0, 73, + 0,202,236,241,220, 0,145,224, 0, 0, 0, 0, 0, 0, 0,197, 0,246,181,246,163,220,198,246, 0, 0, 0, 0, 0, 0, 0,119, + 0,174,174,228,201,223,223,245, 0, 0, 0, 0, 0, 0, 0,203, 0,120,198,182,246,227,119,180, 0, 0, 0, 0, 0, 0, 0,212, + 0,245,248,248, 4,144,147,223, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,181,254,241, 75, 61,221,217, 0, 0, 0, 0, 0, 0, 0,241, 0,200,247,217,224,219,234, 72, 0, 0, 0, 0, 0, 0, 0,114, + 0, 90, 51,147,203, 48, 1,178, 0, 0, 0,144, 0, 0, 0, 0, 0, 60, 11, 88, 11, 48,208,110, 0, 0, 0,103, 0, 0, 0,246, + 0, 8, 14, 88,139, 11, 34,148, 0, 0, 0, 0, 0, 0, 0,156, 0,106, 11, 10, 95, 12, 27, 52, 0, 0, 0, 38, 0, 0, 0,128, + 0,235,177,247,220, 54,201,250, 0, 0, 0,238, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,199,183,201,199, 14,246,207, 0, 0, 0,218, 0, 0, 0,232, 0,161,210,227,119, 80,218,124, 0, 0, 0,204, 0, 0, 0,234, + 0, 90,167,147,210, 79,126,207, 0, 0, 0,189, 0, 0, 0,119, 0,120, 11,253,218,178,246,181, 0, 0, 0, 38, 0, 0, 0,223, + 0,120, 72,128,188,203,204,206, 0, 0, 0,201, 0, 0, 0,233, 0, 60, 11,120,188,122, 27, 96, 0, 0, 0,130, 0, 0, 0, 0, + 0, 86,183, 49,220,188,231, 94, 0, 0, 0, 52, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144,183,208,183,163,227,217, 0, 0, 0,246, 0, 0, 0,232, 0,236, 13,212,234,129,201,197, 0, 0, 0,246, 0, 0, 0, 18, + 0,174,238, 51,241,136,185,254, 0, 0, 0,253, 0, 0, 0, 15, 0,174,253,243,218,220, 37,254, 0, 0, 0,234, 0, 0, 0,255, + 0,106,168,201,174,184,212,231, 0, 0, 0,201, 0, 0, 0,232, 0,106,168,110,185,182,144,123, 0, 0, 0,121, 0, 0, 0, 52, + 0,209,217, 89,129,250, 93, 55, 0, 0, 0,241, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,209,217,209, 0, 6,232, 0, 0, 0, 15, 0, 0, 0, 5, 0,233,232,224,226,224,229,224, 0, 0, 0,241, 0, 0, 0,234, + 0,164,234,129, 97,231,181,129, 0, 0, 0,223, 0, 0, 0,220, 0,242, 0,253,181,184, 0,220, 0, 0, 0,250, 0, 0, 0,254, + 0,235,201,207,246,183,227,207, 0, 0, 0,198, 0, 0, 0,220, 0,144,158,173,236,183,253,143, 0, 0, 0, 0, 0, 0, 0,139, + 0, 91,125,244, 0, 94, 15, 67, 0, 0, 0, 6, 0, 0, 0,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241,232, 54,248, 96, 90,217, 0, 0, 0,132, 0, 0, 0, 54, 0,248, 4,108, 22,202,232, 57, 0, 0, 0,195, 0, 0, 0, 51, + 0,170, 51,128,228, 66,101,178, 0, 0, 0, 86, 0,146, 0,214, 0, 42, 51, 85,171, 3,103,195, 0, 0, 0, 16, 0,247, 0,164, + 0,120, 14, 17, 22,122,173, 0, 0, 0, 0,130, 0,155, 0,174, 0, 60, 51, 6, 95, 12, 37,173, 0, 0, 0, 47, 0, 92, 0,205, + 0,236,217,174,234,184,218,217, 0, 0, 0,220, 0,246, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 14,246,231,129,224,217, 0, 0, 0,247, 0,158, 0,250, 0,227,107,235,119,217,201, 79, 0, 0, 0,146, 0,246, 0, 25, + 0, 34,177,128,218, 66,116,143, 0, 0, 0,189, 0,246, 0,231, 0,193, 72, 85,150,123,146,243, 0, 0, 0, 86, 0,209, 0,246, + 0, 88,177, 46,228, 66, 91,183, 0, 0, 0,162, 0,235, 0,247, 0,120, 51, 53, 19, 64, 16,213, 0, 0, 0,130, 0, 69, 0, 0, + 0,215, 33, 70,234, 64,248,207, 0, 0, 0,234, 0, 71, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,167,226,183,250,218,234, 0, 0, 0,218, 0,140, 0,246, 0,119, 15,153,223, 14,218,218, 0, 0, 0,212, 0, 69, 0,231, + 0,214,201,246,246,250,228, 14, 0, 0, 0,232, 0,245, 0,246, 0,214,183,218,223,217,234, 81, 0, 0, 0,234, 0,246, 0,241, + 0, 61,201,219,212,218,119, 66, 0, 0, 0,164, 0,246, 0,231, 0, 70,168,155,168,122,213, 57, 0, 0, 0, 7, 0,125, 0,212, + 0,241,198,232,230,217,241,192, 0, 0, 0, 81, 0,241, 0,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,246,192,234,218,192,222, 0, 0, 0, 4, 0, 55, 0, 3, 0,106,192, 59,234,209,232, 4, 0, 0, 0,245, 0, 6, 0, 0, + 0,208,241,209,122,202,192, 57, 0, 0, 0, 99, 0,192, 0, 4, 0,232,251, 55,200,115,248,217, 0, 0, 0,223, 0, 4, 0,241, + 0,246,168,254,225,129,231,129, 0, 0, 0, 0, 0, 78, 0,129, 0,144,168,247,127,218,247,250, 0, 0, 0,238, 0,227, 0,129, + 0,248, 59, 0, 85, 56, 4, 70, 0, 0, 0, 62, 0, 15, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,129,202,105,218,134, 57, 0, 0, 0,217, 0, 49, 0,248, 0,220, 29,245,227, 56,232,217, 0, 0, 0,188, 0,232, 0,192, + 0, 90,171, 88,221,122,148,237, 0,178, 0,144, 0,238, 0,124, 0,120,158,128,177,139,173,215, 0, 95, 0,205, 0,144, 0,208, + 0, 8, 58,120, 56,139,148,237, 0,188, 0,125, 0,144, 0, 0, 0,106, 95, 6, 57,122, 73, 24, 0, 95, 0, 38, 0, 32, 0,170, + 0,247, 63,244, 33,188,245,249, 0,237, 0,201, 0,207, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 36,210,227,218,250,201,147, 0,217, 0,201, 0, 0, 0,224, 0,199,227,127,183,218,197,184, 0,140, 0,253, 0,209, 0,238, + 0, 90,210,128, 83,150,146,213, 0,118, 0,205, 0,247, 0, 31, 0,106,158,219, 57, 12,146,241, 0,178, 0,189, 0,209, 0,231, + 0,120,171,222, 72, 12,212,178, 0,188, 0,154, 0,204, 0,235, 0, 53, 95,120, 57, 12,173,113, 0,158, 0, 37, 0, 0, 0, 0, + 0,227,171,193, 44,188,116,253, 0,234, 0,176, 0,223, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130,211,246,183,129,129,216, 0,217, 0,218, 0,223, 0,246, 0,144,212, 0,201,217,218,217, 0,231, 0, 0, 0, 43, 0,196, + 0,214,253,188,234,217,234,217, 0,253, 0,216, 0, 0, 0,220, 0,253,119,218, 91,217,241,254, 0,250, 0,248, 0,250, 0,178, + 0,114,226, 0,238,243,218,183, 0,212, 0,246, 0,209, 0,216, 0,106,157,124,150,110,176,243, 0,168, 0, 0, 0,204, 0,218, + 0, 9,192, 0, 72,213, 44, 4, 0, 0, 0, 0, 0,221, 0,142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,159, 29,224,217,248, 59, 56, 0,231, 0,145, 0, 6, 0,192, 0,246, 29,227,250,209,218, 95, 0,232, 0,249, 0, 4, 0, 22, + 0,246, 0,247,217,250,246, 4, 0,220, 0,224, 0,246, 0,217, 0,192,198,232, 51,220, 81,143, 0,192, 0, 61, 0, 4, 0, 44, + 0,244,223,246,108,234,167,129, 0,232, 0,120, 0,254, 0,129, 0,227,127,228,210, 4,218,184, 0, 0, 0,182, 0,218, 0,176, + 0,181,232, 53,154, 72, 4, 54, 0,169, 0, 29, 0, 41, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49,142,241,224, 33, 14,221, 0,177, 0,194, 0, 10, 0, 81, 0,227,253,250, 4,108,220,217, 0,129, 0,241, 0,254, 0,231, + 0,170,171,233, 56, 3,178,252, 0,210, 0, 0, 0,144,238,215, 0, 88,171, 85, 15,178,110,144, 0,139, 0, 0, 0, 34,130,119, + 0, 8, 95,120, 54, 11,208,170, 0,171, 0,103, 0,144,204,235, 0, 8, 95, 6, 54, 12,101, 88, 0, 95, 0,121, 0, 9,128,236, + 0, 0,210,246,254,218,241,147, 0,217, 0,118, 0,241, 27,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,217,126,136,203,207,220, 0,178, 0,223, 0,195, 85,241, 0,226,185,229,184,218,216,227, 0,218, 0,220, 0,218,129,209, + 0,222,218, 35, 83, 48,236,238, 0, 23, 0,194, 0,174,124,232, 0,165,203, 85,177,139, 37,233, 0,203, 0,125, 0,156,214, 77, + 0, 88, 11, 92,221, 13,139,235, 0,139, 0,252, 0,246,201,234, 0,120, 95,120, 57,122,173, 0, 0, 23, 0, 16, 0, 34, 16, 0, + 0,119, 14,235,250,245,216,247, 0,201, 0,254, 0,234,247, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,211,119,129,178,220,246, 0,177, 0,201, 0,198,223,216, 0,164,206,204,217,216,217, 0, 0,254, 0,119, 0, 31,227,202, + 0,214,251,180,183,231,201,218, 0,247, 0,210, 0,254,246, 51, 0,140,227,254, 0,196,217, 0, 0,250, 0,216, 0,129,241, 0, + 0,227,218,235,234,245, 44,234, 0,218, 0,246, 0,227,137,183, 0, 84,185,208,150,201,212,228, 0,225, 0,164, 0, 0,234,116, + 0,254,196, 46, 62,103,108, 55, 0,140, 0,169, 0,197, 45,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,209, 82, 81,248, 22, 4, 0, 0, 0, 0, 49, 0, 6,186, 4, 0, 29,239, 13,106,242, 22, 4, 0,118, 0,159, 0, 15, 4,124, + 0,232,145, 0,224,108,129,202, 0,178, 0,241, 0, 22,232, 4, 0,253,132, 0, 5, 5,250, 15, 0,224, 0,176, 0,198,186,248, + 0,244,198,250, 56,129,224, 0, 0,241, 0,254, 0, 0, 0,220, 0,100,174,245,211, 0,218,245, 0,198, 0, 0, 0, 20, 0,234, + 0,248,209,192,223, 97, 72, 99, 0, 0, 0, 55, 0,224, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 0,184, 83,223, 23,221, 0,144, 0, 62, 0,137,127,124, 0, 0, 99,216,221, 54,220,135, 0,217, 0,104, 0, 97,161,220, + 0, 90, 83,238, 56,236,191,146, 0,163, 58,194, 0,247,191,178, 0, 35,167,233, 83,144,182,238, 0,210,236, 7, 0,204,147, 28, + 0,106, 14,128, 33, 16,208,204, 0, 30, 0,124, 0,119,253,148, 0, 17, 22, 6, 5, 38,101, 32, 0, 95, 75,154, 0, 27,153,235, + 0, 0,217,147,129,201,129,246, 0,129,224,231, 0,241,241,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,218,247,129,195,227,223, 0,217,231,251, 0,241,108,181, 0, 61,171,134,218,204,129,247, 0,189,247,214, 0,253,227,216, + 0, 46, 51,147,255,205,182,147, 0,220,133, 0, 0,230,223,198, 0, 35, 11,219, 15,205,252,242, 0,210,133,146, 0,246,146,227, + 0,120,167,252, 72, 0,218,235, 0,228,236,119, 0,214,227,119, 0, 53, 51,120, 15, 38,182,185, 0,158, 58, 69, 0, 0, 0, 0, + 0,174,129,233, 15,220,231,209, 0, 0,218, 32, 0,241,209,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,218,235,129,199,129,253, 0,247,201, 0, 0,235,198,248, 0,153,177,201,217,249,201,173, 0,232,218,201, 0,246,220,231, + 0,140,210,220,183,234,232,220, 0, 27,241,227, 0,129,207,224, 0,253,220,217,248,145,254,129, 0, 62,232,245, 0, 0,240,145, + 0, 70,238,181,254,246,234,217, 0,201,234,216, 0,241,145,254, 0,106,168,238,150, 34,213,238, 0,225,174,119, 0,246,201,218, + 0,145,163, 24, 45,240, 0, 89, 0,101,117, 51, 0, 6, 15, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,106,217,242, 15,241,254,241, 0, 53, 57,231, 0,242, 5,241, 0,246,253,247,202,232,247,217, 0,192,254, 22, 0,204,107,192, + 0,209,188,241,202,151,143, 54, 0,231,241,170, 0,254, 57,220, 0, 70, 36,202,220, 76,198,131, 0,209,177, 97, 0, 10, 97, 87, + 0,235,246,221,224,253,134,220, 0,212,243,129, 0,241,231,232, 0,233,246,178, 0, 0,231,180, 0, 0,246,231, 0, 0,218,183, + 0,232, 33, 4, 54, 99, 0,186, 0, 22, 10, 10, 0,241,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,129,119, 56,246, 56,129, 0,159, 45,160, 0,200, 66,216, 0,209,209, 15,142,237, 22,110, 0, 29, 30,124, 0, 65, 15, 56, + 0,170, 51,128, 72,225, 34,173, 0,203, 26, 0,222,247,247,128, 0, 10, 51,219,255, 0,153, 0, 0,228,225, 0,238,140,253,238, + 0, 8, 51,114,143, 75,204,198, 0,171,131,156,227,144,218,199, 0, 8, 14, 6, 56,121,102,130, 0, 58, 95, 0,154,128, 38,153, + 0,223, 72,219,250,237,140,234, 0,248,254,242,181,175,245,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235,250,246,218, 9,232,165, 0,248,231, 35,208,100,246,223, 0,199, 95,253,129,195,253,245, 0,218,238,235,247,234,231,250, + 0, 61,129,219,183,194,193,124, 0,241,201,144,226,232,223,235, 0,120,167,145, 56,215,233,155, 0,228,213, 1,247,238, 68,192, + 0,235,167, 49,183,252,102, 46, 0,225,238,201,232,119,246,242, 0,120, 51,120, 72, 7, 88, 0, 0,188,131, 69,156,246, 0, 0, + 0,227,129, 85, 4,234,223,117, 0, 4,231,218,247, 90,246, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,116,217,246,234,212,246,244, 0,234,220,248,227,243,253,247, 0, 0,218,201,216,169,235,206, 0,218,212,183,144,119,101,108, + 0,214,181, 0,135,220,145,129, 0,234,234, 49,234,223,209,220, 0,119,241,242,221,224,246,234, 0, 47,241,209,228,246,128,227, + 0, 82,227,248, 13,234, 86,209, 0,129,231,181,200,199, 0,241, 0,149,225,156,150, 0, 35,119, 0, 1,210,119,227,102, 4,129, + 0,241,161, 65, 33, 79, 20,241, 0, 41,165, 6,132,160, 44,141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,216,224, 0, 89, 55, 45, 0,100,227,162, 94, 6,241,116, 0,151,241,101, 1,189, 6, 0, 0,106,232,192, 94,185, 22,211, + 0,253,248, 91, 35, 28,192,241, 0,198, 5, 49, 16, 0,159,217, 0,232,248,107,232,142, 55, 64, 0, 10,248, 21,222,209,138, 72, + 0,183,183,217,212,231,216,230, 0,239,248, 0,192, 89,241, 56, 0,144,246,218, 0, 0,253, 0, 0,181, 0, 6,183,231,107,243, + 0,192,184, 29, 4, 56,135, 20, 0,123, 40, 4, 81, 6, 34, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,169,117,241,241, 89,111,241, 0, 85, 56, 47,235,132, 49,105, 0,247,117,217,227, 5, 10, 4, 0,239,152, 55, 55, 92,160,145, + 0, 88,171,128,203,236, 20,175,210,203, 0,146,146,247, 0, 0, 0,120,150,219,211, 47, 74,173,218,201, 0,252,130,227,223, 21, + 0,114, 11, 82,113,252,104,204,119,139, 0, 43,227,253,214,247, 0, 17, 95, 6, 22, 86, 74,120, 91, 95, 40,121,154,144, 0,204, + 0,227,250,246, 22,213,246,242,122,220,231,205, 0,220,192, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,188,128, 94, 48,199,241,227, 4,217,178,189,233,192,193, 0,149, 0,201,225,205,253,231,218,227,216,212,247,212,198,188, + 0,233,113,233,107,215, 8,253,211,154,138,130,246,185,181,247, 0, 35,150,142,184, 43, 35,242,171,210,236,227,208,252,246,207, + 0,161,150,251,211,246,144,201,246,238,213,144,201,201,201,129, 0, 53, 23,120, 22,130, 88, 47,158,191, 26, 0, 34,144,201, 0, + 0,227,129,219, 22,213,232,209, 31, 0,220,218,241,243,246,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,211,246,234, 91,198,227,155,248,131,192,198,202,218,224, 0,247,150,170,129,129,253,206,248,218,146,234,234,244,161,232, + 0,144,235,217,201,192,246,247,253, 6,209,202,140,216,145,181, 0,214,142,195, 0,250,214,224,234,216,118, 71, 0, 30,217,234, + 0,199,199, 49,246,225,118,220,189,212, 35,196,224,245, 56,111, 0,111,132,238,132,100, 6,237,246,225,205, 0,223,246,214,218, + 0, 84,142, 9, 85,159,159, 49, 49, 14, 49, 74, 59, 8, 72, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 41,232, 6, 29,241, 29,221,186, 59, 82,241,229, 55, 22, 31, 0, 93,246,126,145,227,192,210,248, 4,247, 4,224,120,118,192, + 0,106,223,183,223, 93, 85, 78,241, 32,216,228, 15, 68, 4, 12, 0,202,209, 5,198,118,114, 83,129,209, 85, 10, 12, 55,248, 56, + 0,244,162,123,234,209,232, 5,217,135,232,209, 0,109,243, 0, 0,246,166,178,223, 0, 6,183,172, 0, 62,198,246, 55,197,246, + 0,183, 55,133, 6, 72,129,108, 45, 0, 0, 5, 0, 73, 0,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,243, 65,143,219,141, 65,254, 11, 30, 49,135, 65, 15, 42, 87, 0,249,199, 6,201, 62, 4,250,253, 15, 34, 94,182,166, 67,241, + 0, 90, 14,235,177, 0,153,213,218,236, 30,201,194, 0, 91, 78, 0, 88, 11,128,171,119,153,238, 22,191,191,144,227,208,245,129, + 0,161, 51, 49,150,185, 42, 0,218,212,158,236,144,205,253,129, 0, 8, 22, 6, 22, 0, 74, 73, 91, 21, 58,121,153,153,201,178, + 0,119,169,246,223, 62,202,246,231, 55,247,245,234,165,248,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,229,218,124,234,198,227,218, 15,198,220,254, 0,232,147, 5, 0,174,107, 36,201,235,231,241,212,254,218,246,241,227,192,241, + 0,102,177,128,217,194,199,207,163,245,249, 0,205,232,246,207, 0,137,218,240,188,144,164,243,216,220,133,103,247,232,128,224, + 0, 46, 22,170,163,227,247,238,183,218,182,144,246,201,245,216, 0,120, 19,120,211, 16,161, 0,211, 95,131, 0, 0,204,144,237, + 0, 9, 56,242,234,122, 98,132,169,200,237,231,241,175,254,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,254,214,217,206,227,227,232,241,108,243, 0,124,247,217, 0,144,218,227,220,218,119,217,246,224,108, 0,126,254, 62,217, + 0,116,156, 15,234,223,232,129, 22, 49,108,113,241,250, 1, 87, 0,145,250,214,164,245,250, 67,193,209,224,192, 35,250,248,211, + 0, 82, 0,193,119,227,181,183,181,220,129,202,224, 0,136,184, 0,111,132,124,227, 0,119,217, 0,225,210,227,145,218,218, 57, + 0, 17, 93,180, 44,120,170,197,216, 65, 81,116, 0, 8, 0,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 82,105, 94,159,106,213,127, 29, 49,173,253,120, 10, 90, 2, 0,220,209,232,117, 4,224, 62,234,243, 53,107, 83,254, 67,183, + 0,198,239, 56,192,248, 25, 57, 52, 4, 4,244,183,161, 4,243, 0,164,219,254,198, 29, 56,224,248,202, 5, 22, 22,123, 6, 44, + 0,231, 0,195, 1,239,253,129,239, 39, 82, 94,246,198, 25,129, 0,227,246,180,162, 0,227,184,214, 0,227,231,209,247,254,183, + 0,160, 93, 0, 22, 87, 0, 0, 79, 6, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 82,159, 89, 99,241, 81,196, 31, 22, 55,117, 0, 34, 5, 0,232,190, 4,232, 4,152,177,224, 22,107,242, 6, 53, 63, 4, + 0, 90, 22,128, 55, 52, 34,195,210, 51, 19, 26, 0, 39,201,167, 0,114, 22,128, 22, 47,155, 71,171, 51, 79,116, 16,116,212,195, + 0,114, 22, 49, 15,103, 92, 0,171, 14, 13,103, 0, 0,238,203, 0, 17, 22, 6, 22, 38, 10, 65, 55, 14, 23, 16, 43, 0, 26, 96, + 0, 69,177,128,218,212,227,195,249,163,143,212,249,173, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,235, 22, 85,171,171, 36, 0, 94,211,183,191,148,201,218,183, 0,149,107, 65,107,171, 59,177,107,182,188, 28,146,236,182,177, + 0, 46, 63,128, 22,154, 69,207,139,163,203, 26,144,215, 0,180, 0,111,184, 85,196,119,175,195,135,113,139,125,146,116,195,217, + 0, 10, 15,128, 22, 16, 59,147, 14, 51, 64,103,194,205,146,178, 0, 53, 22, 49, 22, 38, 34, 96, 91, 14, 19,103, 43, 40, 40, 96, + 0,229,255,219,218,197,208,205,129,217,143, 80, 0,227, 13,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153, 15,127,212,210,227,119,253,220,249,243, 71,206,195,243, 0,164,169,170,107,171, 0,129,205,249,196,178,144,201,148, 66, + 0,253,119,163,187,213,214,143, 0,202, 96, 52,201,201,169,217, 0,253,118,211, 97,218,253,163,119,196,216,234,250,183,234,136, + 0,222,168,119,175,148,238,178,200,108,129,178,234,183,253,183, 0,114,132,124,132,116, 0,122,112,171, 58, 39, 0,194, 52, 72, + 0, 98,145,227,106, 89,239, 44, 49,232,250,181,235, 55,138, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,190,105,232,209,159,217,232,140,250,253, 5, 4,192,220, 44, 0,106, 45,238, 82,209,201,217,172, 0,164,245,232,232,234, 81, + 0,124, 38, 63,140,247,196, 44,145,217,122,220,140,220,217,207, 0,230,198,254,198,119,242,217,206,220,129,221,183,241,250,115, + 0,202,144,207,174, 0,247,184, 0,232,234,246,227,129,250, 57, 0, 46,149,180,187,116,146,184,107,171,139,178,146,194,177,184, + 0,192,223,231, 29,192, 70,248,217, 83,184, 15,186, 8,231,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,248,217,242,224,241,241,254,250,248,250, 41,208, 79,241, 0,247,172,143,160, 4,248,221,246, 51,173,217,232, 91, 3,136, + 0, 12, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,122, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,158, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,139, 0,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119, 0,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 21, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 36, 21, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 58, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,103, 26,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,185,201,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,210,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20,131, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,131, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27,131, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 95,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,194,249, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,218,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130,168, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,121,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 58,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 75, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,227, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,104,245, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,156, 95,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156,150,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 75, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 75,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234,224,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216,231,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,198, 0,239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 19,101, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 23,101, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 21, 73, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 21, 37, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25,210,178, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 95, 0, 80, 0, 0, 0,175, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,194,178, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 19,146, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,124, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47, 21, 16, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 19, 37, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80,139,213, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,243,210,110, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0,139,178,218, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78,178,178, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,225,178, 0, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,121,133,194, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 75, 24, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, + 0,254,234,250, 0, 0, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,226,250, 0, 0, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0,246, 70,183, 0, 0, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 58,188,182, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,110, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,173,188,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 58, 78, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, + 0,183,108, 4, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,183,234,216, 0, 0, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,112,217, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 72, 71, 0, 58, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 72, 71, 0, 28, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 72, 73, 0, 40, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 72, 73, 0, 40, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 83,238, 0, 25, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59,167,158, 0,144, 0,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,163,110, 0,119, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 72,173, 0, 28, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 71, 0, 28, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 57,147, 0, 58, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 57, 37, 0, 40, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0,205, 5, 43, 0,212, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,156, 15,238, 0,212, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0,198, 15,212, 0,212, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,214,183,213, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,203,178, 0,215, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, + 0,120,136,148, 0,103, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 64, 24, 0, 7, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, + 0,145,220,135, 0,228, 0,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227, 0,231, 0,224, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 15,217, 0,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,156,177,213, 0,178, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,222,196,191, 0,126, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,164, 63,110, 0,144, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 11,110, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232,108,192, 0,209, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,192, 96, 0,254, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 72, 87, 0,132, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 57, 35, 0, 58, 20,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 57, 35, 0, 58, 27, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 57, 60, 0, 58, 27,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 57, 60, 0, 58, 20, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 91,255,149, 0, 76,204,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,194,255,222, 0, 94, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,216,104, 0,222,235,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 57, 35, 0, 58, 77, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 72, 35, 0,131, 77,235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 56,120, 0,131, 32, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 57, 70, 0, 28, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 33, 90, 0,139,227,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,129,227, 0,238, 0,121, 0, 0, 0, 0, 0, 0, 0, 0, 0,212,183,170, 0,158, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,177,242, 0,205,252,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,177, 0, 0, 0,144,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,164,139,102, 0, 1,205,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,113, 90, 0, 7, 36,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,231,119, 0,241,232,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,228,254,241, 0, 95,138,254, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,192, 60, 0,240,245,220, 0, 0, 0, 0, 0, 0, 0, 0, + 0,238,122,246, 0,223,162,253, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,218,253, 0, 0,209,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,208,212, 0, 0, 0,246,212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139,194, 0, 0,252,194, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231,254,209, 0,248,160,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,241, 53, 0,220,199, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,242,250, 0, 17,121,224, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 11, 35, 64, 40, 69, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,109, 95, 35, 11, 0,126, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61, 19, 70, 14, 0, 20,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 19, 60, 19, 75, 92, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0,223,139,247,196,216,227,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,132,212,235,129, 0,235,119, 0, 0, 0, 0, 0, 0, 0, 0, 0,132,188,100,198,238,119,251, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 11, 35,210,168, 20,235, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 19, 35,228, 39,222,238, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 11,161, 11, 16, 90, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 19, 53, 11, 75, 69,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144, 5,235,250,178,173,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,238,250,174,234,218,199,223, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,218,238,216, 80,252,234, 0, 0, 0, 0, 0, 0, 0, 0, + 0,205,201,252,119,138, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,212,214,144,223,227,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,104,168,140,125,238, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,168,155,168, 0,204,164, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 98,214,245,151, 0,174,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 98,227,192,108, 41, 15,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,246,184,159,247, 4, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,198,195,135,247,238,144, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,220,212,202,254,223,220, 0, 0, 0, 0, 0, 0, 0, 0, + 0,153,171,212,212,176,125,213, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 86,173,138, 0,247,249, 0, 0, 0, 0, 0, 0, 0, 0, + 0,219,245,224, 15, 15, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,248, 55,151, 35,218,216, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 82, 0,239,127,217,224, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 14, 88, 11,133,130,110, 0, 0, 0, 0, 0, 0, 0,147, 0, 50, 64, 88,188,133, 9,173, 0, 0, 0, 0, 0, 0, 0,185, + 0, 32, 11,120, 64, 58, 18,194, 0, 0, 0, 0, 0, 0, 0, 34, 0, 32, 11, 74, 19, 40, 9, 37, 0, 0, 0, 0, 0, 0, 0, 36, + 0,139, 22,156,217,218,247, 48, 0, 0, 0, 0, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,182,238,215,183,247, 0, 0, 0, 0, 0, 0, 0, 0,144, 0,154,212,124,238,225,212,243, 0, 0, 0, 0, 0, 0, 0,253, + 0,130, 64, 88,113,133,112,238, 0, 0, 0, 0, 0, 0, 0,247, 0,112, 64,164,210, 28, 32,155, 0, 0, 0, 0, 0, 0, 0,164, + 0, 18, 11,155,203,133,227, 0, 0, 0, 0, 0, 0, 0, 0,144, 0, 69, 14,120, 19, 75, 69, 37, 0, 0, 0, 0, 0, 0, 0,170, + 0,236,218,246,248,197, 0,164, 0, 0, 0, 0, 0, 0, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,176,238,119,220,209,136, 0, 0, 0, 0, 0, 0, 0,183, 0,238,213,173,234,119,119,206, 0, 0, 0, 0, 0, 0, 0,220, + 0,214, 26,163,234,134,218,216, 0, 0, 0, 0, 0, 0, 0,171, 0,201,174,254,238, 28,232,167, 0, 0, 0, 0, 0, 0, 0,144, + 0,104, 52,252,252, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0,204, 0, 32,168,148,168, 0,146,243, 0, 0, 0, 0, 0, 0, 0,208, + 0,224, 8,160,160,133,241,197, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,201, 64,234,232,198,248, 0, 0, 0, 0, 0, 0, 0,126, 0,246,160,129,112, 62,248,129, 0, 0, 0, 0, 0, 0, 0,179, + 0,247,246,243,231,201,201,163, 0, 0, 0, 0, 0, 0, 0,241, 0,126,126,147,246,254, 29,143, 0, 0, 0, 0, 0, 0, 0,241, + 0,147,234,183,159,196,242,129, 0, 0, 0, 0, 0, 0, 0,183, 0, 71,201,194,246, 52,235, 57, 0, 0, 0, 0, 0, 0, 0,228, + 0, 4, 93,241,241, 49, 29, 22, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,108,254,241, 31,174,125,217, 0, 0, 0, 0, 0, 0, 0,241, 0,224,196,220,187,220,248,177, 0, 0, 0, 0, 0, 0, 0, 70, + 0, 59, 83, 88,171, 66,130,110, 0, 0, 0, 0, 0, 0, 0,233, 0, 59, 83, 88,171, 64,130,110, 0, 0, 0, 75, 0, 0, 0,253, + 0, 61, 5, 74, 25, 3, 34,148, 0, 0, 0,121, 0, 0, 0, 86, 0, 61, 5, 74, 14, 3, 20, 73, 0, 0, 0, 7, 0, 0, 0, 69, + 0,225, 22,247,183, 66,223,216, 0, 0, 0,234, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,174,228,252,218, 57,231,220, 0, 0, 0,247, 0, 0, 0,242, 0,126,211,247,178,129, 0,207, 0, 0, 0,235, 0, 0, 0,223, + 0,153, 83,233,210, 64, 20,238, 0, 0, 0, 0, 0, 0, 0,238, 0,166, 72, 35,188, 3, 27,153, 0, 0, 0,215, 0, 0, 0,147, + 0, 42, 5, 90,177, 66,235,101, 0, 0, 0,146, 0, 0, 0,144, 0, 61, 72,120, 11, 3, 69,173, 0, 0, 0, 47, 0, 0, 0,204, + 0,227,129,246,234, 14,195,234, 0, 0, 0,148, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246, 57,246,139, 83,231,129, 0, 0, 0,207, 0, 0, 0,217, 0,144,163,253,129,129,246, 87, 0, 0, 0, 96, 0, 0, 0,232, + 0,214,150,197,119, 56,200,216, 0, 0, 0,227, 0, 0, 0,246, 0,175,218,217,234,217,227,197, 0, 0, 0,234, 0, 0, 0,231, + 0,102,163,144,119,115,235,203, 0, 0, 0,119, 0, 0, 0,250, 0,109,150,124,118,139,235,122, 0, 0, 0,236, 0, 0, 0,124, + 0, 43,118,241,241, 64,192,241, 0, 0, 0,192, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,145,231, 62,245, 4, 4, 4, 0, 0, 0,217, 0, 0, 0,190, 0,159,241,167, 0,232, 43,184, 0, 0, 0, 29, 0, 0, 0,209, + 0, 32,150,247,223,228,227, 57, 0, 0, 0,176, 0, 0, 0,133, 0,102,220,108, 53,108, 50,241, 0, 0, 0, 62, 0, 0, 0,241, + 0,233,212,218,199,217,227,221, 0, 0, 0,231, 0, 0, 0,218, 0, 0,236,249,119,177,128,183, 0, 0, 0, 0, 0, 0, 0,195, + 0, 0, 84, 56, 74, 15, 85, 56, 0, 0, 0,120, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,244,250,217,254,245,147,216, 0, 0, 0,192, 0, 0, 0, 31, 0,232, 87,234, 55, 44,241,196, 0, 0, 0, 67, 0, 0, 0, 59, + 0, 37, 83, 85,211, 66,116,110, 0, 0, 0, 52, 0, 27, 0,146, 0, 34, 83, 85,188, 67,116,173, 0, 0, 0, 28, 0,126, 0,252, + 0, 27, 83, 70, 95, 72, 71,252, 0, 0, 0, 58, 0,153, 0, 1, 0, 36, 5, 6, 14, 66, 24, 37, 0, 0, 0, 75, 0, 20, 0, 18, + 0,212,183,244,227,129,197, 0, 0, 0, 0, 0, 0,246, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,162,129,174, 0,217, 55,231, 0, 0, 0,241, 0,247, 0,231, 0,236,245,144,246, 12,183,218, 0, 0, 0, 94, 0,248, 0,251, + 0,144, 83,219,218,167,194,195, 0, 0, 0, 52, 0, 34, 0,147, 0,112,183,142,218,203,194,180, 0, 0, 0, 40, 0,247, 0,242, + 0,153, 83, 49,196, 54,110,110, 0, 0, 0, 0, 0,238, 0,204, 0, 69, 57, 53,211, 67, 24,182, 0, 0, 0, 0, 0,170, 0,194, + 0, 94, 4,128,118,177, 30,246, 0, 0, 0, 21, 0,246, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,188, 15,204,163,167,207,231, 0, 0, 0,241, 0,223, 0,227, 0,178,129,235,234,250,183,129, 0, 0, 0,119, 0,246, 0,246, + 0,214,176,144,194,129,238, 57, 0, 0, 0,246, 0,119, 0,183, 0,201,212,253,218,218,231,129, 0, 0, 0,241, 0,218, 0,108, + 0,204, 91,246,128,218,197,129, 0, 0, 0,144, 0,134, 0,208, 0, 20,171,155,185, 48,210,243, 0, 0, 0, 0, 0, 0, 0,212, + 0,128,173, 97, 4, 48, 45, 5, 0, 0, 0,141, 0, 76, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,137, 10,192,184,108, 99, 5, 0, 0, 0, 74, 0,186, 0,245, 0,106,234,192, 0, 33, 56,217, 0, 0, 0,245, 0,241, 0,244, + 0,119,223,234,227,221,243,213, 0, 0, 0,238, 0,232, 0,129, 0,207,223,253,246,255,254,217, 0, 0, 0, 0, 0,234, 0,129, + 0,198,224,245,220,217,250,217, 0, 0, 0,164, 0,231, 0,207, 0, 0,188, 39,246,218,195,184, 0, 0, 0,212, 0,238, 0,201, + 0,145,241, 15, 47,224, 10,250, 0, 0, 0,192, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129, 4, 0, 49, 10,241,172, 0, 0, 0, 46, 0,241, 0, 45, 0,231,245,129, 6,241,232,231, 0, 0, 0, 97, 0, 55, 0, 81, + 0, 59, 51,128, 56,167,101,213, 0,150, 0,194, 0, 34, 0,146, 0, 59, 14, 85,177,136,182,243, 0,150, 0,103, 0,208, 0, 69, + 0, 61, 51, 70, 4, 11,252,176, 0, 19, 0,130, 0, 42, 0,174, 0, 61, 14, 6, 56, 3, 37, 24, 0, 95, 0, 7, 0, 32, 0, 0, + 0,144,183,156,169,183,217,129, 0,218, 0,234, 0, 24, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,218,199,108,241,201, 44, 0,198, 0,198, 0,232, 0,224, 0,251,210,235, 15,188,178,228, 0,218, 0,218, 0,201, 0,233, + 0,109, 64,219,255, 48,146,195, 0,245, 0,121, 0,246, 0,147, 0,155,171,128,255, 3,182,214, 0,203, 0,205, 0,174, 0,195, + 0, 10, 51,161, 15,177,208,211, 0,210, 0,146, 0,212, 0,205, 0, 46, 64,120, 56, 3,110, 96, 0,211, 0, 0, 0, 32, 0, 0, + 0, 9,217,179,129,231,216,192, 0,234, 0,231, 0,227, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,146,129,247,255,255,234,183, 0, 0, 0,227, 0,129, 0,232, 0,164,218,212,250,129,136,136, 0,246, 0,225, 0,227, 0,181, + 0, 34, 0, 0,181,129, 55,217, 0,247, 0, 0, 0,245, 0, 0, 0,140,242,243,217, 21,254,250, 0,223, 0,223, 0, 66, 0,207, + 0,100,175,227,122,218,129,207, 0,247, 0,212, 0,246, 0,246, 0,161,198,124,150,122, 25,177, 0,251, 0,164, 0,204, 0,212, + 0,240, 70,197, 4,225, 29, 48, 0, 0, 0, 94, 0,102, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 0,202,245, 0,135,184, 0, 83, 0,216, 0,118, 0, 45, 0,253,248,234,217,169,223, 33, 0,192, 0, 68, 0,149, 0,241, + 0,232,223,246,215,241,248,218, 0, 22, 0,242, 0,241, 0,220, 0,223,159,192,133,248,245, 22, 0,108, 0,250, 0,248, 0, 6, + 0,235,168,237,201,129,108,221, 0,198, 0,183, 0,241, 0,196, 0,200,236,210,225, 57,217,143, 0, 0, 0,218, 0,204, 0, 0, + 0,116, 48, 39, 2,148, 54, 15, 0, 0, 0, 4, 0, 46, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129,192,254, 82, 4, 10, 57, 0,113, 0, 4, 0, 45, 0,241, 0,245,241,220,221,169,231,206, 0,248, 0, 49, 0,241, 0, 48, + 0, 73, 51,128, 57,113,182,155, 0,171, 0, 52, 0,155,112,144, 0, 27, 14,128, 33, 67,194,235, 0,150, 0, 40, 0,229,175,119, + 0, 27, 14, 70, 57, 72,110,102, 0,150, 0, 26, 0,156,235,253, 0, 36, 14, 60, 56, 67, 24,102, 0, 23, 0, 0, 0, 20,128, 95, + 0,173, 14,128,217,169,220, 49, 0,231, 0,223, 0,198,175,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,183,161, 81,129,178,149, 0, 0, 0,217, 0,247, 0,192, 0, 0,218,242,218, 79, 22,201, 0, 95, 0,201, 0,223,235,118, + 0,112,183,219,255,163, 0,235, 0,163, 0,236, 0,156,233,119, 0, 92, 51,142, 83, 3,101,235, 0, 95, 0,119, 0,208,175,241, + 0,156, 51,128, 57, 48,139,236, 0,191, 0, 0, 0,144,214,119, 0, 69, 51,120, 57, 67,101,120, 0,150, 0, 0, 0, 77, 34, 0, + 0, 0,135,164, 44, 14, 97,207, 0,217, 0,231, 0,126,214,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,248,250,227,241,224,234,189, 0, 70, 0,198, 0,218,209,232, 0,119,196, 37,224, 44,129,234, 0, 25, 0, 64, 0,220,201,247, + 0, 47,201,110,220,108,232,245, 0,164, 0,178, 0,217,227,245, 0,253,192,211, 64,231,254,253, 0,232, 0,231, 0, 0,232,132, + 0,235,247,212,228,250, 91,218, 0,246, 0,231, 0,234,227, 53, 0, 36,168,124,171,177,178,124, 0, 47, 0, 0, 0,119, 92,212, + 0, 85, 15,250, 56, 70,213,216, 0, 50, 0, 72, 0, 31, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192,241, 17,153, 72, 15,103, 0, 0, 0,231, 0,217,107,128, 0,234,223,184,254, 82,120,214, 0,232, 0, 53, 0, 4,241, 43, + 0,247,246, 55,108,247,129, 5, 0,241, 0,234, 0,202,220,136, 0,179,198,192,245,250,102,192, 0,202, 0,245, 0,244,105,248, + 0,247,254,201,254,241,218,233, 0, 31, 0,217, 0,235,250, 0, 0, 0,154,183,238, 0,218,115, 0,238, 0,218, 0,247,158, 0, + 0,232,115, 6, 81, 4, 56, 15, 0, 41, 0, 3, 0,127, 82, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217,248,217, 0, 97, 62,220, 0, 0, 0, 97, 0, 4,217, 4, 0,129,165,129,111, 6, 4,129, 0, 68, 0, 51, 0, 56, 5,218, + 0, 59, 83,233, 81, 58,182,233, 0, 95,158, 39, 0,205,201,144, 0,149, 83,128,255, 52, 37,175, 0,210,168,205, 0,246,204,253, + 0,120, 83, 49, 54, 58, 24,144, 0,177, 28,125, 0,144,144,144, 0, 61, 5, 70, 5, 75, 24, 74, 0, 95, 95, 7, 0, 32, 86,227, + 0,154,183,246,198,231, 0,129, 0,248,241,129, 0,222,192,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,238, 51,201,250,250,183,246, 0,232,254,168, 0,192,242,216, 0,246,139, 47,218,238,129,246, 0,119,220, 0, 0,246,223,247, + 0, 84, 83,233, 15,225, 7,235, 0,139,191, 0, 0,153,235,238, 0,193, 57,219,255, 28,144,195, 0,254,212,121, 0,208,140,220, + 0, 59, 54,229,217, 52,178,226, 0,217,188,119, 0,247,201,243, 0, 46, 15,120, 4, 24,173, 0, 0, 95, 23, 7, 0,153,119,100, + 0,247, 44,128, 63,218,231,192, 0, 55,224, 0, 0,181,183,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,129,147, 57,216,178,209, 0, 84,134,129, 0,202,241,232, 0,124,250,234,217,129,249,227, 0, 40, 74,189, 0,195,159,216, + 0,253,188,218, 0,201,250,201, 0,209,246,250, 0, 29,201,231, 0,119,146,228,246,241,216,224, 0,250, 22,241, 0,198,254,209, + 0,144, 14,156, 55,218,250,246, 0,213,241,201, 0,232,192,246, 0, 6,168,124,171, 0,203,153, 0,236, 0,247, 0,222, 0,218, + 0,245,241, 15, 83,117,221, 6, 0,192,241,216, 0, 87,240,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246, 45,129,250,218, 90, 15, 0,248,137,177, 0, 7,129,248, 0,241, 16,217,216,209,241, 46, 0,130, 49,233, 0, 82, 41, 11, + 0,235, 0,213, 63,248,169,122, 0,213,207, 18, 0, 76,134,241, 0,202,108,255, 0,209,202, 33, 0, 0,209,248, 0, 17, 0,221, + 0,231, 0,241, 55, 0,218,246, 0,245,202,185, 0,159,231,129, 0,158, 94,177,247,247,217,218, 0,204,227,247, 0, 74,217,177, + 0,181,175,216, 0, 56, 8, 6, 0, 15, 0, 93, 0, 0,102, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 61,248, 5,197,250,224, 56, 0, 4,100, 44, 0,107, 10, 52, 0,218,216, 55,232,246,151,248, 0, 55,224,129, 0, 62, 33,192, + 0, 73, 83,128, 83, 80, 59,214, 0,171, 96,194,156,174, 0,252, 0, 20, 83, 85, 15,249,155,214, 0,139,131, 0,189,199,246,218, + 0, 2, 54, 85,221, 95,161,144, 0,171,171, 1,227,153,119,227, 0, 2, 15, 6, 4, 58, 10, 92, 0, 19, 23, 0, 18, 32, 0,130, + 0,223,129,153, 79,217,226,147, 0,165,246,181, 9,241,209,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,129,227,254,217,246,253, 0,232, 0,138,232,247, 49,234, 0,246, 94,235,217,250,201,227, 0,234,209,249,246,195,246,220, + 0,229, 83, 85,255,158, 10,253, 0,228,191, 39,130,204,246,218, 0,174,177, 85, 15,191,155,192, 0,198,234,205, 98, 69,114,232, + 0,130, 56,199,177,203,189,155, 0,211,139,236,252,132,247,227, 0, 27, 15, 53, 57, 25, 35, 0, 0, 28,131, 16, 1,189,198,202, + 0,231, 57,128,224,169,232,231, 0,224,115, 97,170, 0,127,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,238, 4,201, 22, 94, 62,232, 0,250,224,119,212,218,220,145, 0,206,129,229,108,254,246,227, 0, 65,129, 86,231,247, 0,241, + 0,214,218,218,234,227,223, 0, 0, 63,162, 0,198,248,218,253, 0, 0,234, 35, 81,252,234,214, 0,234,135,250, 6,250,209,209, + 0,174,238,252,108,199,223, 0, 0,202,183,193,246,192,196,247, 0,187,168,155,182,215,235,249, 0,144,130, 43,144,246,116,238, + 0,251, 73, 49,159, 99, 91,216, 0, 10, 62,183,147, 82, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232, 0, 10,241, 66,160,248, 0, 53, 10, 43, 59,141,160, 33, 0,223,232,127, 37,117, 17,192, 0, 6,108, 96,254, 81,240, 81, + 0,227,231, 91,243,243, 49,214, 0,236,248,223, 29,237,129,192, 0,189,202,254,220, 62,107,224, 0, 6, 97,209, 5, 57,124,124, + 0,234,220,243, 0,254, 48, 0, 0,209, 0, 0,252,232,192,241, 0,146,247,249,218,235,238,183, 0,214,223, 50,234,218,228,173, + 0,138, 15, 53,123, 94, 6, 4, 0, 22, 4, 4, 4, 15, 0,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192, 22,151, 87, 49,192, 4, 0,195, 4, 60,105, 10,132, 49, 0,227,247,220,246, 11,241, 26, 0,253,234, 99, 55, 57, 22,192, + 0, 90, 51,128,211, 91,153,201,178,178, 30,194,124, 1,225,238, 0, 74, 51, 85,177, 24, 59,204,196,139,212,185,124, 69,235,227, + 0,120, 14, 85, 55,168, 84,204, 95,206,182,252,205,246,201,183, 0, 8, 22, 6, 55, 75, 74,128, 91, 19, 40, 7, 69, 34,121,194, + 0,201,218,128,196,183, 27, 37,245, 57,183,232, 50,215,192,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,196,227,220,207,217,232,231, 58,201,241,246, 15, 15, 72, 0,246, 22,235,234,231,216, 38,232,223,254,231,201,227,247, 49, + 0,166, 51,219,211, 28,102,147,218, 95, 80, 7,174,112,195,224, 0, 74,184, 85,211, 24,193,214,183, 96,213, 38,146, 42,241,241, + 0, 36, 51,102,210,201,155,238,218,183,178,252,144,234,202,246, 0, 46, 51, 49,113,130,120, 6,139, 95,133, 0,185,205,188,128, + 0,185,221,111,136,224,223,195,197, 22,231,189,241,137,134,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,183,244,196, 0,226,253,217,250,119,247,227,241,197,212, 0,144, 55,246,143, 0,253,246,245, 0,246,173, 15,217,159,246, + 0,175,199,119,201,253,231,234,246,217, 15, 4,250,219,129,218, 0,154,227,129,227, 55,250, 0,253,250, 4,245, 93,250,129, 4, + 0,222,121,201,227, 0,183,195, 43,202,218,217,225,129,108,241, 0,226,118,124,185,146,246,210,214,201,236,238, 94,242,119, 0, + 0,179,122,138,134, 5, 44,100, 31,233, 82,151, 41, 15,135, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62,173,125,153,221, 68, 55, 83, 82, 97, 87, 82, 6, 62,137, 0, 6, 93,197, 36,206, 29, 4,192,232, 46, 0, 4,133,123, 44, + 0,247,202,217,232,232, 39,224,118,250,241,232, 4,224,253,245, 0,202,192,241,181,254,192,241,142,231, 55,254,157,248, 33,241, + 0,238,223,227,232,240,227,120,181, 79,192,130,247,241,245,250, 0,194,144,180,149, 63, 0,249,235, 31, 58,249,181, 4,181,218, + 0, 87, 69, 22, 22, 29, 54, 49, 49, 85, 29, 0, 74, 29,161,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 6,184,130, 4, 73, 4, 10, 4, 55,116,132, 15,239, 85, 0, 29,245,241, 41,192, 15,217,241, 4, 97,179, 5, 31,127,248, + 0,170, 83,128,211,158, 59,238,213,210,131,225,205,205,223,218, 0,109, 51, 85,163, 58,153,215,129,197,249, 0,189,246,201,254, + 0,161, 14, 8, 51, 58,102, 88,178,210,131, 0, 0,235, 0,178, 0, 2, 22, 6, 22, 58, 74,147, 91, 23, 23,121, 18,153, 0,110, + 0,227,129,235, 55,218,173, 73,224,254,129,207,254,243,143,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,223, 51,145,220,218,192,238,234,232,234,241,241,108, 6,192, 0,246,231,199,126,138,235,159,248,232,250,217,183,124,220,129, + 0, 73,183,219,183,234,166,195,135,129,220,119,112,146,227,129, 0,153,250, 85,211,236, 74,159,218,210,249, 38, 27,173,232,247, + 0,144, 83,235,212,225,246,201,169,212,131,238,227,227,205,245, 0, 46, 51, 49,211, 25, 88, 0,211,150,210, 0, 34,144,121,176, + 0,119,129,159, 21,224,246,241, 15,108,123,231,233,246,248,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 23,216,253,224,216,246,253,241,245,129,227, 51,227, 0,184, 0,220,217,253, 86,207, 0,197,232,247,207, 43,253,246, 15,207, + 0,214, 0,214,223,147,200,234,241,245, 44,241,135, 99,234, 33, 0,214,231,129,145,231, 0,253,224,129,217,248,202,253,246,217, + 0,235,119,205,177,246,172,217,192,247,232,227,246,234,119, 81, 0,226,118,124,118,236,208,218,144,189,188,215,212,227,238,177, + 0, 17,241, 83, 6, 57,161, 33, 26, 16, 0,223, 32, 4, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220, 82, 49,241, 0,105, 15,107,105, 31,109, 82, 85,197, 57, 0,117,231,116,181,192,145,147,241, 46, 29,239, 4, 5,160, 33, + 0,234,241,223, 6,209,248, 83, 55, 25,231,192, 63,137, 0,232, 0,223, 99,181,192, 8,241,254,223,218, 55, 21,155,232, 68,248, + 0,231,224,217,248,192,244,129,232,127,241,181,239, 54,250,129, 0,191,144,180,199, 22,201,183,190,220,246,241,144, 0, 0,183, + 0, 16, 59,100,107, 13, 73,101,118, 44, 6,101, 6, 81, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192, 69, 5, 55, 66, 57, 87, 14, 8, 16, 40, 0,127, 45,195, 0,129, 10,209,241, 63,217, 33,123, 41, 14, 98, 4,241, 5,192, + 0, 90, 81,128, 55, 19, 90,147,210, 51, 11, 91, 37,101, 28,122, 0, 88, 15, 85, 22, 23, 88, 71, 23, 51, 11, 91, 16, 71,173, 79, + 0, 8, 15, 6, 15, 23, 10, 65,171, 51, 64, 91,130,103, 40,139, 0, 8, 15, 6, 55, 23, 10, 65, 55, 14, 11, 39, 16, 43, 40, 96, + 0,144,183,128,183,163,238,231,234,183,210,216,215,227,225,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,170, 15,246,146,171, 88,178,227,183, 80,191, 0,204,212,212, 0, 36,107, 65,107,210,144,178,205,182,158,182,236, 52,113,177, + 0,102, 83,128, 55, 19, 59,147,228, 51, 64, 75, 16,173,182,180, 0, 60,108, 85,196, 13,175,238,218,237,143, 26,146,246,182,207, + 0, 88, 15, 49, 15, 13, 20,201,171,228, 11, 24,116, 0,101,180, 0, 46, 15, 49, 55, 25, 59, 65, 91, 14, 11, 39, 71, 0, 40, 96, + 0,144,255,219,169, 11,153,242,220, 48,188,249, 0,110,246,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 83, 49,113,183,144,215, 52, 63,163, 13, 0,238,234, 13, 0, 26,169,147, 91, 51, 16,177, 0, 96,178,212,225,236,238,207, + 0,214, 76,163, 69, 0,253,207,140,147, 0,213,253,212,119,207, 0,253,196,214,116, 65,253,129,120, 96,197,225,220,243,234,129, + 0, 50,118,127,140,194,222,129,200,178,249, 11,124,182,232,183, 0, 8,118,124,112, 58,125,122,112,171,171,182, 39,116,131, 72, + 0,231,211,241,192,220,248,241,192, 19,241,254, 22,254, 59,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246,119, 15,253,231,209,234,132,241, 58,231,209, 19, 96,216, 0, 8,111,224,141,198,254,217,145,223,231,254,241, 0,241,184, + 0, 49,198,254,227,231,168,221,227,143,177,220,222,198,139,129, 0,159,126,254,233,254, 0,255,142,205,241,231,135,245,241,129, + 0,238,220,180, 0,207,218,180, 1,213, 55,168, 4,231,218,255, 0,116, 76,180,187,131,238,184,187, 0,158,249, 0,158,177,184, + 0,199,245,127,209,245,248,183,248,154,241,131, 66, 0, 53, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,143,231,250,160, 42,250,221,208, 8,254,131,232,224,254,224, 0, 48,142,217,209,234,212, 48,119,112,248,192,217, 64,217, 33, + 0, 48, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 95, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,228, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,195, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 0,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 81, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 19, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 21, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 19, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47,131, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,188,175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 47,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 23, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 23, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 19, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 25, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,205,139, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,171,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,207,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 28, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,112, 28, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 95, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,199,199,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,251,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,227, 6,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38,158,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 91,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,121, 23, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,133, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,154,220,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,252,193,201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 64,101, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 19,101, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 28, 19, 37, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 19, 37, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0,176,122, 91, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,180,212, 78, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,227,212, 0, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 58, 64,101, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 19,101, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, + 0,131, 11, 16, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 19, 37, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0,122,228, 0, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,207,210,129, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,178,129, 0, 0, 0,178, 0, 0, 0, 0, 0, 0, 0, 0, + 0,139,158,197, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,201,176, 0, 0, 0,175, 0, 0, 0, 0, 0, 0, 0, 0, + 0,188,131, 37, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 95, 24, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234,223,250, 0, 0, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216, 22,129, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,232,245, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, 0, + 0,182,249,176, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,178, 94,110, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0,133,188,213, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 95,110, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0,243,224, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231,241,220, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,150,254, 0, 0, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 33, 71, 0, 21, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 57,101, 0, 80, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 33, 73, 0, 21, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 57, 37, 0, 28, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0,205, 57,238, 0,225, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144,218,146, 0, 0, 0,218, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,212,171, 0,198, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 33, 71, 0,131, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,130, 54,101, 0,131, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 33, 71, 0,131, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 33, 37, 0, 28, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0,215, 33, 78, 0,178, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201, 33,238, 0,218, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,213, 57,218, 0,201, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0,121,113,101, 0,218, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0,156,177,163, 0, 26, 0,176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,167,101, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,113,110, 0, 58, 0,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55,184,250, 0,241, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,181,202,136, 0, 30, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,242,224, 0,220, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, + 0,204,211,110, 0,249, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,183,238, 0,234, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, + 0,147,177,237, 0, 40, 0,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 67,243, 0,131, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 0,209,220, 48, 0,248, 0,123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,245, 72,224, 0,241, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 0,167, 0,149, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 33, 35, 0, 19, 50, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 33, 10, 0, 25,130,155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 56, 60, 0, 25, 50, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 33, 60, 0, 21, 50, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 23, 72,155, 0,237,247,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,215,255,174, 0,188,218,128, 0, 0, 0, 0, 0, 0, 0, 0, 0,215,218,222, 0,236,201, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 33, 35, 0,158, 77,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 33, 53, 0, 25,130,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 56,120, 0,139,130,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 33,120, 0, 19,130, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201, 15,155, 0,249,194,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,122,183,244, 0,129,247,199, 0, 0, 0, 0, 0, 0, 0, 0, 0,203, 33,247, 0, 0,195,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,176,177, 0, 0,194,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,129,175, 0,252,144,218, 0, 0, 0, 0, 0, 0, 0, 0, + 0,121,177,120, 0,215, 18,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,113, 90, 0, 58, 86,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129, 4,234, 0,241,202,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,200,250,248, 0,140,220,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,217,170, 0,231,140,248, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,177,246, 0,218, 32,234, 0, 0, 0, 0, 0, 0, 0, 0, 0,119,169,223, 0,245,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,171,255,194, 0,212, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,211, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, + 0,250, 22,192, 0, 31,248, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,254,224,253, 0,250,250,253, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,129, 65, 0,129,254,234, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 51, 35, 11, 58, 69,155, 0, 0, 0, 0, 0, 0, 0, 0, 0,130, 11, 35,210, 52, 71, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 14, 60, 11, 28, 69, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 14, 60, 14, 40, 9, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15,233,234, 64,204,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18,212,235,201, 0,144,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212,214,218,198,234,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 51, 35, 11, 58, 27,164, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 11, 35,115,191, 27, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130,113,120, 11, 52, 69, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 51,120, 14, 58, 69,120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,129,244,245,215,119,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,218,227,216,167,201,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,218,235,224,158, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, + 0,214,171,144,168,201, 0,139, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,171,253, 1,247,126, 96, 0, 0, 0, 0, 0, 0, 0, 0, + 0,154,150,155,119, 91, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 95,155,198, 58, 43,148, 0, 0, 0, 0, 0, 0, 0, 0, + 0,250,106,232, 0,138,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232,232,241,155,228,124,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,165,209,202, 97,241,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0,125,198,238,144,247,148,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,227,116,227,228,231,231, 0, 0, 0, 0, 0, 0, 0, 0, + 0,164,188, 0,198,218, 73,215, 0, 0, 0, 0, 0, 0, 0, 0, 0,170, 75,124,205,236,233,210, 0, 0, 0, 0, 0, 0, 0, 0, + 0,181,245, 0, 22,140, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,129, 33, 22,246,178, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0,247,227, 87,246, 64, 8, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 51, 88, 51, 21, 43, 71, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 51, 88, 14, 80, 86,173, 0, 0, 0, 0, 0, 0, 0,214, + 0, 47, 51, 10, 11, 21, 18,214, 0, 0, 0, 0, 0, 0, 0,120, 0, 47, 51, 74, 14, 21, 18, 73, 0, 0, 0, 0, 0, 0, 0, 74, + 0,191,129,202,218,218,205,173, 0, 0, 0, 0, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,236, 76,247,212,124,227,195, 0, 0, 0, 0, 0, 0, 0, 1, 0,236, 76,247,218,146,246,212, 0, 0, 0, 0, 0, 0, 0,242, + 0, 0, 51, 88,188,131, 9,238, 0, 0, 0, 0, 0, 0, 0,204, 0, 7,188,155,163,212,223,208, 0, 0, 0, 0, 0, 0, 0,174, + 0, 24, 51, 59, 55, 30, 37,173, 0, 0, 0, 0, 0, 0, 0,164, 0, 26, 67, 59,139,131,130,148, 0, 0, 0, 0, 0, 0, 0,144, + 0,191, 63,195,169, 91,144,241, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,218,212,250,191,218,129, 0, 0, 0, 0, 0, 0, 0,247, 0,131,218,247,227,218,238,238, 0, 0, 0, 0, 0, 0, 0,183, + 0,214, 0,228,225,218,201,218, 0, 0, 0, 0, 0, 0, 0, 40, 0,146, 95, 26,223,188,201, 66, 0, 0, 0, 0, 0, 0, 0,243, + 0, 34,236,229,218,133,247,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 95,148,168, 75, 16,110, 0, 0, 0, 0, 0, 0, 0,247, + 0,250,241,198,112, 54, 63,184, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217,233,217,251,220,108,220, 0, 0, 0, 0, 0, 0, 0,245, 0,199, 0,178, 10,231,107,254, 0, 0, 0, 0, 0, 0, 0,124, + 0,246,150,204,197,231,201, 3, 0, 0, 0, 0, 0, 0, 0,129, 0,238, 97,238,246,215,241,183, 0, 0, 0, 0, 0, 0, 0,232, + 0,203,139,245,213,119,223, 48, 0, 0, 0, 0, 0, 0, 0,177, 0,173,201,110,222, 15, 0,177, 0, 0, 0, 0, 0, 0, 0,215, + 0,254,250,127, 28,232, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,181,232,241,133,142,254,184, 0, 0, 0, 0, 0, 0, 0,140, 0,243,181,254,238, 55,209,216, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 9, 56, 88,211, 72, 73,110, 0, 0, 0, 58, 0, 0, 0,156, 0, 50, 33, 88, 22, 66,130,243, 0, 0, 0, 58, 0, 0, 0,153, + 0, 32, 56, 35, 11, 66, 20,208, 0, 0, 0, 28, 0, 0, 0,227, 0, 32, 56, 74, 14, 72, 20, 73, 0, 0, 0, 40, 0, 0, 0,156, + 0,119, 15,238,217, 87,246,195, 0, 0, 0,234, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,222,177,201,135, 57,201,254, 0, 0, 0,246, 0, 0, 0,232, 0,222, 51,201,224,250,201,217, 0, 0, 0,253, 0, 0, 0,118, + 0, 50, 56, 35,177, 72, 50,195, 0, 0, 0, 52, 0, 0, 0,246, 0, 27, 57,120,113, 66,252,243, 0, 0, 0,213, 0, 0, 0,140, + 0,130, 56, 59,188, 72,229,110, 0, 0, 0,171, 0, 0, 0, 0, 0, 69, 56, 59,211, 72, 69,173, 0, 0, 0,131, 0, 0, 0, 34, + 0,144,129,246,113,129,232,232, 0, 0, 0,191, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218, 22,212,234,129,201,249, 0, 0, 0,218, 0, 0, 0,245, 0,212,183,238,212,129,242,129, 0, 0, 0,234, 0, 0, 0,218, + 0, 0,218, 30,246,183,246,143, 0, 0, 0,173, 0, 0, 0,218, 0,154,183,213,246,129,246,129, 0, 0, 0,220, 0, 0, 0,129, + 0,229,218,227,246, 57,144,178, 0, 0, 0,236, 0, 0, 0,213, 0, 36,150,148,225, 67,103,195, 0, 0, 0,121, 0, 0, 0, 25, + 0,248,145,113, 68, 5, 68, 56, 0, 0, 0, 15, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241,140,224,192, 88, 82,250, 0, 0, 0,240, 0, 0, 0,192, 0,165,227,101,246, 5, 82,220, 0, 0, 0,248, 0, 0, 0, 57, + 0,246, 95,183, 0,220, 0,217, 0, 0, 0, 32, 0, 0, 0,231, 0,247,201,241,237,195,214,221, 0, 0, 0,234, 0, 0, 0,108, + 0,238,171,122,245,216, 68, 48, 0, 0, 0,181, 0, 0, 0,129, 0, 0,139,216, 94,122, 0,143, 0, 0, 0,153, 0, 0, 0,215, + 0, 0,241,192, 4, 22,105, 88, 0, 0, 0, 6, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234,241,247, 70,254, 89, 44, 0, 0, 0,254, 0, 0, 0, 66, 0,128,130,224,232,224, 22,250, 0, 0, 0,151, 0, 0, 0,241, + 0, 47, 56, 85, 11, 72,116,173, 0, 0, 0, 58, 0, 34, 0,236, 0, 47, 56,219,171, 72, 24,195, 0, 0, 0, 58, 0, 73, 0,214, + 0, 7, 4, 70,210, 72, 24, 96, 0, 0, 0, 58, 0, 32, 0,251, 0, 1, 56, 70, 14, 72, 78, 37, 0, 0, 0, 58, 0, 9, 0, 20, + 0,178, 4,238,231,217,234,216, 0, 0, 0, 0, 0,181, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,223,183,242,198,217, 12,245, 0, 0, 0,246, 0,241, 0,180, 0,225,139,127, 17,129,218,129, 0, 0, 0,218, 0,197, 0,248, + 0, 7, 56,219,163, 5,194,243, 0, 0, 0,168, 0, 73, 0,235, 0, 1, 33,219,210,167,176,238, 0, 0, 0, 30, 0,181, 0,253, + 0,103, 56, 53,183, 57, 91,237, 0, 0, 0, 0, 0,153, 0,119, 0, 26, 56, 53,150, 72, 24, 96, 0, 0, 0, 40, 0, 69, 0,156, + 0,178,221,244,220,113,220,253, 0, 0, 0, 26, 0,192, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234, 55,128,231, 33,196, 0, 0, 0, 0,209, 0, 0, 0,191, 0,216,136, 0,129,129,129,218, 0, 0, 0,218, 0,129, 0,232, + 0,201,255,144,134,184, 55, 3, 0, 0, 0, 0, 0,196, 0,220, 0,178,201,246,246,234,217,129, 0, 0, 0, 31, 0,253, 0,129, + 0,144,163,226,201,123,197,218, 0, 0, 0,247, 0,218, 0,181, 0, 1,150,155,214,163,182,243, 0, 0, 0, 0, 0,146, 0,238, + 0,209,241, 4, 49, 53,177,241, 0, 0, 0,186, 0, 44, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27,209,198,217,195, 0, 0, 0, 0, 0, 89, 0,135, 0, 6, 0,201, 62,243,151, 78,248, 33, 0, 0, 0, 55, 0,241, 0,248, + 0,238,234,247,254,202,234, 33, 0, 0, 0, 0, 0,247, 0,241, 0,212, 81,234,198,201,231,136, 0, 0, 0, 0, 0,232, 0,248, + 0,207, 56,247,200,183,254,221, 0, 0, 0,246, 0, 63, 0,202, 0,201, 91,218,144,178,213, 33, 0, 0, 0,218, 0,119, 0,196, + 0, 29, 55,142, 8, 33,153, 63, 0, 0, 0, 41, 0, 55, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241, 57,224, 97, 55, 44, 62, 0, 0, 0,248, 0, 41, 0,192, 0,254, 22, 20, 97, 85, 4, 4, 0, 0, 0, 5, 0, 76, 0, 5, + 0, 69, 83, 85, 56, 66,101,110, 0, 51, 0, 40, 0,153, 0,238, 0, 27,183, 85,177, 14,101,195, 0,218, 0, 28, 0, 32, 0,252, + 0, 27, 54,111, 56, 66,101, 0, 0,188, 0, 40, 0,153, 0,205, 0, 20, 51, 70, 56, 66, 24, 73, 0, 14, 0, 39, 0, 20, 0, 32, + 0,144,129, 49,129,129,220, 87, 0,133, 0,246, 0,232, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,119, 85,183,183,129,217, 0,220, 0,227, 0, 29, 0,248, 0,227,218,253,216,218,245,183, 0,246, 0,218, 0,198, 0,217, + 0, 27,177,240, 15, 66,101,110, 0,150, 0, 52, 0,222, 0,204, 0, 92, 51,219,177, 87,194,243, 0,210, 0,236, 0,126, 0,233, + 0,185, 72, 53, 57, 54,178,178, 0, 11, 0, 7, 0,189, 0,199, 0, 69, 54, 53, 4, 72, 24,173, 0,139, 0, 24, 0, 34, 0, 0, + 0,251, 44,244,224,216,121,220, 0,254, 0,234, 0, 24, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,183,159, 5,245,197,250, 0,245, 0,202, 0,234, 0, 70, 0,218,129,253,241,108,207,221, 0,245, 0,243, 0,253, 0,234, + 0,144,144,119,218, 4,243,216, 0,201, 0,227, 0, 55, 0,243, 0,214,227,218,231,254,247,197, 0,246, 0,250, 0,157, 0,250, + 0,140,210,222,245, 3,218,195, 0,234, 0,183, 0,241, 0,237, 0, 27,118,155,150,228,110,122, 0,169, 0,201, 0,125, 0,139, + 0, 4,148,242, 66, 56,254, 66, 0, 45, 0, 15, 0,189, 0,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220,240, 44,217, 55, 44,228, 0, 82, 0, 0, 0, 4, 0, 6, 0, 32, 99, 81,224,250, 33, 44, 0, 14, 0,209, 0, 48, 0,217, + 0,247,189,241,243,108,115,254, 0,231, 0,220, 0,135, 0,108, 0,233,172,103,246,129,181, 73, 0,218, 0,119, 0,114, 0,232, + 0,238,245,201, 22,245,136,108, 0,223, 0,181, 0,183, 0,143, 0, 26, 76,173, 15, 55,177,183, 0,212, 0,218, 0,201, 0,195, + 0,232, 49, 60, 46, 3, 94,216, 0, 4, 0, 68, 0, 10, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220, 57, 56,189, 4, 6,221, 0, 72, 0,248, 0, 55, 0,106, 0,224,142,192,254, 5,241, 87, 0,228, 0,162, 0,241, 0,129, + 0,103, 83, 35, 33, 72, 78,128, 0,150, 0, 58, 0,156, 59,246, 0, 16, 83, 35,177, 14,231,128, 0,228, 0,131, 0, 50,174,238, + 0, 16, 5, 8, 33, 72, 78,128, 0, 25, 0, 23, 0, 92, 27,222, 0, 38, 5, 70, 56, 72, 78, 74, 0, 19, 0, 40, 0, 20, 32, 69, + 0,218, 44,199,123,196,129,238, 0,202, 0,243, 0,178,240,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246, 94,241,196,197,224,140, 0,232, 0,249, 0,250,234,134, 0,246, 76, 0,231,167,218,119, 0,245, 0,217, 0,209,228,246, + 0, 1, 83,219, 56, 5, 24,233, 0,218, 0,133, 0,229,152,238, 0,185, 22,253, 4, 66,176,235, 0,218, 0,176, 0,189,246,232, + 0, 26, 44, 88,221,129,213, 90, 0, 15, 0,176, 0,144,144,144, 0, 0, 54,120, 4, 66,176,120, 0,150, 0, 58, 0,130,128, 0, + 0, 0,183,147,245,184,241,232, 0,224, 0, 79, 0,241,140,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216, 5,235, 67,250,129,247, 0,250, 0,224, 0,216,216,137, 0,249,183,247,220, 33,234,168, 0,234, 0,231, 0,218,232,248, + 0,252,247,169,213,217,183,116, 0,246, 0,245, 0,227,234,115, 0,169,241,183, 22,129,197,217, 0,238, 0,245, 0,202,246, 80, + 0,175,212,227,183,129,218,144, 0,246, 0,213, 0,223,242,119, 0,121,118,124,171, 48,178,238, 0,201, 0,212, 0,127, 71,237, + 0,246,241, 41,183,220,246, 12, 0, 70, 0, 4, 0,227, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234,220,241,223,239,190, 65, 0, 91, 0, 66, 0, 4, 55, 80, 0,114,190,223, 15,192,217,184, 0, 99, 0, 6, 0,220, 82,192, + 0,147,202,241,217,221,218,216, 0,192, 0,181, 0,241,241,108, 0,126,234,224,242, 0, 75,247, 0,231, 0,202, 0, 0, 89,250, + 0,247,227,218,129,224, 4, 4, 0, 31, 0,224, 0,127,108,253, 0,238,134,180,214,245,207,238, 0,227, 0,218, 0,247, 0,183, + 0,140,248,140, 14, 54, 4, 0, 0, 64, 0, 70, 0,172, 61,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,221,150, 55, 83,112,241,250, 0, 83, 0, 69, 0,196, 22,179, 0, 4,209, 5,240,184,232,180, 0, 22, 0,120, 0, 93,177,136, + 0, 69, 56,128, 33,158, 24,155, 0,163, 95, 40, 0, 69,222, 47, 0, 20, 56,242,177, 19, 24,175, 0,218,178, 40, 0, 20,174,214, + 0, 27, 56,120, 33, 23,110, 46, 0,150, 80, 16, 0,153,189,144, 0, 20, 56, 60, 56, 19, 24,102, 0, 19, 19, 40, 0, 20, 92,156, + 0, 38, 83,242, 83,228, 22,234, 0,248,234,214, 0,250,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,204,129,246,217,218,220,246, 0,192,180,253, 0,192,198,119, 0,154,238,201,220,227,129, 0, 0, 0,201,129, 0,227, 95,254, + 0, 27, 56,128,177,220,101,164, 0,220,158, 75, 0,246,247,236, 0, 92,177,244,108,201, 0,235, 0,113,201, 40, 0,124,246, 0, + 0,130, 4,153, 33,211, 78,246, 0,212,201,252, 0,222,144,218, 0, 69, 44,120, 56, 21, 24,120, 0,176, 95, 0, 0,112,155, 0, + 0, 38, 83,242, 54,206,143,159, 0,254, 58,201, 0,198, 85,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,201,223,218,183,231,253, 0,241,245,192, 0,234,202,245, 0,204,183,247,129,252,234,235, 0,201, 0, 38, 0,119,181, 0, + 0,214,119,218,243,246,119,241, 0,250, 0,247, 0,246,129,195, 0,242,245,243,231,150, 55,234, 0,244,231, 28, 0,254,234, 33, + 0,174,249,233,220,246,245,134, 0,144, 18, 0, 0, 27,220,241, 0, 36,150,124,150,133,176,124, 0,225,210,225, 0,247, 0, 30, + 0, 63, 41, 16,241,211, 4, 83, 0,241,120,196, 0, 59,123, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241,239, 10, 33, 15,254, 55, 0,217, 59, 5, 0, 85, 82, 4, 0, 6, 53,184, 31,232, 26,192, 0,241,202,242, 0, 58,174,254, + 0,247,246,223,245,247,167,250, 0, 22,246, 4, 0,234,108,232, 0,223,232,241,192, 49, 49, 4, 0, 5, 6,217, 0, 0, 15,232, + 0,238,231,148,218,234,129,183, 0,181,129,241, 0,190, 55,250, 0,238,135,177,231, 0,195,177, 0,181,243,119, 0, 0, 0,218, + 0,161, 41,221,102, 98, 0, 4, 0,152,213, 0, 0, 0, 16,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217, 72,241, 83, 38, 55,231, 0, 2, 81,111, 0, 62, 5, 96, 0,232, 49, 15,245, 55, 71, 4, 0,254, 4,196, 0,210, 41, 5, + 0, 37, 56, 85, 4, 64, 59,238, 0,201,150,178, 50,153,155,227, 0, 37, 4, 85, 15,228,155,253, 0,188,150, 75, 86,144,246,227, + 0, 86, 56, 6,221, 64,187,222, 0,211,158,116,185,187,235,235, 0, 38, 4, 6, 56, 19, 27,102, 0, 22, 25, 58, 50, 32,185,153, + 0,134,224,247,241,136,227,240, 0,129,196, 0,162,192,202, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,146,183, 17,220,220,231,245, 0,254,254,241,241,181,232,159, 0,235,238,128,122,218,202,231, 0,241,165,183,193,181,232, 26, + 0,205, 81,219, 33,210, 84,204, 0,210,150, 40, 9,174,227,218, 0, 86, 56,219, 15,178,246,238, 0, 96,234, 30, 50,174,243,223, + 0, 37,221, 35, 15,139, 34,252, 0,238,213,236,144,157,247, 0, 0, 0, 44, 53, 56,139,104,120, 0, 91,131, 58,185, 34, 0, 0, + 0,178,221,246, 66,250, 2,253, 0, 97,108, 18,230,124, 17,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,245,217,102,250,220,209, 0, 0,232,241,241,232,192,202,180, 0,212,216,235,108,129,247,129, 0, 69,217, 0,218, 5,245,227, + 0,210,171,119,108,218,181,207, 0,220,193,253,234,223,246,231, 0,194,246,119,220,253, 49,216, 0,248,223,238,187,202,254,253, + 0,205,249,246,228,218,119,119, 0, 0,218,231,223,198,200,246, 0, 86,150,124,150,201,144,173, 0,227,210,210, 0, 0,222,178, + 0, 85,184, 55,165,160, 49, 0, 0, 53, 65, 0, 73, 55, 68, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,209,231, 82, 0, 82, 41, 48, 0, 29, 82,169, 82,159, 0,253, 0,227,246,232,192, 29,164, 84, 0,192,253,141, 65, 78, 89,241, + 0,195,201,209,254, 0,179,250, 0,235,220, 0,209,217,117, 15, 0,246,217,224,108,241, 6,220, 0,209,192,142,172,211,168,127, + 0,246, 0,246,217,137,231,216, 0, 68, 15,220,248,231, 37,246, 0,203, 0,207,144,218,247,201, 0,223,246,201,201,245,238,237, + 0, 29,159, 82,127, 0,134,147, 0, 10, 0, 0,118, 68, 54, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241,206,220,162,213,241, 15, 0, 2, 99, 4,159,141,177, 76, 0,254, 55, 44, 33,147, 77, 52, 0, 19, 97,160,118,189, 4, 14, + 0, 69, 15, 85,211,178, 88,204,210,203, 96, 0, 43,252,247,147, 0, 20, 83, 85,196,158,109,214,218,163, 80, 0,112,247,246,238, + 0, 27, 56,111, 51, 80,166,175, 19,139, 95, 0,154, 47,222,174, 0, 36, 5, 6, 55, 21, 42, 74, 58, 19, 95, 0, 38, 69, 1,125, + 0,238,129,240,119,122,232,232,250,181,183,241,248,159, 55,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,246, 95,246,231,234, 43,247,254,234,224, 97,209,231,218,183, 0,226,218,246,189,238,234,245,156,232,234,254,192,238,227,248, + 0, 92, 83,219,183, 21, 59,233,218,228,201, 0,125,223, 10,201, 0,174,177, 85,177,249,204,214,250,218,212, 78, 34, 34,253,241, + 0, 34, 57,219,210, 80,185,247,245,129, 25, 26,236, 0,235,201, 0, 69, 54, 49, 55,131, 59, 34,139,176, 23, 0,205, 36,125,200, + 0,227, 56,240,105, 87, 27, 60,209,187, 47,210,119,253, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216,221, 2,224,241,227,162,152,245,104, 32,129,165,250, 22, 0,234, 4,246,242,254,234,246,255,202,253,231,232, 79, 46,247, + 0,140,254,119,231, 0,253,247,193,201,231, 0,248, 0,246,220, 0,214,119,213,209,234, 6,216,227,217,232,106,250,100,184,129, + 0,114,238,246, 7,246,223,119,220,159,217,246,208,220,216,129, 0,205,118,124,118,168,251,238,236,210,236, 47, 0,247, 0,238, + 0,186, 38, 33,219, 15, 63, 76,157, 53, 29, 48, 65, 19,179, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,254,139, 90, 59,114, 29, 99, 59, 4, 31, 6, 93, 97,142, 4, 0,254,248, 65,114,179, 15, 83,230, 76, 8, 35,137, 64,123, 33, + 0, 0,159, 33,247, 22, 2,129,247,220, 54, 0, 6,175,159,129, 0,114,224,241, 70,241, 66,241, 57,192,135,248, 10,117,209,234, + 0,247,241, 0,254,241,181,254,241,245,182,192,202,234,248,224, 0,212,144,237,199,197,218,139, 4, 6, 0, 22,246, 0,103,238, + 0,151, 72, 0, 88, 28, 0, 0, 81, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,186,248, 5, 4, 81, 3,251,148, 44, 0, 70, 0, 15, 57,174, 0,224,240,254,149, 4, 4,224,226, 4, 85, 99, 56, 55, 29,248, + 0, 16, 15, 85,211,210,155,147,178,171,249, 28,185,144,144, 78, 0, 86, 83,219,163, 13,232,253, 0,198,178, 24,227,247,238,201, + 0, 18, 5, 6,171,171, 90,208, 63,139,178,182, 0, 20,154,238, 0, 18, 5, 6, 55, 19, 27,170,171, 19, 19, 40, 47, 69, 10,176, + 0,122,250,246,129,241, 32,153, 90,135,169,133,241,202,218,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,150,207,144,202,248,253,129, 31,202,192, 76,247,231,241,218, 0,204,234,223,168,231,125,249,231,241,234,220,119,246,245,245, + 0, 38,255,219,177,158,246,207,217,139,191,225, 38,174,247,224, 0,130,177,219,183, 23,222,214,250,197,178,133,185,246,246,212, + 0,101, 83, 49,139,131,227,238,218,183,139,231,154, 7,193, 52, 0, 16, 54,120, 55, 11, 92, 0,146,210,171, 75,121, 90,214,237, + 0,205,108,128,127,136,223,192,248,183, 83,231,241,181,180,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,250,218,246,227,158,223,129,246, 0, 33,224,241,192,192,216, 0,178,129,144,245,231,178,220,125,241,250,140,253,253,234,108, + 0,214,183,183,201,246,201,247,253,216,254,247,235,224,198,231, 0,224,220,254, 83,181,236,254,130,241, 83,135,241,163, 6,248, + 0,144,205,227,219,183,246,250,247,231,183,246,209,246,254,108, 0,154,118,124,118,168,119,195,130,169,210, 0,153,246,246,216, + 0, 2, 4, 35,172,139, 22, 0, 8, 0, 8,192, 5, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231,171,217,137, 49, 76, 15,181,186, 22,107, 82, 1, 63,160, 0,246,232,129,224, 65, 6,129, 83,217,110,101, 15, 42, 32,129, + 0,181,231,220,192, 62,223,242,248,232,220, 22,231, 87,224, 4, 0,198,159,243, 14, 33, 22,136, 27,142,103,232, 10,165, 0, 73, + 0,213,245,220,234, 70,227,250,231, 0,224,220,253,224,224,250, 0,201,144,207,118, 4, 10,217,144,211, 47,232,193, 43,207,183, + 0, 65, 55, 77, 97, 22, 10, 33, 91, 49, 31, 29, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241,124,241, 44, 97,111, 6,114,135, 4, 81,210, 87,108,173, 0,227,179, 54,227, 57, 31,241,179,132, 4, 82,125,100,254, 72, + 0, 69, 81, 85, 55, 51, 88,147,131, 51, 51, 13, 16, 71, 0,122, 0, 69, 81, 85, 22, 14, 88,214,196,167, 14, 25, 16, 71,101,176, + 0, 2, 4, 6, 15, 14, 10, 65,171, 14, 14, 25, 37, 37, 0, 96, 0, 2, 4, 6, 55, 14, 10, 65, 55, 14, 14, 25, 16, 43, 43, 96, + 0, 7, 83,233,218,177,227, 0,216,220, 62,129, 26,146,201,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,144, 55,127,210,163,247, 0,231,122,177,210,146,201,208,119, 0, 86,107, 65,107, 23,204,201, 31,212,212, 13,238, 96,171,163, + 0, 92, 81, 85,211,113, 59,147, 26,177,163, 13, 16, 16,252,207, 0, 2,221,145,196,115,140,207,191, 51, 64,122,125, 16,144,238, + 0, 34, 4, 49, 51, 67, 59,147,236,177, 64, 12,103,146,158,176, 0, 34, 4, 49, 55, 67, 59, 65, 91, 14, 67, 13, 71, 26, 26, 96, + 0, 1, 83, 88,169,113,204,231,118,113,224,216, 75,116,202,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,182, 81, 35,119, 55,236,218,231,248,183,210, 0,218,116,183, 0, 30,169,170,144,177,146,173,144,210,211,139,201,213,201,139, + 0,214, 63,214,253,183,214, 81,252,231,210,178,236,201,163, 83, 0,214,218,214,227,237,247,183,246,202,234,250,227,196,241,217, + 0,128,118,124,118,210,156,237,235,228,218,177,249,213, 4,255, 0, 2,118,124,112, 11, 43,122,112, 23, 25, 13, 0,147, 37, 72, + 0,137,254,241,192, 0,168,254,192, 0,197, 12, 31, 65, 0,207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,106,129,145,248,232,220,192, 94,120, 44,224,254,129, 11, 0,222,137,183,114,129,253,217, 62,245,253,232,216,235, 0,129, + 0,124,135,207,175,231,146,255,175,238,234,249,178,254,245,129, 0,233,233,215,142,163,231,217,196, 28,163,254,246,231,217,224, + 0,238, 25,180,154,196,236,177,219,212, 5,218,119,201,213,184, 0, 25,118,180,149, 51,208,184,229,194,201,218,194,212, 30,184, + 0,246,209,227, 68, 87,246,127,248,167, 22, 44,192,129, 0,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,254, 26,245,135, 0,145,183,134,184,241,134, 89, 70,192,221, 0,218,223,184,239,181,220, 33,217,253,241, 81,241,250,250,184, + 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 67, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 19, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 19, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 19, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,103, 23, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,103, 11, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 19, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7,171,185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 28,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 95, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 95, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 96,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,188,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,171,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 95, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 64,101, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64, 24, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 11,103, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 11, 24, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11,254,178, 0, 0, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,144,178, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,218,218, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 23, 64,101, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 19,116, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0,131, 64, 16, 0, 0, 0,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64, 24, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,216,182, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,177,129,178, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, 0,212,218,218, 0, 0, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80,210,178, 0, 0, 0,222, 0, 0, 0, 0, 0, 0, 0, 0, 0,139,131,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,139,158, 24, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 95,110, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, 0, + 0,211,217,183, 0, 0, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,253,224, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,181,152,241, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80,188,176, 0, 0, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,249,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,122,191,203, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,188, 78, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,123,250, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217,214,231, 0, 0, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,232,221, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 56, 71, 0, 19, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,103, 57,101, 0, 21, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 33, 37, 0, 19, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 33, 37, 0, 21, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56,110, 0,212, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,139,238, 0,218, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,183,182, 0,218, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 33, 71, 0, 23, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 57,101, 0, 25, 0,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0,103, 56, 71, 0, 25, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 33, 37, 0, 28, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0,182,183,176, 0,178, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,243,108, 12, 0,236, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,129,216, 0,234, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, + 0,121,167,176, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,218, 0,212, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 54,178, 0, 58, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,113,110, 0, 28, 0,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0,223,217,202, 0,241, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,241, 0,250, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,254,221, 0,220, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0,168, 15,180, 0,139, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,113,231, 0,218, 0,231, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 57,213, 0,139, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,237, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, + 0,140, 14,189, 0,195, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217,184,231, 0, 14, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,220, 87, 0, 55, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 56, 35, 0, 19, 50, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 56, 88, 0, 95, 86, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 56, 60, 0, 11, 50, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 56, 35, 0, 19, 50, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,129,246, 0,188,227,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,218,227, 0,143,119,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,119,247, 0, 31,246,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 56, 35, 0, 19,130,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 33, 88, 0,158, 86,238, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13,221,120, 0,211,130, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 56,120, 0, 19,130, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216,221, 53, 0,231,162,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,129,238, 0,129,234,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,129,246, 0,216,220,218, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 96,177,201, 0,205,138,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,178, 66,144, 0,119,144, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24,113, 59, 0, 0,227,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,113,155, 0, 95, 1,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,216,202, 0,218, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,250,232,241, 0,184, 10,232, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,106,220, 0,105,144,250, 0, 0, 0, 0, 0, 0, 0, 0, + 0,139,129,175, 0,191,247,227, 0, 0, 0, 0, 0, 0, 0, 0, 0,238,183,227, 0,189,247,237, 0, 0, 0, 0, 0, 0, 0, 0, + 0,139,221,222, 0, 0,181,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,136,252, 0, 95, 0,212, 0, 0, 0, 0, 0, 0, 0, 0, + 0,209,209,100, 0, 15, 61,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234,188,227, 0, 14,218, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,115,224, 0,248, 92,181, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 51, 35, 51, 21, 69, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,121, 51, 35,188, 25, 50, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 54, 60, 14, 21, 20,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 51, 60, 14, 28, 9, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,183,235,228,217,104,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,226,183,201,183,201,144,227, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 64,199,154,246,201,253, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 51, 35,163,178, 69,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14,120,203, 80, 9,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0,103, 72, 10,139,131,130,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,120, 67, 28, 69, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,206,219,129,249,119,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,252,129,195,250,246,235,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,216,116,212,227,201,227, 0, 0, 0, 0, 0, 0, 0, 0, + 0,205, 0,185,201,119,225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,253,214,119,201,246,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,252,139,128, 47,144,204,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,150,155,198, 58,130,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0,233,133,232,241,245,106,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231, 0,231, 83,124,179,217, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,181,192,226, 70, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 0,204, 22,247,201, 78, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0,231,234,135,211,252,220,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0,163,212,246,201,125,208,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,188,164,188, 0, 1, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192,147, 10, 61,161, 82, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,211, 6,254,181, 65,127, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,142,248, 4, 54,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 83, 88, 22, 19, 16, 71, 0, 0, 0, 0, 0, 0, 0,235, 0, 80, 63, 59,171, 23, 1,173, 0, 0, 0, 0, 0, 0, 0,235, + 0, 58, 83, 74, 11, 13, 16, 37, 0, 0, 0, 0, 0, 0, 0, 88, 0, 28, 5, 42, 14, 21, 38, 73, 0, 0, 0, 0, 0, 0, 0, 74, + 0,119,135, 73,220,228,247,246, 0, 0, 0, 0, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212,213,193,212,201,227,232, 0, 0, 0, 0, 0, 0, 0,232, 0,189,245,242,209,209,231,224, 0, 0, 0, 0, 0, 0, 0,217, + 0, 80, 83, 88,210, 19, 86,173, 0, 0, 0, 0, 0, 0, 0,155, 0,168, 63,155,171, 25, 1,173, 0, 0, 0, 0, 0, 0, 0,164, + 0, 30, 56,175,206,122, 0,173, 0, 0, 0, 0, 0, 0, 0,222, 0, 28, 5, 27, 64, 28, 37,173, 0, 0, 0, 0, 0, 0, 0, 59, + 0,212,183, 84,108,216, 18,146, 0, 0, 0, 0, 0, 0, 0,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231,224,216,254,218,232,253, 0, 0, 0, 0, 0, 0, 0,242, 0,218,171,238,223,241,234,183, 0, 0, 0, 0, 0, 0, 0,248, + 0, 26,249,178,201,252, 0, 12, 0, 0, 0, 0, 0, 0, 0,218, 0,211,174,213,234,220,223,136, 0, 0, 0, 0, 0, 0, 0,249, + 0, 25,188, 0,225,201,215,238, 0, 0, 0, 0, 0, 0, 0,212, 0, 58,150,148, 95, 23, 16,213, 0, 0, 0, 0, 0, 0, 0,156, + 0,206, 76, 0,227,131, 55,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 68,137,237,241, 44, 68, 14, 0, 0, 0, 0, 0, 0, 0,124, 0,159,232, 5,172,154,179, 44, 0, 0, 0, 0, 0, 0, 0, 87, + 0, 0,220,195,129, 58,241,224, 0, 0, 0, 0, 0, 0, 0,231, 0,196,202,197,223, 15,146,129, 0, 0, 0, 0, 0, 0, 0,234, + 0,177,218,218,246,217,147,143, 0, 0, 0, 0, 0, 0, 0,201, 0,182,178,237,247, 0,103,243, 0, 0, 0, 0, 0, 0, 0,173, + 0,248, 6, 15,206, 5, 8, 17, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232,114, 96, 54,190,241,197, 0, 0, 0, 0, 0, 0, 0,241, 0, 4, 76, 73,163,232, 68,248, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 7, 81, 88, 51, 57,130,173, 0, 0, 0,131, 0, 0, 0, 90, 0,103, 56, 88, 51,184, 38,182, 0, 0, 0,131, 0, 0, 0,174, + 0, 38, 56, 35, 79, 57, 18,125, 0, 0, 0, 23, 0, 0, 0,155, 0, 7, 56, 74, 14, 72, 18, 73, 0, 0, 0, 28, 0, 0, 0, 74, + 0,236,129,195, 36,250,238,243, 0, 0, 0, 0, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,129,199,181,129,231,219, 0, 0, 0,246, 0, 0, 0,250, 0, 7,201,238,129,250, 55,136, 0, 0, 0,210, 0, 0, 0,209, + 0, 86, 56, 88,188, 72, 9,173, 0, 0, 0, 80, 0, 0, 0,214, 0,185, 83,238,228, 72, 9,173, 0, 0, 0,133, 0, 0, 0,235, + 0, 0, 56, 90,139, 57, 20, 0, 0, 0, 0,182, 0, 0, 0,170, 0, 7, 56, 74,211, 72,130,148, 0, 0, 0, 28, 0, 0, 0,128, + 0,236, 54,190,245,167, 86,247, 0, 0, 0, 0, 0, 0, 0,235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,183,147,248,221,198,223, 0, 0, 0,129, 0, 0, 0,220, 0,218, 4,234,231,253, 97,254, 0, 0, 0,217, 0, 0, 0,220, + 0,214,129,119,223,184,238,243, 0, 0, 0,218, 0, 0, 0,195, 0,144, 80,129,201, 48,208, 44, 0, 0, 0,201, 0, 0, 0,129, + 0,128,211,238,244,211,218,218, 0, 0, 0,144, 0, 0, 0,201, 0,121,150,148,198,113, 0,110, 0, 0, 0,158, 0, 0, 0,124, + 0,232, 4,197, 23, 97, 6,154, 0, 0, 0, 82, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,209,231,184, 68,241, 22, 48, 0, 0, 0, 23, 0, 0, 0, 44, 0,232,231, 61,186,221,241,217, 0, 0, 0, 41, 0, 0, 0,223, + 0,238,188,243,241,207,234,183, 0, 0, 0,202, 0, 0, 0,231, 0,213,231,129,209,231,249,129, 0, 0, 0,241, 0, 0, 0,246, + 0,178,136,238,223,218,206,212, 0, 0, 0,254, 0, 0, 0,217, 0,249,203,212,233,177, 0,180, 0, 0, 0, 0, 0, 0, 0,113, + 0,239,232, 97, 82,160, 45, 66, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,254, 15,232,186,120, 68, 56, 0, 0, 0, 96, 0, 0, 0, 87, 0,196,192,224,137, 53, 39,250, 0, 0, 0, 50, 0, 0, 0,232, + 0, 58, 81, 85,211, 57, 24,173, 0, 0, 0, 21, 0, 73, 0,144, 0, 80, 56, 35,196, 57, 30,173, 0, 0, 0, 58, 0,146, 0,175, + 0, 58, 56, 6, 80, 33, 24,173, 0, 0, 0, 19, 0,156, 0,102, 0, 28, 56, 70, 14, 57, 78, 73, 0, 0, 0, 28, 0, 9, 0, 74, + 0,213,183,204,212, 57,212,243, 0, 0, 0, 0, 0,232, 0,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119, 63,233,232,196,231,129, 0, 0, 0,196, 0,138, 0,247, 0, 0,183,235,244,245,217,129, 0, 0, 0, 0, 0,244, 0,223, + 0, 28, 56,142,218, 57,194,195, 0, 0, 0, 13, 0,146, 0,175, 0, 58, 56, 70, 51, 72, 78,195, 0, 0, 0,212, 0,124, 0,204, + 0,131, 56, 8,177, 33,237,203, 0, 0, 0,176, 0,153, 0,144, 0, 28, 56,120, 51, 72, 24,173, 0, 0, 0, 95, 0, 18, 0,128, + 0, 94, 83,117, 0,136, 31, 0, 0, 0, 0,201, 0,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 22,224,233, 0,224,231,227, 0, 0, 0,254, 0,231, 0,192, 0,218, 4,235,232,129,254, 87, 0, 0, 0,234, 0,136, 0,245, + 0,210,231, 0,231,143,169,129, 0, 0, 0,246, 0,201, 0,119, 0,237,201,214,220,220, 0, 66, 0, 0, 0,220, 0,147, 0,167, + 0,103,163, 77, 0,143,183, 13, 0, 0, 0,182, 0,188, 0,188, 0, 40,150,155,225, 57, 78,213, 0, 0, 0,133, 0,130, 0,194, + 0,174,165, 4, 9,209, 10, 87, 0, 0, 0,123, 0,126, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,244,217,201, 85,238,183, 15, 0, 0, 0,159, 0, 6, 0, 90, 0, 86,253,247,247,220,160,123, 0, 0, 0,202, 0, 50, 0,179, + 0,202,220,144,227,184,245,221, 0, 0, 0,227, 0,220, 0,245, 0,234,231,253,134,250,216, 87, 0, 0, 0,241, 0,218, 0,241, + 0,110,212,238,183,129,119,218, 0, 0, 0,119, 0,220, 0,218, 0,123,188,148,202,184,210,143, 0, 0, 0, 0, 0,144, 0,201, + 0, 56, 4,186, 4, 4,232, 15, 0, 0, 0,175, 0, 6, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192,224, 10, 90,192,155, 71, 0, 0, 0, 8, 0, 85, 0, 42, 0,119,232,247,241,241,246,220, 0, 0, 0,234, 0, 85, 0,221, + 0,121, 15, 85,221, 72,101,173, 0,139, 0,133, 0,156, 0, 43, 0,121, 83, 35, 56, 51, 24,173, 0, 11, 0,133, 0,146, 0,214, + 0, 38, 56, 70, 4, 72, 24,194, 0,150, 0, 58, 0, 69, 0,204, 0, 38, 5, 70, 56, 72, 78, 73, 0, 14, 0, 58, 0, 9, 0,128, + 0,247,177,199,224, 33,254,110, 0,174, 0, 96, 0,201, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,201, 60,129,224,241,220, 0,254, 0,144, 0,232, 0,103, 0,208, 0,199,218,183,136,101, 0,228, 0,220, 0,201, 0,209, + 0, 86, 83,219,255, 72, 39,243, 0,183, 0,213, 0, 69, 0,233, 0,205,183,142,221,167, 0,243, 0,218, 0,133, 0, 27, 0,235, + 0, 0,221, 85, 56,221,213,238, 0,129, 0,182, 0, 0, 0,247, 0, 7, 56, 53,221, 72, 24,173, 0,139, 0,131, 0,156, 0, 34, + 0, 58,184, 60, 54, 54,176,134, 0, 36, 0, 94, 0,144, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,213,183,246,250,143,202,129, 0,250, 0,231, 0,241, 0,160, 0,218,221,253,211,220,254,254, 0,119, 0,231, 0,147, 0,247, + 0,144,211,247,218,177,218,180, 0,253, 0,201, 0, 0, 0,237, 0,238,201,116,129,224,129,243, 0,246, 0,220, 0,247, 0,216, + 0,215,194,175,218,184,249,113, 0,201, 0,246, 0,246, 0,198, 0, 7,150,155,150,167,176,243, 0,225, 0, 40, 0,146, 0,238, + 0,209,217, 4,250,241, 41,183, 0, 0, 0, 41, 0, 15, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,117,220, 4,241,241, 45, 4, 0,231, 0, 22, 0, 89, 0,239, 0,201,253, 4,117,178,232, 62, 0, 91, 0,218, 0,160, 0, 55, + 0,233,247, 71,217, 63,254,224, 0,232, 0, 86, 0, 10, 0,254, 0,216,247,218,232,184,246,224, 0, 0, 0,178, 0,218, 0,177, + 0,217,218,212,224,136,183, 33, 0,145, 0,253, 0, 88, 0,250, 0,238, 94,194,147, 33,173,206, 0,228, 0,245, 0,225, 0,237, + 0,196, 55,105, 22, 4,220, 15, 0, 5, 0, 46, 0, 40, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,115, 53,241,241, 4,127,245, 0, 5, 0,190, 0,173, 0,183, 0,216, 71,129, 56, 68, 22,218, 0, 22, 0,106, 0, 90, 0,224, + 0, 28, 56, 35,255, 5, 30,128, 0,211, 0, 21, 0,130, 59,155, 0, 52, 56, 88,177, 72, 30,242, 0, 63, 0, 80, 0,126,229,144, + 0, 40, 56, 70,221, 57, 78, 35, 0,150, 0, 58, 0, 32, 46,144, 0, 58, 56, 60, 56, 72, 30, 70, 0, 14, 0, 28, 0, 9, 27,128, + 0,212,183,128,183, 33,243,192, 0, 62, 0,123, 0,234,223,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,227,246,129,108, 80,159, 0, 0, 0,209, 0,223,227,232, 0,194,218,153, 15,217,217,246, 0,129, 0,250, 0,232,231,172, + 0, 28, 83, 35, 15, 72, 24,235, 0,171, 0, 25, 0,130,246,232, 0, 52,177,175, 44,217,191,165, 0,118, 0,191, 0,146,166,164, + 0,176, 56,120,184,221,176,204, 0,180, 0,139, 0, 0,157,247, 0, 58, 56,120, 56, 72,176, 53, 0,211, 0, 30, 0,185,153, 0, + 0,234,183,192,250,143,241,192, 0,211, 0,241, 0,201, 45, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119,224,253, 5, 33,218,232, 0,250, 0,123, 0,198,202,241, 0,238,254,201,245,217,178,224, 0,220, 0,241, 0,217,231, 34, + 0, 0,171,218,218,122, 0,231, 0,229, 0, 0, 0,237, 0, 0, 0,183,246,216,241,217,224,218, 0, 14, 0,217, 0,241,246, 63, + 0,210,210,229,183,183, 57,183, 0, 0, 0,231, 0,193,223,246, 0, 58,150,124,203, 57,182,238, 0,198, 0,158, 0,153,247, 52, + 0, 70,240, 14, 14,180, 49, 94, 0, 55, 0, 62, 0, 82, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 77, 44,241,241, 82, 44, 0,241, 0,241, 0, 22, 57,137, 0,247,246,241, 24, 4, 33,231, 0,209, 0, 4, 0, 15, 82, 82, + 0,247,247, 43,218,241,220,116, 0,181, 0,231, 0,192, 32,196, 0,223,232,224, 38,217,250,168, 0, 22, 0,241, 0, 56,250, 22, + 0,249,217,213,254,183,241,245, 0,119, 0,217, 0,231, 73,196, 0,182,236,237,231,183,218,180, 0,246, 0,231, 0, 0,213,217, + 0, 22, 29,131, 15, 15, 49, 29, 0, 55, 0, 41, 0, 62,137, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,198, 0,192, 4, 0, 0, 65, 0, 54, 0, 6, 0, 76, 14, 49, 0,231,224,217,244, 55,160, 4, 0,132, 0, 44, 0, 55,107,128, + 0,103, 81, 35,221, 64,176,155, 0,163,210, 58, 0,146,155,146, 0,205, 4, 35, 44,206, 28,235, 0, 63,123, 58, 0,156,246, 0, + 0, 16, 56, 70, 33, 11, 78,187, 0,113,228,131, 0,130,155,119, 0, 38, 4, 70, 56, 11, 78, 88, 0, 14, 19, 40, 0, 9, 74,125, + 0,196,221,246, 5,250,243,253, 0,174,241,213, 0,232,216,188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231, 22,216,217,234,217,234, 0,184,192,241, 0,140,224,248, 0,119,217,119,250,232,234,217, 0,234,115,192, 0,190,248, 0, + 0,205,221,235,255,203,176,235, 0,188,210,133, 0,229,247,119, 0,185,255,253,183,143,176,242, 0,218, 67,213, 0,227,246,223, + 0,194, 33, 10,129,211,237,246, 0,212,249,171, 0,164,198,212, 0, 0, 56,120,221, 11, 78,120, 0,139, 11, 28, 0,156, 34, 0, + 0,119, 54,246, 56,143,139,248, 0,198, 4,148, 0,227,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,207,129,234, 0,119,224,154, 0,234,202,247, 0,192,248,224, 0,218,129,241, 83,129,224,241, 0,224, 50,253, 0,250,189, 67, + 0,118,210,238,223,210, 67,218, 0,220,150,234, 0,234,248, 55, 0, 10,245,220, 0,215,217,245, 0,192,231,220, 0,240,245,241, + 0,233,250,218,129,119,218,202, 0,247, 81,220, 0,169,237,234, 0,121,150,148,150,201, 30,148, 0,171,201,158, 0, 0,204, 30, + 0,132,126, 85, 57,137, 5,156, 0, 82,174, 0, 0, 99, 56, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220,130,108,217, 97,220, 96, 0,190, 82, 99, 0, 17,248, 81, 0, 65,190, 55, 8, 10,220,192, 0, 53, 4, 97, 0, 17,167, 55, + 0,198,234,228,224, 47,224,208, 0, 57, 51,153, 0,232,148,173, 0,198,202, 15,207,157, 66,217, 0,198,202,173, 0,232,244,224, + 0,218,178,163,129,227,129,254, 0,129,232,220, 0,254,241,245, 0,139,201,180,201, 80, 57, 5, 0,200,158,246, 0, 0,247, 12, + 0,218,119, 55, 60,129, 0, 59, 0, 0, 0, 41, 0, 0,184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 91,213,107,130,207, 91, 0, 0,126, 31,206, 0, 82, 44, 0, 0,245,228,106, 85, 49, 63,178, 0, 39,108, 33, 0,182, 65, 25, + 0, 28, 81, 85, 83, 51, 59,128, 0,237,150, 58, 50, 20,204,247, 0, 28, 4, 85,255,150, 27,219, 0,171,218, 80,138, 77,144,199, + 0, 28, 4, 70, 56, 51, 59,161, 0,210, 51,171,130,185,233,252, 0, 40, 4, 70, 56, 11, 27, 70, 0, 14, 19, 58, 50, 20, 27,125, + 0,216,221,219, 15, 55,227,209, 0,192,220,188,248,161,248, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,216,232,220,218,231,245, 0,221,129, 0,224,232, 14,217, 0,247,196, 6,234,231, 0,231, 0, 22,224, 67, 0,231,192,245, + 0, 40, 81, 85, 15, 14,109,235, 0,218,245, 80,205,222,247,180, 0,215, 4,219, 4,118, 2,235, 0,201,178, 13,162, 20,253,214, + 0, 30, 4,219, 44,177,229,119, 0,183,217,213,185,229, 0,235, 0, 28, 4, 53,221, 11, 27,120, 0,203, 95,131,103,156,144, 0, + 0,136,221,114,242,245, 20,224, 0, 49,224,241,248,229,241,125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,231,232, 14, 62,209,223, 0, 15,248,209,231,241,180,232, 0,212,183,181,201,224,239,134, 0,241, 0,254,234,238,242, 49, + 0,119,129,253,224,220,246,220, 0,234,103,215, 0,218,250,241, 0, 47,234,248,212, 55,234,250, 0,192,181,248,209,192,138,231, + 0, 0,207,144,129,238,199,223, 0,227,235,218,201,242,247,192, 0,121,150,155,158,210, 34,213, 0,185,188, 52,252,162,125,178, + 0,180, 68,186,132,248, 89, 0, 0,128, 8, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220, 0, 0, 84,224,159, 55, 0, 31, 33, 81,186, 85, 57, 96, 0,199,106,220,241, 53, 41, 33, 0, 5,142,207,114, 14, 82,239, + 0,247,163,238,231,198, 0,254, 0,250,154,217, 0,128,241,253, 0,231,202,231,115, 0,231,231, 0,221, 6,156, 29,232,199,241, + 0,218,129,231,224, 0,247,234, 0,209,234,245, 93,250,241,224, 0,218, 0,178, 6, 0,252,238, 0,232,198,118,235, 0, 6,238, + 0, 66, 6,129, 6,114, 82,248, 0, 0, 0, 8, 6, 82, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 57, 29,122,128, 0, 53, 3, 0, 22, 0, 0, 99, 35, 98,136, 0,234, 4, 78,221,220, 87, 54, 0, 17,241, 49, 0,221, 4,211, + 0, 16, 81, 85, 22, 11, 59,233,191,210, 23, 58, 16, 34,130,238, 0,103, 4, 85,177, 48,166,164,231,249,212,225,101,229,247,253, + 0,121, 4, 6, 15, 64,109,102,218,139, 25,131,185,104,235,144, 0, 38, 56, 6, 15, 19, 27, 88, 95, 11, 19, 40, 38, 69,125,128, + 0,201,136, 32,234,129,241,128,217,254, 21,183,115,145,241, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,196,102,196,253,241,224,198, 31,198,245,152,202,248, 45, 0,119, 0,246,223,231,147,247, 38,196,220, 0,192,248,218, 0, + 0, 1,221, 85,211,245,153,246, 67,218,178,133,132,174,173,119, 0,205,177,219,183,245,222,238,234,129,201, 78,227,247,246,254, + 0,103, 33, 49,218,177,229,238,227,119,216,191,252,235,247,247, 0, 26, 56, 49, 51, 11,104,120,176,139,210, 58, 0,156, 20, 0, + 0, 39, 63, 60,198,216,153,192,118,241,225, 0, 0, 53, 72,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234,231,209,224,250,246,190,248,227,217,220,232,202, 86, 81, 0,201,227,209,253,248,161, 22,216,250,245,232,251,152, 63,250, + 0, 0,198,235,234, 0, 0,134,181,214,223, 0,253,243,241,223, 0,218,246,220,132,234, 17,254,223,186,224,216,242,250,204,224, + 0,235, 15,246,201, 43,253,163,235,209,129,235, 18,198,227,159, 0, 18,118,124, 22,210, 36,124,227,236, 55,188,146,204,154,139, + 0, 29, 89, 15, 59, 44,186, 70, 14, 0, 0, 65,122, 0, 87,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,130, 55,113, 82, 66,132, 55,197, 49,135, 10,135, 0,106,114, 0,224, 49, 49, 85, 82, 29, 4, 95, 6,152, 57,224, 44, 0,248, + 0, 77,202,243,231,234, 0, 55,232, 0,224,241, 0, 27, 97,231, 0,143,241,234,198,150,145,163,239,140, 22,241, 89, 4,183, 62, + 0,188,217,234,216,254, 63,101,245,216,241,223,129,209,234,218, 0, 63,238,180,246,246,235,218,165,246,118,199,201,246, 94,238, + 0, 55,169,100, 81, 5, 51, 0, 10,161, 0, 15, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,217,116, 0, 68,110, 35, 70, 0, 4, 41, 5, 6, 14, 15,100, 0, 56, 41,241,234,162, 85,241, 85,111, 13, 97, 56, 94, 59,232, + 0, 52, 81, 85,203, 64, 20,147, 22,203,210, 25, 37,208,238,178, 0, 52, 15,142,183,163,229,253,231,218,249,201,116,181,222,243, + 0, 75, 4, 70,211, 11, 36,128,178,163, 51,133,154, 65,104,249, 0, 58, 4, 70, 15, 11, 27,128, 95, 11, 95, 40, 0, 20, 69, 96, + 0,246,129,227,250,188,246,246,217, 11,234,220,248,247,175,183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18,217,198,217, 97,120,220,220,231,254,188,192, 71,248, 83, 0,116,212,201,244,231,191,242,234,231,220,197,223,247,145,129, + 0, 40, 56,219,183, 11,174,235,218,237, 23,133,144,173,238,136, 0, 24,255,111,218,115,124,235,247,183,201, 26,194, 37,241,217, + 0, 39,221,235,169,113,185,146,183,218,238, 80, 0,212,223,218, 0, 40, 4,120,211,139, 20,252, 0,210,210, 58, 47, 16,128,250, + 0,216, 55, 60,115,129,227,242,248,192, 26,248,227, 10,230,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129, 57,232, 0,220, 0,246, 81, 15,107,248,247,129,250,119, 0,217, 96,243,246,250,220,234,232, 0,132,224,220,112,231,221, + 0,215,183,253,246,153,128,217,159,217,246,213,106,232,245,231, 0,201,198,254,231,135,247,129,232,135,184,241, 4,134,248,250, + 0,252,218,227,223,246,201,183,223,217,217,183,218,181,212,217, 0, 75,118,124,251,211,202,213,189,214,201, 55, 0, 52, 0,221, + 0, 8,111, 4, 85,159, 41, 66,105,127,132, 0, 90, 45, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192, 8,153,241, 6, 99, 22, 6,241, 64, 5, 68, 57, 29, 10, 0,244,117, 4,127, 68,152, 14, 65, 0, 91, 0, 41, 29, 4, 33, + 0,135,181,196, 0,234,165,243,240,181,232, 55,231, 59,241,202, 0, 49,239,192,231, 90,241,133,250,220,197, 75, 29,197, 4, 33, + 0,218,182,129, 0,254,199,143, 22,248,114,232,241, 15,246,129, 0,218,119,183,214,234,247,183, 91, 10, 10,217,220,246,197,143, + 0,196, 6, 4,131, 0, 0, 59, 10, 57, 0, 0, 0, 0, 77, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247, 41, 33,247, 0,135, 97, 89, 0, 0, 0, 0, 8, 6, 66, 0,232, 10,224,211,118,118,224,197,105, 56, 87,225,142, 14,131, + 0, 47, 81, 85, 55, 83, 88,147,171, 51, 51, 64, 16, 71, 71,182, 0, 47, 81, 85, 22, 54, 59,214,196,177, 51, 67, 16,124,101,243, + 0, 1, 4, 6, 14, 83, 10, 65,171, 67, 14, 11, 16, 43,103,131, 0, 1, 4, 6, 55, 5, 10, 65, 55, 14, 14, 11, 16, 43, 43, 96, + 0,205, 83, 85, 15,184,222,246,220, 63,217,143,119,212,198,218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 22,128,218,210,247, 0,231,169,249,129,119,178,201,201, 0, 38, 22, 65,236,203,144,207, 36,231,182,163,171,215, 0,163, + 0, 1, 81, 85,211, 54, 59,147,210, 11,113, 67,125, 71,252,182, 0, 1, 81, 85,196,129,140,242,210, 51,113,136,144, 16,153,201, + 0, 26, 4, 49,176, 54, 59, 65,124,178, 67, 64, 16, 0,173, 30, 0, 26, 4, 49, 55, 54, 59, 65, 55, 67, 67, 64, 71,103, 26, 96, + 0, 75, 4, 85,201,129,140,238,211,211,197,123,119,119,175,243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,176,177, 90,210,255,227,227,169,231,217,136,220,231,119, 12, 0,176, 15, 65,164,113,153,238,236,218,129,178,212, 52,225,207, + 0, 0, 63,214,112,115,253,163,227,201,203, 11,119,178, 0,163, 0, 71,196,214,200, 63,135,254,223,254, 13,183,245,129,217,129, + 0, 47,228, 65,175,178, 0,177, 88,139, 51,139,146,116, 12, 81, 0,121,118,124,112, 14,125,122,112, 28, 14, 11, 47, 43, 52, 72, + 0,181,220,135,209,245,166,217, 59, 72, 82,118, 61,184, 49,217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 45,196, 39,228,181,240,220,223,224,241,135,129, 43,224, 34, 0,227,132,197,219,247,231,206,227,209,234,231,254,241,108, 33, + 0,198,181,214,175, 11,116,129,119, 83,234,184,119,129,212,129, 0,198,159,129,233,250,140,129,128,181,250,241,132,254, 4,254, + 0,113, 4,195,227,212,238,184,246,217,238,122,144,203,217,129, 0,122,118,180,166, 11,103,143,120, 91,197, 11,155,182,178,143, + 0,216, 22,248, 68, 22, 16, 5, 64,107, 54, 4,240,186, 55, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129, 10,218, 41, 4,216,113,152, 68, 4, 6,233,246, 4,217, 0,218,246,180,232,129,224,224,106,241, 0,129,241,250,241,221, + 0, 66, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,212, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 87, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 87, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,207, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,198, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,143, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,136, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 11, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,122, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 11, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 11, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 11,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,103,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132,223,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 64, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,123, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39, 11, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 11, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,139,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,125,252,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,129,227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,131,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,158,156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,213,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,165,198,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39,203, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 95,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,188,205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,253,248,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2,248,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 35, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 51,116, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 11, 24, 0, 0, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 67,101, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 14, 24, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123,177,194, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,194,212, 0, 0, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0,119,231,218, 0, 0, 0,251, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123,113,138, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0,123,136,138, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123, 11, 16, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,123, 64, 24, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123,177,162, 0, 0, 0,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,211,250, 0, 0, 0,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,228,218, 0, 0, 0,244, 0, 0, 0, 0, 0, 0, 0, 0, + 0,122,212,101, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0,213,122,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,176,188,249, 0, 0, 0,214, 0, 0, 0, 0, 0, 0, 0, 0, 0,139, 25, 78, 0, 0, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, + 0,231,128,223, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,142, 0,232, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,223, 32, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11,163, 0, 0, 0, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,206,178,191, 0, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, + 0,237,129,122, 0, 0, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,211,249, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218,218, 98, 0, 0, 0,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129, 98,227, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,197, 34, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 56,101, 0, 19, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 33,116, 0, 79, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 56, 50, 0, 19, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 33, 37, 0, 25, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47,183,231, 0,201, 0,242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,165, 33, 76, 0,178, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,174,196,236, 0,199, 0,151, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 56,101, 0, 19, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 33,144, 0,191, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40,221, 37, 0,139, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 56, 47, 0, 13, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0,215, 15,116, 0,218, 0,208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,129,173, 0,218, 0,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 15, 0, 0,227, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, + 0,225,167,213, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201,183,254, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,167,119, 0,234, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0,121,177,176, 0,188, 0,125, 0, 0, 0, 0, 0, 0, 0, 0, + 0,250,143,245, 0,219, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,209,232, 0,206, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,224, 6, 0,192, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119,183,243, 0,249, 0,238, 0, 0, 0, 0, 0, 0, 0, 0, 0,201,217,245, 0,234, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,207,218, 0,212, 0,201, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,183,213, 0,210, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129,221,251, 0,203, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,234, 44,106, 0,234, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,181,214, 84, 0, 53, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123, 56, 35, 0, 64, 77, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,123, 56,152, 0,150, 77, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 56, 35, 0, 11, 50, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 56, 35, 0, 12, 50, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123, 56,190, 0,118, 98,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,204, 57,172, 0,212,246,248, 0, 0, 0, 0, 0, 0, 0, 0, 0,174, 87,142, 0,195,242, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123, 56,165, 0, 11, 98, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,165, 0,228, 98, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0,123, 56, 60, 0,196,162,204, 0, 0, 0, 0, 0, 0, 0, 0, 0,123, 33,120, 0, 11,130, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0,216, 4,165, 0, 95,190,199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,218,189, 0, 0,241,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,183,247, 0, 0,129,241, 0, 0, 0, 0, 0, 0, 0, 0, + 0,243, 15,174, 0,249, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243,217,189, 0, 0,190,231, 0, 0, 0, 0, 0, 0, 0, 0, + 0,218, 72,174, 0,247,144, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,113,252, 0,201,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220,129,250, 0,243, 89, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,227,172, 0,112,241,102, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 29, 6, 0, 8, 17, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0,143,183,246, 0,196,190,246, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,108,253, 0,221, 27,145, 0, 0, 0, 0, 0, 0, 0, 0, + 0,178,129,252, 0,119, 10,247, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,245,238, 0,210,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 19,177,105, 0,171, 89,244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29,241, 6, 0,232,248, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 33,160, 0,220,129, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 83, 35, 22, 23,185, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,184, 10,183,158,185,174, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 51, 8, 11,139,154,157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 51, 35, 14, 80, 50,102, 0, 0, 0, 0, 0, 0, 0, 0, + 0,121,183,120,108,136, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,154,248,172,234,234,195,192, 0, 0, 0, 0, 0, 0, 0, 0, 0,166,231,172,169,248,223, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 83, 35,183, 25, 32, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,183,193,183, 12,127,199, 0, 0, 0, 0, 0, 0, 0, 0, + 0,116, 83, 84,210,210, 34,246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 54,120, 63, 95,130,233, 0, 0, 0, 0, 0, 0, 0, 0, + 0,182, 87,106,135,176, 39,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,115,240,241,241,234, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,234,181,224,234,181, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0,119,183,247,201,223, 86,253, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,254,206,209,224,232,250, 0, 0, 0, 0, 0, 0, 0, 0, + 0,194, 52,246,201,238,215, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,210,155, 94, 94,246,247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 6, 17,140,155,151, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,246, 97,161,218, 99, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,239, 53, 93, 53,106, 55, 0, 0, 0, 0, 0, 0, 0, 0, + 0,204, 76,246,247,202,245, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 63,229, 49, 94,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,249,210,247,191,223,246,207, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,177,191,187,178,231, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 49, 29, 82, 43, 57, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 85,191, 6, 22,145,196,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,248, 61,241, 4, 4, 93, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 83, 88,177, 48,189,208, 0, 0, 0, 0, 0, 0, 0,229, 0, 48, 83,155,163,178,205,208, 0, 0, 0, 0, 0, 0, 0,199, + 0, 23, 83, 10,171, 25, 37, 34, 0, 0, 0, 0, 0, 0, 0,152, 0, 25, 5, 27, 51,139,103, 9, 0, 0, 0, 0, 0, 0, 0, 61, + 0,216,183, 85,129,183,190,249, 0, 0, 0, 0, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,199,196,159,254,183,246, 50, 0, 0, 0, 0, 0, 0, 0,224, 0,227,247,140,247,245, 0, 78, 0, 0, 0, 0, 0, 0, 0,239, + 0,123, 83,152,203,210,162,195, 0, 0, 0, 0, 0, 0, 0,204, 0,178, 57,209, 22,249,162,246, 0, 0, 0, 0, 0, 0, 0,246, + 0, 12, 72, 32, 22, 11,185,103, 0, 0, 0, 0, 0, 0, 0,238, 0,123, 83, 27, 3, 25,162,164, 0, 0, 0, 0, 0, 0, 0,144, + 0,123,129, 98,169,158,190, 90, 0, 0, 0, 0, 0, 0, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247, 51,201,241,220,244,197, 0, 0, 0, 0, 0, 0, 0,179, 0,227,129,244,231,227,140,254, 0, 0, 0, 0, 0, 0, 0, 55, + 0,228,215, 0,223,231,251,232, 0, 0, 0, 0, 0, 0, 0,195, 0,227,231,128,108,202,241,224, 0, 0, 0, 0, 0, 0, 0, 32, + 0, 0,218,119,235,234,220,231, 0, 0, 0, 0, 0, 0, 0,227, 0,188,201,238,235, 0, 0,238, 0, 0, 0, 0, 0, 0, 0,247, + 0, 82,248, 45, 54, 67,199, 5, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,165,111,247,111, 34, 8, 4, 0, 0, 0, 0, 0, 0, 0,105, 0,248,241,111, 6,241,241, 55, 0, 0, 0, 0, 0, 0, 0, 13, + 0,180,135,246,220,216, 86,129, 0, 0, 0, 0, 0, 0, 0,246, 0,231,245,192, 76,192,241,254, 0, 0, 0, 0, 0, 0, 0, 4, + 0,218,246,213,248,227,217,217, 0, 0, 0, 0, 0, 0, 0,224, 0,129,250,218,198,231,227,195, 0, 0, 0, 0, 0, 0, 0,245, + 0,201, 56, 56,137,196, 82, 15, 0, 0, 0, 0, 0, 0, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89, 59, 29, 6, 48, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,241,211, 97,241, 50, 81, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 40, 81, 88, 19, 33,130,173, 0, 0, 0, 23, 0, 0, 0,144, 0,236, 4,155,108, 54,189,204, 0, 0, 0,212, 0, 0, 0,227, + 0, 0, 56,120,203, 33, 69,148, 0, 0, 0, 58, 0, 0, 0,199, 0, 75, 4, 42,150, 72, 50, 73, 0, 0, 0, 80, 0, 0, 0,222, + 0,201,183,149,253,129,135,243, 0, 0, 0,218, 0, 0, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,198, 22,200,248, 81,241,244, 0, 0, 0,224, 0, 0, 0,240, 0,240, 62, 0,226,217,227,231, 0, 0, 0, 13, 0, 0, 0,241, + 0, 75, 56, 88,118, 83, 43, 71, 0, 0, 0,249, 0, 0, 0,238, 0, 0,255,204,183, 72, 16,173, 0, 0, 0,191, 0, 0, 0,246, + 0, 0, 56, 35,201, 33,144,238, 0, 0, 0,210, 0, 0, 0, 0, 0,182, 81,156,210, 33,138,173, 0, 0, 0, 95, 0, 0, 0,227, + 0,134,108,153,248, 56, 0,243, 0, 0, 0,241, 0, 0, 0,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,129,250, 29,254,224,234,222, 0, 0, 0,224, 0, 0, 0,140, 0,166,217,157,250,171,120, 95, 0, 0, 0, 43, 0, 0, 0, 15, + 0,174,178,234,246,231, 7,254, 0, 0, 0,246, 0, 0, 0,220, 0,234,231,228,217,217,218,224, 0, 0, 0,241, 0, 0, 0,232, + 0,212,212,246,162,250,227,119, 0, 0, 0,208, 0, 0, 0,246, 0, 0,203,164,223,113, 0,243, 0, 0, 0,218, 0, 0, 0,124, + 0, 29,223, 44, 8,134, 19, 81, 0, 0, 0, 61, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,226, 0, 90, 41, 62, 6, 65, 0, 0, 0,207, 0, 0, 0, 99, 0,246, 68,129, 89, 54, 0,227, 0, 0, 0,155, 0, 0, 0, 41, + 0,227,247,220,227, 15,211, 22, 0, 0, 0,231, 0, 0, 0,108, 0, 55,212, 68, 94,181,232,143, 0, 0, 0,105, 0, 0, 0,113, + 0,183,218,234,209,129,232,129, 0, 0, 0,183, 0, 0, 0,247, 0,250,183,177, 6, 4,202, 87, 0, 0, 0,247, 0, 0, 0,183, + 0,241, 4,192, 0, 6, 57, 49, 0, 0, 0, 14, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,250, 67, 85,248, 8, 5, 0, 0, 0,248, 0, 0, 0, 0, 0,241, 10, 81,180, 4, 0, 93, 0, 0, 0, 62, 0, 0, 0, 4, + 0,123, 4, 85,249, 56,138,110, 0, 0, 0, 19, 0,181, 0,246, 0, 80, 56, 70,218,177,236,195, 0, 0, 0,178, 0,144, 0,214, + 0, 19, 4, 70,129,221, 24,235, 0, 0, 0,210, 0,112, 0,246, 0,131, 56, 60,211, 33, 78, 34, 0, 0, 0,158, 0, 18, 0,185, + 0,218,129,239,241,129,248,224, 0, 0, 0,246, 0,177, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,223,196,190,231, 33,224, 4, 0, 0, 0,232, 0,202, 0, 4, 0,223,231,137,126,221, 0,140, 0, 0, 0,217, 0,241, 0, 62, + 0,216, 81,239,254, 83,248,195, 0, 0, 0,178, 0,252, 0,246, 0,178, 44, 93,196,129,248,101, 0, 0, 0, 94, 0,144, 0,219, + 0,122, 33,166,218,221, 0,119, 0, 0, 0,163, 0,238, 0,209, 0, 48,221, 53, 48, 15, 24,173, 0, 0, 0,188, 0,227, 0,147, + 0,216, 4,239,198,163,162,232, 0, 0, 0,169, 0,241, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,183,183,190,241,241,250, 59, 0, 0, 0,209, 0,250, 0,111, 0,201, 22, 82, 91, 5,192,220, 0, 0, 0,220, 0,232, 0, 97, + 0,183,231,223,195,224,246, 12, 0, 0, 0, 71, 0,246, 0,225, 0,216, 5,246, 4, 4, 45, 44, 0, 0, 0, 41, 0, 49, 0,129, + 0,238,238,201,126,254,136,241, 0, 0, 0,124, 0,178, 0,232, 0,191,113,128,242, 44, 3,183, 0, 0, 0,246, 0, 0, 0, 65, + 0,197, 8, 8, 55,128, 64,127, 0, 0, 0,127, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49,162, 82, 64, 5, 33, 4, 0, 0, 0,107, 0, 22, 0, 82, 0, 29, 99, 60,176, 49, 10, 0, 0, 0, 0,123, 0,170, 0, 0, + 0,218,246,209, 85,129,145,224, 0, 0, 0,129, 0, 78, 0,232, 0, 72,250,193, 33, 41, 57, 55, 0, 0, 0, 57, 0,123, 0,248, + 0,201,254,223,224,218,217,255, 0, 0, 0,254, 0,231, 0,214, 0,183,136,245,241,183,234,207, 0, 0, 0, 0, 0,227, 0,129, + 0,114, 89, 20, 67, 0, 6, 15, 0, 0, 0, 0, 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53,134, 66, 51,152, 0, 4, 0, 0, 0, 24, 0, 0, 0,194, 0,220,241,250, 94,241,135, 8, 0, 0, 0,160, 0, 89, 0, 0, + 0, 40, 56, 85,221, 57,194,238, 0,177, 0,158, 0, 34, 0,146, 0,225, 56, 53,108,177,176,243, 0,245, 0,213, 0,227, 0,214, + 0, 16, 56,111, 33, 54,182,238, 0,129, 0, 25, 0,185, 0,226, 0, 7, 56, 70, 33, 57, 78, 34, 0, 63, 0,188, 0, 50, 0,148, + 0,234, 33, 85, 83,224,135,232, 0,235, 0,110, 0,227, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,234,251,221,119,220,241, 0,197, 0,218, 0,232, 0,195, 0,199,223,248,232, 33,108,241, 0,220, 0,217, 0,232, 0,232, + 0, 40, 56,142, 44,184,205,195, 0,237, 0,191, 0,146, 0,246, 0,215,108, 35,217,177, 62,243, 0,248, 0,241, 0,103, 0, 0, + 0,194,221,219,129,177,212,218, 0,237, 0,171, 0,227, 0,201, 0, 24, 56, 85,221,177, 25,238, 0,188, 0,139, 0,205, 0, 0, + 0,248, 51,128, 44,250,182, 10, 0, 55, 0, 72, 0, 38, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241, 80,117, 22,243, 87, 6, 0,250, 0,134, 0,145, 0, 62, 0, 36, 22, 41,228,224,232, 4, 0,248, 0,232, 0,217, 0, 5, + 0,227,227,144,225,129,224,221, 0,227, 0, 0, 0,130, 0,241, 0,247,119,209, 22,227, 4, 66, 0, 0, 0, 28, 0, 60, 0,206, + 0,247,169,223,243, 44,129,129, 0,223, 0,232, 0, 55, 0,147, 0,101,218,238,246,183,183,183, 0,227, 0,242, 0,246, 0, 65, + 0, 82, 55,127, 29,102, 10,107, 0, 4, 0, 22, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1,250, 29,124, 81, 40, 15, 0,199, 0, 0, 0, 82, 0, 15, 0, 59, 84, 0, 87, 82, 15,197, 0, 85, 0, 51, 0,105, 0, 87, + 0,247,209,192,220, 15,250,241, 0,254, 0,241, 0,241, 0, 54, 0,119, 94,253, 4, 22,129,180, 0,138, 0,107, 0,246, 0, 29, + 0,183, 55,108, 59,129,220,231, 0,221, 0, 58, 0,167, 0,234, 0,178, 64,238, 48,108,243,129, 0,232, 0, 0, 0,232, 0,129, + 0, 0, 4,106, 0, 16,206, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 42, 6, 42, 61, 0, 22, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 29, 41, 95, 55, 0, 0, 29, 0, 22, 0, 0, 0, 0, + 0,122, 81, 85,184, 33,138, 85, 0,183, 0,158, 0,146, 88,147, 0,212, 54, 60, 44,183,241, 6, 0, 63, 0,178, 0, 50, 50,190, + 0, 28, 56,114,177, 83,139,114, 0,211, 0,139, 0,156,199,227, 0,131, 56, 35, 72, 57, 78, 70, 0,150, 0, 25, 0,205,104,144, + 0,143, 81,240,221,217,254,181, 0, 96, 0,192, 0,227, 22, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,201,253,209,129,254,143,181, 0,250, 0,247, 0,241,248,141, 0,183,253,227, 15,212,129,241, 0,138, 0, 63, 0,227, 0,232, + 0,133, 56,165,224,184,248,235, 0,245, 0,139, 0,252, 90,119, 0,123, 56, 53,221,113,241,219, 0, 97, 0, 13, 0, 27, 84, 99, + 0, 48,108,161,129, 56,218,199, 0,217, 0,201, 0, 0,235,202, 0,122, 15, 59,218,177,171,128, 0,183, 0,171, 0,164,230,235, + 0,216,221,152, 33,224,248, 93, 0,123, 0,183, 0, 90,232, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,224,250,117, 27, 49, 87, 15, 0, 50, 0, 63, 0,232, 31, 15, 0,183,183,234,254,209,196, 99, 0,247, 0,241, 0,111,227,137, + 0,220,183,119,231,217,242,247, 0,192, 0,216, 0,224,119,248, 0,224,192, 10, 64,248,234, 54, 0, 85, 0,203, 0,192, 8,108, + 0,119,234,246,254,221,245,246, 0,248, 0,243, 0, 6,234,247, 0,201,212, 0,218,218,206, 0, 0,178, 0,234, 0,237,232,234, + 0,122, 8, 29, 41, 0,159, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241, 62,192,150, 0,241,152, 0, 61, 0, 0, 0, 0, 16, 29, 0,114, 36, 68,151, 6, 87, 0, 0, 29, 0,162, 0,103, 0, 0, + 0, 4, 61, 85,217, 83,172, 55, 0,160, 0,206, 0, 0,142, 0, 0, 48,199, 15, 15, 4, 49,250, 0, 15, 0, 10, 0, 77,160,111, + 0,196,231,241,182,231,224,143, 0, 0, 0,217, 0,150, 50,124, 0,213,223,183, 22, 67,243,217, 0,220, 0,118, 0,241,226,207, + 0, 62, 56, 41, 0, 12, 29, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,186,250, 22, 63, 81,114, 17, 0, 22, 0, 21, 0, 0,179, 0, 0,135, 0, 22, 17, 48, 21, 0, 0, 0, 0, 89, 0,180, 0, 0, + 0, 40, 81, 85, 44, 51,134,233, 0,197,163,249, 0,181,204,195, 0,194,221, 35,196, 5,213,128, 0,245,216, 12, 0,232,223,245, + 0, 7, 4,240,217,167, 78,145, 0, 55,139, 80, 0,174,247,242, 0, 0, 4, 70, 33, 11, 24, 85, 0,171, 95, 80, 0, 47,227, 0, + 0,218, 4,198, 55,250,241,137, 0, 53,224,221, 0,246,120, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192,196,106, 55,248,169,174, 0, 0,241, 85, 0,195, 77,237, 0,105,135,248,242, 3,248, 0, 0,208,217,224, 0, 4, 51,192, + 0,236, 81,219,108,217, 24,244, 0,241,129, 58, 0, 73,242, 0, 0,212,221,147,221,178,215,235, 0,241, 13,178, 0,185,192, 71, + 0, 0,255,161,183,129,183,253, 0,122,217,245, 0,246,233,177, 0, 75, 81, 49,129,177,213,128, 0,158,122, 96, 0,154,248, 0, + 0, 0, 4,235,169,184,129,117, 0, 53,202, 76, 0,202,124, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232,217,192, 47,254,166, 22, 0, 59, 82,192, 0,220,152, 87, 0,231,254,209, 6, 30,241, 68, 0, 35, 65,192, 0,241,141, 7, + 0,250,206, 0,139, 0,231,231, 0,127,248,181, 0,231, 6,217, 0, 54,216,220, 6, 5, 15, 22, 0, 66, 4,177, 0, 59,172, 97, + 0,246,245,227,250,240,129,241, 0,231,253,220, 0,218, 56,220, 0,144,212,201,218, 0,237, 0, 0,201, 0,218, 0,245,135,245, + 0,204,143, 63, 15, 70, 53, 41, 0, 56,106,124, 0, 0, 96, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 49, 29,136, 64, 6, 45, 0, 29,137, 49, 0, 1, 5, 0, 0,186, 5, 8, 82,114,152, 0, 0, 22,127, 4, 0, 0, 0, 0, + 0, 55, 15,250, 0,231, 5, 14, 0,134,134,160, 0,241,232,223, 0,198, 41,111, 4, 57, 56, 81, 0, 67, 55,159, 0, 96, 55,135, + 0,212,253,231,245,129,184,217, 0,239,248,183, 0,192,250,217, 0,249,246,245,232,108,216,143, 0,220, 33, 0, 0, 5,118,129, + 0, 8, 62, 0,241, 15, 0, 0, 0,241, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 66,214, 29, 4, 17, 15, 0, 0,111, 0, 0, 0, 0, 29, + 0,123, 81,186,184, 54, 98,235, 0,224, 11,191, 98, 42,253,232, 0,123,221,239,250, 54, 98,128, 0, 0, 95,201, 98,222,155,239, + 0, 23, 81, 29,217,167,152,145, 0,231,144,178, 98,222,242, 49, 0, 80, 4, 70, 72, 51, 50,165, 0, 94,139, 25, 50,205,236,159, + 0,231, 56,248,232,202,209,244, 0, 4,192,164,239,241, 85,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192, 15,232, 23,253,220,137, 0,211,248,251, 10, 82,106, 15, 0,227,218,181,129,181, 61, 49, 0,246,241,248, 93, 65, 0,118, + 0,123,221,239,221,167, 98,214, 0,250, 62, 30, 98,209,140,201, 0,213,221,239, 22,201,238,246, 0,129,183,231,162,223, 30,179, + 0,122, 44,190, 5, 3, 77,165, 0,231,200,216,248,162,119,232, 0,178, 44, 68, 33,177,190,227, 0,113,250,191,162,121,247,178, + 0,243, 83,190, 56, 56,248,243, 0,131, 83,181, 98, 0, 29, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,232, 4,111,192, 4,192,159, 0,135, 68, 80,224, 8, 38, 4, 0, 62, 4,114,241,167, 65,230, 0, 27, 44,232,120, 68, 29,124, + 0,243,231,140, 2, 0,231,232, 0,241,209, 0, 36,220,120,250, 0, 0,218, 29, 4, 34,120,213, 0, 49, 41, 24,190, 4,114, 30, + 0,201,150,245,253,254,209,139, 0,241, 4,254,241, 76, 15,224, 0, 0,150,102, 33,241, 0,197, 0,231,242,118,190, 0, 0,254, + 0,159, 44,162, 45, 89, 26,253, 0, 41, 93, 0, 97, 13, 55, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33,159,172, 15, 21,146, 0, 0, 29, 6,132, 85, 55, 0, 0, 0, 53,239, 4, 53,135, 4, 6, 0, 49,100, 22, 6, 5, 6, 0, + 0,246,241,248, 15, 0, 89,112, 0,198, 97, 0,239, 25, 6, 56, 0, 4, 51, 17, 22,239,248,122, 0, 15,239,155,248, 15, 24, 41, + 0,129,232,253, 0, 0,209,212, 0, 44, 49,159,241, 93,253,163, 0,129, 0,249,248, 5,234, 63, 0, 35,232,254,199, 72,234,118, + 0, 29, 29, 29, 4, 0, 98, 0, 0,241, 0, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 22, 0, 0, 81, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,147, 41, 10, 5, 4, 20, 0, 0, 0, 29, 0, 6, 0, 0, 0, + 0,121, 81, 85,183, 11,152,238,246,129,163,249, 16,149, 90,223, 0,236, 56, 70, 44,218,174, 60,147,250,218, 94, 65,252,198,248, + 0,116, 56,117,183,177, 90, 8,207,183,139, 95,130,174,201,178, 0, 0, 4, 70,177, 67, 27,174,188,203,210, 25, 47,144,222,246, + 0,207, 33,232,207,108,190,143,255, 81, 0,108, 99,104,132,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27,248,223,123, 81, 9, 6,216,217, 62, 56,248,108,114,100, 0,199,140, 49,248,224, 29, 49,209,117, 26,254,192, 6, 59, 8, + 0,236,221, 85,250, 66,246,128,248,254,224,213,227,109,209,243, 0,194,196,114,118,203,130, 6, 4,231,224, 91,223,159, 77,124, + 0,212, 81, 70,115,122,223, 46,216,108,178,247,232,227, 0,140, 0, 0, 33, 49,216,143,236,235,129,247,238,225,251,225,201,234, + 0,173, 44,240, 6, 63,243, 29, 91, 6, 87,198,198, 53,140, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,241, 14, 8, 5, 51, 41, 82, 22, 67,133,158, 85, 4, 61, 71, 0, 29,183, 35,184,211,102, 11,107,253,232, 4,113, 51, 42, 65, + 0,250, 0,231,232,224,106,217,254,165, 81,139, 27,219, 0,241, 0,220,106,171,248, 95, 57, 15, 41,179,150, 16, 22,160, 95,232, + 0,144,253,234, 46,199,220,254,181, 39,253,196, 41,254, 33,254, 0,238,168,194,107, 0,246,227,253, 0,148, 4, 0,177,155,115, + 0, 29, 89, 29, 29, 17, 38, 0, 51, 0, 4, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55,248,253,232, 0, 71, 6,232, 65, 0, 0, 0,197, 6, 0, 0, 93, 93, 0, 78, 37, 0, 0,241,232, 0, 63, 0, 0, 0, 0, + 0,252,107,202,192, 44, 74,192,107, 65,161, 0, 14, 22, 0, 15, 0,124,165, 4, 6,107, 97,128,127, 0,110,183, 15, 94, 0,224, + 0, 94,241,129, 10,224,216,106, 15,252, 4, 33, 1, 15,192,173, 0,196, 70,123, 61,234,248,224,192,192,241,216,202,242,221,224, + 0, 53, 6, 0, 41, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 4, 0, 0, 41, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 62,160, 2, 4, 0, 17, 0, 0, 22, 22, 0, 0, 41, 0, 0, + 0,249, 81, 85, 63,113, 98,246,223,206,136,191,138,205, 49,217, 0,158,221,240,250, 63, 27,242,224, 0,220, 40, 0,195,145,241, + 0,171,221,165,178,180,199,233,234,183,238,210, 0,242, 50,228, 0, 58, 33, 70, 22, 11, 77, 10,211,218,178,158,116, 43,222,238, + 0,115, 44, 93,217, 55,248,102,177,211,248, 56,162,254,224, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,220,223,137,241,239,239,128,167,217, 0, 53, 54, 90, 55, 81, 0,111,202,192,140,242,240, 0, 65,142, 4,157,192, 45,114, 23, + 0,133, 15,239,183,129, 98,128,231,234,115, 58, 98,124, 61,241, 0, 12, 4, 41,177,178,162,243, 57, 97, 62, 67, 98, 82, 6, 0, + 0,178,221, 49,241, 15,193,233,171,241,241,191,189,212, 34,242, 0,203, 15, 85,216, 67, 77,246,231,218,136,116,138,134,174,195, + 0,216,221,239, 45, 0,248,241,120, 80, 64,184,248,207,250,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,247,216,162, 55,129, 96, 49,150, 22, 42,246, 61,252, 27, 5, 0, 4, 0, 35, 4,176,160, 55, 6, 81,211, 53,241,162,138, 6, + 0,217,245,224,202, 81,232,234,192,192, 55, 0, 68,223,232,245, 0, 4, 4,108, 70,248,241, 66, 66, 85,162, 70, 49,108,118, 57, + 0, 6,201,234, 27,241, 38,217, 4, 22, 4,220, 6, 0, 82, 44, 0,212,246,250,202,247, 0,250, 7, 63,227,181,231, 70,253,245, + 0, 49, 22, 4,180, 3, 77, 23, 81, 81, 0, 5, 55, 0, 49,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 45, 67,117, 4, 34, 5, 0, 89, 97, 6, 3, 0, 97, 0, 0, 0, 89,209, 15,196,143, 6,162, 62, 54, 0, 17, 0,114, 8, 0, + 0,202,241,248,192,250, 82, 54,248, 4,173, 81,239, 6, 4, 78, 0, 51,111, 0, 99, 33, 99, 12, 99, 87, 0, 27, 16, 59,117,180, + 0,227,129,221,248,216, 70, 15, 4, 49, 55,227,254,216, 89, 44, 0,136,177,167,117,250, 49,183, 49, 57, 8,254, 49, 85, 15,224, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 0, 85, 15, 0, 4, 0, 0,102, 0, 0, 43, 37, 0, 0, 0, 6, 62,107, 61, 0, 15, 0, 94, 0, 0, 0, 0, 14, 0, 0, + 0,133, 81, 85, 15, 83,152,147, 91, 11,177, 14,162,146,119,207, 0,133, 81, 85,129, 33,190,214,130,218,184, 87,162,110,246,243, + 0, 40, 4, 6, 63, 56, 88,222,191,163,163, 11, 16, 1, 0, 0, 0, 75, 4, 6, 55, 5, 42,128, 55, 11, 51, 11, 47, 43, 37,215, + 0,220, 44,239,254,108,190,250,144,248,255,224,162,247,169,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,230,150,114,217,129,247,232, 22,245, 12,216,250,240,241,245, 0,149,212, 41,225, 58,246, 0,253,234,234,201,131,129,232,209, + 0,133, 81,186,171, 33,190,147, 94,183, 11,163,162,146,204,218, 0,133, 81, 29, 66,129,190,192, 52,254,188,245,162,230,180,108, + 0,133, 4, 85,218,221, 77,235,135,217,178,136, 77,231,203,178, 0,131, 4, 49,188, 56, 59, 0,212, 15,113, 14,162, 0,191, 96, + 0,216, 4,117, 81,167,190,223, 87, 5,254,217,190,248,230,241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,227,115,200,217,129, 98, 74, 22,217, 57, 5,163,241, 4, 74, 0, 31,232,151,223,188,152, 90,242,227,232,143,248,241,220, 20, + 0,234, 63,253,231,207,227,220,232, 0,234,143, 0,173,217,243, 0,234,224, 6,241,196,232,254,124, 0, 15, 4,192, 24, 31,254, + 0,252,218,247,145,218,251, 0,219,129,217,129,234,217,224,220, 0,103,118,204,140,163,164,228,153, 13,218,237,210,212,225,207, + 0,197, 62, 6,102, 14,192,160, 65, 82, 6,135,192, 66, 31, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,179,218, 99,246,241, 10, 49,159,129,107,241, 49, 62, 41, 0, 0,151,240, 87,241,192,169,153,241, 57,184,202,118,253,241, 93, + 0,247,227,209,246, 5,223,241,248,248,224,250, 41,248,227,184, 0, 56,232, 15,232,241, 8,217, 17, 82,169,241,105, 62, 49,216, + 0,163,181,237,140, 63,235,241,206,122,223, 21,199,224,232,215, 0,195,144,180,253,218,227,206,227,253,218, 44,247,220,246,184, + 0, 55, 45,159,156, 0, 32, 23,198, 15, 0, 0, 21, 10, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10,221, 56,107, 15,159, 5,170,118, 0, 0,172, 0,132, 33, 0,179,119,192, 0,247,241, 68, 55, 41,246,209, 15, 22, 81, 0, +}; + +static const unsigned short m03_Tx_model_m2_scale_table[] = +{ + 743, 1586, 288, 5909, 39, 87, 41,16056, 167, 1136, 81, 512, 2667, 1767, 195, 39, + 312, 112, 2075, 764, 914, 1224, 45, 404, 608, 734, 512, 512, 1781, 65, 1484, 111, + 1676, 447, 172, 225, 766, 420, 1119, 452, 1200, 53, 566, 799, 49, 117, 88, 907, + 999, 33, 445, 302, 1183, 69, 171, 43, 207, 475, 1171, 201, 300, 512, 31, 80, + 350, 83, 539, 294, 57, 512, 145, 316, 652, 267, 315, 1267, 161, 193, 514, 632, + 944, 129, 35, 162, 251, 109, 1518, 173, 206, 47, 195, 145, 512, 68, 35, 353, + 180, 31, 111, 173, 70, 376, 238, 391, 874, 146, 295, 55, 372, 417, 459, 241, + 512, 353, 101, 254, 179, 92, 37, 546, 137, 8292, 512, 123, 71, 309, 237, 65, + 157, 495, 472, 350, 74, 268, 38, 28, 834, 93, 105, 831, 179, 140, 435, 411, + 512, 204, 743, 216, 226, 292, 165, 104, 66, 385, 617, 194, 440, 197, 887, 69, + 94, 236, 53, 506, 535, 97, 276, 1802, 373, 74, 288, 353, 87, 252, 287, 167, + 699, 357, 1631, 131, 106, 521, 652, 262, 399, 574, 93, 293, 315, 474, 70, 2449, + 168, 783, 669, 362, 158, 84, 216, 178, 218, 734, 177, 543, 416, 4037, 203, 224, + 557, 148, 872, 216, 926, 319, 150,11957, 227, 969, 815, 205, 1134, 430, 512, 798, + 3413, 391, 582, 512, 570, 372, 179, 447, 2105, 321, 1487, 387, 2201, 540, 490, 58, + 234, 363, 136, 403, 127, 504, 518, 963, 87, 1234, 315, 250, 621, 134, 1181, 252, }; \ No newline at end of file