diff options
author | Jose Fonseca <jfonseca@vmware.com> | 2017-03-23 11:52:20 +0000 |
---|---|---|
committer | Jose Fonseca <jfonseca@vmware.com> | 2017-04-08 08:24:55 +0100 |
commit | 038054be03e376671ae8a4b888dc98fdbfa3091d (patch) | |
tree | 91b3abd0c539d47878cbf8bb02d864ae7daea67f /thirdparty | |
parent | 169c7ed34d238c7d92624f465de964af1c28adc0 (diff) |
brotli: Update to 0.5.2.
Diffstat (limited to 'thirdparty')
94 files changed, 24027 insertions, 31828 deletions
diff --git a/thirdparty/brotli/CMakeLists.txt b/thirdparty/brotli/CMakeLists.txt index 8ef1917b..a087790a 100644 --- a/thirdparty/brotli/CMakeLists.txt +++ b/thirdparty/brotli/CMakeLists.txt @@ -1,72 +1,38 @@ force_release_build () -add_convenience_library (brotli_dec_bundled EXCLUDE_FROM_ALL +if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + add_definitions(-DOS_LINUX) +elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + add_definitions(-DOS_FREEBSD) +elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + add_definitions(-DOS_MACOSX) +endif() - dec/bit_reader.c - dec/bit_reader.h - dec/context.h - dec/decode.c - dec/decode.h - dec/dictionary.c - dec/dictionary.h - dec/huffman.c - dec/huffman.h - dec/port.h - dec/prefix.h - dec/state.c - dec/state.h - dec/transform.h - dec/types.h -) - -add_convenience_library (brotli_enc_bundled EXCLUDE_FROM_ALL - enc/backward_references.cc - enc/backward_references.h - enc/bit_cost.h - enc/block_splitter.cc - enc/block_splitter.h - enc/brotli_bit_stream.cc - enc/brotli_bit_stream.h - enc/cluster.h - enc/command.h - enc/compress_fragment.cc - enc/compress_fragment.h - enc/compress_fragment_two_pass.cc - enc/compress_fragment_two_pass.h - enc/context.h - enc/dictionary.cc - enc/dictionary.h - enc/dictionary_hash.h - enc/encode.cc - enc/encode.h - enc/encode_parallel.cc - enc/encode_parallel.h - enc/entropy_encode.cc - enc/entropy_encode.h - enc/entropy_encode_static.h - enc/fast_log.h - enc/find_match_length.h - enc/hash.h - enc/histogram.cc - enc/histogram.h - enc/literal_cost.cc - enc/literal_cost.h - enc/metablock.cc - enc/metablock.h - enc/port.h - enc/prefix.h - enc/ringbuffer.h - enc/static_dict.cc - enc/static_dict.h - enc/static_dict_lut.h - enc/streams.cc - enc/streams.h - enc/transform.h - enc/types.h - enc/utf8_util.cc - enc/utf8_util.h - enc/write_bits.h -) +add_convenience_library(brotli_common STATIC EXCLUDE_FROM_ALL + common/dictionary.c) +add_convenience_library(brotli_dec STATIC EXCLUDE_FROM_ALL + dec/bit_reader.c + dec/decode.c + dec/huffman.c + dec/state.c) +add_convenience_library(brotli_enc STATIC EXCLUDE_FROM_ALL + enc/backward_references.c + enc/bit_cost.c + enc/block_splitter.c + enc/brotli_bit_stream.c + enc/cluster.c + enc/compress_fragment.c + enc/compress_fragment_two_pass.c + enc/compressor.cc # XXX + enc/encode.c + enc/entropy_encode.c + enc/histogram.c + enc/literal_cost.c + enc/memory.c + enc/metablock.c + enc/static_dict.c + enc/streams.cc # XXX + enc/utf8_util.c) install ( FILES LICENSE diff --git a/thirdparty/brotli/LICENSE b/thirdparty/brotli/LICENSE index 6298a5dc..33b7cdd2 100644 --- a/thirdparty/brotli/LICENSE +++ b/thirdparty/brotli/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2009, 2010, 2013-2015 by the Brotli Authors. +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/thirdparty/brotli/README.md b/thirdparty/brotli/README.md index 520a0657..e87d8ac7 100644 --- a/thirdparty/brotli/README.md +++ b/thirdparty/brotli/README.md @@ -1,5 +1,4 @@ -brotli -====== +### Introduction Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding @@ -7,11 +6,21 @@ and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression. -The specification of the Brotli Compressed Data Format is defined in the -following internet draft: -http://www.ietf.org/id/draft-alakuijala-brotli +The specification of the Brotli Compressed Data Format is defined in [RFC 7932](https://www.ietf.org/rfc/rfc7932.txt). Brotli is open-sourced under the MIT License, see the LICENSE file. Brotli mailing list: https://groups.google.com/forum/#!forum/brotli + +[![Build Status](https://travis-ci.org/google/brotli.svg?branch=master)](https://travis-ci.org/google/brotli) + +### Benchmarks +* [Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/) / [Unstable Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/unstable/) +* [Large Text Compression Benchmark](http://mattmahoney.net/dc/text.html) +* [Lzturbo Benchmark](https://sites.google.com/site/powturbo/home/benchmark) + +### Related projects +Independent [decoder](https://github.com/madler/brotli) implementation by Mark Adler, based entirely on format specification. + +JavaScript port of brotli [decoder](https://github.com/devongovett/brotli.js). Could be used directly via `npm install brotli` diff --git a/thirdparty/brotli/common/constants.h b/thirdparty/brotli/common/constants.h new file mode 100644 index 00000000..2ca99bc6 --- /dev/null +++ b/thirdparty/brotli/common/constants.h @@ -0,0 +1,47 @@ +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +#ifndef BROTLI_COMMON_CONSTANTS_H_ +#define BROTLI_COMMON_CONSTANTS_H_ + +/* Specification: 7.3. Encoding of the context map */ +#define BROTLI_CONTEXT_MAP_MAX_RLE 16 + +/* Specification: 2. Compressed representation overview */ +#define BROTLI_MAX_NUMBER_OF_BLOCK_TYPES 256 + +/* Specification: 3.3. Alphabet sizes: insert-and-copy length */ +#define BROTLI_NUM_LITERAL_SYMBOLS 256 +#define BROTLI_NUM_COMMAND_SYMBOLS 704 +#define BROTLI_NUM_BLOCK_LEN_SYMBOLS 26 +#define BROTLI_MAX_CONTEXT_MAP_SYMBOLS (BROTLI_MAX_NUMBER_OF_BLOCK_TYPES + \ + BROTLI_CONTEXT_MAP_MAX_RLE) +#define BROTLI_MAX_BLOCK_TYPE_SYMBOLS (BROTLI_MAX_NUMBER_OF_BLOCK_TYPES + 2) + +/* Specification: 3.5. Complex prefix codes */ +#define BROTLI_REPEAT_PREVIOUS_CODE_LENGTH 16 +#define BROTLI_REPEAT_ZERO_CODE_LENGTH 17 +#define BROTLI_CODE_LENGTH_CODES (BROTLI_REPEAT_ZERO_CODE_LENGTH + 1) +/* "code length of 8 is repeated" */ +#define BROTLI_INITIAL_REPEATED_CODE_LENGTH 8 + +/* Specification: 4. Encoding of distances */ +#define BROTLI_NUM_DISTANCE_SHORT_CODES 16 +#define BROTLI_MAX_NPOSTFIX 3 +#define BROTLI_MAX_NDIRECT 120 +/* BROTLI_NUM_DISTANCE_SYMBOLS == 520 */ +#define BROTLI_NUM_DISTANCE_SYMBOLS (BROTLI_NUM_DISTANCE_SHORT_CODES + \ + BROTLI_MAX_NDIRECT + \ + (24 << (BROTLI_MAX_NPOSTFIX + 1))) + +/* 7.1. Context modes and context ID lookup for literals */ +/* "context IDs for literals are in the range of 0..63" */ +#define BROTLI_LITERAL_CONTEXT_BITS 6 + +/* 7.2. Context ID for distances */ +#define BROTLI_DISTANCE_CONTEXT_BITS 2 + +#endif /* BROTLI_COMMON_CONSTANTS_H_ */ diff --git a/thirdparty/brotli/dec/dictionary.c b/thirdparty/brotli/common/dictionary.c index f8f58575..7e6bac12 100644 --- a/thirdparty/brotli/dec/dictionary.c +++ b/thirdparty/brotli/common/dictionary.c @@ -10,9 +10,17 @@ extern "C" { #endif -/* In case of multiple definition linker error with dictionary.cc from the - encoder: include only one of enc/dictionary.cc or dec/dictionary.c in a - target using both enc and dec. */ +const uint32_t kBrotliDictionaryOffsetsByLength[] = { + 0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032, 53248, 63488, 74752, 87040, + 93696, 100864, 104704, 106752, 108928, 113536, 115968, 118528, 119872, 121280, + 122016 +}; + +const uint8_t kBrotliDictionarySizeBitsByLength[] = { + 0, 0, 0, 0, 10, 10, 11, 11, 10, 10, 10, 10, 10, + 9, 9, 8, 7, 7, 8, 7, 7, 6, 6, 5, 5, +}; + const uint8_t kBrotliDictionary[122784] = { 0x74, 0x69, 0x6d, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x66, 0x65, 0x6c, 0x65, 0x66, 0x74, 0x62, 0x61, 0x63, 0x6b, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x61, diff --git a/thirdparty/brotli/common/dictionary.h b/thirdparty/brotli/common/dictionary.h new file mode 100644 index 00000000..a78bde5f --- /dev/null +++ b/thirdparty/brotli/common/dictionary.h @@ -0,0 +1,29 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Collection of static dictionary words. */ + +#ifndef BROTLI_COMMON_DICTIONARY_H_ +#define BROTLI_COMMON_DICTIONARY_H_ + +#include "./types.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern const uint8_t kBrotliDictionary[122784]; +extern const uint32_t kBrotliDictionaryOffsetsByLength[25]; +extern const uint8_t kBrotliDictionarySizeBitsByLength[25]; + +#define kBrotliMinDictionaryWordLength 4 +#define kBrotliMaxDictionaryWordLength 24 + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_COMMON_DICTIONARY_H_ */ diff --git a/thirdparty/brotli/common/port.h b/thirdparty/brotli/common/port.h new file mode 100644 index 00000000..1af9e316 --- /dev/null +++ b/thirdparty/brotli/common/port.h @@ -0,0 +1,107 @@ +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Macros for compiler / platform specific features and build options. */ + +#ifndef BROTLI_COMMON_PORT_H_ +#define BROTLI_COMMON_PORT_H_ + +/* Compatibility with non-clang compilers. */ +#ifndef __has_builtin +#define __has_builtin(x) 0 +#endif + +#ifndef __has_attribute +#define __has_attribute(x) 0 +#endif + +#ifndef __has_feature +#define __has_feature(x) 0 +#endif + +#if defined(__GNUC__) && defined(__GNUC_MINOR__) +#define BROTLI_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +#else +#define BROTLI_GCC_VERSION 0 +#endif + +#if defined(__ICC) +#define BROTLI_ICC_VERSION __ICC +#else +#define BROTLI_ICC_VERSION 0 +#endif + +#if defined(BROTLI_BUILD_MODERN_COMPILER) +#define BROTLI_MODERN_COMPILER 1 +#elif BROTLI_GCC_VERSION > 300 || BROTLI_ICC_VERSION >= 1600 +#define BROTLI_MODERN_COMPILER 1 +#else +#define BROTLI_MODERN_COMPILER 0 +#endif + +/* Define "PREDICT_TRUE" and "PREDICT_FALSE" macros for capable compilers. + +To apply compiler hint, enclose the branching condition into macros, like this: + + if (PREDICT_TRUE(zero == 0)) { + // main execution path + } else { + // compiler should place this code outside of main execution path + } + +OR: + + if (PREDICT_FALSE(something_rare_or_unexpected_happens)) { + // compiler should place this code outside of main execution path + } + +*/ +#if BROTLI_MODERN_COMPILER || __has_builtin(__builtin_expect) +#define PREDICT_TRUE(x) (__builtin_expect(!!(x), 1)) +#define PREDICT_FALSE(x) (__builtin_expect(x, 0)) +#else +#define PREDICT_FALSE(x) (x) +#define PREDICT_TRUE(x) (x) +#endif + +#if BROTLI_MODERN_COMPILER || __has_attribute(always_inline) +#define ATTRIBUTE_ALWAYS_INLINE __attribute__ ((always_inline)) +#else +#define ATTRIBUTE_ALWAYS_INLINE +#endif + +#if defined(_WIN32) || defined(__CYGWIN__) +#define ATTRIBUTE_VISIBILITY_HIDDEN +#elif BROTLI_MODERN_COMPILER || __has_attribute(visibility) +#define ATTRIBUTE_VISIBILITY_HIDDEN __attribute__ ((visibility ("hidden"))) +#else +#define ATTRIBUTE_VISIBILITY_HIDDEN +#endif + +#ifndef BROTLI_INTERNAL +#define BROTLI_INTERNAL ATTRIBUTE_VISIBILITY_HIDDEN +#endif + +#ifndef _MSC_VER +#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \ + __STDC_VERSION__ >= 199901L +#define BROTLI_INLINE inline ATTRIBUTE_ALWAYS_INLINE +#else +#define BROTLI_INLINE +#endif +#else /* _MSC_VER */ +#define BROTLI_INLINE __forceinline +#endif /* _MSC_VER */ + +#if BROTLI_MODERN_COMPILER || __has_attribute(noinline) +#define BROTLI_NOINLINE __attribute__((noinline)) +#else +#define BROTLI_NOINLINE +#endif + +#define BROTLI_UNUSED(X) (void)(X) + +#endif /* BROTLI_COMMON_PORT_H_ */ diff --git a/thirdparty/brotli/dec/types.h b/thirdparty/brotli/common/types.h index 0f7a0216..2e9135a5 100644 --- a/thirdparty/brotli/dec/types.h +++ b/thirdparty/brotli/common/types.h @@ -6,8 +6,8 @@ /* Common types */ -#ifndef BROTLI_DEC_TYPES_H_ -#define BROTLI_DEC_TYPES_H_ +#ifndef BROTLI_COMMON_TYPES_H_ +#define BROTLI_COMMON_TYPES_H_ #include <stddef.h> /* for size_t */ @@ -24,6 +24,26 @@ typedef __int64 int64_t; #include <stdint.h> #endif /* defined(_MSC_VER) && (_MSC_VER < 1600) */ +#if (!defined(_MSC_VER) || (_MSC_VER >= 1800)) && \ + (defined(__cplusplus) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)) +#include <stdbool.h> +#define BROTLI_BOOL bool +#define BROTLI_TRUE true +#define BROTLI_FALSE false +#define TO_BROTLI_BOOL(X) (!!(X)) +#else +typedef enum { + BROTLI_FALSE = 0, + BROTLI_TRUE = !BROTLI_FALSE +} BROTLI_BOOL; +#define TO_BROTLI_BOOL(X) (!!(X) ? BROTLI_TRUE : BROTLI_FALSE) +#endif + +#define MAKE_UINT64_T(high, low) ((((uint64_t)(high)) << 32) | low) + +#define BROTLI_UINT32_MAX (~((uint32_t)0)) +#define BROTLI_SIZE_MAX (~((size_t)0)) + /* Allocating function pointer. Function MUST return 0 in the case of failure. Otherwise it MUST return a valid pointer to a memory region of at least size length. Neither items nor size are allowed to be 0. @@ -35,4 +55,4 @@ typedef void* (*brotli_alloc_func)(void* opaque, size_t size); address is 0. */ typedef void (*brotli_free_func)(void* opaque, void* address); -#endif /* BROTLI_DEC_TYPES_H_ */ +#endif /* BROTLI_COMMON_TYPES_H_ */ diff --git a/thirdparty/brotli/dec/bit_reader.c b/thirdparty/brotli/dec/bit_reader.c index cde90af5..5498269e 100644 --- a/thirdparty/brotli/dec/bit_reader.c +++ b/thirdparty/brotli/dec/bit_reader.c @@ -8,8 +8,8 @@ #include "./bit_reader.h" +#include "../common/types.h" #include "./port.h" -#include "./types.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -20,7 +20,7 @@ void BrotliInitBitReader(BrotliBitReader* const br) { br->bit_pos_ = sizeof(br->val_) << 3; } -int BrotliWarmupBitReader(BrotliBitReader* const br) { +BROTLI_BOOL BrotliWarmupBitReader(BrotliBitReader* const br) { size_t aligned_read_mask = (sizeof(br->val_) >> 1) - 1; /* Fixing alignment after unaligned BrotliFillWindow would result accumulator overflow. If unalignment is caused by BrotliSafeReadBits, then there is @@ -30,17 +30,17 @@ int BrotliWarmupBitReader(BrotliBitReader* const br) { } if (BrotliGetAvailableBits(br) == 0) { if (!BrotliPullByte(br)) { - return 0; + return BROTLI_FALSE; } } while ((((size_t)br->next_in) & aligned_read_mask) != 0) { if (!BrotliPullByte(br)) { /* If we consumed all the input, we don't care about the alignment. */ - return 1; + return BROTLI_TRUE; } } - return 1; + return BROTLI_TRUE; } #if defined(__cplusplus) || defined(c_plusplus) diff --git a/thirdparty/brotli/dec/bit_reader.h b/thirdparty/brotli/dec/bit_reader.h index e77d1143..22ea1936 100644 --- a/thirdparty/brotli/dec/bit_reader.h +++ b/thirdparty/brotli/dec/bit_reader.h @@ -11,12 +11,8 @@ #include <string.h> /* memcpy */ +#include "../common/types.h" #include "./port.h" -#include "./types.h" - -#ifdef BROTLI_DECODE_DEBUG -#include <stdio.h> -#endif #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -66,13 +62,13 @@ typedef struct { } BrotliBitReaderState; /* Initializes the bitreader fields. */ -void BrotliInitBitReader(BrotliBitReader* const br); +BROTLI_INTERNAL void BrotliInitBitReader(BrotliBitReader* const br); /* Ensures that accumulator is not empty. May consume one byte of input. Returns 0 if data is required but there is no input available. For BROTLI_ALIGNED_READ this function also prepares bit reader for aligned reading. */ -int BrotliWarmupBitReader(BrotliBitReader* const br); +BROTLI_INTERNAL BROTLI_BOOL BrotliWarmupBitReader(BrotliBitReader* const br); static BROTLI_INLINE void BrotliBitReaderSaveState( BrotliBitReader* const from, BrotliBitReaderState* to) { @@ -103,9 +99,9 @@ static BROTLI_INLINE size_t BrotliGetRemainingBytes(BrotliBitReader* br) { /* Checks if there is at least num bytes left in the input ringbuffer (excluding the bits remaining in br->val_). */ -static BROTLI_INLINE int BrotliCheckInputAmount( +static BROTLI_INLINE BROTLI_BOOL BrotliCheckInputAmount( BrotliBitReader* const br, size_t num) { - return br->avail_in >= num; + return TO_BROTLI_BOOL(br->avail_in >= num); } static BROTLI_INLINE uint16_t BrotliLoad16LE(const uint8_t* in) { @@ -224,9 +220,9 @@ static BROTLI_INLINE void BrotliFillBitWindow16(BrotliBitReader* const br) { } /* Pulls one byte of input to accumulator. */ -static BROTLI_INLINE int BrotliPullByte(BrotliBitReader* const br) { +static BROTLI_INLINE BROTLI_BOOL BrotliPullByte(BrotliBitReader* const br) { if (br->avail_in == 0) { - return 0; + return BROTLI_FALSE; } br->val_ >>= 8; #if (BROTLI_64_BITS) @@ -237,7 +233,7 @@ static BROTLI_INLINE int BrotliPullByte(BrotliBitReader* const br) { br->bit_pos_ -= 8; --br->avail_in; ++br->next_in; - return 1; + return BROTLI_TRUE; } /* Returns currently available bits. @@ -263,15 +259,15 @@ static BROTLI_INLINE uint32_t BrotliGetBits( /* Tries to peek the specified amount of bits. Returns 0, if there is not enough input. */ -static BROTLI_INLINE int BrotliSafeGetBits( +static BROTLI_INLINE BROTLI_BOOL BrotliSafeGetBits( BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) { while (BrotliGetAvailableBits(br) < n_bits) { if (!BrotliPullByte(br)) { - return 0; + return BROTLI_FALSE; } } *val = (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits); - return 1; + return BROTLI_TRUE; } /* Advances the bit pos by n_bits. */ @@ -298,10 +294,8 @@ static BROTLI_INLINE void BrotliBitReaderUnload(BrotliBitReader* br) { static BROTLI_INLINE void BrotliTakeBits( BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) { *val = (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits); -#ifdef BROTLI_DECODE_DEBUG - printf("[BrotliReadBits] %d %d %d val: %6x\n", - (int)br->avail_in, (int)br->bit_pos_, n_bits, (int)*val); -#endif + BROTLI_LOG(("[BrotliReadBits] %d %d %d val: %6x\n", + (int)br->avail_in, (int)br->bit_pos_, n_bits, (int)*val)); BrotliDropBits(br, n_bits); } @@ -327,26 +321,26 @@ static BROTLI_INLINE uint32_t BrotliReadBits( /* Tries to read the specified amount of bits. Returns 0, if there is not enough input. n_bits MUST be positive. */ -static BROTLI_INLINE int BrotliSafeReadBits( +static BROTLI_INLINE BROTLI_BOOL BrotliSafeReadBits( BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) { while (BrotliGetAvailableBits(br) < n_bits) { if (!BrotliPullByte(br)) { - return 0; + return BROTLI_FALSE; } } BrotliTakeBits(br, n_bits, val); - return 1; + return BROTLI_TRUE; } /* Advances the bit reader position to the next byte boundary and verifies that any skipped bits are set to zero. */ -static BROTLI_INLINE int BrotliJumpToByteBoundary(BrotliBitReader* br) { +static BROTLI_INLINE BROTLI_BOOL BrotliJumpToByteBoundary(BrotliBitReader* br) { uint32_t pad_bits_count = BrotliGetAvailableBits(br) & 0x7; uint32_t pad_bits = 0; if (pad_bits_count != 0) { BrotliTakeBits(br, pad_bits_count, &pad_bits); } - return pad_bits == 0; + return TO_BROTLI_BOOL(pad_bits == 0); } /* Peeks a byte at specified offset. diff --git a/thirdparty/brotli/dec/context.h b/thirdparty/brotli/dec/context.h index 37ebe6ae..2a34e4d2 100644 --- a/thirdparty/brotli/dec/context.h +++ b/thirdparty/brotli/dec/context.h @@ -99,7 +99,7 @@ #ifndef BROTLI_DEC_CONTEXT_H_ #define BROTLI_DEC_CONTEXT_H_ -#include "./types.h" +#include "../common/types.h" enum ContextType { CONTEXT_LSB6 = 0, diff --git a/thirdparty/brotli/dec/decode.c b/thirdparty/brotli/dec/decode.c index a81706b0..91e1d1bf 100644 --- a/thirdparty/brotli/dec/decode.c +++ b/thirdparty/brotli/dec/decode.c @@ -10,62 +10,35 @@ #include <arm_neon.h> #endif -#include <stdio.h> /* printf (debug output) */ #include <stdlib.h> /* free, malloc */ #include <string.h> /* memcpy, memset */ +#include "../common/constants.h" +#include "../common/dictionary.h" #include "./bit_reader.h" #include "./context.h" -#include "./dictionary.h" #include "./huffman.h" #include "./port.h" #include "./prefix.h" +#include "./state.h" #include "./transform.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif -/* BROTLI_FAILURE macro unwraps to BROTLI_RESULT_ERROR in non-debug build. */ -/* In debug build it dumps file name, line and pretty function name. */ -#if defined(_MSC_VER) || \ - (!defined(BROTLI_DEBUG) && !defined(BROTLI_DECODE_DEBUG)) -#define BROTLI_FAILURE() BROTLI_RESULT_ERROR -#else -#define BROTLI_FAILURE() BrotliFailure(__FILE__, __LINE__, __PRETTY_FUNCTION__) -static inline BrotliResult BrotliFailure(const char* f, int l, const char* fn) { - fprintf(stderr, "ERROR at %s:%d (%s)\n", f, l, fn); - fflush(stderr); - return BROTLI_RESULT_ERROR; -} -#endif +#define BROTLI_FAILURE(CODE) (BROTLI_DUMP(), CODE) -#ifdef BROTLI_DECODE_DEBUG #define BROTLI_LOG_UINT(name) \ - printf("[%s] %s = %lu\n", __func__, #name, (unsigned long)(name)) + BROTLI_LOG(("[%s] %s = %lu\n", __func__, #name, (unsigned long)(name))) #define BROTLI_LOG_ARRAY_INDEX(array_name, idx) \ - printf("[%s] %s[%lu] = %lu\n", __func__, #array_name, \ - (unsigned long)(idx), (unsigned long)array_name[idx]) -#define BROTLI_LOG(x) printf x -#else -#define BROTLI_LOG_UINT(name) -#define BROTLI_LOG_ARRAY_INDEX(array_name, idx) -#define BROTLI_LOG(x) -#endif - -static const uint32_t kDefaultCodeLength = 8; -static const uint32_t kCodeLengthRepeatCode = 16; -static const uint32_t kNumLiteralCodes = 256; -static const uint32_t kNumInsertAndCopyCodes = 704; -static const uint32_t kNumBlockLengthCodes = 26; -static const int kLiteralContextBits = 6; -static const int kDistanceContextBits = 2; + BROTLI_LOG(("[%s] %s[%lu] = %lu\n", __func__, #array_name, \ + (unsigned long)(idx), (unsigned long)array_name[idx])) #define HUFFMAN_TABLE_BITS 8U #define HUFFMAN_TABLE_MASK 0xff -#define CODE_LENGTH_CODES 18 -static const uint8_t kCodeLengthCodeOrder[CODE_LENGTH_CODES] = { +static const uint8_t kCodeLengthCodeOrder[BROTLI_CODE_LENGTH_CODES] = { 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, }; @@ -78,36 +51,52 @@ static const uint8_t kCodeLengthPrefixValue[16] = { 0, 4, 3, 2, 0, 4, 3, 1, 0, 4, 3, 2, 0, 4, 3, 5, }; -#define NUM_DISTANCE_SHORT_CODES 16 - -BrotliState* BrotliCreateState( +BrotliDecoderState* BrotliDecoderCreateInstance( brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque) { - BrotliState* state = 0; + BrotliDecoderState* state = 0; if (!alloc_func && !free_func) { - state = (BrotliState*)malloc(sizeof(BrotliState)); + state = (BrotliDecoderState*)malloc(sizeof(BrotliDecoderState)); } else if (alloc_func && free_func) { - state = (BrotliState*)alloc_func(opaque, sizeof(BrotliState)); + state = (BrotliDecoderState*)alloc_func(opaque, sizeof(BrotliDecoderState)); } if (state == 0) { - (void)BROTLI_FAILURE(); + BROTLI_DUMP(); return 0; } - BrotliStateInitWithCustomAllocators(state, alloc_func, free_func, opaque); + BrotliDecoderStateInitWithCustomAllocators( + state, alloc_func, free_func, opaque); + state->error_code = BROTLI_DECODER_NO_ERROR; return state; } -/* Deinitializes and frees BrotliState instance. */ -void BrotliDestroyState(BrotliState* state) { +/* Deinitializes and frees BrotliDecoderState instance. */ +void BrotliDecoderDestroyInstance(BrotliDecoderState* state) { if (!state) { return; } else { brotli_free_func free_func = state->free_func; void* opaque = state->memory_manager_opaque; - BrotliStateCleanup(state); + BrotliDecoderStateCleanup(state); free_func(opaque, state); } } +/* Saves error code and converts it to BrotliDecoderResult */ +static BROTLI_NOINLINE BrotliDecoderResult SaveErrorCode( + BrotliDecoderState* s, BrotliDecoderErrorCode e) { + s->error_code = (int)e; + switch (e) { + case BROTLI_DECODER_SUCCESS: + return BROTLI_DECODER_RESULT_SUCCESS; + case BROTLI_DECODER_NEEDS_MORE_INPUT: + return BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT; + case BROTLI_DECODER_NEEDS_MORE_OUTPUT: + return BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT; + default: + return BROTLI_DECODER_RESULT_ERROR; + } +} + /* Decodes a number in the range [9..24], by reading 1 - 7 bits. Precondition: bit-reader accumulator has at least 7 bits. */ static uint32_t DecodeWindowBits(BrotliBitReader* br) { @@ -138,29 +127,29 @@ static BROTLI_INLINE void memmove16(uint8_t* dst, uint8_t* src) { } /* Decodes a number in the range [0..255], by reading 1 - 11 bits. */ -static BROTLI_NOINLINE BrotliResult DecodeVarLenUint8(BrotliState* s, - BrotliBitReader* br, uint32_t* value) { +static BROTLI_NOINLINE BrotliDecoderErrorCode DecodeVarLenUint8( + BrotliDecoderState* s, BrotliBitReader* br, uint32_t* value) { uint32_t bits; switch (s->substate_decode_uint8) { case BROTLI_STATE_DECODE_UINT8_NONE: if (PREDICT_FALSE(!BrotliSafeReadBits(br, 1, &bits))) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (bits == 0) { *value = 0; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } /* No break, transit to the next state. */ case BROTLI_STATE_DECODE_UINT8_SHORT: if (PREDICT_FALSE(!BrotliSafeReadBits(br, 3, &bits))) { s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_SHORT; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (bits == 0) { *value = 1; s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } /* Use output value as a temporary storage. It MUST be persisted. */ *value = bits; @@ -169,27 +158,28 @@ static BROTLI_NOINLINE BrotliResult DecodeVarLenUint8(BrotliState* s, case BROTLI_STATE_DECODE_UINT8_LONG: if (PREDICT_FALSE(!BrotliSafeReadBits(br, *value, &bits))) { s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_LONG; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } *value = (1U << *value) + bits; s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; default: - return BROTLI_FAILURE(); + return + BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE); } } /* Decodes a metablock length and flags by reading 2 - 31 bits. */ -static BrotliResult BROTLI_NOINLINE DecodeMetaBlockLength(BrotliState* s, - BrotliBitReader* br) { +static BrotliDecoderErrorCode BROTLI_NOINLINE DecodeMetaBlockLength( + BrotliDecoderState* s, BrotliBitReader* br) { uint32_t bits; int i; for (;;) { switch (s->substate_metablock_header) { case BROTLI_STATE_METABLOCK_HEADER_NONE: if (!BrotliSafeReadBits(br, 1, &bits)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } s->is_last_metablock = (uint8_t)bits; s->meta_block_remaining_len = 0; @@ -204,18 +194,18 @@ static BrotliResult BROTLI_NOINLINE DecodeMetaBlockLength(BrotliState* s, case BROTLI_STATE_METABLOCK_HEADER_EMPTY: if (!BrotliSafeReadBits(br, 1, &bits)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (bits) { s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NIBBLES; /* No break, transit to the next state. */ case BROTLI_STATE_METABLOCK_HEADER_NIBBLES: if (!BrotliSafeReadBits(br, 2, &bits)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } s->size_nibbles = (uint8_t)(bits + 4); s->loop_counter = 0; @@ -232,10 +222,10 @@ static BrotliResult BROTLI_NOINLINE DecodeMetaBlockLength(BrotliState* s, for (; i < s->size_nibbles; ++i) { if (!BrotliSafeReadBits(br, 4, &bits)) { s->loop_counter = i; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (i + 1 == s->size_nibbles && s->size_nibbles > 4 && bits == 0) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE); } s->meta_block_remaining_len |= (int)(bits << (i * 4)); } @@ -246,31 +236,31 @@ static BrotliResult BROTLI_NOINLINE DecodeMetaBlockLength(BrotliState* s, case BROTLI_STATE_METABLOCK_HEADER_UNCOMPRESSED: if (!s->is_last_metablock) { if (!BrotliSafeReadBits(br, 1, &bits)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } s->is_uncompressed = (uint8_t)bits; } ++s->meta_block_remaining_len; s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; case BROTLI_STATE_METABLOCK_HEADER_RESERVED: if (!BrotliSafeReadBits(br, 1, &bits)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (bits != 0) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_RESERVED); } s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_BYTES; /* No break, transit to the next state. */ case BROTLI_STATE_METABLOCK_HEADER_BYTES: if (!BrotliSafeReadBits(br, 2, &bits)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (bits == 0) { s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } s->size_nibbles = (uint8_t)bits; s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_METADATA; @@ -281,19 +271,21 @@ static BrotliResult BROTLI_NOINLINE DecodeMetaBlockLength(BrotliState* s, for (; i < s->size_nibbles; ++i) { if (!BrotliSafeReadBits(br, 8, &bits)) { s->loop_counter = i; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (i + 1 == s->size_nibbles && s->size_nibbles > 1 && bits == 0) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE( + BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE); } s->meta_block_remaining_len |= (int)(bits << (i * 8)); } ++s->meta_block_remaining_len; s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; default: - return BROTLI_FAILURE(); + return + BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE); } } } @@ -325,17 +317,16 @@ static BROTLI_INLINE uint32_t ReadSymbol(const HuffmanCode* table, /* Same as DecodeSymbol, but it is known that there is less than 15 bits of input are currently available. */ -static BROTLI_NOINLINE int SafeDecodeSymbol(const HuffmanCode* table, - BrotliBitReader* br, - uint32_t* result) { +static BROTLI_NOINLINE BROTLI_BOOL SafeDecodeSymbol( + const HuffmanCode* table, BrotliBitReader* br, uint32_t* result) { uint32_t val; uint32_t available_bits = BrotliGetAvailableBits(br); if (available_bits == 0) { if (table->bits == 0) { *result = table->value; - return 1; + return BROTLI_TRUE; } - return 0; /* No valid bits at all. */ + return BROTLI_FALSE; /* No valid bits at all. */ } val = (uint32_t)BrotliGetBitsUnmasked(br); table += val & HUFFMAN_TABLE_MASK; @@ -343,13 +334,13 @@ static BROTLI_NOINLINE int SafeDecodeSymbol(const HuffmanCode* table, if (table->bits <= available_bits) { BrotliDropBits(br, table->bits); *result = table->value; - return 1; + return BROTLI_TRUE; } else { - return 0; /* Not enough bits for the first level. */ + return BROTLI_FALSE; /* Not enough bits for the first level. */ } } if (available_bits <= HUFFMAN_TABLE_BITS) { - return 0; /* Not enough bits to move to the second level. */ + return BROTLI_FALSE; /* Not enough bits to move to the second level. */ } /* Speculatively drop HUFFMAN_TABLE_BITS. */ @@ -357,26 +348,24 @@ static BROTLI_NOINLINE int SafeDecodeSymbol(const HuffmanCode* table, available_bits -= HUFFMAN_TABLE_BITS; table += table->value + val; if (available_bits < table->bits) { - return 0; /* Not enough bits for the second level. */ + return BROTLI_FALSE; /* Not enough bits for the second level. */ } BrotliDropBits(br, HUFFMAN_TABLE_BITS + table->bits); *result = table->value; - return 1; + return BROTLI_TRUE; } -static BROTLI_INLINE int SafeReadSymbol(const HuffmanCode* table, - BrotliBitReader* br, - uint32_t* result) { +static BROTLI_INLINE BROTLI_BOOL SafeReadSymbol( + const HuffmanCode* table, BrotliBitReader* br, uint32_t* result) { uint32_t val; if (PREDICT_TRUE(BrotliSafeGetBits(br, 15, &val))) { *result = DecodeSymbol(val, table, br); - return 1; + return BROTLI_TRUE; } return SafeDecodeSymbol(table, br, result); } - /* Makes a look-up in first level Huffman table. Peeks 8 bits. */ static BROTLI_INLINE void PreloadSymbol(int safe, const HuffmanCode* table, @@ -426,8 +415,8 @@ static BROTLI_INLINE uint32_t Log2Floor(uint32_t x) { Totally 1..4 symbols are read, 1..10 bits each. The list of symbols MUST NOT contain duplicates. */ -static BrotliResult ReadSimpleHuffmanSymbols(uint32_t alphabet_size, - BrotliState* s) { +static BrotliDecoderErrorCode ReadSimpleHuffmanSymbols( + uint32_t alphabet_size, BrotliDecoderState* s) { /* max_bits == 1..10; symbol == 0..3; 1..40 bits will be read. */ BrotliBitReader* br = &s->br; uint32_t max_bits = Log2Floor(alphabet_size - 1); @@ -438,10 +427,11 @@ static BrotliResult ReadSimpleHuffmanSymbols(uint32_t alphabet_size, if (PREDICT_FALSE(!BrotliSafeReadBits(br, max_bits, &v))) { s->sub_loop_counter = i; s->substate_huffman = BROTLI_STATE_HUFFMAN_SIMPLE_READ; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (v >= alphabet_size) { - return BROTLI_FAILURE(); + return + BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET); } s->symbols_lists_array[i] = (uint16_t)v; BROTLI_LOG_UINT(s->symbols_lists_array[i]); @@ -452,12 +442,12 @@ static BrotliResult ReadSimpleHuffmanSymbols(uint32_t alphabet_size, uint32_t k = i + 1; for (; k <= num_symbols; ++k) { if (s->symbols_lists_array[i] == s->symbols_lists_array[k]) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME); } } } - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } /* Process single decoded symbol code length: @@ -485,12 +475,14 @@ static BROTLI_INLINE void ProcessSingleCodeLength(uint32_t code_len, /* Process repeated symbol code length. A) Check if it is the extension of previous repeat sequence; if the decoded - value is not kCodeLengthRepeatCode, then it is a new symbol-skip + value is not BROTLI_REPEAT_PREVIOUS_CODE_LENGTH, then it is a new + symbol-skip B) Update repeat variable C) Check if operation is feasible (fits alphapet) D) For each symbol do the same operations as in ProcessSingleCodeLength - PRECONDITION: code_len == kCodeLengthRepeatCode or kCodeLengthRepeatCode + 1 + PRECONDITION: code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH or + code_len == BROTLI_REPEAT_ZERO_CODE_LENGTH */ static BROTLI_INLINE void ProcessRepeatedCodeLength(uint32_t code_len, uint32_t repeat_delta, uint32_t alphabet_size, uint32_t* symbol, @@ -498,9 +490,11 @@ static BROTLI_INLINE void ProcessRepeatedCodeLength(uint32_t code_len, uint32_t* repeat_code_len, uint16_t* symbol_lists, uint16_t* code_length_histo, int* next_symbol) { uint32_t old_repeat; - uint32_t new_len = 0; - if (code_len == kCodeLengthRepeatCode) { + uint32_t extra_bits = 3; /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ + uint32_t new_len = 0; /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ + if (code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) { new_len = *prev_code_len; + extra_bits = 2; } if (*repeat_code_len != new_len) { *repeat = 0; @@ -509,12 +503,12 @@ static BROTLI_INLINE void ProcessRepeatedCodeLength(uint32_t code_len, old_repeat = *repeat; if (*repeat > 0) { *repeat -= 2; - *repeat <<= code_len - 14U; + *repeat <<= extra_bits; } *repeat += repeat_delta + 3U; repeat_delta = *repeat - old_repeat; if (*symbol + repeat_delta > alphabet_size) { - (void)BROTLI_FAILURE(); + BROTLI_DUMP(); *symbol = alphabet_size; *space = 0xFFFFF; return; @@ -538,8 +532,8 @@ static BROTLI_INLINE void ProcessRepeatedCodeLength(uint32_t code_len, } /* Reads and decodes symbol codelengths. */ -static BrotliResult ReadSymbolCodeLengths( - uint32_t alphabet_size, BrotliState* s) { +static BrotliDecoderErrorCode ReadSymbolCodeLengths( + uint32_t alphabet_size, BrotliDecoderState* s) { BrotliBitReader* br = &s->br; uint32_t symbol = s->symbol; uint32_t repeat = s->repeat; @@ -550,7 +544,7 @@ static BrotliResult ReadSymbolCodeLengths( uint16_t* code_length_histo = s->code_length_histo; int* next_symbol = s->next_symbol; if (!BrotliWarmupBitReader(br)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } while (symbol < alphabet_size && space > 0) { const HuffmanCode* p = s->table; @@ -561,31 +555,33 @@ static BrotliResult ReadSymbolCodeLengths( s->prev_code_len = prev_code_len; s->repeat_code_len = repeat_code_len; s->space = space; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } BrotliFillBitWindow16(br); p += BrotliGetBitsUnmasked(br) & BitMask(BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH); BrotliDropBits(br, p->bits); /* Use 1..5 bits */ code_len = p->value; /* code_len == 0..17 */ - if (code_len < kCodeLengthRepeatCode) { + if (code_len < BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) { ProcessSingleCodeLength(code_len, &symbol, &repeat, &space, &prev_code_len, symbol_lists, code_length_histo, next_symbol); } else { /* code_len == 16..17, extra_bits == 2..3 */ + uint32_t extra_bits = + (code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) ? 2 : 3; uint32_t repeat_delta = - (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(code_len - 14U); - BrotliDropBits(br, code_len - 14U); + (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(extra_bits); + BrotliDropBits(br, extra_bits); ProcessRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &symbol, &repeat, &space, &prev_code_len, &repeat_code_len, symbol_lists, code_length_histo, next_symbol); } } s->space = space; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } -static BrotliResult SafeReadSymbolCodeLengths( - uint32_t alphabet_size, BrotliState* s) { +static BrotliDecoderErrorCode SafeReadSymbolCodeLengths( + uint32_t alphabet_size, BrotliDecoderState* s) { BrotliBitReader* br = &s->br; while (s->symbol < alphabet_size && s->space > 0) { const HuffmanCode* p = s->table; @@ -598,7 +594,7 @@ static BrotliResult SafeReadSymbolCodeLengths( p += bits & BitMask(BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH); if (p->bits > available_bits) goto pullMoreInput; code_len = p->value; /* code_len == 0..17 */ - if (code_len < kCodeLengthRepeatCode) { + if (code_len < BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) { BrotliDropBits(br, p->bits); ProcessSingleCodeLength(code_len, &s->symbol, &s->repeat, &s->space, &s->prev_code_len, s->symbol_lists, s->code_length_histo, @@ -617,20 +613,20 @@ static BrotliResult SafeReadSymbolCodeLengths( pullMoreInput: if (!BrotliPullByte(br)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } } - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } /* Reads and decodes 15..18 codes using static prefix code. Each code is 2..4 bits long. In total 30..72 bits are used. */ -static BrotliResult ReadCodeLengthCodeLengths(BrotliState* s) { +static BrotliDecoderErrorCode ReadCodeLengthCodeLengths(BrotliDecoderState* s) { BrotliBitReader* br = &s->br; uint32_t num_codes = s->repeat; unsigned space = s->space; uint32_t i = s->sub_loop_counter; - for (; i < CODE_LENGTH_CODES; ++i) { + for (; i < BROTLI_CODE_LENGTH_CODES; ++i) { const uint8_t code_len_idx = kCodeLengthCodeOrder[i]; uint32_t ix; uint32_t v; @@ -646,7 +642,7 @@ static BrotliResult ReadCodeLengthCodeLengths(BrotliState* s) { s->repeat = num_codes; s->space = space; s->substate_huffman = BROTLI_STATE_HUFFMAN_COMPLEX; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } } v = kCodeLengthPrefixValue[ix]; @@ -664,9 +660,9 @@ static BrotliResult ReadCodeLengthCodeLengths(BrotliState* s) { } } if (!(num_codes == 1 || space == 0)) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_CL_SPACE); } - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } /* Decodes the Huffman tables. @@ -681,10 +677,10 @@ static BrotliResult ReadCodeLengthCodeLengths(BrotliState* s) { B.2) Decoded table is used to decode code lengths of symbols in resulting Huffman table. In worst case 3520 bits are read. */ -static BrotliResult ReadHuffmanCode(uint32_t alphabet_size, - HuffmanCode* table, - uint32_t* opt_table_size, - BrotliState* s) { +static BrotliDecoderErrorCode ReadHuffmanCode(uint32_t alphabet_size, + HuffmanCode* table, + uint32_t* opt_table_size, + BrotliDecoderState* s) { BrotliBitReader* br = &s->br; /* Unnecessary masking, but might be good for safety. */ alphabet_size &= 0x3ff; @@ -692,7 +688,7 @@ static BrotliResult ReadHuffmanCode(uint32_t alphabet_size, switch (s->substate_huffman) { case BROTLI_STATE_HUFFMAN_NONE: if (!BrotliSafeReadBits(br, 2, &s->sub_loop_counter)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } BROTLI_LOG_UINT(s->sub_loop_counter); /* The value is used as follows: @@ -714,13 +710,14 @@ static BrotliResult ReadHuffmanCode(uint32_t alphabet_size, /* Read symbols, codes & code lengths directly. */ if (!BrotliSafeReadBits(br, 2, &s->symbol)) { /* num_symbols */ s->substate_huffman = BROTLI_STATE_HUFFMAN_SIMPLE_SIZE; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } s->sub_loop_counter = 0; /* No break, transit to the next state. */ case BROTLI_STATE_HUFFMAN_SIMPLE_READ: { - BrotliResult result = ReadSimpleHuffmanSymbols(alphabet_size, s); - if (result != BROTLI_RESULT_SUCCESS) { + BrotliDecoderErrorCode result = + ReadSimpleHuffmanSymbols(alphabet_size, s); + if (result != BROTLI_DECODER_SUCCESS) { return result; } /* No break, transit to the next state. */ @@ -731,7 +728,7 @@ static BrotliResult ReadHuffmanCode(uint32_t alphabet_size, uint32_t bits; if (!BrotliSafeReadBits(br, 1, &bits)) { s->substate_huffman = BROTLI_STATE_HUFFMAN_SIMPLE_BUILD; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } s->symbol += bits; } @@ -742,14 +739,14 @@ static BrotliResult ReadHuffmanCode(uint32_t alphabet_size, *opt_table_size = table_size; } s->substate_huffman = BROTLI_STATE_HUFFMAN_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } Complex: /* Decode Huffman-coded code lengths. */ case BROTLI_STATE_HUFFMAN_COMPLEX: { uint32_t i; - BrotliResult result = ReadCodeLengthCodeLengths(s); - if (result != BROTLI_RESULT_SUCCESS) { + BrotliDecoderErrorCode result = ReadCodeLengthCodeLengths(s); + if (result != BROTLI_DECODER_SUCCESS) { return result; } BrotliBuildCodeLengthsHuffmanTable(s->table, @@ -762,7 +759,7 @@ Complex: /* Decode Huffman-coded code lengths. */ } s->symbol = 0; - s->prev_code_len = kDefaultCodeLength; + s->prev_code_len = BROTLI_INITIAL_REPEATED_CODE_LENGTH; s->repeat = 0; s->repeat_code_len = 0; s->space = 32768; @@ -771,17 +768,17 @@ Complex: /* Decode Huffman-coded code lengths. */ } case BROTLI_STATE_HUFFMAN_LENGTH_SYMBOLS: { uint32_t table_size; - BrotliResult result = ReadSymbolCodeLengths(alphabet_size, s); - if (result == BROTLI_RESULT_NEEDS_MORE_INPUT) { + BrotliDecoderErrorCode result = ReadSymbolCodeLengths(alphabet_size, s); + if (result == BROTLI_DECODER_NEEDS_MORE_INPUT) { result = SafeReadSymbolCodeLengths(alphabet_size, s); } - if (result != BROTLI_RESULT_SUCCESS) { + if (result != BROTLI_DECODER_SUCCESS) { return result; } if (s->space != 0) { BROTLI_LOG(("[ReadHuffmanCode] space = %d\n", s->space)); - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE); } table_size = BrotliBuildHuffmanTable( table, HUFFMAN_TABLE_BITS, s->symbol_lists, s->code_length_histo); @@ -789,11 +786,12 @@ Complex: /* Decode Huffman-coded code lengths. */ *opt_table_size = table_size; } s->substate_huffman = BROTLI_STATE_HUFFMAN_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } default: - return BROTLI_FAILURE(); + return + BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE); } } @@ -809,14 +807,13 @@ static BROTLI_INLINE uint32_t ReadBlockLength(const HuffmanCode* table, /* WARNING: if state is not BROTLI_STATE_READ_BLOCK_LENGTH_NONE, then reading can't be continued with ReadBlockLength. */ -static BROTLI_INLINE int SafeReadBlockLength(BrotliState* s, - uint32_t* result, - const HuffmanCode* table, - BrotliBitReader* br) { +static BROTLI_INLINE BROTLI_BOOL SafeReadBlockLength( + BrotliDecoderState* s, uint32_t* result, const HuffmanCode* table, + BrotliBitReader* br) { uint32_t index; if (s->substate_read_block_length == BROTLI_STATE_READ_BLOCK_LENGTH_NONE) { if (!SafeReadSymbol(table, br, &index)) { - return 0; + return BROTLI_FALSE; } } else { index = s->block_length_index; @@ -827,11 +824,11 @@ static BROTLI_INLINE int SafeReadBlockLength(BrotliState* s, if (!BrotliSafeReadBits(br, nbits, &bits)) { s->block_length_index = index; s->substate_read_block_length = BROTLI_STATE_READ_BLOCK_LENGTH_SUFFIX; - return 0; + return BROTLI_FALSE; } *result = kBlockLengthPrefixCode[index].offset + bits; s->substate_read_block_length = BROTLI_STATE_READ_BLOCK_LENGTH_NONE; - return 1; + return BROTLI_TRUE; } } @@ -850,12 +847,12 @@ static BROTLI_INLINE int SafeReadBlockLength(BrotliState* s, Most of input values are 0 and 1. To reduce number of branches, we replace inner for loop with do-while. */ -static BROTLI_NOINLINE void InverseMoveToFrontTransform(uint8_t* v, - uint32_t v_len, BrotliState* state) { +static BROTLI_NOINLINE void InverseMoveToFrontTransform( + uint8_t* v, uint32_t v_len, BrotliDecoderState* state) { /* Reinitialize elements that could have been changed. */ uint32_t i = 4; uint32_t upper_bound = state->mtf_upper_bound; - uint8_t* mtf = state->mtf; + uint8_t* mtf = &state->mtf[4]; /* Make mtf[-1] addressable. */ /* Load endian-aware constant. */ const uint8_t b0123[4] = {0, 1, 2, 3}; uint32_t pattern; @@ -876,20 +873,19 @@ static BROTLI_NOINLINE void InverseMoveToFrontTransform(uint8_t* v, uint8_t value = mtf[index]; upper_bound |= v[i]; v[i] = value; + mtf[-1] = value; do { index--; mtf[index + 1] = mtf[index]; - } while (index > 0); - mtf[0] = value; + } while (index >= 0); } /* Remember amount of elements to be reinitialized. */ state->mtf_upper_bound = upper_bound; } - /* Decodes a series of Huffman table using ReadHuffmanCode function. */ -static BrotliResult HuffmanTreeGroupDecode(HuffmanTreeGroup* group, - BrotliState* s) { +static BrotliDecoderErrorCode HuffmanTreeGroupDecode( + HuffmanTreeGroup* group, BrotliDecoderState* s) { if (s->substate_tree_group != BROTLI_STATE_TREE_GROUP_LOOP) { s->next = group->codes; s->htree_index = 0; @@ -897,15 +893,15 @@ static BrotliResult HuffmanTreeGroupDecode(HuffmanTreeGroup* group, } while (s->htree_index < group->num_htrees) { uint32_t table_size; - BrotliResult result = + BrotliDecoderErrorCode result = ReadHuffmanCode(group->alphabet_size, s->next, &table_size, s); - if (result != BROTLI_RESULT_SUCCESS) return result; + if (result != BROTLI_DECODER_SUCCESS) return result; group->htrees[s->htree_index] = s->next; s->next += table_size; ++s->htree_index; } s->substate_tree_group = BROTLI_STATE_TREE_GROUP_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } /* Decodes a context map. @@ -917,17 +913,17 @@ static BrotliResult HuffmanTreeGroupDecode(HuffmanTreeGroup* group, 3) Read context map items; "0" values could be run-length encoded. 4) Optionally, apply InverseMoveToFront transform to the resulting map. */ -static BrotliResult DecodeContextMap(uint32_t context_map_size, - uint32_t* num_htrees, - uint8_t** context_map_arg, - BrotliState* s) { +static BrotliDecoderErrorCode DecodeContextMap(uint32_t context_map_size, + uint32_t* num_htrees, + uint8_t** context_map_arg, + BrotliDecoderState* s) { BrotliBitReader* br = &s->br; - BrotliResult result = BROTLI_RESULT_SUCCESS; + BrotliDecoderErrorCode result = BROTLI_DECODER_SUCCESS; switch ((int)s->substate_context_map) { case BROTLI_STATE_CONTEXT_MAP_NONE: result = DecodeVarLenUint8(s, br, num_htrees); - if (result != BROTLI_RESULT_SUCCESS) { + if (result != BROTLI_DECODER_SUCCESS) { return result; } (*num_htrees)++; @@ -936,11 +932,11 @@ static BrotliResult DecodeContextMap(uint32_t context_map_size, BROTLI_LOG_UINT(*num_htrees); *context_map_arg = (uint8_t*)BROTLI_ALLOC(s, (size_t)context_map_size); if (*context_map_arg == 0) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP); } if (*num_htrees <= 1) { memset(*context_map_arg, 0, (size_t)context_map_size); - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_READ_PREFIX; /* No break, continue to next state. */ @@ -949,7 +945,7 @@ static BrotliResult DecodeContextMap(uint32_t context_map_size, /* In next stage ReadHuffmanCode uses at least 4 bits, so it is safe to peek 4 bits ahead. */ if (!BrotliSafeGetBits(br, 5, &bits)) { - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if ((bits & 1) != 0) { /* Use RLE for zeroes. */ s->max_run_length_prefix = (bits >> 1) + 1; @@ -965,7 +961,7 @@ static BrotliResult DecodeContextMap(uint32_t context_map_size, case BROTLI_STATE_CONTEXT_MAP_HUFFMAN: result = ReadHuffmanCode(*num_htrees + s->max_run_length_prefix, s->context_map_table, NULL, s); - if (result != BROTLI_RESULT_SUCCESS) return result; + if (result != BROTLI_DECODER_SUCCESS) return result; s->code = 0xFFFF; s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_DECODE; /* No break, continue to next state. */ @@ -981,7 +977,7 @@ static BrotliResult DecodeContextMap(uint32_t context_map_size, if (!SafeReadSymbol(s->context_map_table, br, &code)) { s->code = 0xFFFF; s->context_index = context_index; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } BROTLI_LOG_UINT(code); @@ -1000,12 +996,13 @@ rleCode: if (!BrotliSafeReadBits(br, code, &reps)) { s->code = code; s->context_index = context_index; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } reps += 1U << code; BROTLI_LOG_UINT(reps); if (context_index + reps > context_map_size) { - return BROTLI_FAILURE(); + return + BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT); } do { context_map[context_index++] = 0; @@ -1018,23 +1015,24 @@ rleCode: uint32_t bits; if (!BrotliSafeReadBits(br, 1, &bits)) { s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_TRANSFORM; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } if (bits != 0) { InverseMoveToFrontTransform(*context_map_arg, context_map_size, s); } s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_NONE; - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } default: - return BROTLI_FAILURE(); + return + BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE); } } /* Decodes a command or literal and updates block type ringbuffer. Reads 3..54 bits. */ -static BROTLI_INLINE int DecodeBlockTypeAndLength(int safe, - BrotliState* s, int tree_type) { +static BROTLI_INLINE BROTLI_BOOL DecodeBlockTypeAndLength( + int safe, BrotliDecoderState* s, int tree_type) { uint32_t max_block_type = s->num_block_types[tree_type]; const HuffmanCode* type_tree = &s->block_type_trees[ tree_type * BROTLI_HUFFMAN_MAX_SIZE_258]; @@ -1051,11 +1049,11 @@ static BROTLI_INLINE int DecodeBlockTypeAndLength(int safe, } else { BrotliBitReaderState memento; BrotliBitReaderSaveState(br, &memento); - if (!SafeReadSymbol(type_tree, br, &block_type)) return 0; + if (!SafeReadSymbol(type_tree, br, &block_type)) return BROTLI_FALSE; if (!SafeReadBlockLength(s, &s->block_length[tree_type], len_tree, br)) { s->substate_read_block_length = BROTLI_STATE_READ_BLOCK_LENGTH_NONE; BrotliBitReaderRestoreState(br, &memento); - return 0; + return BROTLI_FALSE; } } @@ -1071,89 +1069,121 @@ static BROTLI_INLINE int DecodeBlockTypeAndLength(int safe, } ringbuffer[0] = ringbuffer[1]; ringbuffer[1] = block_type; - return 1; + return BROTLI_TRUE; } -/* Decodes the block type and updates the state for literal context. - Reads 3..54 bits. */ -static BROTLI_INLINE int DecodeLiteralBlockSwitchInternal(int safe, - BrotliState* s) { - uint8_t context_mode; - uint32_t context_offset; - if (!DecodeBlockTypeAndLength(safe, s, 0)) { - return 0; +static BROTLI_INLINE void DetectTrivialLiteralBlockTypes( + BrotliDecoderState* s) { + size_t i; + for (i = 0; i < 8; ++i) s->trivial_literal_contexts[i] = 0; + for (i = 0; i < s->num_block_types[0]; i++) { + size_t offset = i << BROTLI_LITERAL_CONTEXT_BITS; + size_t error = 0; + size_t sample = s->context_map[offset]; + size_t j; + for (j = 0; j < (1u << BROTLI_LITERAL_CONTEXT_BITS);) { + BROTLI_REPEAT(4, error |= s->context_map[offset + j++] ^ sample;) + } + if (error == 0) { + s->trivial_literal_contexts[i >> 5] |= 1u << (i & 31); + } } - context_offset = s->block_type_rb[1] << kLiteralContextBits; +} + +static BROTLI_INLINE void PrepareLiteralDecoding(BrotliDecoderState* s) { + uint8_t context_mode; + size_t trivial; + uint32_t block_type = s->block_type_rb[1]; + uint32_t context_offset = block_type << BROTLI_LITERAL_CONTEXT_BITS; s->context_map_slice = s->context_map + context_offset; - s->literal_htree_index = s->context_map_slice[0]; - s->literal_htree = s->literal_hgroup.htrees[s->literal_htree_index]; - context_mode = s->context_modes[s->block_type_rb[1]]; + trivial = s->trivial_literal_contexts[block_type >> 5]; + s->trivial_literal_context = (trivial >> (block_type & 31)) & 1; + s->literal_htree = s->literal_hgroup.htrees[s->context_map_slice[0]]; + context_mode = s->context_modes[block_type]; s->context_lookup1 = &kContextLookup[kContextLookupOffsets[context_mode]]; s->context_lookup2 = &kContextLookup[kContextLookupOffsets[context_mode + 1]]; - return 1; } -static void BROTLI_NOINLINE DecodeLiteralBlockSwitch(BrotliState* s) { +/* Decodes the block type and updates the state for literal context. + Reads 3..54 bits. */ +static BROTLI_INLINE BROTLI_BOOL DecodeLiteralBlockSwitchInternal( + int safe, BrotliDecoderState* s) { + if (!DecodeBlockTypeAndLength(safe, s, 0)) { + return BROTLI_FALSE; + } + PrepareLiteralDecoding(s); + return BROTLI_TRUE; +} + +static void BROTLI_NOINLINE DecodeLiteralBlockSwitch(BrotliDecoderState* s) { DecodeLiteralBlockSwitchInternal(0, s); } -static int BROTLI_NOINLINE SafeDecodeLiteralBlockSwitch(BrotliState* s) { +static BROTLI_BOOL BROTLI_NOINLINE SafeDecodeLiteralBlockSwitch( + BrotliDecoderState* s) { return DecodeLiteralBlockSwitchInternal(1, s); } /* Block switch for insert/copy length. Reads 3..54 bits. */ -static BROTLI_INLINE int DecodeCommandBlockSwitchInternal(int safe, - BrotliState* s) { +static BROTLI_INLINE BROTLI_BOOL DecodeCommandBlockSwitchInternal( + int safe, BrotliDecoderState* s) { if (!DecodeBlockTypeAndLength(safe, s, 1)) { - return 0; + return BROTLI_FALSE; } s->htree_command = s->insert_copy_hgroup.htrees[s->block_type_rb[3]]; - return 1; + return BROTLI_TRUE; } -static void BROTLI_NOINLINE DecodeCommandBlockSwitch(BrotliState* s) { +static void BROTLI_NOINLINE DecodeCommandBlockSwitch(BrotliDecoderState* s) { DecodeCommandBlockSwitchInternal(0, s); } -static int BROTLI_NOINLINE SafeDecodeCommandBlockSwitch(BrotliState* s) { +static BROTLI_BOOL BROTLI_NOINLINE SafeDecodeCommandBlockSwitch( + BrotliDecoderState* s) { return DecodeCommandBlockSwitchInternal(1, s); } /* Block switch for distance codes. Reads 3..54 bits. */ -static BROTLI_INLINE int DecodeDistanceBlockSwitchInternal(int safe, - BrotliState* s) { +static BROTLI_INLINE BROTLI_BOOL DecodeDistanceBlockSwitchInternal( + int safe, BrotliDecoderState* s) { if (!DecodeBlockTypeAndLength(safe, s, 2)) { - return 0; + return BROTLI_FALSE; } - s->dist_context_map_slice = - s->dist_context_map + (s->block_type_rb[5] << kDistanceContextBits); + s->dist_context_map_slice = s->dist_context_map + + (s->block_type_rb[5] << BROTLI_DISTANCE_CONTEXT_BITS); s->dist_htree_index = s->dist_context_map_slice[s->distance_context]; - return 1; + return BROTLI_TRUE; } -static void BROTLI_NOINLINE DecodeDistanceBlockSwitch(BrotliState* s) { +static void BROTLI_NOINLINE DecodeDistanceBlockSwitch(BrotliDecoderState* s) { DecodeDistanceBlockSwitchInternal(0, s); } -static int BROTLI_NOINLINE SafeDecodeDistanceBlockSwitch(BrotliState* s) { +static BROTLI_BOOL BROTLI_NOINLINE SafeDecodeDistanceBlockSwitch( + BrotliDecoderState* s) { return DecodeDistanceBlockSwitchInternal(1, s); } -static BrotliResult WriteRingBuffer(size_t* available_out, uint8_t** next_out, - size_t* total_out, BrotliState* s) { - size_t pos = (s->pos > s->ringbuffer_size) ? (size_t)s->ringbuffer_size - : (size_t)(s->pos); +static size_t UnwrittenBytes(const BrotliDecoderState* s, BROTLI_BOOL wrap) { + size_t pos = wrap && s->pos > s->ringbuffer_size ? + (size_t)s->ringbuffer_size : (size_t)(s->pos); + size_t partial_pos_rb = (s->rb_roundtrips * (size_t)s->ringbuffer_size) + pos; + return partial_pos_rb - s->partial_pos_out; +} + +static BrotliDecoderErrorCode BROTLI_NOINLINE WriteRingBuffer( + BrotliDecoderState* s, size_t* available_out, uint8_t** next_out, + size_t* total_out) { uint8_t* start = s->ringbuffer + (s->partial_pos_out & (size_t)s->ringbuffer_mask); - size_t partial_pos_rb = (s->rb_roundtrips * (size_t)s->ringbuffer_size) + pos; - size_t to_write = (partial_pos_rb - s->partial_pos_out); + size_t to_write = UnwrittenBytes(s, BROTLI_TRUE); size_t num_written = *available_out; if (num_written > to_write) { num_written = to_write; } if (s->meta_block_remaining_len < 0) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1); } memcpy(*next_out, start, num_written); *next_out += num_written; @@ -1161,11 +1191,16 @@ static BrotliResult WriteRingBuffer(size_t* available_out, uint8_t** next_out, BROTLI_LOG_UINT(to_write); BROTLI_LOG_UINT(num_written); s->partial_pos_out += num_written; - *total_out = s->partial_pos_out; + if (total_out) *total_out = s->partial_pos_out; if (num_written < to_write) { - return BROTLI_RESULT_NEEDS_MORE_OUTPUT; + return BROTLI_DECODER_NEEDS_MORE_OUTPUT; + } + + if (s->pos >= s->ringbuffer_size) { + s->pos -= s->ringbuffer_size; + s->rb_roundtrips++; } - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } /* Allocates ringbuffer. @@ -1178,7 +1213,8 @@ static BrotliResult WriteRingBuffer(size_t* available_out, uint8_t** next_out, Custom dictionary, if any, is copied to the end of ringbuffer. */ -static int BROTLI_NOINLINE BrotliAllocateRingBuffer(BrotliState* s) { +static BROTLI_BOOL BROTLI_NOINLINE BrotliAllocateRingBuffer( + BrotliDecoderState* s) { /* We need the slack region for the following reasons: - doing up to two 16-byte copies for fast backward copying - inserting transformed dictionary word (5 prefix + 24 base + 8 suffix) */ @@ -1186,7 +1222,7 @@ static int BROTLI_NOINLINE BrotliAllocateRingBuffer(BrotliState* s) { s->ringbuffer = (uint8_t*)BROTLI_ALLOC(s, (size_t)(s->ringbuffer_size + kRingBufferWriteAheadSlack)); if (s->ringbuffer == 0) { - return 0; + return BROTLI_FALSE; } s->ringbuffer_end = s->ringbuffer + s->ringbuffer_size; @@ -1199,15 +1235,15 @@ static int BROTLI_NOINLINE BrotliAllocateRingBuffer(BrotliState* s) { s->custom_dict, (size_t)s->custom_dict_size); } - return 1; + return BROTLI_TRUE; } -static BrotliResult BROTLI_NOINLINE CopyUncompressedBlockToOutput( +static BrotliDecoderErrorCode BROTLI_NOINLINE CopyUncompressedBlockToOutput( size_t* available_out, uint8_t** next_out, size_t* total_out, - BrotliState* s) { + BrotliDecoderState* s) { /* TODO: avoid allocation for single uncompressed block. */ if (!s->ringbuffer && !BrotliAllocateRingBuffer(s)) { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1); } /* State machine */ @@ -1227,54 +1263,63 @@ static BrotliResult BROTLI_NOINLINE CopyUncompressedBlockToOutput( s->meta_block_remaining_len -= nbytes; if (s->pos < s->ringbuffer_size) { if (s->meta_block_remaining_len == 0) { - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } s->substate_uncompressed = BROTLI_STATE_UNCOMPRESSED_WRITE; /* No break, continue to next state */ } case BROTLI_STATE_UNCOMPRESSED_WRITE: { - BrotliResult result = - WriteRingBuffer(available_out, next_out, total_out, s); - if (result != BROTLI_RESULT_SUCCESS) { + BrotliDecoderErrorCode result = + WriteRingBuffer(s, available_out, next_out, total_out); + if (result != BROTLI_DECODER_SUCCESS) { return result; } - s->pos = 0; - s->rb_roundtrips++; s->max_distance = s->max_backward_distance; s->substate_uncompressed = BROTLI_STATE_UNCOMPRESSED_NONE; break; } } } - return BROTLI_FAILURE(); + BROTLI_DCHECK(0); /* Unreachable */ } -int BrotliDecompressedSize(size_t encoded_size, - const uint8_t* encoded_buffer, - size_t* decoded_size) { - BrotliState s; - int next_block_header; - BrotliStateInit(&s); - s.br.next_in = encoded_buffer; - s.br.avail_in = encoded_size; - if (!BrotliWarmupBitReader(&s.br)) { - return 0; - } - DecodeWindowBits(&s.br); - if (DecodeMetaBlockLength(&s, &s.br) != BROTLI_RESULT_SUCCESS) { - return 0; - } - *decoded_size = (size_t)s.meta_block_remaining_len; - if (s.is_last_metablock) { - return 1; - } - if (!s.is_uncompressed || !BrotliJumpToByteBoundary(&s.br)) { - return 0; +BROTLI_BOOL BrotliDecompressedSize(size_t encoded_size, + const uint8_t* encoded_buffer, + size_t* decoded_size) { + size_t total_size = 0; + BrotliDecoderState s; + BrotliBitReader* br; + BrotliDecoderStateInit(&s); + br = &s.br; + *decoded_size = 0; + br->next_in = encoded_buffer; + br->avail_in = encoded_size; + if (!BrotliWarmupBitReader(br)) return BROTLI_FALSE; + DecodeWindowBits(br); + while (1) { + size_t block_size; + if (DecodeMetaBlockLength(&s, br) != BROTLI_DECODER_SUCCESS) { + return BROTLI_FALSE; + } + block_size = (size_t)s.meta_block_remaining_len; + if (!s.is_metadata) { + if ((block_size + total_size) < total_size) return BROTLI_FALSE; + total_size += block_size; + } + if (s.is_last_metablock) { + *decoded_size = total_size; + return BROTLI_TRUE; + } + if (!s.is_uncompressed && !s.is_metadata) return BROTLI_FALSE; + if (!BrotliJumpToByteBoundary(br)) return BROTLI_FALSE; + BrotliBitReaderUnload(br); + if (br->avail_in < block_size) return BROTLI_FALSE; + br->avail_in -= block_size; + br->next_in += block_size; + if (!BrotliWarmupBitReader(br)) return BROTLI_FALSE; } - next_block_header = BrotliPeekByte(&s.br, (size_t)s.meta_block_remaining_len); - return (next_block_header != -1) && ((next_block_header & 3) == 3); } /* Calculates the smallest feasible ring buffer. @@ -1284,17 +1329,18 @@ int BrotliDecompressedSize(size_t encoded_size, When this method is called, metablock size and flags MUST be decoded. */ -static void BROTLI_NOINLINE BrotliCalculateRingBufferSize(BrotliState* s, - BrotliBitReader* br) { - int is_last = s->is_last_metablock; - s->ringbuffer_size = 1 << s->window_bits; +static void BROTLI_NOINLINE BrotliCalculateRingBufferSize( + BrotliDecoderState* s, BrotliBitReader* br) { + BROTLI_BOOL is_last = TO_BROTLI_BOOL(s->is_last_metablock); + int window_size = 1 << s->window_bits; + s->ringbuffer_size = window_size; if (s->is_uncompressed) { int next_block_header = BrotliPeekByte(br, (size_t)s->meta_block_remaining_len); if (next_block_header != -1) { /* Peek succeeded */ if ((next_block_header & 3) == 3) { /* ISLAST and ISEMPTY */ - is_last = 1; + is_last = BROTLI_TRUE; } } } @@ -1302,22 +1348,17 @@ static void BROTLI_NOINLINE BrotliCalculateRingBufferSize(BrotliState* s, /* We need at least 2 bytes of ring buffer size to get the last two bytes for context from there */ if (is_last) { - while (s->ringbuffer_size >= s->meta_block_remaining_len * 2 && - s->ringbuffer_size > 32) { + int min_size_x2 = (s->meta_block_remaining_len + s->custom_dict_size) * 2; + while (s->ringbuffer_size >= min_size_x2 && s->ringbuffer_size > 32) { s->ringbuffer_size >>= 1; } } - /* But make it fit the custom dictionary if there is one. */ - while (s->ringbuffer_size < s->custom_dict_size) { - s->ringbuffer_size <<= 1; - } - s->ringbuffer_mask = s->ringbuffer_size - 1; } /* Reads 1..256 2-bit context modes. */ -static BrotliResult ReadContextModes(BrotliState* s) { +static BrotliDecoderErrorCode ReadContextModes(BrotliDecoderState* s) { BrotliBitReader* br = &s->br; int i = s->loop_counter; @@ -1325,16 +1366,16 @@ static BrotliResult ReadContextModes(BrotliState* s) { uint32_t bits; if (!BrotliSafeReadBits(br, 2, &bits)) { s->loop_counter = i; - return BROTLI_RESULT_NEEDS_MORE_INPUT; + return BROTLI_DECODER_NEEDS_MORE_INPUT; } s->context_modes[i] = (uint8_t)(bits << 1); BROTLI_LOG_ARRAY_INDEX(s->context_modes, i); i++; } - return BROTLI_RESULT_SUCCESS; + return BROTLI_DECODER_SUCCESS; } -static BROTLI_INLINE void TakeDistanceFromRingBuffer(BrotliState* s) { +static BROTLI_INLINE void TakeDistanceFromRingBuffer(BrotliDecoderState* s) { if (s->distance_code == 0) { --s->dist_rb_idx; s->distance_code = s->dist_rb[s->dist_rb_idx & 3]; @@ -1363,19 +1404,19 @@ static BROTLI_INLINE void TakeDistanceFromRingBuffer(BrotliState* s) { } } -static BROTLI_INLINE int SafeReadBits( +static BROTLI_INLINE BROTLI_BOOL SafeReadBits( BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) { if (n_bits != 0) { return BrotliSafeReadBits(br, n_bits, val); } else { *val = 0; - return 1; + return BROTLI_TRUE; } } /* Precondition: s->distance_code < 0 */ -static BROTLI_INLINE int ReadDistanceInternal(int safe, - BrotliState* s, BrotliBitReader* br) { +static BROTLI_INLINE BROTLI_BOOL ReadDistanceInternal( + int safe, BrotliDecoderState* s, BrotliBitReader* br) { int distval; BrotliBitReaderState memento; HuffmanCode* distance_tree = s->distance_hgroup.htrees[s->dist_htree_index]; @@ -1385,7 +1426,7 @@ static BROTLI_INLINE int ReadDistanceInternal(int safe, uint32_t code; BrotliBitReaderSaveState(br, &memento); if (!SafeReadSymbol(distance_tree, br, &code)) { - return 0; + return BROTLI_FALSE; } s->distance_code = (int)code; } @@ -1394,7 +1435,7 @@ static BROTLI_INLINE int ReadDistanceInternal(int safe, if ((s->distance_code & ~0xf) == 0) { TakeDistanceFromRingBuffer(s); --s->block_length[2]; - return 1; + return BROTLI_TRUE; } distval = s->distance_code - (int)s->num_direct_distance_codes; if (distval >= 0) { @@ -1416,7 +1457,7 @@ static BROTLI_INLINE int ReadDistanceInternal(int safe, if (!SafeReadBits(br, nbits, &bits)) { s->distance_code = -1; /* Restore precondition. */ BrotliBitReaderRestoreState(br, &memento); - return 0; + return BROTLI_FALSE; } } else { bits = BrotliReadBits(br, nbits); @@ -1426,21 +1467,23 @@ static BROTLI_INLINE int ReadDistanceInternal(int safe, ((offset + (int)bits) << s->distance_postfix_bits) + postfix; } } - s->distance_code = s->distance_code - NUM_DISTANCE_SHORT_CODES + 1; + s->distance_code = s->distance_code - BROTLI_NUM_DISTANCE_SHORT_CODES + 1; --s->block_length[2]; - return 1; + return BROTLI_TRUE; } -static BROTLI_INLINE void ReadDistance(BrotliState* s, BrotliBitReader* br) { +static BROTLI_INLINE void ReadDistance( + BrotliDecoderState* s, BrotliBitReader* br) { ReadDistanceInternal(0, s, br); } -static BROTLI_INLINE int SafeReadDistance(BrotliState* s, BrotliBitReader* br) { +static BROTLI_INLINE BROTLI_BOOL SafeReadDistance( + BrotliDecoderState* s, BrotliBitReader* br) { return ReadDistanceInternal(1, s, br); } -static BROTLI_INLINE int ReadCommandInternal(int safe, - BrotliState* s, BrotliBitReader* br, int* insert_length) { +static BROTLI_INLINE BROTLI_BOOL ReadCommandInternal( + int safe, BrotliDecoderState* s, BrotliBitReader* br, int* insert_length) { uint32_t cmd_code; uint32_t insert_len_extra = 0; uint32_t copy_length; @@ -1451,7 +1494,7 @@ static BROTLI_INLINE int ReadCommandInternal(int safe, } else { BrotliBitReaderSaveState(br, &memento); if (!SafeReadSymbol(s->htree_command, br, &cmd_code)) { - return 0; + return BROTLI_FALSE; } } v = kCmdLut[cmd_code]; @@ -1468,54 +1511,54 @@ static BROTLI_INLINE int ReadCommandInternal(int safe, if (!SafeReadBits(br, v.insert_len_extra_bits, &insert_len_extra) || !SafeReadBits(br, v.copy_len_extra_bits, ©_length)) { BrotliBitReaderRestoreState(br, &memento); - return 0; + return BROTLI_FALSE; } } s->copy_length = (int)copy_length + v.copy_len_offset; --s->block_length[1]; *insert_length += (int)insert_len_extra; - return 1; + return BROTLI_TRUE; } -static BROTLI_INLINE void ReadCommand(BrotliState* s, BrotliBitReader* br, - int* insert_length) { +static BROTLI_INLINE void ReadCommand( + BrotliDecoderState* s, BrotliBitReader* br, int* insert_length) { ReadCommandInternal(0, s, br, insert_length); } -static BROTLI_INLINE int SafeReadCommand(BrotliState* s, BrotliBitReader* br, - int* insert_length) { +static BROTLI_INLINE BROTLI_BOOL SafeReadCommand( + BrotliDecoderState* s, BrotliBitReader* br, int* insert_length) { return ReadCommandInternal(1, s, br, insert_length); } -static BROTLI_INLINE int CheckInputAmount(int safe, - BrotliBitReader* const br, size_t num) { +static BROTLI_INLINE BROTLI_BOOL CheckInputAmount( + int safe, BrotliBitReader* const br, size_t num) { if (safe) { - return 1; + return BROTLI_TRUE; } return BrotliCheckInputAmount(br, num); } -#define BROTLI_SAFE(METHOD) \ - { \ - if (safe) { \ - if (!Safe##METHOD) { \ - result = BROTLI_RESULT_NEEDS_MORE_INPUT; \ - goto saveStateAndReturn; \ - } \ - } else { \ - METHOD; \ - } \ +#define BROTLI_SAFE(METHOD) \ + { \ + if (safe) { \ + if (!Safe##METHOD) { \ + result = BROTLI_DECODER_NEEDS_MORE_INPUT; \ + goto saveStateAndReturn; \ + } \ + } else { \ + METHOD; \ + } \ } -static BROTLI_INLINE BrotliResult ProcessCommandsInternal(int safe, - BrotliState* s) { +static BROTLI_INLINE BrotliDecoderErrorCode ProcessCommandsInternal( + int safe, BrotliDecoderState* s) { int pos = s->pos; int i = s->loop_counter; - BrotliResult result = BROTLI_RESULT_SUCCESS; + BrotliDecoderErrorCode result = BROTLI_DECODER_SUCCESS; BrotliBitReader* br = &s->br; if (!CheckInputAmount(safe, br, 28)) { - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; goto saveStateAndReturn; } if (!safe) { @@ -1532,7 +1575,7 @@ static BROTLI_INLINE BrotliResult ProcessCommandsInternal(int safe, } else if (s->state == BROTLI_STATE_COMMAND_POST_WRAP_COPY) { goto CommandPostWrapCopy; } else { - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE); } CommandBegin: @@ -1541,7 +1584,7 @@ CommandBegin: } if (!CheckInputAmount(safe, br, 28)) { /* 156 bits + 7 bytes */ s->state = BROTLI_STATE_COMMAND_BEGIN; - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; goto saveStateAndReturn; } if (PREDICT_FALSE(s->block_length[1] == 0)) { @@ -1569,12 +1612,13 @@ CommandInner: do { if (!CheckInputAmount(safe, br, 28)) { /* 162 bits + 7 bytes */ s->state = BROTLI_STATE_COMMAND_INNER; - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; goto saveStateAndReturn; } if (PREDICT_FALSE(s->block_length[0] == 0)) { BROTLI_SAFE(DecodeLiteralBlockSwitch(s)); PreloadSymbol(safe, s->literal_htree, br, &bits, &value); + if (!s->trivial_literal_context) goto CommandInner; } if (!safe) { s->ringbuffer[pos] = @@ -1582,13 +1626,12 @@ CommandInner: } else { uint32_t literal; if (!SafeReadSymbol(s->literal_htree, br, &literal)) { - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; goto saveStateAndReturn; } s->ringbuffer[pos] = (uint8_t)literal; } --s->block_length[0]; - BROTLI_LOG_UINT(s->literal_htree_index); BROTLI_LOG_ARRAY_INDEX(s->ringbuffer, pos); ++pos; if (PREDICT_FALSE(pos == s->ringbuffer_size)) { @@ -1605,11 +1648,12 @@ CommandInner: uint8_t context; if (!CheckInputAmount(safe, br, 28)) { /* 162 bits + 7 bytes */ s->state = BROTLI_STATE_COMMAND_INNER; - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; goto saveStateAndReturn; } if (PREDICT_FALSE(s->block_length[0] == 0)) { BROTLI_SAFE(DecodeLiteralBlockSwitch(s)); + if (s->trivial_literal_context) goto CommandInner; } context = s->context_lookup1[p1] | s->context_lookup2[p2]; BROTLI_LOG_UINT(context); @@ -1620,7 +1664,7 @@ CommandInner: } else { uint32_t literal; if (!SafeReadSymbol(hc, br, &literal)) { - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; goto saveStateAndReturn; } p1 = (uint8_t)literal; @@ -1638,7 +1682,7 @@ CommandInner: } while (--i != 0); } BROTLI_LOG_UINT(s->meta_block_remaining_len); - if (s->meta_block_remaining_len <= 0) { + if (PREDICT_FALSE(s->meta_block_remaining_len <= 0)) { s->state = BROTLI_STATE_METABLOCK_DONE; goto saveStateAndReturn; } @@ -1700,13 +1744,13 @@ postReadDistance: BROTLI_LOG(("Invalid backward reference. pos: %d distance: %d " "len: %d bytes left: %d\n", pos, s->distance_code, i, s->meta_block_remaining_len)); - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_TRANSFORM); } } else { BROTLI_LOG(("Invalid backward reference. pos: %d distance: %d " "len: %d bytes left: %d\n", pos, s->distance_code, i, s->meta_block_remaining_len)); - return BROTLI_FAILURE(); + return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_DICTIONARY); } } else { int src_start = (pos - s->distance_code) & s->ringbuffer_mask; @@ -1718,12 +1762,6 @@ postReadDistance: s->dist_rb[s->dist_rb_idx & 3] = s->distance_code; ++s->dist_rb_idx; s->meta_block_remaining_len -= i; - if (PREDICT_FALSE(s->meta_block_remaining_len < 0)) { - BROTLI_LOG(("Invalid backward reference. pos: %d distance: %d " - "len: %d bytes left: %d\n", - pos, s->distance_code, i, s->meta_block_remaining_len)); - return BROTLI_FAILURE(); - } /* There are 32+ bytes of slack in the ringbuffer allocation. Also, we have 16 short codes, that make these 16 bytes irrelevant in the ringbuffer. Let's copy over them as a first guess. @@ -1785,32 +1823,33 @@ saveStateAndReturn: #undef BROTLI_SAFE -static BROTLI_NOINLINE BrotliResult ProcessCommands(BrotliState* s) { +static BROTLI_NOINLINE BrotliDecoderErrorCode ProcessCommands( + BrotliDecoderState* s) { return ProcessCommandsInternal(0, s); } -static BROTLI_NOINLINE BrotliResult SafeProcessCommands(BrotliState* s) { +static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands( + BrotliDecoderState* s) { return ProcessCommandsInternal(1, s); } -BrotliResult BrotliDecompressBuffer(size_t encoded_size, - const uint8_t* encoded_buffer, - size_t* decoded_size, - uint8_t* decoded_buffer) { - BrotliState s; - BrotliResult result; +BrotliDecoderResult BrotliDecoderDecompress( + size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size, + uint8_t* decoded_buffer) { + BrotliDecoderState s; + BrotliDecoderResult result; size_t total_out = 0; size_t available_in = encoded_size; const uint8_t* next_in = encoded_buffer; size_t available_out = *decoded_size; uint8_t* next_out = decoded_buffer; - BrotliStateInit(&s); - result = BrotliDecompressStream(&available_in, &next_in, &available_out, - &next_out, &total_out, &s); + BrotliDecoderStateInit(&s); + result = BrotliDecoderDecompressStream( + &s, &available_in, &next_in, &available_out, &next_out, &total_out); *decoded_size = total_out; - BrotliStateCleanup(&s); - if (result != BROTLI_RESULT_SUCCESS) { - result = BROTLI_RESULT_ERROR; + BrotliDecoderStateCleanup(&s); + if (result != BROTLI_DECODER_RESULT_SUCCESS) { + result = BROTLI_DECODER_RESULT_ERROR; } return result; } @@ -1827,10 +1866,10 @@ BrotliResult BrotliDecompressBuffer(size_t encoded_size, * when result is "success" decoder MUST return all unused data back to input buffer; this is possible because the invariant is hold on enter */ -BrotliResult BrotliDecompressStream(size_t* available_in, - const uint8_t** next_in, size_t* available_out, uint8_t** next_out, - size_t* total_out, BrotliState* s) { - BrotliResult result = BROTLI_RESULT_SUCCESS; +BrotliDecoderResult BrotliDecoderDecompressStream( + BrotliDecoderState* s, size_t* available_in, const uint8_t** next_in, + size_t* available_out, uint8_t** next_out, size_t* total_out) { + BrotliDecoderErrorCode result = BROTLI_DECODER_SUCCESS; BrotliBitReader* br = &s->br; if (s->buffer_length == 0) { /* Just connect bit reader to input stream. */ br->avail_in = *available_in; @@ -1839,15 +1878,15 @@ BrotliResult BrotliDecompressStream(size_t* available_in, /* At least one byte of input is required. More than one byte of input may be required to complete the transaction -> reading more data must be done in a loop -> do it in a main loop. */ - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; br->next_in = &s->buffer.u8[0]; } /* State machine */ for (;;) { - if (result != BROTLI_RESULT_SUCCESS) { /* Error | needs more input/output */ - if (result == BROTLI_RESULT_NEEDS_MORE_INPUT) { + if (result != BROTLI_DECODER_SUCCESS) { /* Error, needs more input/output */ + if (result == BROTLI_DECODER_NEEDS_MORE_INPUT) { if (s->ringbuffer != 0) { /* Proactively push output. */ - WriteRingBuffer(available_out, next_out, total_out, s); + WriteRingBuffer(s, available_out, next_out, total_out); } if (s->buffer_length != 0) { /* Used with internal buffer. */ if (br->avail_in == 0) { /* Successfully finished read transaction. */ @@ -1855,14 +1894,14 @@ BrotliResult BrotliDecompressStream(size_t* available_in, is expanded byte-by-byte until it is enough to complete read. */ s->buffer_length = 0; /* Switch to input stream and restart. */ - result = BROTLI_RESULT_SUCCESS; + result = BROTLI_DECODER_SUCCESS; br->avail_in = *available_in; br->next_in = *next_in; continue; } else if (*available_in != 0) { /* Not enough data in buffer, but can take one more byte from input stream. */ - result = BROTLI_RESULT_SUCCESS; + result = BROTLI_DECODER_SUCCESS; s->buffer.u8[s->buffer_length] = **next_in; s->buffer_length++; br->avail_in = s->buffer_length; @@ -1908,7 +1947,7 @@ BrotliResult BrotliDecompressStream(size_t* available_in, case BROTLI_STATE_UNINITED: /* Prepare to the first read. */ if (!BrotliWarmupBitReader(br)) { - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; break; } /* Decode window size. */ @@ -1916,10 +1955,16 @@ BrotliResult BrotliDecompressStream(size_t* available_in, BROTLI_LOG_UINT(s->window_bits); if (s->window_bits == 9) { /* Value 9 is reserved for future use. */ - result = BROTLI_FAILURE(); + result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS); break; } + /* Maximum distance, see section 9.1. of the spec. */ s->max_backward_distance = (1 << s->window_bits) - 16; + /* Limit custom dictionary size. */ + if (s->custom_dict_size >= s->max_backward_distance) { + s->custom_dict += s->custom_dict_size - s->max_backward_distance; + s->custom_dict_size = s->max_backward_distance; + } s->max_backward_distance_minus_custom_dict_size = s->max_backward_distance - s->custom_dict_size; @@ -1928,7 +1973,7 @@ BrotliResult BrotliDecompressStream(size_t* available_in, sizeof(HuffmanCode) * 3 * (BROTLI_HUFFMAN_MAX_SIZE_258 + BROTLI_HUFFMAN_MAX_SIZE_26)); if (s->block_type_trees == 0) { - result = BROTLI_FAILURE(); + result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES); break; } s->block_len_trees = @@ -1937,13 +1982,13 @@ BrotliResult BrotliDecompressStream(size_t* available_in, s->state = BROTLI_STATE_METABLOCK_BEGIN; /* No break, continue to next state */ case BROTLI_STATE_METABLOCK_BEGIN: - BrotliStateMetablockBegin(s); + BrotliDecoderStateMetablockBegin(s); BROTLI_LOG_UINT(s->pos); s->state = BROTLI_STATE_METABLOCK_HEADER; /* No break, continue to next state */ case BROTLI_STATE_METABLOCK_HEADER: result = DecodeMetaBlockLength(s, br); /* Reads 2 - 31 bits. */ - if (result != BROTLI_RESULT_SUCCESS) { + if (result != BROTLI_DECODER_SUCCESS) { break; } BROTLI_LOG_UINT(s->is_last_metablock); @@ -1952,7 +1997,7 @@ BrotliResult BrotliDecompressStream(size_t* available_in, BROTLI_LOG_UINT(s->is_uncompressed); if (s->is_metadata || s->is_uncompressed) { if (!BrotliJumpToByteBoundary(br)) { - result = BROTLI_FAILURE(); + result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_PADDING_1); break; } } @@ -1979,7 +2024,7 @@ BrotliResult BrotliDecompressStream(size_t* available_in, result = CopyUncompressedBlockToOutput( available_out, next_out, total_out, s); bytes_copied -= s->meta_block_remaining_len; - if (result != BROTLI_RESULT_SUCCESS) { + if (result != BROTLI_DECODER_SUCCESS) { break; } s->state = BROTLI_STATE_METABLOCK_DONE; @@ -1990,11 +2035,11 @@ BrotliResult BrotliDecompressStream(size_t* available_in, uint32_t bits; /* Read one byte and ignore it. */ if (!BrotliSafeReadBits(br, 8, &bits)) { - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; break; } } - if (result == BROTLI_RESULT_SUCCESS) { + if (result == BROTLI_DECODER_SUCCESS) { s->state = BROTLI_STATE_METABLOCK_DONE; } break; @@ -2005,7 +2050,7 @@ BrotliResult BrotliDecompressStream(size_t* available_in, } /* Reads 1..11 bits. */ result = DecodeVarLenUint8(s, br, &s->num_block_types[s->loop_counter]); - if (result != BROTLI_RESULT_SUCCESS) { + if (result != BROTLI_DECODER_SUCCESS) { break; } s->num_block_types[s->loop_counter]++; @@ -2020,15 +2065,15 @@ BrotliResult BrotliDecompressStream(size_t* available_in, int tree_offset = s->loop_counter * BROTLI_HUFFMAN_MAX_SIZE_258; result = ReadHuffmanCode(s->num_block_types[s->loop_counter] + 2, &s->block_type_trees[tree_offset], NULL, s); - if (result != BROTLI_RESULT_SUCCESS) break; + if (result != BROTLI_DECODER_SUCCESS) break; s->state = BROTLI_STATE_HUFFMAN_CODE_2; /* No break, continue to next state */ } case BROTLI_STATE_HUFFMAN_CODE_2: { int tree_offset = s->loop_counter * BROTLI_HUFFMAN_MAX_SIZE_26; - result = ReadHuffmanCode(kNumBlockLengthCodes, + result = ReadHuffmanCode(BROTLI_NUM_BLOCK_LEN_SYMBOLS, &s->block_len_trees[tree_offset], NULL, s); - if (result != BROTLI_RESULT_SUCCESS) break; + if (result != BROTLI_DECODER_SUCCESS) break; s->state = BROTLI_STATE_HUFFMAN_CODE_3; /* No break, continue to next state */ } @@ -2036,7 +2081,7 @@ BrotliResult BrotliDecompressStream(size_t* available_in, int tree_offset = s->loop_counter * BROTLI_HUFFMAN_MAX_SIZE_26; if (!SafeReadBlockLength(s, &s->block_length[s->loop_counter], &s->block_len_trees[tree_offset], br)) { - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; break; } BROTLI_LOG_UINT(s->block_length[s->loop_counter]); @@ -2047,20 +2092,20 @@ BrotliResult BrotliDecompressStream(size_t* available_in, case BROTLI_STATE_METABLOCK_HEADER_2: { uint32_t bits; if (!BrotliSafeReadBits(br, 6, &bits)) { - result = BROTLI_RESULT_NEEDS_MORE_INPUT; + result = BROTLI_DECODER_NEEDS_MORE_INPUT; break; } s->distance_postfix_bits = bits & BitMask(2); bits >>= 2; - s->num_direct_distance_codes = - NUM_DISTANCE_SHORT_CODES + (bits << s->distance_postfix_bits); + s->num_direct_distance_codes = BROTLI_NUM_DISTANCE_SHORT_CODES + + (bits << s->distance_postfix_bits); BROTLI_LOG_UINT(s->num_direct_distance_codes); BROTLI_LOG_UINT(s->distance_postfix_bits); s->distance_postfix_mask = (int)BitMask(s->distance_postfix_bits); s->context_modes = (uint8_t*)BROTLI_ALLOC(s, (size_t)s->num_block_types[0]); if (s->context_modes == 0) { - result = BROTLI_FAILURE(); + result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES); break; } s->loop_counter = 0; @@ -2069,49 +2114,45 @@ BrotliResult BrotliDecompressStream(size_t* available_in, } case BROTLI_STATE_CONTEXT_MODES: result = ReadContextModes(s); - if (result != BROTLI_RESULT_SUCCESS) { + if (result != BROTLI_DECODER_SUCCESS) { break; } s->state = BROTLI_STATE_CONTEXT_MAP_1; /* No break, continue to next state */ - case BROTLI_STATE_CONTEXT_MAP_1: { - uint32_t j; - result = DecodeContextMap(s->num_block_types[0] << kLiteralContextBits, - &s->num_literal_htrees, &s->context_map, s); - if (result != BROTLI_RESULT_SUCCESS) { + case BROTLI_STATE_CONTEXT_MAP_1: + result = DecodeContextMap( + s->num_block_types[0] << BROTLI_LITERAL_CONTEXT_BITS, + &s->num_literal_htrees, &s->context_map, s); + if (result != BROTLI_DECODER_SUCCESS) { break; } - s->trivial_literal_context = 1; - for (j = 0; j < s->num_block_types[0] << kLiteralContextBits; j++) { - if (s->context_map[j] != j >> kLiteralContextBits) { - s->trivial_literal_context = 0; - break; - } - } + DetectTrivialLiteralBlockTypes(s); s->state = BROTLI_STATE_CONTEXT_MAP_2; /* No break, continue to next state */ - } case BROTLI_STATE_CONTEXT_MAP_2: { uint32_t num_distance_codes = s->num_direct_distance_codes + (48U << s->distance_postfix_bits); result = DecodeContextMap( - s->num_block_types[2] << kDistanceContextBits, + s->num_block_types[2] << BROTLI_DISTANCE_CONTEXT_BITS, &s->num_dist_htrees, &s->dist_context_map, s); - if (result != BROTLI_RESULT_SUCCESS) { + if (result != BROTLI_DECODER_SUCCESS) { break; } - BrotliHuffmanTreeGroupInit(s, &s->literal_hgroup, kNumLiteralCodes, - s->num_literal_htrees); - BrotliHuffmanTreeGroupInit(s, &s->insert_copy_hgroup, - kNumInsertAndCopyCodes, - s->num_block_types[1]); - BrotliHuffmanTreeGroupInit(s, &s->distance_hgroup, num_distance_codes, - s->num_dist_htrees); + BrotliDecoderHuffmanTreeGroupInit( + s, &s->literal_hgroup, BROTLI_NUM_LITERAL_SYMBOLS, + s->num_literal_htrees); + BrotliDecoderHuffmanTreeGroupInit( + s, &s->insert_copy_hgroup, BROTLI_NUM_COMMAND_SYMBOLS, + s->num_block_types[1]); + BrotliDecoderHuffmanTreeGroupInit( + s, &s->distance_hgroup, num_distance_codes, + s->num_dist_htrees); if (s->literal_hgroup.codes == 0 || s->insert_copy_hgroup.codes == 0 || s->distance_hgroup.codes == 0) { - return BROTLI_FAILURE(); + return SaveErrorCode(s, + BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS)); } } s->loop_counter = 0; @@ -2131,24 +2172,19 @@ BrotliResult BrotliDecompressStream(size_t* available_in, hgroup = &s->distance_hgroup; break; default: - return BROTLI_FAILURE(); + return SaveErrorCode(s, BROTLI_FAILURE( + BROTLI_DECODER_ERROR_UNREACHABLE)); } result = HuffmanTreeGroupDecode(hgroup, s); } - if (result != BROTLI_RESULT_SUCCESS) break; + if (result != BROTLI_DECODER_SUCCESS) break; s->loop_counter++; if (s->loop_counter >= 3) { - uint8_t context_mode = s->context_modes[s->block_type_rb[1]]; - s->context_map_slice = s->context_map; + PrepareLiteralDecoding(s); s->dist_context_map_slice = s->dist_context_map; - s->context_lookup1 = - &kContextLookup[kContextLookupOffsets[context_mode]]; - s->context_lookup2 = - &kContextLookup[kContextLookupOffsets[context_mode + 1]]; s->htree_command = s->insert_copy_hgroup.htrees[0]; - s->literal_htree = s->literal_hgroup.htrees[s->literal_htree_index]; if (!s->ringbuffer && !BrotliAllocateRingBuffer(s)) { - result = BROTLI_FAILURE(); + result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2); break; } s->state = BROTLI_STATE_COMMAND_BEGIN; @@ -2159,19 +2195,17 @@ BrotliResult BrotliDecompressStream(size_t* available_in, case BROTLI_STATE_COMMAND_POST_DECODE_LITERALS: case BROTLI_STATE_COMMAND_POST_WRAP_COPY: result = ProcessCommands(s); - if (result == BROTLI_RESULT_NEEDS_MORE_INPUT) { + if (result == BROTLI_DECODER_NEEDS_MORE_INPUT) { result = SafeProcessCommands(s); } break; case BROTLI_STATE_COMMAND_INNER_WRITE: case BROTLI_STATE_COMMAND_POST_WRITE_1: case BROTLI_STATE_COMMAND_POST_WRITE_2: - result = WriteRingBuffer(available_out, next_out, total_out, s); - if (result != BROTLI_RESULT_SUCCESS) { + result = WriteRingBuffer(s, available_out, next_out, total_out); + if (result != BROTLI_DECODER_SUCCESS) { break; } - s->pos -= s->ringbuffer_size; - s->rb_roundtrips++; s->max_distance = s->max_backward_distance; if (s->state == BROTLI_STATE_COMMAND_POST_WRITE_1) { memcpy(s->ringbuffer, s->ringbuffer_end, (size_t)s->pos); @@ -2197,13 +2231,18 @@ BrotliResult BrotliDecompressStream(size_t* available_in, } break; case BROTLI_STATE_METABLOCK_DONE: - BrotliStateCleanupAfterMetablock(s); + if (s->meta_block_remaining_len < 0) { + result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2); + break; + } + BrotliDecoderStateCleanupAfterMetablock(s); if (!s->is_last_metablock) { s->state = BROTLI_STATE_METABLOCK_BEGIN; break; } if (!BrotliJumpToByteBoundary(br)) { - result = BROTLI_FAILURE(); + result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_PADDING_2); + break; } if (s->buffer_length == 0) { BrotliBitReaderUnload(br); @@ -2214,23 +2253,94 @@ BrotliResult BrotliDecompressStream(size_t* available_in, /* No break, continue to next state */ case BROTLI_STATE_DONE: if (s->ringbuffer != 0) { - result = WriteRingBuffer(available_out, next_out, total_out, s); - if (result != BROTLI_RESULT_SUCCESS) { + result = WriteRingBuffer(s, available_out, next_out, total_out); + if (result != BROTLI_DECODER_SUCCESS) { break; } } - return result; + return SaveErrorCode(s, result); } } - return result; + return SaveErrorCode(s, result); } -void BrotliSetCustomDictionary( - size_t size, const uint8_t* dict, BrotliState* s) { +void BrotliDecoderSetCustomDictionary( + BrotliDecoderState* s, size_t size, const uint8_t* dict) { + if (size > (1u << 24)) { + return; + } s->custom_dict = dict; s->custom_dict_size = (int)size; } +BROTLI_BOOL BrotliDecoderHasMoreOutput(const BrotliDecoderState* s) { + return TO_BROTLI_BOOL( + s->ringbuffer != 0 && UnwrittenBytes(s, BROTLI_FALSE) != 0); +} + +BROTLI_BOOL BrotliDecoderIsUsed(const BrotliDecoderState* s) { + return TO_BROTLI_BOOL(s->state != BROTLI_STATE_UNINITED || + BrotliGetAvailableBits(&s->br) != 0); +} + +BROTLI_BOOL BrotliDecoderIsFinished(const BrotliDecoderState* s) { + return TO_BROTLI_BOOL(s->state == BROTLI_STATE_DONE); +} + +BrotliDecoderErrorCode BrotliDecoderGetErrorCode(const BrotliDecoderState* s) { + return (BrotliDecoderErrorCode)s->error_code; +} + +const char* BrotliDecoderErrorString(BrotliDecoderErrorCode c) { + switch (c) { +#define _BROTLI_ERROR_CODE_CASE(PREFIX, NAME, CODE) \ + case BROTLI_DECODER ## PREFIX ## NAME: return #NAME; +#define _BROTLI_NOTHING + BROTLI_DECODER_ERROR_CODES_LIST(_BROTLI_ERROR_CODE_CASE, _BROTLI_NOTHING) +#undef _BROTLI_ERROR_CODE_CASE +#undef _BROTLI_NOTHING + default: return "INVALID"; + } +} + +/* DEPRECATED >>> */ +BrotliState* BrotliCreateState( + brotli_alloc_func alloc, brotli_free_func free, void* opaque) { + return (BrotliState*)BrotliDecoderCreateInstance(alloc, free, opaque); +} +void BrotliDestroyState(BrotliState* state) { + BrotliDecoderDestroyInstance((BrotliDecoderState*)state); +} +BrotliResult BrotliDecompressBuffer( + size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size, + uint8_t* decoded_buffer) { + return (BrotliResult)BrotliDecoderDecompress( + encoded_size, encoded_buffer, decoded_size, decoded_buffer); +} +BrotliResult BrotliDecompressStream( + size_t* available_in, const uint8_t** next_in, size_t* available_out, + uint8_t** next_out, size_t* total_out, BrotliState* s) { + return (BrotliResult)BrotliDecoderDecompressStream((BrotliDecoderState*)s, + available_in, next_in, available_out, next_out, total_out); +} +void BrotliSetCustomDictionary( + size_t size, const uint8_t* dict, BrotliState* s) { + BrotliDecoderSetCustomDictionary((BrotliDecoderState*)s, size, dict); +} +BROTLI_BOOL BrotliStateIsStreamStart(const BrotliState* s) { + return !BrotliDecoderIsUsed((const BrotliDecoderState*)s); +} +BROTLI_BOOL BrotliStateIsStreamEnd(const BrotliState* s) { + return BrotliDecoderIsFinished((const BrotliDecoderState*)s); +} +BrotliErrorCode BrotliGetErrorCode(const BrotliState* s) { + return (BrotliErrorCode)BrotliDecoderGetErrorCode( + (const BrotliDecoderState*)s); +} +const char* BrotliErrorString(BrotliErrorCode c) { + return BrotliDecoderErrorString((BrotliDecoderErrorCode)c); +} +/* <<< DEPRECATED */ #if defined(__cplusplus) || defined(c_plusplus) } /* extern "C" */ diff --git a/thirdparty/brotli/dec/decode.h b/thirdparty/brotli/dec/decode.h index 074b2f58..405c4631 100644 --- a/thirdparty/brotli/dec/decode.h +++ b/thirdparty/brotli/dec/decode.h @@ -9,49 +9,91 @@ #ifndef BROTLI_DEC_DECODE_H_ #define BROTLI_DEC_DECODE_H_ -#include "./state.h" -#include "./types.h" +#include "../common/types.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif +typedef struct BrotliDecoderStateStruct BrotliDecoderState; + typedef enum { /* Decoding error, e.g. corrupt input or memory allocation problem */ - BROTLI_RESULT_ERROR = 0, + BROTLI_DECODER_RESULT_ERROR = 0, /* Decoding successfully completed */ - BROTLI_RESULT_SUCCESS = 1, + BROTLI_DECODER_RESULT_SUCCESS = 1, /* Partially done; should be called again with more input */ - BROTLI_RESULT_NEEDS_MORE_INPUT = 2, + BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT = 2, /* Partially done; should be called again with more output */ - BROTLI_RESULT_NEEDS_MORE_OUTPUT = 3 -} BrotliResult; + BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT = 3 +} BrotliDecoderResult; + +#define BROTLI_DECODER_ERROR_CODES_LIST(BROTLI_ERROR_CODE, SEPARATOR) \ + BROTLI_ERROR_CODE(_, NO_ERROR, 0) SEPARATOR \ + /* Same as BrotliDecoderResult values */ \ + BROTLI_ERROR_CODE(_, SUCCESS, 1) SEPARATOR \ + BROTLI_ERROR_CODE(_, NEEDS_MORE_INPUT, 2) SEPARATOR \ + BROTLI_ERROR_CODE(_, NEEDS_MORE_OUTPUT, 3) SEPARATOR \ + \ + /* Errors caused by invalid input */ \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, EXUBERANT_NIBBLE, -1) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, RESERVED, -2) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, EXUBERANT_META_NIBBLE, -3) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, SIMPLE_HUFFMAN_ALPHABET, -4) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, SIMPLE_HUFFMAN_SAME, -5) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, CL_SPACE, -6) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, HUFFMAN_SPACE, -7) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, CONTEXT_MAP_REPEAT, -8) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, BLOCK_LENGTH_1, -9) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, BLOCK_LENGTH_2, -10) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, TRANSFORM, -11) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, DICTIONARY, -12) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, WINDOW_BITS, -13) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_1, -14) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_2, -15) SEPARATOR \ + \ + /* -16..-20 codes are reserved */ \ + \ + /* Memory allocation problems */ \ + BROTLI_ERROR_CODE(_ERROR_ALLOC_, CONTEXT_MODES, -21) SEPARATOR \ + /* Literal, insert and distance trees together */ \ + BROTLI_ERROR_CODE(_ERROR_ALLOC_, TREE_GROUPS, -22) SEPARATOR \ + /* -23..-24 codes are reserved for distinct tree groups */ \ + BROTLI_ERROR_CODE(_ERROR_ALLOC_, CONTEXT_MAP, -25) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_ALLOC_, RING_BUFFER_1, -26) SEPARATOR \ + BROTLI_ERROR_CODE(_ERROR_ALLOC_, RING_BUFFER_2, -27) SEPARATOR \ + /* -28..-29 codes are reserved for dynamic ringbuffer allocation */ \ + BROTLI_ERROR_CODE(_ERROR_ALLOC_, BLOCK_TYPE_TREES, -30) SEPARATOR \ + \ + /* "Impossible" states */ \ + BROTLI_ERROR_CODE(_ERROR_, UNREACHABLE, -31) -/* Creates the instance of BrotliState and initializes it. |alloc_func| and - |free_func| MUST be both zero or both non-zero. In the case they are both +typedef enum { +#define _BROTLI_COMMA , +#define _BROTLI_ERROR_CODE_ENUM_ITEM(PREFIX, NAME, CODE) \ + BROTLI_DECODER ## PREFIX ## NAME = CODE + BROTLI_DECODER_ERROR_CODES_LIST(_BROTLI_ERROR_CODE_ENUM_ITEM, _BROTLI_COMMA) +#undef _BROTLI_ERROR_CODE_ENUM_ITEM +#undef _BROTLI_COMMA +} BrotliDecoderErrorCode; + +#define BROTLI_LAST_ERROR_CODE BROTLI_DECODER_ERROR_UNREACHABLE + +/* Creates the instance of BrotliDecoderState and initializes it. |alloc_func| + and |free_func| MUST be both zero or both non-zero. In the case they are both zero, default memory allocators are used. |opaque| is passed to |alloc_func| and |free_func| when they are called. */ -BrotliState* BrotliCreateState( +BrotliDecoderState* BrotliDecoderCreateInstance( brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque); -/* Deinitializes and frees BrotliState instance. */ -void BrotliDestroyState(BrotliState* state); - -/* Sets |*decoded_size| to the decompressed size of the given encoded stream. - This function only works if the encoded buffer has a single meta block, - or if it has two meta-blocks, where the first is uncompressed and the - second is empty. - Returns 1 on success, 0 on failure. */ -int BrotliDecompressedSize(size_t encoded_size, - const uint8_t* encoded_buffer, - size_t* decoded_size); +/* Deinitializes and frees BrotliDecoderState instance. */ +void BrotliDecoderDestroyInstance(BrotliDecoderState* state); /* Decompresses the data in |encoded_buffer| into |decoded_buffer|, and sets |*decoded_size| to the decompressed length. */ -BrotliResult BrotliDecompressBuffer(size_t encoded_size, - const uint8_t* encoded_buffer, - size_t* decoded_size, - uint8_t* decoded_buffer); +BrotliDecoderResult BrotliDecoderDecompress( + size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size, + uint8_t* decoded_buffer); /* Decompresses the data. Supports partial input and output. @@ -63,31 +105,81 @@ BrotliResult BrotliDecompressBuffer(size_t encoded_size, bytes consumed, and the |*next_in| pointer will be incremented by that amount. Similarly, |*available_out| will be decremented by the amount of output bytes written, and the |*next_out| pointer will be incremented by that - amount. |total_out| will be set to the number of bytes decompressed since - last state initialization. + amount. |total_out|, if it is not a null-pointer, will be set to the number + of bytes decompressed since the last state initialization. Input is never overconsumed, so |next_in| and |available_in| could be passed to the next consumer after decoding is complete. */ -BrotliResult BrotliDecompressStream(size_t* available_in, - const uint8_t** next_in, - size_t* available_out, - uint8_t** next_out, - size_t* total_out, - BrotliState* s); +BrotliDecoderResult BrotliDecoderDecompressStream( + BrotliDecoderState* s, size_t* available_in, const uint8_t** next_in, + size_t* available_out, uint8_t** next_out, size_t* total_out); /* Fills the new state with a dictionary for LZ77, warming up the ringbuffer, e.g. for custom static dictionaries for data formats. Not to be confused with the built-in transformable dictionary of Brotli. - The dictionary must exist in memory until decoding is done and is owned by - the caller. To use: - 1) initialize state with BrotliStateInit - 2) use BrotliSetCustomDictionary - 3) use BrotliDecompressStream - 4) clean up with BrotliStateCleanup + |size| should be less or equal to 2^24 (16MiB), otherwise the dictionary will + be ignored. The dictionary must exist in memory until decoding is done and + is owned by the caller. To use: + 1) Allocate and initialize state with BrotliCreateInstance + 2) Use BrotliSetCustomDictionary + 3) Use BrotliDecompressStream + 4) Clean up and free state with BrotliDestroyState */ +void BrotliDecoderSetCustomDictionary( + BrotliDecoderState* s, size_t size, const uint8_t* dict); + +/* Returns true, if decoder has some unconsumed output. + Otherwise returns false. */ +BROTLI_BOOL BrotliDecoderHasMoreOutput(const BrotliDecoderState* s); + +/* Returns true, if decoder has already received some input bytes. + Otherwise returns false. */ +BROTLI_BOOL BrotliDecoderIsUsed(const BrotliDecoderState* s); + +/* Returns true, if decoder is in a state where we reached the end of the input + and produced all of the output; returns false otherwise. */ +BROTLI_BOOL BrotliDecoderIsFinished(const BrotliDecoderState* s); + +/* Returns detailed error code after BrotliDecompressStream returns + BROTLI_DECODER_RESULT_ERROR. */ +BrotliDecoderErrorCode BrotliDecoderGetErrorCode(const BrotliDecoderState* s); + +const char* BrotliDecoderErrorString(BrotliDecoderErrorCode c); + +/* DEPRECATED >>> */ +typedef enum { + BROTLI_RESULT_ERROR = 0, + BROTLI_RESULT_SUCCESS = 1, + BROTLI_RESULT_NEEDS_MORE_INPUT = 2, + BROTLI_RESULT_NEEDS_MORE_OUTPUT = 3 +} BrotliResult; +typedef enum { +#define _BROTLI_COMMA , +#define _BROTLI_ERROR_CODE_ENUM_ITEM(PREFIX, NAME, CODE) \ + BROTLI ## PREFIX ## NAME = CODE + BROTLI_DECODER_ERROR_CODES_LIST(_BROTLI_ERROR_CODE_ENUM_ITEM, _BROTLI_COMMA) +#undef _BROTLI_ERROR_CODE_ENUM_ITEM +#undef _BROTLI_COMMA +} BrotliErrorCode; +typedef struct BrotliStateStruct BrotliState; +BrotliState* BrotliCreateState( + brotli_alloc_func alloc, brotli_free_func free, void* opaque); +void BrotliDestroyState(BrotliState* state); +BROTLI_BOOL BrotliDecompressedSize( + size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size); +BrotliResult BrotliDecompressBuffer( + size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size, + uint8_t* decoded_buffer); +BrotliResult BrotliDecompressStream( + size_t* available_in, const uint8_t** next_in, size_t* available_out, + uint8_t** next_out, size_t* total_out, BrotliState* s); void BrotliSetCustomDictionary( size_t size, const uint8_t* dict, BrotliState* s); - +BROTLI_BOOL BrotliStateIsStreamStart(const BrotliState* s); +BROTLI_BOOL BrotliStateIsStreamEnd(const BrotliState* s); +BrotliErrorCode BrotliGetErrorCode(const BrotliState* s); +const char* BrotliErrorString(BrotliErrorCode c); +/* <<< DEPRECATED */ #if defined(__cplusplus) || defined(c_plusplus) } /* extern "C" */ diff --git a/thirdparty/brotli/dec/dictionary.h b/thirdparty/brotli/dec/dictionary.h deleted file mode 100644 index ae250c2d..00000000 --- a/thirdparty/brotli/dec/dictionary.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Collection of static dictionary words. */ - -#ifndef BROTLI_DEC_DICTIONARY_H_ -#define BROTLI_DEC_DICTIONARY_H_ - -#include "./types.h" - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - -extern const uint8_t kBrotliDictionary[122784]; - -static const uint32_t kBrotliDictionaryOffsetsByLength[] = { - 0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032, 53248, 63488, 74752, 87040, - 93696, 100864, 104704, 106752, 108928, 113536, 115968, 118528, 119872, 121280, - 122016 -}; - -static const uint8_t kBrotliDictionarySizeBitsByLength[] = { - 0, 0, 0, 0, 10, 10, 11, 11, 10, 10, 10, 10, 10, - 9, 9, 8, 7, 7, 8, 7, 7, 6, 6, 5, 5, -}; - -static const int kBrotliMinDictionaryWordLength = 4; -static const int kBrotliMaxDictionaryWordLength = 24; - -#if defined(__cplusplus) || defined(c_plusplus) -} /* extern "C" */ -#endif - -#endif /* BROTLI_DEC_DICTIONARY_H_ */ diff --git a/thirdparty/brotli/dec/huffman.c b/thirdparty/brotli/dec/huffman.c index 159ac1c7..e17ee275 100644 --- a/thirdparty/brotli/dec/huffman.c +++ b/thirdparty/brotli/dec/huffman.c @@ -10,8 +10,9 @@ #include <string.h> /* memcpy, memset */ +#include "../common/constants.h" +#include "../common/types.h" #include "./port.h" -#include "./types.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -99,7 +100,6 @@ static BROTLI_INLINE int NextTableBitSize(const uint16_t* const count, return len - root_bits; } - void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* table, const uint8_t* const code_lengths, uint16_t* count) { @@ -109,7 +109,7 @@ void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* table, uint32_t key_step; /* prefix code addend */ int step; /* step size to replicate values in current table */ int table_size; /* size of current table */ - int sorted[18]; /* symbols sorted by code length */ + int sorted[BROTLI_CODE_LENGTH_CODES]; /* symbols sorted by code length */ /* offsets in sorted table for each length */ int offset[BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH + 1]; int bits; @@ -126,10 +126,10 @@ void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* table, bits++; }); /* Symbols with code length 0 are placed after all other symbols. */ - offset[0] = 17; + offset[0] = BROTLI_CODE_LENGTH_CODES - 1; /* sort symbols by length, by symbol order within each length */ - symbol = 18; + symbol = BROTLI_CODE_LENGTH_CODES; do { BROTLI_REPEAT(6, { symbol--; diff --git a/thirdparty/brotli/dec/huffman.h b/thirdparty/brotli/dec/huffman.h index 7cbec80d..354f27d1 100644 --- a/thirdparty/brotli/dec/huffman.h +++ b/thirdparty/brotli/dec/huffman.h @@ -9,7 +9,8 @@ #ifndef BROTLI_DEC_HUFFMAN_H_ #define BROTLI_DEC_HUFFMAN_H_ -#include "./types.h" +#include "../common/types.h" +#include "./port.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -17,16 +18,16 @@ extern "C" { #define BROTLI_HUFFMAN_MAX_CODE_LENGTH 15 -/* For current format this constant equals to kNumInsertAndCopyCodes */ -#define BROTLI_HUFFMAN_MAX_CODE_LENGTHS_SIZE 704 - /* Maximum possible Huffman table size for an alphabet size of (index * 32), * max code length 15 and root table bits 8. */ static const uint16_t kMaxHuffmanTableSize[] = { 256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080}; +/* BROTLI_NUM_BLOCK_LEN_SYMBOLS == 26 */ #define BROTLI_HUFFMAN_MAX_SIZE_26 396 +/* BROTLI_MAX_BLOCK_TYPE_SYMBOLS == 258 */ #define BROTLI_HUFFMAN_MAX_SIZE_258 632 +/* BROTLI_MAX_CONTEXT_MAP_SYMBOLS == 272 */ #define BROTLI_HUFFMAN_MAX_SIZE_272 646 #define BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH 5 @@ -36,27 +37,21 @@ typedef struct { uint16_t value; /* symbol value or table offset */ } HuffmanCode; - /* Builds Huffman lookup table assuming code lengths are in symbol order. */ -void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* root_table, - const uint8_t* const code_lengths, - uint16_t* count); +BROTLI_INTERNAL void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* root_table, + const uint8_t* const code_lengths, uint16_t* count); /* Builds Huffman lookup table assuming code lengths are in symbol order. */ /* Returns size of resulting table. */ -uint32_t BrotliBuildHuffmanTable(HuffmanCode* root_table, - int root_bits, - const uint16_t* const symbol_lists, - uint16_t* count_arg); +BROTLI_INTERNAL uint32_t BrotliBuildHuffmanTable(HuffmanCode* root_table, + int root_bits, const uint16_t* const symbol_lists, uint16_t* count_arg); /* Builds a simple Huffman table. The num_symbols parameter is to be */ /* interpreted as follows: 0 means 1 symbol, 1 means 2 symbols, 2 means 3 */ /* symbols, 3 means 4 symbols with lengths 2,2,2,2, 4 means 4 symbols with */ /* lengths 1,2,3,3. */ -uint32_t BrotliBuildSimpleHuffmanTable(HuffmanCode* table, - int root_bits, - uint16_t* symbols, - uint32_t num_symbols); +BROTLI_INTERNAL uint32_t BrotliBuildSimpleHuffmanTable(HuffmanCode* table, + int root_bits, uint16_t* symbols, uint32_t num_symbols); /* Contains a collection of Huffman trees with the same alphabet size. */ typedef struct { diff --git a/thirdparty/brotli/dec/port.h b/thirdparty/brotli/dec/port.h index fe091227..31e0295c 100644 --- a/thirdparty/brotli/dec/port.h +++ b/thirdparty/brotli/dec/port.h @@ -18,26 +18,18 @@ read and overlapping memcpy; this reduces decompression speed by 5% * BROTLI_DEBUG dumps file name and line number when decoder detects stream or memory error - * BROTLI_DECODE_DEBUG enables asserts and dumps various state information + * BROTLI_ENABLE_LOG enables asserts and dumps various state information */ #ifndef BROTLI_DEC_PORT_H_ #define BROTLI_DEC_PORT_H_ +#if defined(BROTLI_ENABLE_LOG) || defined(BROTLI_DEBUG) #include <assert.h> - -/* Compatibility with non-clang compilers. */ -#ifndef __has_builtin -#define __has_builtin(x) 0 +#include <stdio.h> #endif -#ifndef __has_attribute -#define __has_attribute(x) 0 -#endif - -#ifndef __has_feature -#define __has_feature(x) 0 -#endif +#include "../common/port.h" #if defined(__arm__) || defined(__thumb__) || \ defined(_M_ARM) || defined(_M_ARMT) @@ -63,58 +55,14 @@ #define BROTLI_TARGET_POWERPC64 #endif -#if defined(__GNUC__) && defined(__GNUC_MINOR__) -#define BROTLI_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) -#else -#define BROTLI_GCC_VERSION 0 -#endif - -#if defined(__ICC) -#define BROTLI_ICC_VERSION __ICC -#else -#define BROTLI_ICC_VERSION 0 -#endif - -#if defined(BROTLI_BUILD_MODERN_COMPILER) -#define BROTLI_MODERN_COMPILER 1 -#elif (BROTLI_GCC_VERSION > 300) || (BROTLI_ICC_VERSION >= 1600) -#define BROTLI_MODERN_COMPILER 1 -#else -#define BROTLI_MODERN_COMPILER 0 -#endif - #ifdef BROTLI_BUILD_PORTABLE -#define BROTLI_ALIGNED_READ 1 +#define BROTLI_ALIGNED_READ (!!1) #elif defined(BROTLI_TARGET_X86) || defined(BROTLI_TARGET_X64) || \ defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8) -#define BROTLI_ALIGNED_READ 0 /* Allow unaligned access on whitelisted CPUs. */ -#else -#define BROTLI_ALIGNED_READ 1 -#endif - -/* Define "PREDICT_TRUE" and "PREDICT_FALSE" macros for capable compilers. - -To apply compiler hint, enclose the branching condition into macros, like this: - - if (PREDICT_TRUE(zero == 0)) { - // main execution path - } else { - // compiler should place this code outside of main execution path - } - -OR: - - if (PREDICT_FALSE(something_rare_or_unexpected_happens)) { - // compiler should place this code outside of main execution path - } - -*/ -#if BROTLI_MODERN_COMPILER || __has_builtin(__builtin_expect) -#define PREDICT_TRUE(x) (__builtin_expect(!!(x), 1)) -#define PREDICT_FALSE(x) (__builtin_expect(x, 0)) +/* Allow unaligned read only for whitelisted CPUs. */ +#define BROTLI_ALIGNED_READ (!!0) #else -#define PREDICT_FALSE(x) (x) -#define PREDICT_TRUE(x) (x) +#define BROTLI_ALIGNED_READ (!!1) #endif /* IS_CONSTANT macros returns true for compile-time constant expressions. */ @@ -124,27 +72,22 @@ OR: #define IS_CONSTANT(x) (!!0) #endif -#if BROTLI_MODERN_COMPILER || __has_attribute(always_inline) -#define ATTRIBUTE_ALWAYS_INLINE __attribute__ ((always_inline)) -#else -#define ATTRIBUTE_ALWAYS_INLINE -#endif - -#ifndef _MSC_VER -#if defined(__cplusplus) || !defined(__STRICT_ANSI__) || \ - __STDC_VERSION__ >= 199901L -#define BROTLI_INLINE inline ATTRIBUTE_ALWAYS_INLINE +#ifdef BROTLI_ENABLE_LOG +#define BROTLI_DCHECK(x) assert(x) +#define BROTLI_LOG(x) printf x #else -#define BROTLI_INLINE +#define BROTLI_DCHECK(x) +#define BROTLI_LOG(x) #endif -#else /* _MSC_VER */ -#define BROTLI_INLINE __forceinline -#endif /* _MSC_VER */ -#ifdef BROTLI_DECODE_DEBUG -#define BROTLI_DCHECK(x) assert(x) +#if defined(BROTLI_DEBUG) || defined(BROTLI_ENABLE_LOG) +static BROTLI_INLINE void BrotliDump(const char* f, int l, const char* fn) { + fprintf(stderr, "%s:%d (%s)\n", f, l, fn); + fflush(stderr); +} +#define BROTLI_DUMP() BrotliDump(__FILE__, __LINE__, __FUNCTION__) #else -#define BROTLI_DCHECK(x) +#define BROTLI_DUMP() (void)(0) #endif #if defined(BROTLI_BUILD_64_BIT) @@ -183,12 +126,6 @@ OR: #define BROTLI_LITTLE_ENDIAN 0 #endif -#if BROTLI_MODERN_COMPILER || __has_attribute(noinline) -#define BROTLI_NOINLINE __attribute__((noinline)) -#else -#define BROTLI_NOINLINE -#endif - #define BROTLI_REPEAT(N, X) { \ if ((N & 1) != 0) {X;} \ if ((N & 2) != 0) {X; X;} \ @@ -219,6 +156,4 @@ static BROTLI_INLINE unsigned BrotliRBit(unsigned input) { X = NULL; \ } -#define BROTLI_UNUSED(X) (void)(X) - #endif /* BROTLI_DEC_PORT_H_ */ diff --git a/thirdparty/brotli/dec/prefix.h b/thirdparty/brotli/dec/prefix.h index eaae37f0..8c5e1ec0 100644 --- a/thirdparty/brotli/dec/prefix.h +++ b/thirdparty/brotli/dec/prefix.h @@ -11,7 +11,8 @@ #ifndef BROTLI_DEC_PREFIX_H_ #define BROTLI_DEC_PREFIX_H_ -#include "./types.h" +#include "../common/constants.h" +#include "../common/types.h" /* Represents the range of values belonging to a prefix code: */ /* [offset, offset + 2^nbits) */ @@ -20,7 +21,8 @@ struct PrefixCodeRange { uint8_t nbits; }; -static const struct PrefixCodeRange kBlockLengthPrefixCode[] = { +static const struct PrefixCodeRange + kBlockLengthPrefixCode[BROTLI_NUM_BLOCK_LEN_SYMBOLS] = { { 1, 2}, { 5, 2}, { 9, 2}, { 13, 2}, { 17, 3}, { 25, 3}, { 33, 3}, { 41, 3}, { 49, 4}, { 65, 4}, { 81, 4}, { 97, 4}, @@ -39,7 +41,7 @@ typedef struct CmdLutElement { uint16_t copy_len_offset; } CmdLutElement; -static const CmdLutElement kCmdLut[704] = { +static const CmdLutElement kCmdLut[BROTLI_NUM_COMMAND_SYMBOLS] = { { 0x00, 0x00, 0, 0x00, 0x0000, 0x0002 }, { 0x00, 0x00, 0, 0x01, 0x0000, 0x0003 }, { 0x00, 0x00, 0, 0x02, 0x0000, 0x0004 }, diff --git a/thirdparty/brotli/dec/state.c b/thirdparty/brotli/dec/state.c index 52c0e6c8..e6ff742b 100644 --- a/thirdparty/brotli/dec/state.c +++ b/thirdparty/brotli/dec/state.c @@ -8,8 +8,8 @@ #include <stdlib.h> /* free, malloc */ +#include "../common/types.h" #include "./huffman.h" -#include "./types.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -25,11 +25,11 @@ static void DefaultFreeFunc(void* opaque, void* address) { free(address); } -void BrotliStateInit(BrotliState* s) { - BrotliStateInitWithCustomAllocators(s, 0, 0, 0); +void BrotliDecoderStateInit(BrotliDecoderState* s) { + BrotliDecoderStateInitWithCustomAllocators(s, 0, 0, 0); } -void BrotliStateInitWithCustomAllocators(BrotliState* s, +void BrotliDecoderStateInitWithCustomAllocators(BrotliDecoderState* s, brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque) { if (!alloc_func) { s->alloc_func = DefaultAllocFunc; @@ -76,7 +76,6 @@ void BrotliStateInitWithCustomAllocators(BrotliState* s, s->distance_hgroup.codes = NULL; s->distance_hgroup.htrees = NULL; - s->custom_dict = NULL; s->custom_dict_size = 0; @@ -97,7 +96,7 @@ void BrotliStateInitWithCustomAllocators(BrotliState* s, s->mtf_upper_bound = 255; } -void BrotliStateMetablockBegin(BrotliState* s) { +void BrotliDecoderStateMetablockBegin(BrotliDecoderState* s) { s->meta_block_remaining_len = 0; s->block_length[0] = 1U << 28; s->block_length[1] = 1U << 28; @@ -115,7 +114,6 @@ void BrotliStateMetablockBegin(BrotliState* s) { s->context_modes = NULL; s->dist_context_map = NULL; s->context_map_slice = NULL; - s->literal_htree_index = 0; s->literal_htree = NULL; s->dist_context_map_slice = NULL; s->dist_htree_index = 0; @@ -129,34 +127,25 @@ void BrotliStateMetablockBegin(BrotliState* s) { s->distance_hgroup.htrees = NULL; } -void BrotliStateCleanupAfterMetablock(BrotliState* s) { +void BrotliDecoderStateCleanupAfterMetablock(BrotliDecoderState* s) { BROTLI_FREE(s, s->context_modes); BROTLI_FREE(s, s->context_map); BROTLI_FREE(s, s->dist_context_map); - BrotliHuffmanTreeGroupRelease(s, &s->literal_hgroup); - BrotliHuffmanTreeGroupRelease(s, &s->insert_copy_hgroup); - BrotliHuffmanTreeGroupRelease(s, &s->distance_hgroup); + BrotliDecoderHuffmanTreeGroupRelease(s, &s->literal_hgroup); + BrotliDecoderHuffmanTreeGroupRelease(s, &s->insert_copy_hgroup); + BrotliDecoderHuffmanTreeGroupRelease(s, &s->distance_hgroup); } -void BrotliStateCleanup(BrotliState* s) { - BrotliStateCleanupAfterMetablock(s); +void BrotliDecoderStateCleanup(BrotliDecoderState* s) { + BrotliDecoderStateCleanupAfterMetablock(s); BROTLI_FREE(s, s->ringbuffer); BROTLI_FREE(s, s->block_type_trees); } -int BrotliStateIsStreamStart(const BrotliState* s) { - return (s->state == BROTLI_STATE_UNINITED && - BrotliGetAvailableBits(&s->br) == 0); -} - -int BrotliStateIsStreamEnd(const BrotliState* s) { - return s->state == BROTLI_STATE_DONE; -} - -void BrotliHuffmanTreeGroupInit(BrotliState* s, HuffmanTreeGroup* group, - uint32_t alphabet_size, uint32_t ntrees) { +void BrotliDecoderHuffmanTreeGroupInit(BrotliDecoderState* s, + HuffmanTreeGroup* group, uint32_t alphabet_size, uint32_t ntrees) { /* Pack two allocations into one */ const size_t max_table_size = kMaxHuffmanTableSize[(alphabet_size + 31) >> 5]; const size_t code_size = sizeof(HuffmanCode) * ntrees * max_table_size; @@ -168,7 +157,8 @@ void BrotliHuffmanTreeGroupInit(BrotliState* s, HuffmanTreeGroup* group, group->htrees = (HuffmanCode**)(p + code_size); } -void BrotliHuffmanTreeGroupRelease(BrotliState* s, HuffmanTreeGroup* group) { +void BrotliDecoderHuffmanTreeGroupRelease( + BrotliDecoderState* s, HuffmanTreeGroup* group) { BROTLI_FREE(s, group->codes); group->htrees = NULL; } diff --git a/thirdparty/brotli/dec/state.h b/thirdparty/brotli/dec/state.h index 925fa149..70e76740 100644 --- a/thirdparty/brotli/dec/state.h +++ b/thirdparty/brotli/dec/state.h @@ -9,9 +9,11 @@ #ifndef BROTLI_DEC_STATE_H_ #define BROTLI_DEC_STATE_H_ +#include "../common/constants.h" +#include "../common/types.h" #include "./bit_reader.h" #include "./huffman.h" -#include "./types.h" +#include "./port.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -92,7 +94,7 @@ typedef enum { BROTLI_STATE_READ_BLOCK_LENGTH_SUFFIX } BrotliRunningReadBlockLengthState; -struct BrotliStateStruct { +struct BrotliDecoderStateStruct { BrotliRunningState state; /* This counter is reused for several disjoint loops. */ @@ -119,6 +121,8 @@ struct BrotliStateStruct { int ringbuffer_mask; int dist_rb_idx; int dist_rb[4]; + int error_code; + uint32_t sub_loop_counter; uint8_t* ringbuffer; uint8_t* ringbuffer_end; HuffmanCode* htree_command; @@ -127,8 +131,6 @@ struct BrotliStateStruct { uint8_t* context_map_slice; uint8_t* dist_context_map_slice; - uint32_t sub_loop_counter; - /* This ring buffer holds a few past copy distances that will be used by */ /* some special distance codes. */ HuffmanTreeGroup literal_hgroup; @@ -151,12 +153,10 @@ struct BrotliStateStruct { uint32_t num_dist_htrees; uint8_t* dist_context_map; HuffmanCode* literal_htree; - uint8_t literal_htree_index; uint8_t dist_htree_index; uint32_t repeat_code_len; uint32_t prev_code_len; - int copy_length; int distance_code; @@ -174,10 +174,10 @@ struct BrotliStateStruct { uint16_t* symbol_lists; /* Storage from symbol_lists. */ uint16_t symbols_lists_array[BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1 + - BROTLI_HUFFMAN_MAX_CODE_LENGTHS_SIZE]; + BROTLI_NUM_COMMAND_SYMBOLS]; /* Tails of symbol chains. */ int next_symbol[32]; - uint8_t code_length_code_lengths[18]; + uint8_t code_length_code_lengths[BROTLI_CODE_LENGTH_CODES]; /* Population counts for the code lengths */ uint16_t code_length_histo[16]; @@ -193,7 +193,7 @@ struct BrotliStateStruct { /* For InverseMoveToFrontTransform */ uint32_t mtf_upper_bound; - uint8_t mtf[256]; + uint8_t mtf[256 + 4]; /* For custom dictionaries */ const uint8_t* custom_dict; @@ -218,29 +218,26 @@ struct BrotliStateStruct { uint32_t num_literal_htrees; uint8_t* context_map; uint8_t* context_modes; + + uint32_t trivial_literal_contexts[8]; /* 256 bits */ }; -typedef struct BrotliStateStruct BrotliState; - -void BrotliStateInit(BrotliState* s); -void BrotliStateInitWithCustomAllocators(BrotliState* s, - brotli_alloc_func alloc_func, - brotli_free_func free_func, - void* opaque); -void BrotliStateCleanup(BrotliState* s); -void BrotliStateMetablockBegin(BrotliState* s); -void BrotliStateCleanupAfterMetablock(BrotliState* s); -void BrotliHuffmanTreeGroupInit(BrotliState* s, HuffmanTreeGroup* group, - uint32_t alphabet_size, uint32_t ntrees); -void BrotliHuffmanTreeGroupRelease(BrotliState* s, HuffmanTreeGroup* group); - -/* Returns 1, if s is in a state where we have not read any input bytes yet, - and 0 otherwise */ -int BrotliStateIsStreamStart(const BrotliState* s); - -/* Returns 1, if s is in a state where we reached the end of the input and - produced all of the output, and 0 otherwise. */ -int BrotliStateIsStreamEnd(const BrotliState* s); +typedef struct BrotliDecoderStateStruct BrotliDecoderStateInternal; +#define BrotliDecoderState BrotliDecoderStateInternal + +BROTLI_INTERNAL void BrotliDecoderStateInit(BrotliDecoderState* s); +BROTLI_INTERNAL void BrotliDecoderStateInitWithCustomAllocators( + BrotliDecoderState* s, brotli_alloc_func alloc_func, + brotli_free_func free_func, void* opaque); +BROTLI_INTERNAL void BrotliDecoderStateCleanup(BrotliDecoderState* s); +BROTLI_INTERNAL void BrotliDecoderStateMetablockBegin(BrotliDecoderState* s); +BROTLI_INTERNAL void BrotliDecoderStateCleanupAfterMetablock( + BrotliDecoderState* s); +BROTLI_INTERNAL void BrotliDecoderHuffmanTreeGroupInit( + BrotliDecoderState* s, HuffmanTreeGroup* group, uint32_t alphabet_size, + uint32_t ntrees); +BROTLI_INTERNAL void BrotliDecoderHuffmanTreeGroupRelease( + BrotliDecoderState* s, HuffmanTreeGroup* group); #if defined(__cplusplus) || defined(c_plusplus) } /* extern "C" */ diff --git a/thirdparty/brotli/dec/transform.h b/thirdparty/brotli/dec/transform.h index 8c08f3fc..4e676f10 100644 --- a/thirdparty/brotli/dec/transform.h +++ b/thirdparty/brotli/dec/transform.h @@ -9,8 +9,8 @@ #ifndef BROTLI_DEC_TRANSFORM_H_ #define BROTLI_DEC_TRANSFORM_H_ +#include "../common/types.h" #include "./port.h" -#include "./types.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { diff --git a/thirdparty/brotli/enc/backward_references.c b/thirdparty/brotli/enc/backward_references.c new file mode 100644 index 00000000..e877c8de --- /dev/null +++ b/thirdparty/brotli/enc/backward_references.c @@ -0,0 +1,892 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Function to find backward reference copies. */ + +#include "./backward_references.h" + +#include <math.h> /* INFINITY */ +#include <string.h> /* memcpy, memset */ + +#include "../common/constants.h" +#include "../common/types.h" +#include "./command.h" +#include "./fast_log.h" +#include "./find_match_length.h" +#include "./literal_cost.h" +#include "./memory.h" +#include "./port.h" +#include "./prefix.h" +#include "./quality.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#ifdef INFINITY +static const float kInfinity = INFINITY; +#else +static const float kInfinity = 3.4028e38f; +#endif + +void BrotliInitZopfliNodes(ZopfliNode* array, size_t length) { + ZopfliNode stub; + size_t i; + stub.length = 1; + stub.distance = 0; + stub.insert_length = 0; + stub.u.cost = kInfinity; + for (i = 0; i < length; ++i) array[i] = stub; +} + +static BROTLI_INLINE uint32_t ZopfliNodeCopyLength(const ZopfliNode* self) { + return self->length & 0xffffff; +} + +static BROTLI_INLINE uint32_t ZopfliNodeLengthCode(const ZopfliNode* self) { + const uint32_t modifier = self->length >> 24; + return ZopfliNodeCopyLength(self) + 9u - modifier; +} + +static BROTLI_INLINE uint32_t ZopfliNodeCopyDistance(const ZopfliNode* self) { + return self->distance & 0x1ffffff; +} + +static BROTLI_INLINE uint32_t ZopfliNodeDistanceCode(const ZopfliNode* self) { + const uint32_t short_code = self->distance >> 25; + return short_code == 0 ? ZopfliNodeCopyDistance(self) + 15 : short_code - 1; +} + +static BROTLI_INLINE uint32_t ZopfliNodeCommandLength(const ZopfliNode* self) { + return ZopfliNodeCopyLength(self) + self->insert_length; +} + +/* Histogram based cost model for zopflification. */ +typedef struct ZopfliCostModel { + /* The insert and copy length symbols. */ + float cost_cmd_[BROTLI_NUM_COMMAND_SYMBOLS]; + float cost_dist_[BROTLI_NUM_DISTANCE_SYMBOLS]; + /* Cumulative costs of literals per position in the stream. */ + float* literal_costs_; + float min_cost_cmd_; + size_t num_bytes_; +} ZopfliCostModel; + +static void InitZopfliCostModel( + MemoryManager* m, ZopfliCostModel* self, size_t num_bytes) { + self->num_bytes_ = num_bytes; + self->literal_costs_ = BROTLI_ALLOC(m, float, num_bytes + 2); + if (BROTLI_IS_OOM(m)) return; +} + +static void CleanupZopfliCostModel(MemoryManager* m, ZopfliCostModel* self) { + BROTLI_FREE(m, self->literal_costs_); +} + +static void SetCost(const uint32_t* histogram, size_t histogram_size, + float* cost) { + size_t sum = 0; + float log2sum; + size_t i; + for (i = 0; i < histogram_size; i++) { + sum += histogram[i]; + } + log2sum = (float)FastLog2(sum); + for (i = 0; i < histogram_size; i++) { + if (histogram[i] == 0) { + cost[i] = log2sum + 2; + continue; + } + + /* Shannon bits for this symbol. */ + cost[i] = log2sum - (float)FastLog2(histogram[i]); + + /* Cannot be coded with less than 1 bit */ + if (cost[i] < 1) cost[i] = 1; + } +} + +static void ZopfliCostModelSetFromCommands(ZopfliCostModel* self, + size_t position, + const uint8_t* ringbuffer, + size_t ringbuffer_mask, + const Command* commands, + size_t num_commands, + size_t last_insert_len) { + uint32_t histogram_literal[BROTLI_NUM_LITERAL_SYMBOLS]; + uint32_t histogram_cmd[BROTLI_NUM_COMMAND_SYMBOLS]; + uint32_t histogram_dist[BROTLI_NUM_DISTANCE_SYMBOLS]; + float cost_literal[BROTLI_NUM_LITERAL_SYMBOLS]; + size_t pos = position - last_insert_len; + float min_cost_cmd = kInfinity; + size_t i; + float* cost_cmd = self->cost_cmd_; + + memset(histogram_literal, 0, sizeof(histogram_literal)); + memset(histogram_cmd, 0, sizeof(histogram_cmd)); + memset(histogram_dist, 0, sizeof(histogram_dist)); + + for (i = 0; i < num_commands; i++) { + size_t inslength = commands[i].insert_len_; + size_t copylength = CommandCopyLen(&commands[i]); + size_t distcode = commands[i].dist_prefix_; + size_t cmdcode = commands[i].cmd_prefix_; + size_t j; + + histogram_cmd[cmdcode]++; + if (cmdcode >= 128) histogram_dist[distcode]++; + + for (j = 0; j < inslength; j++) { + histogram_literal[ringbuffer[(pos + j) & ringbuffer_mask]]++; + } + + pos += inslength + copylength; + } + + SetCost(histogram_literal, BROTLI_NUM_LITERAL_SYMBOLS, cost_literal); + SetCost(histogram_cmd, BROTLI_NUM_COMMAND_SYMBOLS, cost_cmd); + SetCost(histogram_dist, BROTLI_NUM_DISTANCE_SYMBOLS, self->cost_dist_); + + for (i = 0; i < BROTLI_NUM_COMMAND_SYMBOLS; ++i) { + min_cost_cmd = BROTLI_MIN(float, min_cost_cmd, cost_cmd[i]); + } + self->min_cost_cmd_ = min_cost_cmd; + + { + float* literal_costs = self->literal_costs_; + size_t num_bytes = self->num_bytes_; + literal_costs[0] = 0.0; + for (i = 0; i < num_bytes; ++i) { + literal_costs[i + 1] = literal_costs[i] + + cost_literal[ringbuffer[(position + i) & ringbuffer_mask]]; + } + } +} + +static void ZopfliCostModelSetFromLiteralCosts(ZopfliCostModel* self, + size_t position, + const uint8_t* ringbuffer, + size_t ringbuffer_mask) { + float* literal_costs = self->literal_costs_; + float* cost_dist = self->cost_dist_; + float* cost_cmd = self->cost_cmd_; + size_t num_bytes = self->num_bytes_; + size_t i; + BrotliEstimateBitCostsForLiterals(position, num_bytes, ringbuffer_mask, + ringbuffer, &literal_costs[1]); + literal_costs[0] = 0.0; + for (i = 0; i < num_bytes; ++i) { + literal_costs[i + 1] += literal_costs[i]; + } + for (i = 0; i < BROTLI_NUM_COMMAND_SYMBOLS; ++i) { + cost_cmd[i] = (float)FastLog2(11 + (uint32_t)i); + } + for (i = 0; i < BROTLI_NUM_DISTANCE_SYMBOLS; ++i) { + cost_dist[i] = (float)FastLog2(20 + (uint32_t)i); + } + self->min_cost_cmd_ = (float)FastLog2(11); +} + +static BROTLI_INLINE float ZopfliCostModelGetCommandCost( + const ZopfliCostModel* self, uint16_t cmdcode) { + return self->cost_cmd_[cmdcode]; +} + +static BROTLI_INLINE float ZopfliCostModelGetDistanceCost( + const ZopfliCostModel* self, size_t distcode) { + return self->cost_dist_[distcode]; +} + +static BROTLI_INLINE float ZopfliCostModelGetLiteralCosts( + const ZopfliCostModel* self, size_t from, size_t to) { + return self->literal_costs_[to] - self->literal_costs_[from]; +} + +static BROTLI_INLINE float ZopfliCostModelGetMinCostCmd( + const ZopfliCostModel* self) { + return self->min_cost_cmd_; +} + +static BROTLI_INLINE size_t ComputeDistanceCode(size_t distance, + size_t max_distance, + const int* dist_cache) { + if (distance <= max_distance) { + size_t distance_plus_3 = distance + 3; + size_t offset0 = distance_plus_3 - (size_t)dist_cache[0]; + size_t offset1 = distance_plus_3 - (size_t)dist_cache[1]; + if (distance == (size_t)dist_cache[0]) { + return 0; + } else if (distance == (size_t)dist_cache[1]) { + return 1; + } else if (offset0 < 7) { + return (0x9750468 >> (4 * offset0)) & 0xF; + } else if (offset1 < 7) { + return (0xFDB1ACE >> (4 * offset1)) & 0xF; + } else if (distance == (size_t)dist_cache[2]) { + return 2; + } else if (distance == (size_t)dist_cache[3]) { + return 3; + } + } + return distance + 15; +} + +/* REQUIRES: len >= 2, start_pos <= pos */ +/* REQUIRES: cost < kInfinity, nodes[start_pos].cost < kInfinity */ +/* Maintains the "ZopfliNode array invariant". */ +static BROTLI_INLINE void UpdateZopfliNode(ZopfliNode* nodes, size_t pos, + size_t start_pos, size_t len, size_t len_code, size_t dist, + size_t short_code, float cost) { + ZopfliNode* next = &nodes[pos + len]; + next->length = (uint32_t)(len | ((len + 9u - len_code) << 24)); + next->distance = (uint32_t)(dist | (short_code << 25)); + next->insert_length = (uint32_t)(pos - start_pos); + next->u.cost = cost; +} + +typedef struct PosData { + size_t pos; + int distance_cache[4]; + float costdiff; + float cost; +} PosData; + +/* Maintains the smallest 8 cost difference together with their positions */ +typedef struct StartPosQueue { + PosData q_[8]; + size_t idx_; +} StartPosQueue; + +static BROTLI_INLINE void InitStartPosQueue(StartPosQueue* self) { + self->idx_ = 0; +} + +static size_t StartPosQueueSize(const StartPosQueue* self) { + return BROTLI_MIN(size_t, self->idx_, 8); +} + +static void StartPosQueuePush(StartPosQueue* self, const PosData* posdata) { + size_t offset = ~(self->idx_++) & 7; + size_t len = StartPosQueueSize(self); + size_t i; + PosData* q = self->q_; + q[offset] = *posdata; + /* Restore the sorted order. In the list of |len| items at most |len - 1| + adjacent element comparisons / swaps are required. */ + for (i = 1; i < len; ++i) { + if (q[offset & 7].costdiff > q[(offset + 1) & 7].costdiff) { + BROTLI_SWAP(PosData, q, offset & 7, (offset + 1) & 7); + } + ++offset; + } +} + +static const PosData* StartPosQueueAt(const StartPosQueue* self, size_t k) { + return &self->q_[(k - self->idx_) & 7]; +} + +/* Returns the minimum possible copy length that can improve the cost of any */ +/* future position. */ +static size_t ComputeMinimumCopyLength(const float start_cost, + const ZopfliNode* nodes, + const size_t num_bytes, + const size_t pos) { + /* Compute the minimum possible cost of reaching any future position. */ + float min_cost = start_cost; + size_t len = 2; + size_t next_len_bucket = 4; + size_t next_len_offset = 10; + while (pos + len <= num_bytes && nodes[pos + len].u.cost <= min_cost) { + /* We already reached (pos + len) with no more cost than the minimum + possible cost of reaching anything from this pos, so there is no point in + looking for lengths <= len. */ + ++len; + if (len == next_len_offset) { + /* We reached the next copy length code bucket, so we add one more + extra bit to the minimum cost. */ + min_cost += 1.0f; + next_len_offset += next_len_bucket; + next_len_bucket *= 2; + } + } + return len; +} + +/* REQUIRES: nodes[pos].cost < kInfinity + REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ +static uint32_t ComputeDistanceShortcut(const size_t block_start, + const size_t pos, + const size_t max_backward, + const ZopfliNode* nodes) { + const size_t clen = ZopfliNodeCopyLength(&nodes[pos]); + const size_t ilen = nodes[pos].insert_length; + const size_t dist = ZopfliNodeCopyDistance(&nodes[pos]); + /* Since |block_start + pos| is the end position of the command, the copy part + starts from |block_start + pos - clen|. Distances that are greater than + this or greater than |max_backward| are static dictionary references, and + do not update the last distances. Also distance code 0 (last distance) + does not update the last distances. */ + if (pos == 0) { + return 0; + } else if (dist + clen <= block_start + pos && + dist <= max_backward && + ZopfliNodeDistanceCode(&nodes[pos]) > 0) { + return (uint32_t)pos; + } else { + return nodes[pos - clen - ilen].u.shortcut; + } +} + +/* Fills in dist_cache[0..3] with the last four distances (as defined by + Section 4. of the Spec) that would be used at (block_start + pos) if we + used the shortest path of commands from block_start, computed from + nodes[0..pos]. The last four distances at block_start are in + starting_dist_cach[0..3]. + REQUIRES: nodes[pos].cost < kInfinity + REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ +static void ComputeDistanceCache(const size_t pos, + const int* starting_dist_cache, + const ZopfliNode* nodes, + int* dist_cache) { + int idx = 0; + size_t p = nodes[pos].u.shortcut; + while (idx < 4 && p > 0) { + const size_t ilen = nodes[p].insert_length; + const size_t clen = ZopfliNodeCopyLength(&nodes[p]); + const size_t dist = ZopfliNodeCopyDistance(&nodes[p]); + dist_cache[idx++] = (int)dist; + /* Because of prerequisite, p >= clen + ilen >= 2. */ + p = nodes[p - clen - ilen].u.shortcut; + } + for (; idx < 4; ++idx) { + dist_cache[idx] = *starting_dist_cache++; + } +} + +static void UpdateNodes(const size_t num_bytes, + const size_t block_start, + const size_t pos, + const uint8_t* ringbuffer, + const size_t ringbuffer_mask, + const BrotliEncoderParams* params, + const size_t max_backward_limit, + const int* starting_dist_cache, + const size_t num_matches, + const BackwardMatch* matches, + const ZopfliCostModel* model, + StartPosQueue* queue, + ZopfliNode* nodes) { + const size_t cur_ix = block_start + pos; + const size_t cur_ix_masked = cur_ix & ringbuffer_mask; + const size_t max_distance = BROTLI_MIN(size_t, cur_ix, max_backward_limit); + const size_t max_len = num_bytes - pos; + const size_t max_zopfli_len = MaxZopfliLen(params); + const size_t max_iters = MaxZopfliCandidates(params); + size_t min_len; + size_t k; + + { + /* Save cost, because ComputeDistanceCache invalidates it. */ + float node_cost = nodes[pos].u.cost; + nodes[pos].u.shortcut = ComputeDistanceShortcut( + block_start, pos, max_backward_limit, nodes); + if (node_cost <= ZopfliCostModelGetLiteralCosts(model, 0, pos)) { + PosData posdata; + posdata.pos = pos; + posdata.cost = node_cost; + posdata.costdiff = node_cost - + ZopfliCostModelGetLiteralCosts(model, 0, pos); + ComputeDistanceCache( + pos, starting_dist_cache, nodes, posdata.distance_cache); + StartPosQueuePush(queue, &posdata); + } + } + + { + const PosData* posdata = StartPosQueueAt(queue, 0); + float min_cost = (posdata->cost + ZopfliCostModelGetMinCostCmd(model) + + ZopfliCostModelGetLiteralCosts(model, posdata->pos, pos)); + min_len = ComputeMinimumCopyLength(min_cost, nodes, num_bytes, pos); + } + + /* Go over the command starting positions in order of increasing cost + difference. */ + for (k = 0; k < max_iters && k < StartPosQueueSize(queue); ++k) { + const PosData* posdata = StartPosQueueAt(queue, k); + const size_t start = posdata->pos; + const uint16_t inscode = GetInsertLengthCode(pos - start); + const float start_costdiff = posdata->costdiff; + const float base_cost = start_costdiff + (float)GetInsertExtra(inscode) + + ZopfliCostModelGetLiteralCosts(model, 0, pos); + + /* Look for last distance matches using the distance cache from this + starting position. */ + size_t best_len = min_len - 1; + size_t j = 0; + for (; j < BROTLI_NUM_DISTANCE_SHORT_CODES && best_len < max_len; ++j) { + const size_t idx = kDistanceCacheIndex[j]; + const size_t backward = + (size_t)(posdata->distance_cache[idx] + kDistanceCacheOffset[j]); + size_t prev_ix = cur_ix - backward; + if (prev_ix >= cur_ix) { + continue; + } + if (PREDICT_FALSE(backward > max_distance)) { + continue; + } + prev_ix &= ringbuffer_mask; + + if (cur_ix_masked + best_len > ringbuffer_mask || + prev_ix + best_len > ringbuffer_mask || + ringbuffer[cur_ix_masked + best_len] != + ringbuffer[prev_ix + best_len]) { + continue; + } + { + const size_t len = + FindMatchLengthWithLimit(&ringbuffer[prev_ix], + &ringbuffer[cur_ix_masked], + max_len); + const float dist_cost = base_cost + + ZopfliCostModelGetDistanceCost(model, j); + size_t l; + for (l = best_len + 1; l <= len; ++l) { + const uint16_t copycode = GetCopyLengthCode(l); + const uint16_t cmdcode = + CombineLengthCodes(inscode, copycode, j == 0); + const float cost = (cmdcode < 128 ? base_cost : dist_cost) + + (float)GetCopyExtra(copycode) + + ZopfliCostModelGetCommandCost(model, cmdcode); + if (cost < nodes[pos + l].u.cost) { + UpdateZopfliNode(nodes, pos, start, l, l, backward, j + 1, cost); + } + best_len = l; + } + } + } + + /* At higher iterations look only for new last distance matches, since + looking only for new command start positions with the same distances + does not help much. */ + if (k >= 2) continue; + + { + /* Loop through all possible copy lengths at this position. */ + size_t len = min_len; + for (j = 0; j < num_matches; ++j) { + BackwardMatch match = matches[j]; + size_t dist = match.distance; + BROTLI_BOOL is_dictionary_match = TO_BROTLI_BOOL(dist > max_distance); + /* We already tried all possible last distance matches, so we can use + normal distance code here. */ + size_t dist_code = dist + 15; + uint16_t dist_symbol; + uint32_t distextra; + uint32_t distnumextra; + float dist_cost; + size_t max_match_len; + PrefixEncodeCopyDistance(dist_code, 0, 0, &dist_symbol, &distextra); + distnumextra = distextra >> 24; + dist_cost = base_cost + (float)distnumextra + + ZopfliCostModelGetDistanceCost(model, dist_symbol); + + /* Try all copy lengths up until the maximum copy length corresponding + to this distance. If the distance refers to the static dictionary, or + the maximum length is long enough, try only one maximum length. */ + max_match_len = BackwardMatchLength(&match); + if (len < max_match_len && + (is_dictionary_match || max_match_len > max_zopfli_len)) { + len = max_match_len; + } + for (; len <= max_match_len; ++len) { + const size_t len_code = + is_dictionary_match ? BackwardMatchLengthCode(&match) : len; + const uint16_t copycode = GetCopyLengthCode(len_code); + const uint16_t cmdcode = CombineLengthCodes(inscode, copycode, 0); + const float cost = dist_cost + (float)GetCopyExtra(copycode) + + ZopfliCostModelGetCommandCost(model, cmdcode); + if (cost < nodes[pos + len].u.cost) { + UpdateZopfliNode(nodes, pos, start, len, len_code, dist, 0, cost); + } + } + } + } + } +} + +static size_t ComputeShortestPathFromNodes(size_t num_bytes, + ZopfliNode* nodes) { + size_t index = num_bytes; + size_t num_commands = 0; + while (nodes[index].insert_length == 0 && nodes[index].length == 1) --index; + nodes[index].u.next = BROTLI_UINT32_MAX; + while (index != 0) { + size_t len = ZopfliNodeCommandLength(&nodes[index]); + index -= len; + nodes[index].u.next = (uint32_t)len; + num_commands++; + } + return num_commands; +} + +void BrotliZopfliCreateCommands(const size_t num_bytes, + const size_t block_start, + const size_t max_backward_limit, + const ZopfliNode* nodes, + int* dist_cache, + size_t* last_insert_len, + Command* commands, + size_t* num_literals) { + size_t pos = 0; + uint32_t offset = nodes[0].u.next; + size_t i; + for (i = 0; offset != BROTLI_UINT32_MAX; i++) { + const ZopfliNode* next = &nodes[pos + offset]; + size_t copy_length = ZopfliNodeCopyLength(next); + size_t insert_length = next->insert_length; + pos += insert_length; + offset = next->u.next; + if (i == 0) { + insert_length += *last_insert_len; + *last_insert_len = 0; + } + { + size_t distance = ZopfliNodeCopyDistance(next); + size_t len_code = ZopfliNodeLengthCode(next); + size_t max_distance = + BROTLI_MIN(size_t, block_start + pos, max_backward_limit); + BROTLI_BOOL is_dictionary = TO_BROTLI_BOOL(distance > max_distance); + size_t dist_code = ZopfliNodeDistanceCode(next); + + InitCommand( + &commands[i], insert_length, copy_length, len_code, dist_code); + + if (!is_dictionary && dist_code > 0) { + dist_cache[3] = dist_cache[2]; + dist_cache[2] = dist_cache[1]; + dist_cache[1] = dist_cache[0]; + dist_cache[0] = (int)distance; + } + } + + *num_literals += insert_length; + pos += copy_length; + } + *last_insert_len += num_bytes - pos; +} + +static size_t ZopfliIterate(size_t num_bytes, + size_t position, + const uint8_t* ringbuffer, + size_t ringbuffer_mask, + const BrotliEncoderParams* params, + const size_t max_backward_limit, + const int* dist_cache, + const ZopfliCostModel* model, + const uint32_t* num_matches, + const BackwardMatch* matches, + ZopfliNode* nodes) { + const size_t max_zopfli_len = MaxZopfliLen(params); + StartPosQueue queue; + size_t cur_match_pos = 0; + size_t i; + nodes[0].length = 0; + nodes[0].u.cost = 0; + InitStartPosQueue(&queue); + for (i = 0; i + 3 < num_bytes; i++) { + UpdateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, + params, max_backward_limit, dist_cache, num_matches[i], + &matches[cur_match_pos], model, &queue, nodes); + cur_match_pos += num_matches[i]; + /* The zopflification can be too slow in case of very long lengths, so in + such case skip it all, it does not cost a lot of compression ratio. */ + if (num_matches[i] == 1 && + BackwardMatchLength(&matches[cur_match_pos - 1]) > max_zopfli_len) { + i += BackwardMatchLength(&matches[cur_match_pos - 1]) - 1; + InitStartPosQueue(&queue); + } + } + return ComputeShortestPathFromNodes(num_bytes, nodes); +} + + +size_t BrotliZopfliComputeShortestPath(MemoryManager* m, + size_t num_bytes, + size_t position, + const uint8_t* ringbuffer, + size_t ringbuffer_mask, + const BrotliEncoderParams* params, + const size_t max_backward_limit, + const int* dist_cache, + H10* hasher, + ZopfliNode* nodes) { + const size_t max_zopfli_len = MaxZopfliLen(params); + ZopfliCostModel model; + StartPosQueue queue; + BackwardMatch matches[MAX_NUM_MATCHES_H10]; + const size_t store_end = num_bytes >= StoreLookaheadH10() ? + position + num_bytes - StoreLookaheadH10() + 1 : position; + size_t i; + nodes[0].length = 0; + nodes[0].u.cost = 0; + InitZopfliCostModel(m, &model, num_bytes); + if (BROTLI_IS_OOM(m)) return 0; + ZopfliCostModelSetFromLiteralCosts( + &model, position, ringbuffer, ringbuffer_mask); + InitStartPosQueue(&queue); + for (i = 0; i + HashTypeLengthH10() - 1 < num_bytes; i++) { + const size_t pos = position + i; + const size_t max_distance = BROTLI_MIN(size_t, pos, max_backward_limit); + size_t num_matches = FindAllMatchesH10(hasher, ringbuffer, ringbuffer_mask, + pos, num_bytes - i, max_distance, params, matches); + if (num_matches > 0 && + BackwardMatchLength(&matches[num_matches - 1]) > max_zopfli_len) { + matches[0] = matches[num_matches - 1]; + num_matches = 1; + } + UpdateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, + params, max_backward_limit, dist_cache, num_matches, matches, + &model, &queue, nodes); + if (num_matches == 1 && BackwardMatchLength(&matches[0]) > max_zopfli_len) { + /* Add the tail of the copy to the hasher. */ + StoreRangeH10(hasher, ringbuffer, ringbuffer_mask, pos + 1, BROTLI_MIN( + size_t, pos + BackwardMatchLength(&matches[0]), store_end)); + i += BackwardMatchLength(&matches[0]) - 1; + InitStartPosQueue(&queue); + } + } + CleanupZopfliCostModel(m, &model); + return ComputeShortestPathFromNodes(num_bytes, nodes); +} + +#define EXPAND_CAT(a, b) CAT(a, b) +#define CAT(a, b) a ## b +#define FN(X) EXPAND_CAT(X, HASHER()) + +#define HASHER() H2 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H3 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H4 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H5 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H6 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H7 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H8 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H9 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H40 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H41 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#define HASHER() H42 +/* NOLINTNEXTLINE(build/include) */ +#include "./backward_references_inc.h" +#undef HASHER + +#undef FN +#undef CAT +#undef EXPAND_CAT + +static BROTLI_NOINLINE void CreateZopfliBackwardReferences( + MemoryManager* m, size_t num_bytes, size_t position, BROTLI_BOOL is_last, + const uint8_t* ringbuffer, size_t ringbuffer_mask, + const BrotliEncoderParams* params, H10* hasher, int* dist_cache, + size_t* last_insert_len, Command* commands, size_t* num_commands, + size_t* num_literals) { + const size_t max_backward_limit = MaxBackwardLimit(params->lgwin); + ZopfliNode* nodes; + InitH10(m, hasher, ringbuffer, params, position, num_bytes, is_last); + if (BROTLI_IS_OOM(m)) return; + StitchToPreviousBlockH10(hasher, num_bytes, position, + ringbuffer, ringbuffer_mask); + nodes = BROTLI_ALLOC(m, ZopfliNode, num_bytes + 1); + if (BROTLI_IS_OOM(m)) return; + BrotliInitZopfliNodes(nodes, num_bytes + 1); + *num_commands += BrotliZopfliComputeShortestPath(m, num_bytes, position, + ringbuffer, ringbuffer_mask, params, max_backward_limit, + dist_cache, hasher, nodes); + if (BROTLI_IS_OOM(m)) return; + BrotliZopfliCreateCommands(num_bytes, position, max_backward_limit, nodes, + dist_cache, last_insert_len, commands, num_literals); + BROTLI_FREE(m, nodes); +} + +static BROTLI_NOINLINE void CreateHqZopfliBackwardReferences( + MemoryManager* m, size_t num_bytes, size_t position, BROTLI_BOOL is_last, + const uint8_t* ringbuffer, size_t ringbuffer_mask, + const BrotliEncoderParams* params, H10* hasher, int* dist_cache, + size_t* last_insert_len, Command* commands, size_t* num_commands, + size_t* num_literals) { + const size_t max_backward_limit = MaxBackwardLimit(params->lgwin); + uint32_t* num_matches = BROTLI_ALLOC(m, uint32_t, num_bytes); + size_t matches_size = 4 * num_bytes; + const size_t store_end = num_bytes >= StoreLookaheadH10() ? + position + num_bytes - StoreLookaheadH10() + 1 : position; + size_t cur_match_pos = 0; + size_t i; + size_t orig_num_literals; + size_t orig_last_insert_len; + int orig_dist_cache[4]; + size_t orig_num_commands; + ZopfliCostModel model; + ZopfliNode* nodes; + BackwardMatch* matches = BROTLI_ALLOC(m, BackwardMatch, matches_size); + if (BROTLI_IS_OOM(m)) return; + InitH10(m, hasher, ringbuffer, params, position, num_bytes, is_last); + if (BROTLI_IS_OOM(m)) return; + StitchToPreviousBlockH10(hasher, num_bytes, position, + ringbuffer, ringbuffer_mask); + for (i = 0; i + HashTypeLengthH10() - 1 < num_bytes; ++i) { + const size_t pos = position + i; + size_t max_distance = BROTLI_MIN(size_t, pos, max_backward_limit); + size_t max_length = num_bytes - i; + size_t num_found_matches; + size_t cur_match_end; + size_t j; + /* Ensure that we have enough free slots. */ + BROTLI_ENSURE_CAPACITY(m, BackwardMatch, matches, matches_size, + cur_match_pos + MAX_NUM_MATCHES_H10); + if (BROTLI_IS_OOM(m)) return; + num_found_matches = FindAllMatchesH10(hasher, ringbuffer, ringbuffer_mask, + pos, max_length, max_distance, params, &matches[cur_match_pos]); + cur_match_end = cur_match_pos + num_found_matches; + for (j = cur_match_pos; j + 1 < cur_match_end; ++j) { + assert(BackwardMatchLength(&matches[j]) < + BackwardMatchLength(&matches[j + 1])); + assert(matches[j].distance > max_distance || + matches[j].distance <= matches[j + 1].distance); + } + num_matches[i] = (uint32_t)num_found_matches; + if (num_found_matches > 0) { + const size_t match_len = BackwardMatchLength(&matches[cur_match_end - 1]); + if (match_len > MAX_ZOPFLI_LEN_QUALITY_11) { + const size_t skip = match_len - 1; + matches[cur_match_pos++] = matches[cur_match_end - 1]; + num_matches[i] = 1; + /* Add the tail of the copy to the hasher. */ + StoreRangeH10(hasher, ringbuffer, ringbuffer_mask, pos + 1, + BROTLI_MIN(size_t, pos + match_len, store_end)); + memset(&num_matches[i + 1], 0, skip * sizeof(num_matches[0])); + i += skip; + } else { + cur_match_pos = cur_match_end; + } + } + } + orig_num_literals = *num_literals; + orig_last_insert_len = *last_insert_len; + memcpy(orig_dist_cache, dist_cache, 4 * sizeof(dist_cache[0])); + orig_num_commands = *num_commands; + nodes = BROTLI_ALLOC(m, ZopfliNode, num_bytes + 1); + if (BROTLI_IS_OOM(m)) return; + InitZopfliCostModel(m, &model, num_bytes); + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < 2; i++) { + BrotliInitZopfliNodes(nodes, num_bytes + 1); + if (i == 0) { + ZopfliCostModelSetFromLiteralCosts( + &model, position, ringbuffer, ringbuffer_mask); + } else { + ZopfliCostModelSetFromCommands(&model, position, ringbuffer, + ringbuffer_mask, commands, *num_commands - orig_num_commands, + orig_last_insert_len); + } + *num_commands = orig_num_commands; + *num_literals = orig_num_literals; + *last_insert_len = orig_last_insert_len; + memcpy(dist_cache, orig_dist_cache, 4 * sizeof(dist_cache[0])); + *num_commands += ZopfliIterate(num_bytes, position, ringbuffer, + ringbuffer_mask, params, max_backward_limit, dist_cache, + &model, num_matches, matches, nodes); + BrotliZopfliCreateCommands(num_bytes, position, max_backward_limit, + nodes, dist_cache, last_insert_len, commands, num_literals); + } + CleanupZopfliCostModel(m, &model); + BROTLI_FREE(m, nodes); + BROTLI_FREE(m, matches); + BROTLI_FREE(m, num_matches); +} + +void BrotliCreateBackwardReferences(MemoryManager* m, + size_t num_bytes, + size_t position, + BROTLI_BOOL is_last, + const uint8_t* ringbuffer, + size_t ringbuffer_mask, + const BrotliEncoderParams* params, + Hashers* hashers, + int* dist_cache, + size_t* last_insert_len, + Command* commands, + size_t* num_commands, + size_t* num_literals) { + if (params->quality == ZOPFLIFICATION_QUALITY) { + CreateZopfliBackwardReferences( + m, num_bytes, position, is_last, ringbuffer, ringbuffer_mask, + params, hashers->h10, dist_cache, + last_insert_len, commands, num_commands, num_literals); + return; + } else if (params->quality == HQ_ZOPFLIFICATION_QUALITY) { + CreateHqZopfliBackwardReferences( + m, num_bytes, position, is_last, ringbuffer, ringbuffer_mask, + params, hashers->h10, dist_cache, + last_insert_len, commands, num_commands, num_literals); + return; + } + + switch (ChooseHasher(params)) { +#define _CASE(N) \ + case N: \ + CreateBackwardReferencesH ## N(m, num_bytes, position, is_last, \ + ringbuffer, ringbuffer_mask, params, hashers->h ## N, dist_cache, \ + last_insert_len, commands, num_commands, num_literals); \ + break; + FOR_GENERIC_HASHERS(_CASE) +#undef _CASE + default: + break; + } + if (BROTLI_IS_OOM(m)) return; +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/backward_references.cc b/thirdparty/brotli/enc/backward_references.cc deleted file mode 100644 index 539c1e76..00000000 --- a/thirdparty/brotli/enc/backward_references.cc +++ /dev/null @@ -1,858 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Function to find backward reference copies. - -#include "./backward_references.h" - -#include <algorithm> -#include <limits> -#include <vector> - -#include "./command.h" -#include "./fast_log.h" -#include "./literal_cost.h" - -namespace brotli { - -// The maximum length for which the zopflification uses distinct distances. -static const uint16_t kMaxZopfliLen = 325; - -// Histogram based cost model for zopflification. -class ZopfliCostModel { - public: - ZopfliCostModel(void) : min_cost_cmd_(kInfinity) {} - - void SetFromCommands(size_t num_bytes, - size_t position, - const uint8_t* ringbuffer, - size_t ringbuffer_mask, - const Command* commands, - size_t num_commands, - size_t last_insert_len) { - std::vector<uint32_t> histogram_literal(256, 0); - std::vector<uint32_t> histogram_cmd(kNumCommandPrefixes, 0); - std::vector<uint32_t> histogram_dist(kNumDistancePrefixes, 0); - - size_t pos = position - last_insert_len; - for (size_t i = 0; i < num_commands; i++) { - size_t inslength = commands[i].insert_len_; - size_t copylength = commands[i].copy_len(); - size_t distcode = commands[i].dist_prefix_; - size_t cmdcode = commands[i].cmd_prefix_; - - histogram_cmd[cmdcode]++; - if (cmdcode >= 128) histogram_dist[distcode]++; - - for (size_t j = 0; j < inslength; j++) { - histogram_literal[ringbuffer[(pos + j) & ringbuffer_mask]]++; - } - - pos += inslength + copylength; - } - - std::vector<float> cost_literal; - Set(histogram_literal, &cost_literal); - Set(histogram_cmd, &cost_cmd_); - Set(histogram_dist, &cost_dist_); - - for (uint32_t i = 0; i < kNumCommandPrefixes; ++i) { - min_cost_cmd_ = std::min(min_cost_cmd_, cost_cmd_[i]); - } - - literal_costs_.resize(num_bytes + 1); - literal_costs_[0] = 0.0; - for (size_t i = 0; i < num_bytes; ++i) { - literal_costs_[i + 1] = literal_costs_[i] + - cost_literal[ringbuffer[(position + i) & ringbuffer_mask]]; - } - } - - void SetFromLiteralCosts(size_t num_bytes, - size_t position, - const uint8_t* ringbuffer, - size_t ringbuffer_mask) { - literal_costs_.resize(num_bytes + 2); - EstimateBitCostsForLiterals(position, num_bytes, ringbuffer_mask, - ringbuffer, &literal_costs_[1]); - literal_costs_[0] = 0.0; - for (size_t i = 0; i < num_bytes; ++i) { - literal_costs_[i + 1] += literal_costs_[i]; - } - cost_cmd_.resize(kNumCommandPrefixes); - cost_dist_.resize(kNumDistancePrefixes); - for (uint32_t i = 0; i < kNumCommandPrefixes; ++i) { - cost_cmd_[i] = static_cast<float>(FastLog2(11 + i)); - } - for (uint32_t i = 0; i < kNumDistancePrefixes; ++i) { - cost_dist_[i] = static_cast<float>(FastLog2(20 + i)); - } - min_cost_cmd_ = static_cast<float>(FastLog2(11)); - } - - float GetCommandCost( - size_t dist_code, size_t length_code, size_t insert_length) const { - uint16_t inscode = GetInsertLengthCode(insert_length); - uint16_t copycode = GetCopyLengthCode(length_code); - uint16_t cmdcode = CombineLengthCodes(inscode, copycode, dist_code == 0); - uint16_t dist_symbol; - uint32_t distextra; - PrefixEncodeCopyDistance(dist_code, 0, 0, &dist_symbol, &distextra); - uint32_t distnumextra = distextra >> 24; - - float result = static_cast<float>( - GetInsertExtra(inscode) + GetCopyExtra(copycode) + distnumextra); - result += cost_cmd_[cmdcode]; - if (cmdcode >= 128) result += cost_dist_[dist_symbol]; - return result; - } - - float GetLiteralCosts(size_t from, size_t to) const { - return literal_costs_[to] - literal_costs_[from]; - } - - float GetMinCostCmd(void) const { - return min_cost_cmd_; - } - - private: - void Set(const std::vector<uint32_t>& histogram, std::vector<float>* cost) { - cost->resize(histogram.size()); - size_t sum = 0; - for (size_t i = 0; i < histogram.size(); i++) { - sum += histogram[i]; - } - float log2sum = static_cast<float>(FastLog2(sum)); - for (size_t i = 0; i < histogram.size(); i++) { - if (histogram[i] == 0) { - (*cost)[i] = log2sum + 2; - continue; - } - - // Shannon bits for this symbol. - (*cost)[i] = log2sum - static_cast<float>(FastLog2(histogram[i])); - - // Cannot be coded with less than 1 bit - if ((*cost)[i] < 1) (*cost)[i] = 1; - } - } - - std::vector<float> cost_cmd_; // The insert and copy length symbols. - std::vector<float> cost_dist_; - // Cumulative costs of literals per position in the stream. - std::vector<float> literal_costs_; - float min_cost_cmd_; -}; - -inline size_t ComputeDistanceCode(size_t distance, - size_t max_distance, - int quality, - const int* dist_cache) { - if (distance <= max_distance) { - if (distance == static_cast<size_t>(dist_cache[0])) { - return 0; - } else if (distance == static_cast<size_t>(dist_cache[1])) { - return 1; - } else if (distance == static_cast<size_t>(dist_cache[2])) { - return 2; - } else if (distance == static_cast<size_t>(dist_cache[3])) { - return 3; - } else if (quality > 3 && distance >= 6) { - for (size_t k = 4; k < kNumDistanceShortCodes; ++k) { - size_t idx = kDistanceCacheIndex[k]; - size_t candidate = - static_cast<size_t>(dist_cache[idx] + kDistanceCacheOffset[k]); - static const size_t kLimits[16] = { 0, 0, 0, 0, - 6, 6, 11, 11, - 11, 11, 11, 11, - 12, 12, 12, 12 }; - if (distance == candidate && distance >= kLimits[k]) { - return k; - } - } - } - } - return distance + 15; -} - -// REQUIRES: len >= 2, start_pos <= pos -// REQUIRES: cost < kInfinity, nodes[start_pos].cost < kInfinity -// Maintains the "ZopfliNode array invariant". -inline void UpdateZopfliNode(ZopfliNode* nodes, size_t pos, size_t start_pos, - size_t len, size_t len_code, size_t dist, - size_t short_code, float cost) { - ZopfliNode& next = nodes[pos + len]; - next.length = static_cast<uint32_t>(len | ((len + 9u - len_code) << 24)); - next.distance = static_cast<uint32_t>(dist | (short_code << 25)); - next.insert_length = static_cast<uint32_t>(pos - start_pos); - next.cost = cost; -} - -// Maintains the smallest 2^k cost difference together with their positions -class StartPosQueue { - public: - struct PosData { - size_t pos; - int distance_cache[4]; - float costdiff; - }; - - explicit StartPosQueue(int bits) - : mask_((1u << bits) - 1), q_(1 << bits), idx_(0) {} - - void Clear(void) { - idx_ = 0; - } - - void Push(const StartPosQueue::PosData& posdata) { - size_t offset = ~idx_ & mask_; - ++idx_; - size_t len = size(); - q_[offset] = posdata; - /* Restore the sorted order. In the list of |len| items at most |len - 1| - adjacent element comparisons / swaps are required. */ - for (size_t i = 1; i < len; ++i) { - if (q_[offset & mask_].costdiff > q_[(offset + 1) & mask_].costdiff) { - std::swap(q_[offset & mask_], q_[(offset + 1) & mask_]); - } - ++offset; - } - } - - size_t size(void) const { return std::min(idx_, mask_ + 1); } - - const StartPosQueue::PosData& GetStartPosData(size_t k) const { - return q_[(k - idx_) & mask_]; - } - - private: - const size_t mask_; - std::vector<PosData> q_; - size_t idx_; -}; - -// Returns the minimum possible copy length that can improve the cost of any -// future position. -static size_t ComputeMinimumCopyLength(const StartPosQueue& queue, - const ZopfliNode* nodes, - const ZopfliCostModel& model, - const size_t num_bytes, - const size_t pos) { - // Compute the minimum possible cost of reaching any future position. - const size_t start0 = queue.GetStartPosData(0).pos; - float min_cost = (nodes[start0].cost + - model.GetLiteralCosts(start0, pos) + - model.GetMinCostCmd()); - size_t len = 2; - size_t next_len_bucket = 4; - size_t next_len_offset = 10; - while (pos + len <= num_bytes && nodes[pos + len].cost <= min_cost) { - // We already reached (pos + len) with no more cost than the minimum - // possible cost of reaching anything from this pos, so there is no point in - // looking for lengths <= len. - ++len; - if (len == next_len_offset) { - // We reached the next copy length code bucket, so we add one more - // extra bit to the minimum cost. - min_cost += static_cast<float>(1.0); - next_len_offset += next_len_bucket; - next_len_bucket *= 2; - } - } - return len; -} - -// Fills in dist_cache[0..3] with the last four distances (as defined by -// Section 4. of the Spec) that would be used at (block_start + pos) if we -// used the shortest path of commands from block_start, computed from -// nodes[0..pos]. The last four distances at block_start are in -// starting_dist_cach[0..3]. -// REQUIRES: nodes[pos].cost < kInfinity -// REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". -static void ComputeDistanceCache(const size_t block_start, - const size_t pos, - const size_t max_backward, - const int* starting_dist_cache, - const ZopfliNode* nodes, - int* dist_cache) { - int idx = 0; - size_t p = pos; - // Because of prerequisite, does at most (pos + 1) / 2 iterations. - while (idx < 4 && p > 0) { - const size_t clen = nodes[p].copy_length(); - const size_t ilen = nodes[p].insert_length; - const size_t dist = nodes[p].copy_distance(); - // Since block_start + p is the end position of the command, the copy part - // starts from block_start + p - clen. Distances that are greater than this - // or greater than max_backward are static dictionary references, and do - // not update the last distances. Also distance code 0 (last distance) - // does not update the last distances. - if (dist + clen <= block_start + p && dist <= max_backward && - nodes[p].distance_code() > 0) { - dist_cache[idx++] = static_cast<int>(dist); - } - // Because of prerequisite, p >= clen + ilen >= 2. - p -= clen + ilen; - } - for (; idx < 4; ++idx) { - dist_cache[idx] = *starting_dist_cache++; - } -} - -static void UpdateNodes(const size_t num_bytes, - const size_t block_start, - const size_t pos, - const uint8_t* ringbuffer, - const size_t ringbuffer_mask, - const size_t max_backward_limit, - const int* starting_dist_cache, - const size_t num_matches, - const BackwardMatch* matches, - const ZopfliCostModel* model, - StartPosQueue* queue, - ZopfliNode* nodes) { - size_t cur_ix = block_start + pos; - size_t cur_ix_masked = cur_ix & ringbuffer_mask; - size_t max_distance = std::min(cur_ix, max_backward_limit); - - if (nodes[pos].cost <= model->GetLiteralCosts(0, pos)) { - StartPosQueue::PosData posdata; - posdata.pos = pos; - posdata.costdiff = nodes[pos].cost - model->GetLiteralCosts(0, pos); - ComputeDistanceCache(block_start, pos, max_backward_limit, - starting_dist_cache, nodes, posdata.distance_cache); - queue->Push(posdata); - } - - const size_t min_len = ComputeMinimumCopyLength( - *queue, nodes, *model, num_bytes, pos); - - // Go over the command starting positions in order of increasing cost - // difference. - for (size_t k = 0; k < 5 && k < queue->size(); ++k) { - const StartPosQueue::PosData& posdata = queue->GetStartPosData(k); - const size_t start = posdata.pos; - const float start_costdiff = posdata.costdiff; - - // Look for last distance matches using the distance cache from this - // starting position. - size_t best_len = min_len - 1; - for (size_t j = 0; j < kNumDistanceShortCodes; ++j) { - const size_t idx = kDistanceCacheIndex[j]; - const size_t backward = static_cast<size_t>(posdata.distance_cache[idx] + - kDistanceCacheOffset[j]); - size_t prev_ix = cur_ix - backward; - if (prev_ix >= cur_ix) { - continue; - } - if (PREDICT_FALSE(backward > max_distance)) { - continue; - } - prev_ix &= ringbuffer_mask; - - if (cur_ix_masked + best_len > ringbuffer_mask || - prev_ix + best_len > ringbuffer_mask || - ringbuffer[cur_ix_masked + best_len] != - ringbuffer[prev_ix + best_len]) { - continue; - } - const size_t len = - FindMatchLengthWithLimit(&ringbuffer[prev_ix], - &ringbuffer[cur_ix_masked], - num_bytes - pos); - for (size_t l = best_len + 1; l <= len; ++l) { - const size_t inslen = pos - start; - float cmd_cost = model->GetCommandCost(j, l, inslen); - float cost = start_costdiff + cmd_cost + model->GetLiteralCosts(0, pos); - if (cost < nodes[pos + l].cost) { - UpdateZopfliNode(&nodes[0], pos, start, l, l, backward, j + 1, cost); - } - best_len = l; - } - } - - // At higher iterations look only for new last distance matches, since - // looking only for new command start positions with the same distances - // does not help much. - if (k >= 2) continue; - - // Loop through all possible copy lengths at this position. - size_t len = min_len; - for (size_t j = 0; j < num_matches; ++j) { - BackwardMatch match = matches[j]; - size_t dist = match.distance; - bool is_dictionary_match = dist > max_distance; - // We already tried all possible last distance matches, so we can use - // normal distance code here. - size_t dist_code = dist + 15; - // Try all copy lengths up until the maximum copy length corresponding - // to this distance. If the distance refers to the static dictionary, or - // the maximum length is long enough, try only one maximum length. - size_t max_len = match.length(); - if (len < max_len && (is_dictionary_match || max_len > kMaxZopfliLen)) { - len = max_len; - } - for (; len <= max_len; ++len) { - size_t len_code = is_dictionary_match ? match.length_code() : len; - const size_t inslen = pos - start; - float cmd_cost = model->GetCommandCost(dist_code, len_code, inslen); - float cost = start_costdiff + cmd_cost + model->GetLiteralCosts(0, pos); - if (cost < nodes[pos + len].cost) { - UpdateZopfliNode(&nodes[0], pos, start, len, len_code, dist, 0, cost); - } - } - } - } -} - -static void ComputeShortestPathFromNodes(size_t num_bytes, - const ZopfliNode* nodes, - std::vector<uint32_t>* path) { - std::vector<uint32_t> backwards(num_bytes / 2 + 1); - size_t index = num_bytes; - while (nodes[index].cost == kInfinity) --index; - size_t num_commands = 0; - while (index != 0) { - size_t len = nodes[index].command_length(); - backwards[num_commands++] = static_cast<uint32_t>(len); - index -= len; - } - path->resize(num_commands); - for (size_t i = num_commands, j = 0; i > 0; --i, ++j) { - (*path)[j] = backwards[i - 1]; - } -} - -void ZopfliCreateCommands(const size_t num_bytes, - const size_t block_start, - const size_t max_backward_limit, - const std::vector<uint32_t>& path, - const ZopfliNode* nodes, - int* dist_cache, - size_t* last_insert_len, - Command* commands, - size_t* num_literals) { - size_t pos = 0; - for (size_t i = 0; i < path.size(); i++) { - const ZopfliNode& next = nodes[pos + path[i]]; - size_t copy_length = next.copy_length(); - size_t insert_length = next.insert_length; - pos += insert_length; - if (i == 0) { - insert_length += *last_insert_len; - *last_insert_len = 0; - } - size_t distance = next.copy_distance(); - size_t len_code = next.length_code(); - size_t max_distance = std::min(block_start + pos, max_backward_limit); - bool is_dictionary = (distance > max_distance); - size_t dist_code = next.distance_code(); - - Command cmd(insert_length, copy_length, len_code, dist_code); - commands[i] = cmd; - - if (!is_dictionary && dist_code > 0) { - dist_cache[3] = dist_cache[2]; - dist_cache[2] = dist_cache[1]; - dist_cache[1] = dist_cache[0]; - dist_cache[0] = static_cast<int>(distance); - } - - *num_literals += insert_length; - pos += copy_length; - } - *last_insert_len += num_bytes - pos; -} - -static void ZopfliIterate(size_t num_bytes, - size_t position, - const uint8_t* ringbuffer, - size_t ringbuffer_mask, - const size_t max_backward_limit, - const int* dist_cache, - const ZopfliCostModel& model, - const std::vector<uint32_t>& num_matches, - const std::vector<BackwardMatch>& matches, - ZopfliNode* nodes, - std::vector<uint32_t>* path) { - nodes[0].length = 0; - nodes[0].cost = 0; - StartPosQueue queue(3); - size_t cur_match_pos = 0; - for (size_t i = 0; i + 3 < num_bytes; i++) { - UpdateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, - max_backward_limit, dist_cache, num_matches[i], - &matches[cur_match_pos], &model, &queue, &nodes[0]); - cur_match_pos += num_matches[i]; - // The zopflification can be too slow in case of very long lengths, so in - // such case skip it all, it does not cost a lot of compression ratio. - if (num_matches[i] == 1 && - matches[cur_match_pos - 1].length() > kMaxZopfliLen) { - i += matches[cur_match_pos - 1].length() - 1; - queue.Clear(); - } - } - ComputeShortestPathFromNodes(num_bytes, &nodes[0], path); -} - - -void ZopfliComputeShortestPath(size_t num_bytes, - size_t position, - const uint8_t* ringbuffer, - size_t ringbuffer_mask, - const size_t max_backward_limit, - const int* dist_cache, - Hashers::H10* hasher, - ZopfliNode* nodes, - std::vector<uint32_t>* path) { - nodes[0].length = 0; - nodes[0].cost = 0; - ZopfliCostModel* model = new ZopfliCostModel; - model->SetFromLiteralCosts(num_bytes, position, - ringbuffer, ringbuffer_mask); - StartPosQueue queue(3); - BackwardMatch matches[Hashers::H10::kMaxNumMatches]; - for (size_t i = 0; i + 3 < num_bytes; i++) { - const size_t max_distance = std::min(position + i, max_backward_limit); - size_t num_matches = hasher->FindAllMatches( - ringbuffer, ringbuffer_mask, position + i, num_bytes - i, max_distance, - matches); - if (num_matches > 0 && - matches[num_matches - 1].length() > kMaxZopfliLen) { - matches[0] = matches[num_matches - 1]; - num_matches = 1; - } - UpdateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, - max_backward_limit, dist_cache, num_matches, matches, - model, &queue, nodes); - if (num_matches == 1 && matches[0].length() > kMaxZopfliLen) { - for (size_t j = 1; j < matches[0].length() && i + 4 < num_bytes; ++j) { - ++i; - if (matches[0].length() - j < 64 && - num_bytes - i >= kMaxTreeCompLength) { - hasher->Store(ringbuffer, ringbuffer_mask, position + i); - } - } - queue.Clear(); - } - } - delete model; - ComputeShortestPathFromNodes(num_bytes, nodes, path); -} - -template<typename Hasher> -void CreateBackwardReferences(size_t num_bytes, - size_t position, - bool is_last, - const uint8_t* ringbuffer, - size_t ringbuffer_mask, - const int quality, - const int lgwin, - Hasher* hasher, - int* dist_cache, - size_t* last_insert_len, - Command* commands, - size_t* num_commands, - size_t* num_literals) { - // Set maximum distance, see section 9.1. of the spec. - const size_t max_backward_limit = (1 << lgwin) - 16; - - // Choose which init method is faster. - // memset is about 100 times faster than hasher->InitForData(). - const size_t kMaxBytesForPartialHashInit = Hasher::kHashMapSize >> 7; - if (position == 0 && is_last && num_bytes <= kMaxBytesForPartialHashInit) { - hasher->InitForData(ringbuffer, num_bytes); - } else { - hasher->Init(); - } - if (num_bytes >= 3 && position >= 3) { - // Prepare the hashes for three last bytes of the last write. - // These could not be calculated before, since they require knowledge - // of both the previous and the current block. - hasher->Store(&ringbuffer[(position - 3) & ringbuffer_mask], - static_cast<uint32_t>(position - 3)); - hasher->Store(&ringbuffer[(position - 2) & ringbuffer_mask], - static_cast<uint32_t>(position - 2)); - hasher->Store(&ringbuffer[(position - 1) & ringbuffer_mask], - static_cast<uint32_t>(position - 1)); - } - const Command * const orig_commands = commands; - size_t insert_length = *last_insert_len; - size_t i = position & ringbuffer_mask; - const size_t i_diff = position - i; - const size_t i_end = i + num_bytes; - - // For speed up heuristics for random data. - const size_t random_heuristics_window_size = quality < 9 ? 64 : 512; - size_t apply_random_heuristics = i + random_heuristics_window_size; - - // Minimum score to accept a backward reference. - const double kMinScore = 4.0; - - while (i + Hasher::kHashTypeLength - 1 < i_end) { - size_t max_length = i_end - i; - size_t max_distance = std::min(i + i_diff, max_backward_limit); - size_t best_len = 0; - size_t best_len_code = 0; - size_t best_dist = 0; - double best_score = kMinScore; - bool match_found = hasher->FindLongestMatch( - ringbuffer, ringbuffer_mask, - dist_cache, static_cast<uint32_t>(i + i_diff), max_length, max_distance, - &best_len, &best_len_code, &best_dist, &best_score); - if (match_found) { - // Found a match. Let's look for something even better ahead. - int delayed_backward_references_in_row = 0; - for (;;) { - --max_length; - size_t best_len_2 = - quality < 5 ? std::min(best_len - 1, max_length) : 0; - size_t best_len_code_2 = 0; - size_t best_dist_2 = 0; - double best_score_2 = kMinScore; - max_distance = std::min(i + i_diff + 1, max_backward_limit); - match_found = hasher->FindLongestMatch( - ringbuffer, ringbuffer_mask, - dist_cache, static_cast<uint32_t>(i + i_diff + 1), - max_length, max_distance, - &best_len_2, &best_len_code_2, &best_dist_2, &best_score_2); - double cost_diff_lazy = 7.0; - if (match_found && best_score_2 >= best_score + cost_diff_lazy) { - // Ok, let's just write one byte for now and start a match from the - // next byte. - ++i; - ++insert_length; - best_len = best_len_2; - best_len_code = best_len_code_2; - best_dist = best_dist_2; - best_score = best_score_2; - if (++delayed_backward_references_in_row < 4) { - continue; - } - } - break; - } - apply_random_heuristics = - i + 2 * best_len + random_heuristics_window_size; - max_distance = std::min(i + i_diff, max_backward_limit); - // The first 16 codes are special shortcodes, and the minimum offset is 1. - size_t distance_code = - ComputeDistanceCode(best_dist, max_distance, quality, dist_cache); - if (best_dist <= max_distance && distance_code > 0) { - dist_cache[3] = dist_cache[2]; - dist_cache[2] = dist_cache[1]; - dist_cache[1] = dist_cache[0]; - dist_cache[0] = static_cast<int>(best_dist); - } - Command cmd(insert_length, best_len, best_len_code, distance_code); - *commands++ = cmd; - *num_literals += insert_length; - insert_length = 0; - // Put the hash keys into the table, if there are enough - // bytes left. - for (size_t j = 2; j < best_len; ++j) { - hasher->Store(&ringbuffer[i + j], - static_cast<uint32_t>(i + i_diff + j)); - } - i += best_len; - } else { - ++insert_length; - ++i; - // If we have not seen matches for a long time, we can skip some - // match lookups. Unsuccessful match lookups are very very expensive - // and this kind of a heuristic speeds up compression quite - // a lot. - if (i > apply_random_heuristics) { - // Going through uncompressible data, jump. - if (i > apply_random_heuristics + 4 * random_heuristics_window_size) { - // It is quite a long time since we saw a copy, so we assume - // that this data is not compressible, and store hashes less - // often. Hashes of non compressible data are less likely to - // turn out to be useful in the future, too, so we store less of - // them to not to flood out the hash table of good compressible - // data. - size_t i_jump = std::min(i + 16, i_end - 4); - for (; i < i_jump; i += 4) { - hasher->Store(ringbuffer + i, static_cast<uint32_t>(i + i_diff)); - insert_length += 4; - } - } else { - size_t i_jump = std::min(i + 8, i_end - 3); - for (; i < i_jump; i += 2) { - hasher->Store(ringbuffer + i, static_cast<uint32_t>(i + i_diff)); - insert_length += 2; - } - } - } - } - } - insert_length += i_end - i; - *last_insert_len = insert_length; - *num_commands += static_cast<size_t>(commands - orig_commands); -} - -void CreateBackwardReferences(size_t num_bytes, - size_t position, - bool is_last, - const uint8_t* ringbuffer, - size_t ringbuffer_mask, - const int quality, - const int lgwin, - Hashers* hashers, - int hash_type, - int* dist_cache, - size_t* last_insert_len, - Command* commands, - size_t* num_commands, - size_t* num_literals) { - bool zopflify = quality > 9; - if (zopflify) { - Hashers::H10* hasher = hashers->hash_h10; - hasher->Init(lgwin, position, num_bytes, is_last); - hasher->StitchToPreviousBlock(num_bytes, position, - ringbuffer, ringbuffer_mask); - // Set maximum distance, see section 9.1. of the spec. - const size_t max_backward_limit = (1 << lgwin) - 16; - if (quality == 10) { - std::vector<ZopfliNode> nodes(num_bytes + 1); - std::vector<uint32_t> path; - ZopfliComputeShortestPath(num_bytes, position, - ringbuffer, ringbuffer_mask, - max_backward_limit, dist_cache, hasher, - &nodes[0], &path); - ZopfliCreateCommands(num_bytes, position, max_backward_limit, path, - &nodes[0], dist_cache, last_insert_len, commands, - num_literals); - *num_commands += path.size(); - return; - } - std::vector<uint32_t> num_matches(num_bytes); - std::vector<BackwardMatch> matches(4 * num_bytes); - size_t cur_match_pos = 0; - for (size_t i = 0; i + 3 < num_bytes; ++i) { - size_t max_distance = std::min(position + i, max_backward_limit); - size_t max_length = num_bytes - i; - // Ensure that we have enough free slots. - if (matches.size() < cur_match_pos + Hashers::H10::kMaxNumMatches) { - matches.resize(cur_match_pos + Hashers::H10::kMaxNumMatches); - } - size_t num_found_matches = hasher->FindAllMatches( - ringbuffer, ringbuffer_mask, position + i, max_length, max_distance, - &matches[cur_match_pos]); - const size_t cur_match_end = cur_match_pos + num_found_matches; - for (size_t j = cur_match_pos; j + 1 < cur_match_end; ++j) { - assert(matches[j].length() < matches[j + 1].length()); - assert(matches[j].distance > max_distance || - matches[j].distance <= matches[j + 1].distance); - } - num_matches[i] = static_cast<uint32_t>(num_found_matches); - if (num_found_matches > 0) { - const size_t match_len = matches[cur_match_end - 1].length(); - if (match_len > kMaxZopfliLen) { - matches[cur_match_pos++] = matches[cur_match_end - 1]; - num_matches[i] = 1; - for (size_t j = 1; j < match_len; ++j) { - ++i; - if (match_len - j < 64 && num_bytes - i >= kMaxTreeCompLength) { - hasher->Store(ringbuffer, ringbuffer_mask, position + i); - } - num_matches[i] = 0; - } - } else { - cur_match_pos = cur_match_end; - } - } - } - size_t orig_num_literals = *num_literals; - size_t orig_last_insert_len = *last_insert_len; - int orig_dist_cache[4] = { - dist_cache[0], dist_cache[1], dist_cache[2], dist_cache[3] - }; - size_t orig_num_commands = *num_commands; - static const size_t kIterations = 2; - for (size_t i = 0; i < kIterations; i++) { - ZopfliCostModel model; - if (i == 0) { - model.SetFromLiteralCosts(num_bytes, position, - ringbuffer, ringbuffer_mask); - } else { - model.SetFromCommands(num_bytes, position, - ringbuffer, ringbuffer_mask, - commands, *num_commands - orig_num_commands, - orig_last_insert_len); - } - *num_commands = orig_num_commands; - *num_literals = orig_num_literals; - *last_insert_len = orig_last_insert_len; - memcpy(dist_cache, orig_dist_cache, 4 * sizeof(dist_cache[0])); - std::vector<ZopfliNode> nodes(num_bytes + 1); - std::vector<uint32_t> path; - ZopfliIterate(num_bytes, position, ringbuffer, ringbuffer_mask, - max_backward_limit, dist_cache, model, num_matches, matches, - &nodes[0], &path); - ZopfliCreateCommands(num_bytes, position, max_backward_limit, path, - &nodes[0], dist_cache, last_insert_len, commands, - num_literals); - *num_commands += path.size(); - } - return; - } - - switch (hash_type) { - case 2: - CreateBackwardReferences<Hashers::H2>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h2, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - case 3: - CreateBackwardReferences<Hashers::H3>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h3, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - case 4: - CreateBackwardReferences<Hashers::H4>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h4, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - case 5: - CreateBackwardReferences<Hashers::H5>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h5, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - case 6: - CreateBackwardReferences<Hashers::H6>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h6, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - case 7: - CreateBackwardReferences<Hashers::H7>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h7, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - case 8: - CreateBackwardReferences<Hashers::H8>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h8, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - case 9: - CreateBackwardReferences<Hashers::H9>( - num_bytes, position, is_last, ringbuffer, ringbuffer_mask, - quality, lgwin, hashers->hash_h9, dist_cache, - last_insert_len, commands, num_commands, num_literals); - break; - default: - break; - } -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/backward_references.h b/thirdparty/brotli/enc/backward_references.h index f60667f7..d84402bd 100644 --- a/thirdparty/brotli/enc/backward_references.h +++ b/thirdparty/brotli/enc/backward_references.h @@ -4,113 +4,96 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Function to find backward reference copies. +/* Function to find backward reference copies. */ #ifndef BROTLI_ENC_BACKWARD_REFERENCES_H_ #define BROTLI_ENC_BACKWARD_REFERENCES_H_ -#include <vector> - -#include "./hash.h" +#include "../common/types.h" #include "./command.h" -#include "./types.h" - -namespace brotli { - -// "commands" points to the next output command to write to, "*num_commands" is -// initially the total amount of commands output by previous -// CreateBackwardReferences calls, and must be incremented by the amount written -// by this call. -void CreateBackwardReferences(size_t num_bytes, - size_t position, - bool is_last, - const uint8_t* ringbuffer, - size_t ringbuffer_mask, - const int quality, - const int lgwin, - Hashers* hashers, - int hash_type, - int* dist_cache, - size_t* last_insert_len, - Command* commands, - size_t* num_commands, - size_t* num_literals); - -static const float kInfinity = std::numeric_limits<float>::infinity(); - -struct ZopfliNode { - ZopfliNode(void) : length(1), - distance(0), - insert_length(0), - cost(kInfinity) {} - - inline uint32_t copy_length() const { - return length & 0xffffff; - } - - inline uint32_t length_code() const { - const uint32_t modifier = length >> 24; - return copy_length() + 9u - modifier; - } - - inline uint32_t copy_distance() const { - return distance & 0x1ffffff; - } - - inline uint32_t distance_code() const { - const uint32_t short_code = distance >> 25; - return short_code == 0 ? copy_distance() + 15 : short_code - 1; - } - - inline uint32_t command_length() const { - return copy_length() + insert_length; - } - - // best length to get up to this byte (not including this byte itself) - // highest 8 bit is used to reconstruct the length code +#include "./hash.h" +#include "./memory.h" +#include "./port.h" +#include "./quality.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* "commands" points to the next output command to write to, "*num_commands" is + initially the total amount of commands output by previous + CreateBackwardReferences calls, and must be incremented by the amount written + by this call. */ +BROTLI_INTERNAL void BrotliCreateBackwardReferences( + MemoryManager* m, size_t num_bytes, size_t position, BROTLI_BOOL is_last, + const uint8_t* ringbuffer, size_t ringbuffer_mask, + const BrotliEncoderParams* params, Hashers* hashers, int* dist_cache, + size_t* last_insert_len, Command* commands, size_t* num_commands, + size_t* num_literals); + +typedef struct ZopfliNode { + /* best length to get up to this byte (not including this byte itself) + highest 8 bit is used to reconstruct the length code */ uint32_t length; - // distance associated with the length - // highest 7 bit contains distance short code + 1 (or zero if no short code) + /* distance associated with the length + highest 7 bit contains distance short code + 1 (or zero if no short code) + */ uint32_t distance; - // number of literal inserts before this copy + /* number of literal inserts before this copy */ uint32_t insert_length; - // smallest cost to get to this byte from the beginning, as found so far - float cost; -}; - -// Computes the shortest path of commands from position to at most -// position + num_bytes. -// -// On return, path->size() is the number of commands found and path[i] is the -// length of the ith command (copy length plus insert length). -// Note that the sum of the lengths of all commands can be less than num_bytes. -// -// On return, the nodes[0..num_bytes] array will have the following -// "ZopfliNode array invariant": -// For each i in [1..num_bytes], if nodes[i].cost < kInfinity, then -// (1) nodes[i].copy_length() >= 2 -// (2) nodes[i].command_length() <= i and -// (3) nodes[i - nodes[i].command_length()].cost < kInfinity -void ZopfliComputeShortestPath(size_t num_bytes, - size_t position, - const uint8_t* ringbuffer, - size_t ringbuffer_mask, - const size_t max_backward_limit, - const int* dist_cache, - Hashers::H10* hasher, - ZopfliNode* nodes, - std::vector<uint32_t>* path); - -void ZopfliCreateCommands(const size_t num_bytes, - const size_t block_start, - const size_t max_backward_limit, - const std::vector<uint32_t>& path, - const ZopfliNode* nodes, - int* dist_cache, - size_t* last_insert_len, - Command* commands, - size_t* num_literals); - -} // namespace brotli - -#endif // BROTLI_ENC_BACKWARD_REFERENCES_H_ + + /* This union holds information used by dynamic-programming. During forward + pass |cost| it used to store the goal function. When node is processed its + |cost| is invalidated in favor of |shortcut|. On path backtracing pass + |next| is assigned the offset to next node on the path. */ + union { + /* Smallest cost to get to this byte from the beginning, as found so far. */ + float cost; + /* Offset to the next node on the path. Equals to command_length() of the + next node on the path. For last node equals to BROTLI_UINT32_MAX */ + uint32_t next; + /* Node position that provides next distance for distance cache. */ + uint32_t shortcut; + } u; +} ZopfliNode; + +BROTLI_INTERNAL void BrotliInitZopfliNodes(ZopfliNode* array, size_t length); + +/* Computes the shortest path of commands from position to at most + position + num_bytes. + + On return, path->size() is the number of commands found and path[i] is the + length of the ith command (copy length plus insert length). + Note that the sum of the lengths of all commands can be less than num_bytes. + + On return, the nodes[0..num_bytes] array will have the following + "ZopfliNode array invariant": + For each i in [1..num_bytes], if nodes[i].cost < kInfinity, then + (1) nodes[i].copy_length() >= 2 + (2) nodes[i].command_length() <= i and + (3) nodes[i - nodes[i].command_length()].cost < kInfinity */ +BROTLI_INTERNAL size_t BrotliZopfliComputeShortestPath( + MemoryManager* m, size_t num_bytes, size_t position, + const uint8_t* ringbuffer, size_t ringbuffer_mask, + const BrotliEncoderParams* params, const size_t max_backward_limit, + const int* dist_cache, H10* hasher, ZopfliNode* nodes); + +BROTLI_INTERNAL void BrotliZopfliCreateCommands(const size_t num_bytes, + const size_t block_start, + const size_t max_backward_limit, + const ZopfliNode* nodes, + int* dist_cache, + size_t* last_insert_len, + Command* commands, + size_t* num_literals); + +/* Maximum distance, see section 9.1. of the spec. */ +static BROTLI_INLINE size_t MaxBackwardLimit(int lgwin) { + return (1u << lgwin) - 16; +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_BACKWARD_REFERENCES_H_ */ diff --git a/thirdparty/brotli/enc/backward_references_inc.h b/thirdparty/brotli/enc/backward_references_inc.h new file mode 100644 index 00000000..dbbd6341 --- /dev/null +++ b/thirdparty/brotli/enc/backward_references_inc.h @@ -0,0 +1,147 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN */ + +#define Hasher HASHER() + +static BROTLI_NOINLINE void FN(CreateBackwardReferences)( + MemoryManager* m, size_t num_bytes, size_t position, BROTLI_BOOL is_last, + const uint8_t* ringbuffer, size_t ringbuffer_mask, + const BrotliEncoderParams* params, Hasher* hasher, int* dist_cache, + size_t* last_insert_len, Command* commands, size_t* num_commands, + size_t* num_literals) { + /* Set maximum distance, see section 9.1. of the spec. */ + const size_t max_backward_limit = MaxBackwardLimit(params->lgwin); + + const Command* const orig_commands = commands; + size_t insert_length = *last_insert_len; + const size_t pos_end = position + num_bytes; + const size_t store_end = num_bytes >= FN(StoreLookahead)() ? + position + num_bytes - FN(StoreLookahead)() + 1 : position; + + /* For speed up heuristics for random data. */ + const size_t random_heuristics_window_size = + LiteralSpreeLengthForSparseSearch(params); + size_t apply_random_heuristics = position + random_heuristics_window_size; + + /* Minimum score to accept a backward reference. */ + const score_t kMinScore = BROTLI_SCORE_BASE + 400; + + FN(Init)(m, hasher, ringbuffer, params, position, num_bytes, is_last); + if (BROTLI_IS_OOM(m)) return; + FN(StitchToPreviousBlock)(hasher, num_bytes, position, + ringbuffer, ringbuffer_mask); + + while (position + FN(HashTypeLength)() < pos_end) { + size_t max_length = pos_end - position; + size_t max_distance = BROTLI_MIN(size_t, position, max_backward_limit); + HasherSearchResult sr; + sr.len = 0; + sr.len_x_code = 0; + sr.distance = 0; + sr.score = kMinScore; + if (FN(FindLongestMatch)(hasher, ringbuffer, ringbuffer_mask, dist_cache, + position, max_length, max_distance, &sr)) { + /* Found a match. Let's look for something even better ahead. */ + int delayed_backward_references_in_row = 0; + --max_length; + for (;; --max_length) { + const score_t cost_diff_lazy = 700; + BROTLI_BOOL is_match_found; + HasherSearchResult sr2; + sr2.len = params->quality < MIN_QUALITY_FOR_EXTENSIVE_REFERENCE_SEARCH ? + BROTLI_MIN(size_t, sr.len - 1, max_length) : 0; + sr2.len_x_code = 0; + sr2.distance = 0; + sr2.score = kMinScore; + max_distance = BROTLI_MIN(size_t, position + 1, max_backward_limit); + is_match_found = FN(FindLongestMatch)(hasher, ringbuffer, + ringbuffer_mask, dist_cache, position + 1, max_length, max_distance, + &sr2); + if (is_match_found && sr2.score >= sr.score + cost_diff_lazy) { + /* Ok, let's just write one byte for now and start a match from the + next byte. */ + ++position; + ++insert_length; + sr = sr2; + if (++delayed_backward_references_in_row < 4 && + position + FN(HashTypeLength)() < pos_end) { + continue; + } + } + break; + } + apply_random_heuristics = + position + 2 * sr.len + random_heuristics_window_size; + max_distance = BROTLI_MIN(size_t, position, max_backward_limit); + { + /* The first 16 codes are special shortcodes, + and the minimum offset is 1. */ + size_t distance_code = + ComputeDistanceCode(sr.distance, max_distance, dist_cache); + if (sr.distance <= max_distance && distance_code > 0) { + dist_cache[3] = dist_cache[2]; + dist_cache[2] = dist_cache[1]; + dist_cache[1] = dist_cache[0]; + dist_cache[0] = (int)sr.distance; + } + InitCommand(commands++, insert_length, sr.len, sr.len ^ sr.len_x_code, + distance_code); + } + *num_literals += insert_length; + insert_length = 0; + /* Put the hash keys into the table, if there are enough bytes left. + Depending on the hasher implementation, it can push all positions + in the given range or only a subset of them. */ + FN(StoreRange)(hasher, ringbuffer, ringbuffer_mask, position + 2, + BROTLI_MIN(size_t, position + sr.len, store_end)); + position += sr.len; + } else { + ++insert_length; + ++position; + /* If we have not seen matches for a long time, we can skip some + match lookups. Unsuccessful match lookups are very very expensive + and this kind of a heuristic speeds up compression quite + a lot. */ + if (position > apply_random_heuristics) { + /* Going through uncompressible data, jump. */ + if (position > + apply_random_heuristics + 4 * random_heuristics_window_size) { + /* It is quite a long time since we saw a copy, so we assume + that this data is not compressible, and store hashes less + often. Hashes of non compressible data are less likely to + turn out to be useful in the future, too, so we store less of + them to not to flood out the hash table of good compressible + data. */ + const size_t kMargin = + BROTLI_MAX(size_t, FN(StoreLookahead)() - 1, 4); + size_t pos_jump = + BROTLI_MIN(size_t, position + 16, pos_end - kMargin); + for (; position < pos_jump; position += 4) { + FN(Store)(hasher, ringbuffer, ringbuffer_mask, position); + insert_length += 4; + } + } else { + const size_t kMargin = + BROTLI_MAX(size_t, FN(StoreLookahead)() - 1, 2); + size_t pos_jump = + BROTLI_MIN(size_t, position + 8, pos_end - kMargin); + for (; position < pos_jump; position += 2) { + FN(Store)(hasher, ringbuffer, ringbuffer_mask, position); + insert_length += 2; + } + } + } + } + } + insert_length += pos_end - position; + *last_insert_len = insert_length; + *num_commands += (size_t)(commands - orig_commands); +} + +#undef Hasher diff --git a/thirdparty/brotli/enc/bit_cost.c b/thirdparty/brotli/enc/bit_cost.c new file mode 100644 index 00000000..4d80ead9 --- /dev/null +++ b/thirdparty/brotli/enc/bit_cost.c @@ -0,0 +1,35 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Functions to estimate the bit cost of Huffman trees. */ + +#include "./bit_cost.h" + +#include "../common/constants.h" +#include "../common/types.h" +#include "./fast_log.h" +#include "./histogram.h" +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define FN(X) X ## Literal +#include "./bit_cost_inc.h" /* NOLINT(build/include) */ +#undef FN + +#define FN(X) X ## Command +#include "./bit_cost_inc.h" /* NOLINT(build/include) */ +#undef FN + +#define FN(X) X ## Distance +#include "./bit_cost_inc.h" /* NOLINT(build/include) */ +#undef FN + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/bit_cost.h b/thirdparty/brotli/enc/bit_cost.h index 46520068..eeeedde6 100644 --- a/thirdparty/brotli/enc/bit_cost.h +++ b/thirdparty/brotli/enc/bit_cost.h @@ -4,19 +4,22 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Functions to estimate the bit cost of Huffman trees. +/* Functions to estimate the bit cost of Huffman trees. */ #ifndef BROTLI_ENC_BIT_COST_H_ #define BROTLI_ENC_BIT_COST_H_ -#include "./entropy_encode.h" +#include "../common/types.h" #include "./fast_log.h" -#include "./types.h" +#include "./histogram.h" +#include "./port.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -static inline double ShannonEntropy(const uint32_t *population, size_t size, - size_t *total) { +static BROTLI_INLINE double ShannonEntropy(const uint32_t *population, + size_t size, size_t *total) { size_t sum = 0; double retval = 0; const uint32_t *population_end = population + size; @@ -27,135 +30,34 @@ static inline double ShannonEntropy(const uint32_t *population, size_t size, while (population < population_end) { p = *population++; sum += p; - retval -= static_cast<double>(p) * FastLog2(p); + retval -= (double)p * FastLog2(p); odd_number_of_elements_left: p = *population++; sum += p; - retval -= static_cast<double>(p) * FastLog2(p); + retval -= (double)p * FastLog2(p); } - if (sum) retval += static_cast<double>(sum) * FastLog2(sum); + if (sum) retval += (double)sum * FastLog2(sum); *total = sum; return retval; } -static inline double BitsEntropy(const uint32_t *population, size_t size) { +static BROTLI_INLINE double BitsEntropy( + const uint32_t *population, size_t size) { size_t sum; double retval = ShannonEntropy(population, size, &sum); if (retval < sum) { - // At least one bit per literal is needed. - retval = static_cast<double>(sum); + /* At least one bit per literal is needed. */ + retval = (double)sum; } return retval; } -template<int kSize> -double PopulationCost(const Histogram<kSize>& histogram) { - static const double kOneSymbolHistogramCost = 12; - static const double kTwoSymbolHistogramCost = 20; - static const double kThreeSymbolHistogramCost = 28; - static const double kFourSymbolHistogramCost = 37; - if (histogram.total_count_ == 0) { - return kOneSymbolHistogramCost; - } - int count = 0; - int s[5]; - for (int i = 0; i < kSize; ++i) { - if (histogram.data_[i] > 0) { - s[count] = i; - ++count; - if (count > 4) break; - } - } - if (count == 1) { - return kOneSymbolHistogramCost; - } - if (count == 2) { - return (kTwoSymbolHistogramCost + - static_cast<double>(histogram.total_count_)); - } - if (count == 3) { - const uint32_t histo0 = histogram.data_[s[0]]; - const uint32_t histo1 = histogram.data_[s[1]]; - const uint32_t histo2 = histogram.data_[s[2]]; - const uint32_t histomax = std::max(histo0, std::max(histo1, histo2)); - return (kThreeSymbolHistogramCost + - 2 * (histo0 + histo1 + histo2) - histomax); - } - if (count == 4) { - uint32_t histo[4]; - for (int i = 0; i < 4; ++i) { - histo[i] = histogram.data_[s[i]]; - } - // Sort - for (int i = 0; i < 4; ++i) { - for (int j = i + 1; j < 4; ++j) { - if (histo[j] > histo[i]) { - std::swap(histo[j], histo[i]); - } - } - } - const uint32_t h23 = histo[2] + histo[3]; - const uint32_t histomax = std::max(h23, histo[0]); - return (kFourSymbolHistogramCost + - 3 * h23 + 2 * (histo[0] + histo[1]) - histomax); - } - - // In this loop we compute the entropy of the histogram and simultaneously - // build a simplified histogram of the code length codes where we use the - // zero repeat code 17, but we don't use the non-zero repeat code 16. - double bits = 0; - size_t max_depth = 1; - uint32_t depth_histo[kCodeLengthCodes] = { 0 }; - const double log2total = FastLog2(histogram.total_count_); - for (size_t i = 0; i < kSize;) { - if (histogram.data_[i] > 0) { - // Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = - // = log2(total_count) - log2(count(symbol)) - double log2p = log2total - FastLog2(histogram.data_[i]); - // Approximate the bit depth by round(-log2(P(symbol))) - size_t depth = static_cast<size_t>(log2p + 0.5); - bits += histogram.data_[i] * log2p; - if (depth > 15) { - depth = 15; - } - if (depth > max_depth) { - max_depth = depth; - } - ++depth_histo[depth]; - ++i; - } else { - // Compute the run length of zeros and add the appropriate number of 0 and - // 17 code length codes to the code length code histogram. - uint32_t reps = 1; - for (size_t k = i + 1; k < kSize && histogram.data_[k] == 0; ++k) { - ++reps; - } - i += reps; - if (i == kSize) { - // Don't add any cost for the last zero run, since these are encoded - // only implicitly. - break; - } - if (reps < 3) { - depth_histo[0] += reps; - } else { - reps -= 2; - while (reps > 0) { - ++depth_histo[17]; - // Add the 3 extra bits for the 17 code length code. - bits += 3; - reps >>= 3; - } - } - } - } - // Add the estimated encoding cost of the code length code histogram. - bits += static_cast<double>(18 + 2 * max_depth); - // Add the entropy of the code length code histogram. - bits += BitsEntropy(depth_histo, kCodeLengthCodes); - return bits; -} +BROTLI_INTERNAL double BrotliPopulationCostLiteral(const HistogramLiteral*); +BROTLI_INTERNAL double BrotliPopulationCostCommand(const HistogramCommand*); +BROTLI_INTERNAL double BrotliPopulationCostDistance(const HistogramDistance*); -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_BIT_COST_H_ +#endif /* BROTLI_ENC_BIT_COST_H_ */ diff --git a/thirdparty/brotli/enc/bit_cost_inc.h b/thirdparty/brotli/enc/bit_cost_inc.h new file mode 100644 index 00000000..453c2260 --- /dev/null +++ b/thirdparty/brotli/enc/bit_cost_inc.h @@ -0,0 +1,127 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN */ + +#define HistogramType FN(Histogram) + +double FN(BrotliPopulationCost)(const HistogramType* histogram) { + static const double kOneSymbolHistogramCost = 12; + static const double kTwoSymbolHistogramCost = 20; + static const double kThreeSymbolHistogramCost = 28; + static const double kFourSymbolHistogramCost = 37; + const size_t data_size = FN(HistogramDataSize)(); + int count = 0; + size_t s[5]; + double bits = 0.0; + size_t i; + if (histogram->total_count_ == 0) { + return kOneSymbolHistogramCost; + } + for (i = 0; i < data_size; ++i) { + if (histogram->data_[i] > 0) { + s[count] = i; + ++count; + if (count > 4) break; + } + } + if (count == 1) { + return kOneSymbolHistogramCost; + } + if (count == 2) { + return (kTwoSymbolHistogramCost + (double)histogram->total_count_); + } + if (count == 3) { + const uint32_t histo0 = histogram->data_[s[0]]; + const uint32_t histo1 = histogram->data_[s[1]]; + const uint32_t histo2 = histogram->data_[s[2]]; + const uint32_t histomax = + BROTLI_MAX(uint32_t, histo0, BROTLI_MAX(uint32_t, histo1, histo2)); + return (kThreeSymbolHistogramCost + + 2 * (histo0 + histo1 + histo2) - histomax); + } + if (count == 4) { + uint32_t histo[4]; + uint32_t h23; + uint32_t histomax; + for (i = 0; i < 4; ++i) { + histo[i] = histogram->data_[s[i]]; + } + /* Sort */ + for (i = 0; i < 4; ++i) { + size_t j; + for (j = i + 1; j < 4; ++j) { + if (histo[j] > histo[i]) { + BROTLI_SWAP(uint32_t, histo, j, i); + } + } + } + h23 = histo[2] + histo[3]; + histomax = BROTLI_MAX(uint32_t, h23, histo[0]); + return (kFourSymbolHistogramCost + + 3 * h23 + 2 * (histo[0] + histo[1]) - histomax); + } + + { + /* In this loop we compute the entropy of the histogram and simultaneously + build a simplified histogram of the code length codes where we use the + zero repeat code 17, but we don't use the non-zero repeat code 16. */ + size_t max_depth = 1; + uint32_t depth_histo[BROTLI_CODE_LENGTH_CODES] = { 0 }; + const double log2total = FastLog2(histogram->total_count_); + for (i = 0; i < data_size;) { + if (histogram->data_[i] > 0) { + /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = + = log2(total_count) - log2(count(symbol)) */ + double log2p = log2total - FastLog2(histogram->data_[i]); + /* Approximate the bit depth by round(-log2(P(symbol))) */ + size_t depth = (size_t)(log2p + 0.5); + bits += histogram->data_[i] * log2p; + if (depth > 15) { + depth = 15; + } + if (depth > max_depth) { + max_depth = depth; + } + ++depth_histo[depth]; + ++i; + } else { + /* Compute the run length of zeros and add the appropriate number of 0 + and 17 code length codes to the code length code histogram. */ + uint32_t reps = 1; + size_t k; + for (k = i + 1; k < data_size && histogram->data_[k] == 0; ++k) { + ++reps; + } + i += reps; + if (i == data_size) { + /* Don't add any cost for the last zero run, since these are encoded + only implicitly. */ + break; + } + if (reps < 3) { + depth_histo[0] += reps; + } else { + reps -= 2; + while (reps > 0) { + ++depth_histo[BROTLI_REPEAT_ZERO_CODE_LENGTH]; + /* Add the 3 extra bits for the 17 code length code. */ + bits += 3; + reps >>= 3; + } + } + } + } + /* Add the estimated encoding cost of the code length code histogram. */ + bits += (double)(18 + 2 * max_depth); + /* Add the entropy of the code length code histogram. */ + bits += BitsEntropy(depth_histo, BROTLI_CODE_LENGTH_CODES); + } + return bits; +} + +#undef HistogramType diff --git a/thirdparty/brotli/enc/block_encoder_inc.h b/thirdparty/brotli/enc/block_encoder_inc.h new file mode 100644 index 00000000..2a08f904 --- /dev/null +++ b/thirdparty/brotli/enc/block_encoder_inc.h @@ -0,0 +1,33 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2014 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN */ + +#define HistogramType FN(Histogram) + +/* Creates entropy codes for all block types and stores them to the bit + stream. */ +static void FN(BuildAndStoreEntropyCodes)(MemoryManager* m, BlockEncoder* self, + const HistogramType* histograms, const size_t histograms_size, + HuffmanTree* tree, size_t* storage_ix, uint8_t* storage) { + const size_t alphabet_size = self->alphabet_size_; + const size_t table_size = histograms_size * alphabet_size; + self->depths_ = BROTLI_ALLOC(m, uint8_t, table_size); + self->bits_ = BROTLI_ALLOC(m, uint16_t, table_size); + if (BROTLI_IS_OOM(m)) return; + + { + size_t i; + for (i = 0; i < histograms_size; ++i) { + size_t ix = i * alphabet_size; + BuildAndStoreHuffmanTree(&histograms[i].data_[0], alphabet_size, tree, + &self->depths_[ix], &self->bits_[ix], storage_ix, storage); + } + } +} + +#undef HistogramType diff --git a/thirdparty/brotli/enc/block_splitter.c b/thirdparty/brotli/enc/block_splitter.c new file mode 100644 index 00000000..a8708853 --- /dev/null +++ b/thirdparty/brotli/enc/block_splitter.c @@ -0,0 +1,197 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Block split point selection utilities. */ + +#include "./block_splitter.h" + +#include <assert.h> +#include <string.h> /* memcpy, memset */ + +#include "./bit_cost.h" +#include "./cluster.h" +#include "./command.h" +#include "./fast_log.h" +#include "./histogram.h" +#include "./memory.h" +#include "./port.h" +#include "./quality.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +static const size_t kMaxLiteralHistograms = 100; +static const size_t kMaxCommandHistograms = 50; +static const double kLiteralBlockSwitchCost = 28.1; +static const double kCommandBlockSwitchCost = 13.5; +static const double kDistanceBlockSwitchCost = 14.6; +static const size_t kLiteralStrideLength = 70; +static const size_t kCommandStrideLength = 40; +static const size_t kSymbolsPerLiteralHistogram = 544; +static const size_t kSymbolsPerCommandHistogram = 530; +static const size_t kSymbolsPerDistanceHistogram = 544; +static const size_t kMinLengthForBlockSplitting = 128; +static const size_t kIterMulForRefining = 2; +static const size_t kMinItersForRefining = 100; + +static size_t CountLiterals(const Command* cmds, const size_t num_commands) { + /* Count how many we have. */ + size_t total_length = 0; + size_t i; + for (i = 0; i < num_commands; ++i) { + total_length += cmds[i].insert_len_; + } + return total_length; +} + +static void CopyLiteralsToByteArray(const Command* cmds, + const size_t num_commands, + const uint8_t* data, + const size_t offset, + const size_t mask, + uint8_t* literals) { + size_t pos = 0; + size_t from_pos = offset & mask; + size_t i; + for (i = 0; i < num_commands; ++i) { + size_t insert_len = cmds[i].insert_len_; + if (from_pos + insert_len > mask) { + size_t head_size = mask + 1 - from_pos; + memcpy(literals + pos, data + from_pos, head_size); + from_pos = 0; + pos += head_size; + insert_len -= head_size; + } + if (insert_len > 0) { + memcpy(literals + pos, data + from_pos, insert_len); + pos += insert_len; + } + from_pos = (from_pos + insert_len + CommandCopyLen(&cmds[i])) & mask; + } +} + +static BROTLI_INLINE unsigned int MyRand(unsigned int* seed) { + *seed *= 16807U; + if (*seed == 0) { + *seed = 1; + } + return *seed; +} + +static BROTLI_INLINE double BitCost(size_t count) { + return count == 0 ? -2.0 : FastLog2(count); +} + +#define HISTOGRAMS_PER_BATCH 64 +#define CLUSTERS_PER_BATCH 16 + +#define FN(X) X ## Literal +#define DataType uint8_t +/* NOLINTNEXTLINE(build/include) */ +#include "./block_splitter_inc.h" +#undef DataType +#undef FN + +#define FN(X) X ## Command +#define DataType uint16_t +/* NOLINTNEXTLINE(build/include) */ +#include "./block_splitter_inc.h" +#undef FN + +#define FN(X) X ## Distance +/* NOLINTNEXTLINE(build/include) */ +#include "./block_splitter_inc.h" +#undef DataType +#undef FN + +void BrotliInitBlockSplit(BlockSplit* self) { + self->num_types = 0; + self->num_blocks = 0; + self->types = 0; + self->lengths = 0; + self->types_alloc_size = 0; + self->lengths_alloc_size = 0; +} + +void BrotliDestroyBlockSplit(MemoryManager* m, BlockSplit* self) { + BROTLI_FREE(m, self->types); + BROTLI_FREE(m, self->lengths); +} + +void BrotliSplitBlock(MemoryManager* m, + const Command* cmds, + const size_t num_commands, + const uint8_t* data, + const size_t pos, + const size_t mask, + const BrotliEncoderParams* params, + BlockSplit* literal_split, + BlockSplit* insert_and_copy_split, + BlockSplit* dist_split) { + { + size_t literals_count = CountLiterals(cmds, num_commands); + uint8_t* literals = BROTLI_ALLOC(m, uint8_t, literals_count); + if (BROTLI_IS_OOM(m)) return; + /* Create a continuous array of literals. */ + CopyLiteralsToByteArray(cmds, num_commands, data, pos, mask, literals); + /* Create the block split on the array of literals. + Literal histograms have alphabet size 256. */ + SplitByteVectorLiteral( + m, literals, literals_count, + kSymbolsPerLiteralHistogram, kMaxLiteralHistograms, + kLiteralStrideLength, kLiteralBlockSwitchCost, params, + literal_split); + if (BROTLI_IS_OOM(m)) return; + BROTLI_FREE(m, literals); + } + + { + /* Compute prefix codes for commands. */ + uint16_t* insert_and_copy_codes = BROTLI_ALLOC(m, uint16_t, num_commands); + size_t i; + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < num_commands; ++i) { + insert_and_copy_codes[i] = cmds[i].cmd_prefix_; + } + /* Create the block split on the array of command prefixes. */ + SplitByteVectorCommand( + m, insert_and_copy_codes, num_commands, + kSymbolsPerCommandHistogram, kMaxCommandHistograms, + kCommandStrideLength, kCommandBlockSwitchCost, params, + insert_and_copy_split); + if (BROTLI_IS_OOM(m)) return; + /* TODO: reuse for distances? */ + BROTLI_FREE(m, insert_and_copy_codes); + } + + { + /* Create a continuous array of distance prefixes. */ + uint16_t* distance_prefixes = BROTLI_ALLOC(m, uint16_t, num_commands); + size_t j = 0; + size_t i; + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < num_commands; ++i) { + const Command* cmd = &cmds[i]; + if (CommandCopyLen(cmd) && cmd->cmd_prefix_ >= 128) { + distance_prefixes[j++] = cmd->dist_prefix_; + } + } + /* Create the block split on the array of distance prefixes. */ + SplitByteVectorDistance( + m, distance_prefixes, j, + kSymbolsPerDistanceHistogram, kMaxCommandHistograms, + kCommandStrideLength, kDistanceBlockSwitchCost, params, + dist_split); + if (BROTLI_IS_OOM(m)) return; + BROTLI_FREE(m, distance_prefixes); + } +} + + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/block_splitter.cc b/thirdparty/brotli/enc/block_splitter.cc deleted file mode 100644 index db8d9c60..00000000 --- a/thirdparty/brotli/enc/block_splitter.cc +++ /dev/null @@ -1,505 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Block split point selection utilities. - -#include "./block_splitter.h" - -#include <assert.h> -#include <math.h> - -#include <algorithm> -#include <cstring> -#include <vector> - -#include "./cluster.h" -#include "./command.h" -#include "./fast_log.h" -#include "./histogram.h" - -namespace brotli { - -static const size_t kMaxLiteralHistograms = 100; -static const size_t kMaxCommandHistograms = 50; -static const double kLiteralBlockSwitchCost = 28.1; -static const double kCommandBlockSwitchCost = 13.5; -static const double kDistanceBlockSwitchCost = 14.6; -static const size_t kLiteralStrideLength = 70; -static const size_t kCommandStrideLength = 40; -static const size_t kSymbolsPerLiteralHistogram = 544; -static const size_t kSymbolsPerCommandHistogram = 530; -static const size_t kSymbolsPerDistanceHistogram = 544; -static const size_t kMinLengthForBlockSplitting = 128; -static const size_t kIterMulForRefining = 2; -static const size_t kMinItersForRefining = 100; - -void CopyLiteralsToByteArray(const Command* cmds, - const size_t num_commands, - const uint8_t* data, - const size_t offset, - const size_t mask, - std::vector<uint8_t>* literals) { - // Count how many we have. - size_t total_length = 0; - for (size_t i = 0; i < num_commands; ++i) { - total_length += cmds[i].insert_len_; - } - if (total_length == 0) { - return; - } - - // Allocate. - literals->resize(total_length); - - // Loop again, and copy this time. - size_t pos = 0; - size_t from_pos = offset & mask; - for (size_t i = 0; i < num_commands && pos < total_length; ++i) { - size_t insert_len = cmds[i].insert_len_; - if (from_pos + insert_len > mask) { - size_t head_size = mask + 1 - from_pos; - memcpy(&(*literals)[pos], data + from_pos, head_size); - from_pos = 0; - pos += head_size; - insert_len -= head_size; - } - if (insert_len > 0) { - memcpy(&(*literals)[pos], data + from_pos, insert_len); - pos += insert_len; - } - from_pos = (from_pos + insert_len + cmds[i].copy_len()) & mask; - } -} - -inline static unsigned int MyRand(unsigned int* seed) { - *seed *= 16807U; - if (*seed == 0) { - *seed = 1; - } - return *seed; -} - -template<typename HistogramType, typename DataType> -void InitialEntropyCodes(const DataType* data, size_t length, - size_t stride, - size_t num_histograms, - HistogramType* histograms) { - for (size_t i = 0; i < num_histograms; ++i) { - histograms[i].Clear(); - } - unsigned int seed = 7; - size_t block_length = length / num_histograms; - for (size_t i = 0; i < num_histograms; ++i) { - size_t pos = length * i / num_histograms; - if (i != 0) { - pos += MyRand(&seed) % block_length; - } - if (pos + stride >= length) { - pos = length - stride - 1; - } - histograms[i].Add(data + pos, stride); - } -} - -template<typename HistogramType, typename DataType> -void RandomSample(unsigned int* seed, - const DataType* data, - size_t length, - size_t stride, - HistogramType* sample) { - size_t pos = 0; - if (stride >= length) { - pos = 0; - stride = length; - } else { - pos = MyRand(seed) % (length - stride + 1); - } - sample->Add(data + pos, stride); -} - -template<typename HistogramType, typename DataType> -void RefineEntropyCodes(const DataType* data, size_t length, - size_t stride, - size_t num_histograms, - HistogramType* histograms) { - size_t iters = - kIterMulForRefining * length / stride + kMinItersForRefining; - unsigned int seed = 7; - iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms; - for (size_t iter = 0; iter < iters; ++iter) { - HistogramType sample; - RandomSample(&seed, data, length, stride, &sample); - size_t ix = iter % num_histograms; - histograms[ix].AddHistogram(sample); - } -} - -inline static double BitCost(size_t count) { - return count == 0 ? -2.0 : FastLog2(count); -} - -// Assigns a block id from the range [0, vec.size()) to each data element -// in data[0..length) and fills in block_id[0..length) with the assigned values. -// Returns the number of blocks, i.e. one plus the number of block switches. -template<typename DataType, int kSize> -size_t FindBlocks(const DataType* data, const size_t length, - const double block_switch_bitcost, - const size_t num_histograms, - const Histogram<kSize>* histograms, - double* insert_cost, - double* cost, - uint8_t* switch_signal, - uint8_t *block_id) { - if (num_histograms <= 1) { - for (size_t i = 0; i < length; ++i) { - block_id[i] = 0; - } - return 1; - } - const size_t bitmaplen = (num_histograms + 7) >> 3; - assert(num_histograms <= 256); - memset(insert_cost, 0, sizeof(insert_cost[0]) * kSize * num_histograms); - for (size_t j = 0; j < num_histograms; ++j) { - insert_cost[j] = FastLog2(static_cast<uint32_t>( - histograms[j].total_count_)); - } - for (size_t i = kSize; i != 0;) { - --i; - for (size_t j = 0; j < num_histograms; ++j) { - insert_cost[i * num_histograms + j] = - insert_cost[j] - BitCost(histograms[j].data_[i]); - } - } - memset(cost, 0, sizeof(cost[0]) * num_histograms); - memset(switch_signal, 0, sizeof(switch_signal[0]) * length * bitmaplen); - // After each iteration of this loop, cost[k] will contain the difference - // between the minimum cost of arriving at the current byte position using - // entropy code k, and the minimum cost of arriving at the current byte - // position. This difference is capped at the block switch cost, and if it - // reaches block switch cost, it means that when we trace back from the last - // position, we need to switch here. - for (size_t byte_ix = 0; byte_ix < length; ++byte_ix) { - size_t ix = byte_ix * bitmaplen; - size_t insert_cost_ix = data[byte_ix] * num_histograms; - double min_cost = 1e99; - for (size_t k = 0; k < num_histograms; ++k) { - // We are coding the symbol in data[byte_ix] with entropy code k. - cost[k] += insert_cost[insert_cost_ix + k]; - if (cost[k] < min_cost) { - min_cost = cost[k]; - block_id[byte_ix] = static_cast<uint8_t>(k); - } - } - double block_switch_cost = block_switch_bitcost; - // More blocks for the beginning. - if (byte_ix < 2000) { - block_switch_cost *= 0.77 + 0.07 * static_cast<double>(byte_ix) / 2000; - } - for (size_t k = 0; k < num_histograms; ++k) { - cost[k] -= min_cost; - if (cost[k] >= block_switch_cost) { - cost[k] = block_switch_cost; - const uint8_t mask = static_cast<uint8_t>(1u << (k & 7)); - assert((k >> 3) < bitmaplen); - switch_signal[ix + (k >> 3)] |= mask; - } - } - } - // Now trace back from the last position and switch at the marked places. - size_t byte_ix = length - 1; - size_t ix = byte_ix * bitmaplen; - uint8_t cur_id = block_id[byte_ix]; - size_t num_blocks = 1; - while (byte_ix > 0) { - --byte_ix; - ix -= bitmaplen; - const uint8_t mask = static_cast<uint8_t>(1u << (cur_id & 7)); - assert((static_cast<size_t>(cur_id) >> 3) < bitmaplen); - if (switch_signal[ix + (cur_id >> 3)] & mask) { - if (cur_id != block_id[byte_ix]) { - cur_id = block_id[byte_ix]; - ++num_blocks; - } - } - block_id[byte_ix] = cur_id; - } - return num_blocks; -} - -static size_t RemapBlockIds(uint8_t* block_ids, const size_t length, - uint16_t* new_id, const size_t num_histograms) { - static const uint16_t kInvalidId = 256; - for (size_t i = 0; i < num_histograms; ++i) { - new_id[i] = kInvalidId; - } - uint16_t next_id = 0; - for (size_t i = 0; i < length; ++i) { - assert(block_ids[i] < num_histograms); - if (new_id[block_ids[i]] == kInvalidId) { - new_id[block_ids[i]] = next_id++; - } - } - for (size_t i = 0; i < length; ++i) { - block_ids[i] = static_cast<uint8_t>(new_id[block_ids[i]]); - assert(block_ids[i] < num_histograms); - } - assert(next_id <= num_histograms); - return next_id; -} - -template<typename HistogramType, typename DataType> -void BuildBlockHistograms(const DataType* data, const size_t length, - const uint8_t* block_ids, - const size_t num_histograms, - HistogramType* histograms) { - for (size_t i = 0; i < num_histograms; ++i) { - histograms[i].Clear(); - } - for (size_t i = 0; i < length; ++i) { - histograms[block_ids[i]].Add(data[i]); - } -} - -template<typename HistogramType, typename DataType> -void ClusterBlocks(const DataType* data, const size_t length, - const size_t num_blocks, - uint8_t* block_ids, - BlockSplit* split) { - static const size_t kMaxNumberOfBlockTypes = 256; - static const size_t kHistogramsPerBatch = 64; - static const size_t kClustersPerBatch = 16; - std::vector<uint32_t> histogram_symbols(num_blocks); - std::vector<uint32_t> block_lengths(num_blocks); - - size_t block_idx = 0; - for (size_t i = 0; i < length; ++i) { - assert(block_idx < num_blocks); - ++block_lengths[block_idx]; - if (i + 1 == length || block_ids[i] != block_ids[i + 1]) { - ++block_idx; - } - } - assert(block_idx == num_blocks); - - const size_t expected_num_clusters = - kClustersPerBatch * - (num_blocks + kHistogramsPerBatch - 1) / kHistogramsPerBatch; - std::vector<HistogramType> all_histograms; - std::vector<uint32_t> cluster_size; - all_histograms.reserve(expected_num_clusters); - cluster_size.reserve(expected_num_clusters); - size_t num_clusters = 0; - std::vector<HistogramType> histograms( - std::min(num_blocks, kHistogramsPerBatch)); - size_t max_num_pairs = kHistogramsPerBatch * kHistogramsPerBatch / 2; - std::vector<HistogramPair> pairs(max_num_pairs + 1); - size_t pos = 0; - for (size_t i = 0; i < num_blocks; i += kHistogramsPerBatch) { - const size_t num_to_combine = std::min(num_blocks - i, kHistogramsPerBatch); - uint32_t sizes[kHistogramsPerBatch]; - uint32_t clusters[kHistogramsPerBatch]; - uint32_t symbols[kHistogramsPerBatch]; - uint32_t remap[kHistogramsPerBatch]; - for (size_t j = 0; j < num_to_combine; ++j) { - histograms[j].Clear(); - for (size_t k = 0; k < block_lengths[i + j]; ++k) { - histograms[j].Add(data[pos++]); - } - histograms[j].bit_cost_ = PopulationCost(histograms[j]); - symbols[j] = clusters[j] = static_cast<uint32_t>(j); - sizes[j] = 1; - } - size_t num_new_clusters = HistogramCombine( - &histograms[0], sizes, symbols, clusters, &pairs[0], num_to_combine, - num_to_combine, kHistogramsPerBatch, max_num_pairs); - for (size_t j = 0; j < num_new_clusters; ++j) { - all_histograms.push_back(histograms[clusters[j]]); - cluster_size.push_back(sizes[clusters[j]]); - remap[clusters[j]] = static_cast<uint32_t>(j); - } - for (size_t j = 0; j < num_to_combine; ++j) { - histogram_symbols[i + j] = - static_cast<uint32_t>(num_clusters) + remap[symbols[j]]; - } - num_clusters += num_new_clusters; - assert(num_clusters == cluster_size.size()); - assert(num_clusters == all_histograms.size()); - } - - max_num_pairs = - std::min(64 * num_clusters, (num_clusters / 2) * num_clusters); - pairs.resize(max_num_pairs + 1); - - std::vector<uint32_t> clusters(num_clusters); - for (size_t i = 0; i < num_clusters; ++i) { - clusters[i] = static_cast<uint32_t>(i); - } - size_t num_final_clusters = - HistogramCombine(&all_histograms[0], &cluster_size[0], - &histogram_symbols[0], - &clusters[0], &pairs[0], num_clusters, - num_blocks, kMaxNumberOfBlockTypes, max_num_pairs); - - static const uint32_t kInvalidIndex = std::numeric_limits<uint32_t>::max(); - std::vector<uint32_t> new_index(num_clusters, kInvalidIndex); - uint32_t next_index = 0; - pos = 0; - for (size_t i = 0; i < num_blocks; ++i) { - HistogramType histo; - for (size_t j = 0; j < block_lengths[i]; ++j) { - histo.Add(data[pos++]); - } - uint32_t best_out = - i == 0 ? histogram_symbols[0] : histogram_symbols[i - 1]; - double best_bits = HistogramBitCostDistance( - histo, all_histograms[best_out]); - for (size_t j = 0; j < num_final_clusters; ++j) { - const double cur_bits = HistogramBitCostDistance( - histo, all_histograms[clusters[j]]); - if (cur_bits < best_bits) { - best_bits = cur_bits; - best_out = clusters[j]; - } - } - histogram_symbols[i] = best_out; - if (new_index[best_out] == kInvalidIndex) { - new_index[best_out] = next_index++; - } - } - uint8_t max_type = 0; - uint32_t cur_length = 0; - block_idx = 0; - split->types.resize(num_blocks); - split->lengths.resize(num_blocks); - for (size_t i = 0; i < num_blocks; ++i) { - cur_length += block_lengths[i]; - if (i + 1 == num_blocks || - histogram_symbols[i] != histogram_symbols[i + 1]) { - const uint8_t id = static_cast<uint8_t>(new_index[histogram_symbols[i]]); - split->types[block_idx] = id; - split->lengths[block_idx] = cur_length; - max_type = std::max(max_type, id); - cur_length = 0; - ++block_idx; - } - } - split->types.resize(block_idx); - split->lengths.resize(block_idx); - split->num_types = static_cast<size_t>(max_type) + 1; -} - -template<int kSize, typename DataType> -void SplitByteVector(const std::vector<DataType>& data, - const size_t literals_per_histogram, - const size_t max_histograms, - const size_t sampling_stride_length, - const double block_switch_cost, - BlockSplit* split) { - if (data.empty()) { - split->num_types = 1; - return; - } else if (data.size() < kMinLengthForBlockSplitting) { - split->num_types = 1; - split->types.push_back(0); - split->lengths.push_back(static_cast<uint32_t>(data.size())); - return; - } - size_t num_histograms = data.size() / literals_per_histogram + 1; - if (num_histograms > max_histograms) { - num_histograms = max_histograms; - } - Histogram<kSize>* histograms = new Histogram<kSize>[num_histograms]; - // Find good entropy codes. - InitialEntropyCodes(&data[0], data.size(), - sampling_stride_length, - num_histograms, histograms); - RefineEntropyCodes(&data[0], data.size(), - sampling_stride_length, - num_histograms, histograms); - // Find a good path through literals with the good entropy codes. - std::vector<uint8_t> block_ids(data.size()); - size_t num_blocks; - const size_t bitmaplen = (num_histograms + 7) >> 3; - double* insert_cost = new double[kSize * num_histograms]; - double *cost = new double[num_histograms]; - uint8_t* switch_signal = new uint8_t[data.size() * bitmaplen]; - uint16_t* new_id = new uint16_t[num_histograms]; - for (size_t i = 0; i < 10; ++i) { - num_blocks = FindBlocks(&data[0], data.size(), - block_switch_cost, - num_histograms, histograms, - insert_cost, cost, switch_signal, - &block_ids[0]); - num_histograms = RemapBlockIds(&block_ids[0], data.size(), - new_id, num_histograms); - BuildBlockHistograms(&data[0], data.size(), &block_ids[0], - num_histograms, histograms); - } - delete[] insert_cost; - delete[] cost; - delete[] switch_signal; - delete[] new_id; - delete[] histograms; - ClusterBlocks<Histogram<kSize> >(&data[0], data.size(), num_blocks, - &block_ids[0], split); -} - -void SplitBlock(const Command* cmds, - const size_t num_commands, - const uint8_t* data, - const size_t pos, - const size_t mask, - BlockSplit* literal_split, - BlockSplit* insert_and_copy_split, - BlockSplit* dist_split) { - { - // Create a continuous array of literals. - std::vector<uint8_t> literals; - CopyLiteralsToByteArray(cmds, num_commands, data, pos, mask, &literals); - // Create the block split on the array of literals. - // Literal histograms have alphabet size 256. - SplitByteVector<256>( - literals, - kSymbolsPerLiteralHistogram, kMaxLiteralHistograms, - kLiteralStrideLength, kLiteralBlockSwitchCost, - literal_split); - } - - { - // Compute prefix codes for commands. - std::vector<uint16_t> insert_and_copy_codes(num_commands); - for (size_t i = 0; i < num_commands; ++i) { - insert_and_copy_codes[i] = cmds[i].cmd_prefix_; - } - // Create the block split on the array of command prefixes. - SplitByteVector<kNumCommandPrefixes>( - insert_and_copy_codes, - kSymbolsPerCommandHistogram, kMaxCommandHistograms, - kCommandStrideLength, kCommandBlockSwitchCost, - insert_and_copy_split); - } - - { - // Create a continuous array of distance prefixes. - std::vector<uint16_t> distance_prefixes(num_commands); - size_t pos = 0; - for (size_t i = 0; i < num_commands; ++i) { - const Command& cmd = cmds[i]; - if (cmd.copy_len() && cmd.cmd_prefix_ >= 128) { - distance_prefixes[pos++] = cmd.dist_prefix_; - } - } - distance_prefixes.resize(pos); - // Create the block split on the array of distance prefixes. - SplitByteVector<kNumDistancePrefixes>( - distance_prefixes, - kSymbolsPerDistanceHistogram, kMaxCommandHistograms, - kCommandStrideLength, kDistanceBlockSwitchCost, - dist_split); - } -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/block_splitter.h b/thirdparty/brotli/enc/block_splitter.h index 4f692968..f96ae70c 100644 --- a/thirdparty/brotli/enc/block_splitter.h +++ b/thirdparty/brotli/enc/block_splitter.h @@ -4,58 +4,48 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Block split point selection utilities. +/* Block split point selection utilities. */ #ifndef BROTLI_ENC_BLOCK_SPLITTER_H_ #define BROTLI_ENC_BLOCK_SPLITTER_H_ -#include <vector> - +#include "../common/types.h" #include "./command.h" -#include "./metablock.h" -#include "./types.h" - -namespace brotli { - -struct BlockSplitIterator { - explicit BlockSplitIterator(const BlockSplit& split) - : split_(split), idx_(0), type_(0), length_(0) { - if (!split.lengths.empty()) { - length_ = split.lengths[0]; - } - } - - void Next(void) { - if (length_ == 0) { - ++idx_; - type_ = split_.types[idx_]; - length_ = split_.lengths[idx_]; - } - --length_; - } - - const BlockSplit& split_; - size_t idx_; - size_t type_; - size_t length_; -}; - -void CopyLiteralsToByteArray(const Command* cmds, - const size_t num_commands, - const uint8_t* data, - const size_t offset, - const size_t mask, - std::vector<uint8_t>* literals); - -void SplitBlock(const Command* cmds, - const size_t num_commands, - const uint8_t* data, - const size_t offset, - const size_t mask, - BlockSplit* literal_split, - BlockSplit* insert_and_copy_split, - BlockSplit* dist_split); - -} // namespace brotli - -#endif // BROTLI_ENC_BLOCK_SPLITTER_H_ +#include "./memory.h" +#include "./port.h" +#include "./quality.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct BlockSplit { + size_t num_types; /* Amount of distinct types */ + size_t num_blocks; /* Amount of values in types and length */ + uint8_t* types; + uint32_t* lengths; + + size_t types_alloc_size; + size_t lengths_alloc_size; +} BlockSplit; + +BROTLI_INTERNAL void BrotliInitBlockSplit(BlockSplit* self); +BROTLI_INTERNAL void BrotliDestroyBlockSplit(MemoryManager* m, + BlockSplit* self); + +BROTLI_INTERNAL void BrotliSplitBlock(MemoryManager* m, + const Command* cmds, + const size_t num_commands, + const uint8_t* data, + const size_t offset, + const size_t mask, + const BrotliEncoderParams* params, + BlockSplit* literal_split, + BlockSplit* insert_and_copy_split, + BlockSplit* dist_split); + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_BLOCK_SPLITTER_H_ */ diff --git a/thirdparty/brotli/enc/block_splitter_inc.h b/thirdparty/brotli/enc/block_splitter_inc.h new file mode 100644 index 00000000..9212d869 --- /dev/null +++ b/thirdparty/brotli/enc/block_splitter_inc.h @@ -0,0 +1,432 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN, DataType */ + +#define HistogramType FN(Histogram) + +static void FN(InitialEntropyCodes)(const DataType* data, size_t length, + size_t stride, + size_t num_histograms, + HistogramType* histograms) { + unsigned int seed = 7; + size_t block_length = length / num_histograms; + size_t i; + FN(ClearHistograms)(histograms, num_histograms); + for (i = 0; i < num_histograms; ++i) { + size_t pos = length * i / num_histograms; + if (i != 0) { + pos += MyRand(&seed) % block_length; + } + if (pos + stride >= length) { + pos = length - stride - 1; + } + FN(HistogramAddVector)(&histograms[i], data + pos, stride); + } +} + +static void FN(RandomSample)(unsigned int* seed, + const DataType* data, + size_t length, + size_t stride, + HistogramType* sample) { + size_t pos = 0; + if (stride >= length) { + pos = 0; + stride = length; + } else { + pos = MyRand(seed) % (length - stride + 1); + } + FN(HistogramAddVector)(sample, data + pos, stride); +} + +static void FN(RefineEntropyCodes)(const DataType* data, size_t length, + size_t stride, + size_t num_histograms, + HistogramType* histograms) { + size_t iters = + kIterMulForRefining * length / stride + kMinItersForRefining; + unsigned int seed = 7; + size_t iter; + iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms; + for (iter = 0; iter < iters; ++iter) { + HistogramType sample; + FN(HistogramClear)(&sample); + FN(RandomSample)(&seed, data, length, stride, &sample); + FN(HistogramAddHistogram)(&histograms[iter % num_histograms], &sample); + } +} + +/* Assigns a block id from the range [0, vec.size()) to each data element + in data[0..length) and fills in block_id[0..length) with the assigned values. + Returns the number of blocks, i.e. one plus the number of block switches. */ +static size_t FN(FindBlocks)(const DataType* data, const size_t length, + const double block_switch_bitcost, + const size_t num_histograms, + const HistogramType* histograms, + double* insert_cost, + double* cost, + uint8_t* switch_signal, + uint8_t *block_id) { + const size_t data_size = FN(HistogramDataSize)(); + const size_t bitmaplen = (num_histograms + 7) >> 3; + size_t num_blocks = 1; + size_t i; + size_t j; + assert(num_histograms <= 256); + if (num_histograms <= 1) { + for (i = 0; i < length; ++i) { + block_id[i] = 0; + } + return 1; + } + memset(insert_cost, 0, sizeof(insert_cost[0]) * data_size * num_histograms); + for (i = 0; i < num_histograms; ++i) { + insert_cost[i] = FastLog2((uint32_t)histograms[i].total_count_); + } + for (i = data_size; i != 0;) { + --i; + for (j = 0; j < num_histograms; ++j) { + insert_cost[i * num_histograms + j] = + insert_cost[j] - BitCost(histograms[j].data_[i]); + } + } + memset(cost, 0, sizeof(cost[0]) * num_histograms); + memset(switch_signal, 0, sizeof(switch_signal[0]) * length * bitmaplen); + /* After each iteration of this loop, cost[k] will contain the difference + between the minimum cost of arriving at the current byte position using + entropy code k, and the minimum cost of arriving at the current byte + position. This difference is capped at the block switch cost, and if it + reaches block switch cost, it means that when we trace back from the last + position, we need to switch here. */ + for (i = 0; i < length; ++i) { + const size_t byte_ix = i; + size_t ix = byte_ix * bitmaplen; + size_t insert_cost_ix = data[byte_ix] * num_histograms; + double min_cost = 1e99; + double block_switch_cost = block_switch_bitcost; + size_t k; + for (k = 0; k < num_histograms; ++k) { + /* We are coding the symbol in data[byte_ix] with entropy code k. */ + cost[k] += insert_cost[insert_cost_ix + k]; + if (cost[k] < min_cost) { + min_cost = cost[k]; + block_id[byte_ix] = (uint8_t)k; + } + } + /* More blocks for the beginning. */ + if (byte_ix < 2000) { + block_switch_cost *= 0.77 + 0.07 * (double)byte_ix / 2000; + } + for (k = 0; k < num_histograms; ++k) { + cost[k] -= min_cost; + if (cost[k] >= block_switch_cost) { + const uint8_t mask = (uint8_t)(1u << (k & 7)); + cost[k] = block_switch_cost; + assert((k >> 3) < bitmaplen); + switch_signal[ix + (k >> 3)] |= mask; + } + } + } + { /* Trace back from the last position and switch at the marked places. */ + size_t byte_ix = length - 1; + size_t ix = byte_ix * bitmaplen; + uint8_t cur_id = block_id[byte_ix]; + while (byte_ix > 0) { + const uint8_t mask = (uint8_t)(1u << (cur_id & 7)); + assert(((size_t)cur_id >> 3) < bitmaplen); + --byte_ix; + ix -= bitmaplen; + if (switch_signal[ix + (cur_id >> 3)] & mask) { + if (cur_id != block_id[byte_ix]) { + cur_id = block_id[byte_ix]; + ++num_blocks; + } + } + block_id[byte_ix] = cur_id; + } + } + return num_blocks; +} + +static size_t FN(RemapBlockIds)(uint8_t* block_ids, const size_t length, + uint16_t* new_id, const size_t num_histograms) { + static const uint16_t kInvalidId = 256; + uint16_t next_id = 0; + size_t i; + for (i = 0; i < num_histograms; ++i) { + new_id[i] = kInvalidId; + } + for (i = 0; i < length; ++i) { + assert(block_ids[i] < num_histograms); + if (new_id[block_ids[i]] == kInvalidId) { + new_id[block_ids[i]] = next_id++; + } + } + for (i = 0; i < length; ++i) { + block_ids[i] = (uint8_t)new_id[block_ids[i]]; + assert(block_ids[i] < num_histograms); + } + assert(next_id <= num_histograms); + return next_id; +} + +static void FN(BuildBlockHistograms)(const DataType* data, const size_t length, + const uint8_t* block_ids, + const size_t num_histograms, + HistogramType* histograms) { + size_t i; + FN(ClearHistograms)(histograms, num_histograms); + for (i = 0; i < length; ++i) { + FN(HistogramAdd)(&histograms[block_ids[i]], data[i]); + } +} + +static void FN(ClusterBlocks)(MemoryManager* m, + const DataType* data, const size_t length, + const size_t num_blocks, + uint8_t* block_ids, + BlockSplit* split) { + uint32_t* histogram_symbols = BROTLI_ALLOC(m, uint32_t, num_blocks); + uint32_t* block_lengths = BROTLI_ALLOC(m, uint32_t, num_blocks); + const size_t expected_num_clusters = CLUSTERS_PER_BATCH * + (num_blocks + HISTOGRAMS_PER_BATCH - 1) / HISTOGRAMS_PER_BATCH; + size_t all_histograms_size = 0; + size_t all_histograms_capacity = expected_num_clusters; + HistogramType* all_histograms = + BROTLI_ALLOC(m, HistogramType, all_histograms_capacity); + size_t cluster_size_size = 0; + size_t cluster_size_capacity = expected_num_clusters; + uint32_t* cluster_size = BROTLI_ALLOC(m, uint32_t, cluster_size_capacity); + size_t num_clusters = 0; + HistogramType* histograms = BROTLI_ALLOC(m, HistogramType, + BROTLI_MIN(size_t, num_blocks, HISTOGRAMS_PER_BATCH)); + size_t max_num_pairs = + HISTOGRAMS_PER_BATCH * HISTOGRAMS_PER_BATCH / 2; + size_t pairs_capacity = max_num_pairs + 1; + HistogramPair* pairs = BROTLI_ALLOC(m, HistogramPair, pairs_capacity); + size_t pos = 0; + uint32_t* clusters; + size_t num_final_clusters; + static const uint32_t kInvalidIndex = BROTLI_UINT32_MAX; + uint32_t* new_index; + uint8_t max_type = 0; + size_t i; + uint32_t sizes[HISTOGRAMS_PER_BATCH] = { 0 }; + uint32_t new_clusters[HISTOGRAMS_PER_BATCH] = { 0 }; + uint32_t symbols[HISTOGRAMS_PER_BATCH] = { 0 }; + uint32_t remap[HISTOGRAMS_PER_BATCH] = { 0 }; + + if (BROTLI_IS_OOM(m)) return; + + memset(block_lengths, 0, num_blocks * sizeof(uint32_t)); + + { + size_t block_idx = 0; + for (i = 0; i < length; ++i) { + assert(block_idx < num_blocks); + ++block_lengths[block_idx]; + if (i + 1 == length || block_ids[i] != block_ids[i + 1]) { + ++block_idx; + } + } + assert(block_idx == num_blocks); + } + + for (i = 0; i < num_blocks; i += HISTOGRAMS_PER_BATCH) { + const size_t num_to_combine = + BROTLI_MIN(size_t, num_blocks - i, HISTOGRAMS_PER_BATCH); + size_t num_new_clusters; + size_t j; + for (j = 0; j < num_to_combine; ++j) { + size_t k; + FN(HistogramClear)(&histograms[j]); + for (k = 0; k < block_lengths[i + j]; ++k) { + FN(HistogramAdd)(&histograms[j], data[pos++]); + } + histograms[j].bit_cost_ = FN(BrotliPopulationCost)(&histograms[j]); + new_clusters[j] = (uint32_t)j; + symbols[j] = (uint32_t)j; + sizes[j] = 1; + } + num_new_clusters = FN(BrotliHistogramCombine)( + histograms, sizes, symbols, new_clusters, pairs, num_to_combine, + num_to_combine, HISTOGRAMS_PER_BATCH, max_num_pairs); + BROTLI_ENSURE_CAPACITY(m, HistogramType, all_histograms, + all_histograms_capacity, all_histograms_size + num_new_clusters); + BROTLI_ENSURE_CAPACITY(m, uint32_t, cluster_size, + cluster_size_capacity, cluster_size_size + num_new_clusters); + if (BROTLI_IS_OOM(m)) return; + for (j = 0; j < num_new_clusters; ++j) { + all_histograms[all_histograms_size++] = histograms[new_clusters[j]]; + cluster_size[cluster_size_size++] = sizes[new_clusters[j]]; + remap[new_clusters[j]] = (uint32_t)j; + } + for (j = 0; j < num_to_combine; ++j) { + histogram_symbols[i + j] = (uint32_t)num_clusters + remap[symbols[j]]; + } + num_clusters += num_new_clusters; + assert(num_clusters == cluster_size_size); + assert(num_clusters == all_histograms_size); + } + BROTLI_FREE(m, histograms); + + max_num_pairs = + BROTLI_MIN(size_t, 64 * num_clusters, (num_clusters / 2) * num_clusters); + if (pairs_capacity < max_num_pairs + 1) { + BROTLI_FREE(m, pairs); + pairs = BROTLI_ALLOC(m, HistogramPair, max_num_pairs + 1); + if (BROTLI_IS_OOM(m)) return; + } + + clusters = BROTLI_ALLOC(m, uint32_t, num_clusters); + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < num_clusters; ++i) { + clusters[i] = (uint32_t)i; + } + num_final_clusters = FN(BrotliHistogramCombine)( + all_histograms, cluster_size, histogram_symbols, clusters, pairs, + num_clusters, num_blocks, BROTLI_MAX_NUMBER_OF_BLOCK_TYPES, + max_num_pairs); + BROTLI_FREE(m, pairs); + BROTLI_FREE(m, cluster_size); + + new_index = BROTLI_ALLOC(m, uint32_t, num_clusters); + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < num_clusters; ++i) new_index[i] = kInvalidIndex; + pos = 0; + { + uint32_t next_index = 0; + for (i = 0; i < num_blocks; ++i) { + HistogramType histo; + size_t j; + uint32_t best_out; + double best_bits; + FN(HistogramClear)(&histo); + for (j = 0; j < block_lengths[i]; ++j) { + FN(HistogramAdd)(&histo, data[pos++]); + } + best_out = (i == 0) ? histogram_symbols[0] : histogram_symbols[i - 1]; + best_bits = + FN(BrotliHistogramBitCostDistance)(&histo, &all_histograms[best_out]); + for (j = 0; j < num_final_clusters; ++j) { + const double cur_bits = FN(BrotliHistogramBitCostDistance)( + &histo, &all_histograms[clusters[j]]); + if (cur_bits < best_bits) { + best_bits = cur_bits; + best_out = clusters[j]; + } + } + histogram_symbols[i] = best_out; + if (new_index[best_out] == kInvalidIndex) { + new_index[best_out] = next_index++; + } + } + } + BROTLI_FREE(m, clusters); + BROTLI_FREE(m, all_histograms); + BROTLI_ENSURE_CAPACITY( + m, uint8_t, split->types, split->types_alloc_size, num_blocks); + BROTLI_ENSURE_CAPACITY( + m, uint32_t, split->lengths, split->lengths_alloc_size, num_blocks); + if (BROTLI_IS_OOM(m)) return; + { + uint32_t cur_length = 0; + size_t block_idx = 0; + for (i = 0; i < num_blocks; ++i) { + cur_length += block_lengths[i]; + if (i + 1 == num_blocks || + histogram_symbols[i] != histogram_symbols[i + 1]) { + const uint8_t id = (uint8_t)new_index[histogram_symbols[i]]; + split->types[block_idx] = id; + split->lengths[block_idx] = cur_length; + max_type = BROTLI_MAX(uint8_t, max_type, id); + cur_length = 0; + ++block_idx; + } + } + split->num_blocks = block_idx; + split->num_types = (size_t)max_type + 1; + } + BROTLI_FREE(m, new_index); + BROTLI_FREE(m, block_lengths); + BROTLI_FREE(m, histogram_symbols); +} + +static void FN(SplitByteVector)(MemoryManager* m, + const DataType* data, const size_t length, + const size_t literals_per_histogram, + const size_t max_histograms, + const size_t sampling_stride_length, + const double block_switch_cost, + const BrotliEncoderParams* params, + BlockSplit* split) { + const size_t data_size = FN(HistogramDataSize)(); + size_t num_histograms = length / literals_per_histogram + 1; + HistogramType* histograms; + if (num_histograms > max_histograms) { + num_histograms = max_histograms; + } + if (length == 0) { + split->num_types = 1; + return; + } else if (length < kMinLengthForBlockSplitting) { + BROTLI_ENSURE_CAPACITY(m, uint8_t, + split->types, split->types_alloc_size, split->num_blocks + 1); + BROTLI_ENSURE_CAPACITY(m, uint32_t, + split->lengths, split->lengths_alloc_size, split->num_blocks + 1); + if (BROTLI_IS_OOM(m)) return; + split->num_types = 1; + split->types[split->num_blocks] = 0; + split->lengths[split->num_blocks] = (uint32_t)length; + split->num_blocks++; + return; + } + histograms = BROTLI_ALLOC(m, HistogramType, num_histograms); + if (BROTLI_IS_OOM(m)) return; + /* Find good entropy codes. */ + FN(InitialEntropyCodes)(data, length, + sampling_stride_length, + num_histograms, histograms); + FN(RefineEntropyCodes)(data, length, + sampling_stride_length, + num_histograms, histograms); + { + /* Find a good path through literals with the good entropy codes. */ + uint8_t* block_ids = BROTLI_ALLOC(m, uint8_t, length); + size_t num_blocks; + const size_t bitmaplen = (num_histograms + 7) >> 3; + double* insert_cost = BROTLI_ALLOC(m, double, data_size * num_histograms); + double* cost = BROTLI_ALLOC(m, double, num_histograms); + uint8_t* switch_signal = BROTLI_ALLOC(m, uint8_t, length * bitmaplen); + uint16_t* new_id = BROTLI_ALLOC(m, uint16_t, num_histograms); + const size_t iters = params->quality < HQ_ZOPFLIFICATION_QUALITY ? 3 : 10; + size_t i; + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < iters; ++i) { + num_blocks = FN(FindBlocks)(data, length, + block_switch_cost, + num_histograms, histograms, + insert_cost, cost, switch_signal, + block_ids); + num_histograms = FN(RemapBlockIds)(block_ids, length, + new_id, num_histograms); + FN(BuildBlockHistograms)(data, length, block_ids, + num_histograms, histograms); + } + BROTLI_FREE(m, insert_cost); + BROTLI_FREE(m, cost); + BROTLI_FREE(m, switch_signal); + BROTLI_FREE(m, new_id); + BROTLI_FREE(m, histograms); + FN(ClusterBlocks)(m, data, length, num_blocks, block_ids, split); + if (BROTLI_IS_OOM(m)) return; + BROTLI_FREE(m, block_ids); + } +} + +#undef HistogramType diff --git a/thirdparty/brotli/enc/brotli_bit_stream.c b/thirdparty/brotli/enc/brotli_bit_stream.c new file mode 100644 index 00000000..63897e57 --- /dev/null +++ b/thirdparty/brotli/enc/brotli_bit_stream.c @@ -0,0 +1,1334 @@ +/* Copyright 2014 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Brotli bit stream functions to support the low level format. There are no + compression algorithms here, just the right ordering of bits to match the + specs. */ + +#include "./brotli_bit_stream.h" + +#include <string.h> /* memcpy, memset */ + +#include "../common/constants.h" +#include "../common/types.h" +#include "./context.h" +#include "./entropy_encode.h" +#include "./entropy_encode_static.h" +#include "./fast_log.h" +#include "./memory.h" +#include "./port.h" +#include "./write_bits.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MAX_HUFFMAN_TREE_SIZE (2 * BROTLI_NUM_COMMAND_SYMBOLS + 1) + +/* Represents the range of values belonging to a prefix code: + [offset, offset + 2^nbits) */ +typedef struct PrefixCodeRange { + uint32_t offset; + uint32_t nbits; +} PrefixCodeRange; + +static const PrefixCodeRange + kBlockLengthPrefixCode[BROTLI_NUM_BLOCK_LEN_SYMBOLS] = { + { 1, 2}, { 5, 2}, { 9, 2}, {13, 2}, {17, 3}, { 25, 3}, { 33, 3}, + {41, 3}, {49, 4}, {65, 4}, {81, 4}, {97, 4}, {113, 5}, {145, 5}, + {177, 5}, { 209, 5}, { 241, 6}, { 305, 6}, { 369, 7}, { 497, 8}, + {753, 9}, {1265, 10}, {2289, 11}, {4337, 12}, {8433, 13}, {16625, 24} +}; + +static BROTLI_INLINE uint32_t BlockLengthPrefixCode(uint32_t len) { + uint32_t code = (len >= 177) ? (len >= 753 ? 20 : 14) : (len >= 41 ? 7 : 0); + while (code < (BROTLI_NUM_BLOCK_LEN_SYMBOLS - 1) && + len >= kBlockLengthPrefixCode[code + 1].offset) ++code; + return code; +} + +static BROTLI_INLINE void GetBlockLengthPrefixCode(uint32_t len, size_t* code, + uint32_t* n_extra, uint32_t* extra) { + *code = BlockLengthPrefixCode(len); + *n_extra = kBlockLengthPrefixCode[*code].nbits; + *extra = len - kBlockLengthPrefixCode[*code].offset; +} + +typedef struct BlockTypeCodeCalculator { + size_t last_type; + size_t second_last_type; +} BlockTypeCodeCalculator; + +static void InitBlockTypeCodeCalculator(BlockTypeCodeCalculator* self) { + self->last_type = 1; + self->second_last_type = 0; +} + +static BROTLI_INLINE size_t NextBlockTypeCode( + BlockTypeCodeCalculator* calculator, uint8_t type) { + size_t type_code = (type == calculator->last_type + 1) ? 1u : + (type == calculator->second_last_type) ? 0u : type + 2u; + calculator->second_last_type = calculator->last_type; + calculator->last_type = type; + return type_code; +} + +/* nibblesbits represents the 2 bits to encode MNIBBLES (0-3) + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) */ +static void BrotliEncodeMlen(size_t length, uint64_t* bits, + size_t* numbits, uint64_t* nibblesbits) { + size_t lg = (length == 1) ? 1 : Log2FloorNonZero((uint32_t)(length - 1)) + 1; + size_t mnibbles = (lg < 16 ? 16 : (lg + 3)) / 4; + assert(length > 0); + assert(length <= (1 << 24)); + assert(lg <= 24); + *nibblesbits = mnibbles - 4; + *numbits = mnibbles * 4; + *bits = length - 1; +} + +static BROTLI_INLINE void StoreCommandExtra( + const Command* cmd, size_t* storage_ix, uint8_t* storage) { + uint32_t copylen_code = CommandCopyLenCode(cmd); + uint16_t inscode = GetInsertLengthCode(cmd->insert_len_); + uint16_t copycode = GetCopyLengthCode(copylen_code); + uint32_t insnumextra = GetInsertExtra(inscode); + uint64_t insextraval = cmd->insert_len_ - GetInsertBase(inscode); + uint64_t copyextraval = copylen_code - GetCopyBase(copycode); + uint64_t bits = (copyextraval << insnumextra) | insextraval; + BrotliWriteBits( + insnumextra + GetCopyExtra(copycode), bits, storage_ix, storage); +} + +/* Data structure that stores almost everything that is needed to encode each + block switch command. */ +typedef struct BlockSplitCode { + BlockTypeCodeCalculator type_code_calculator; + uint8_t type_depths[BROTLI_MAX_BLOCK_TYPE_SYMBOLS]; + uint16_t type_bits[BROTLI_MAX_BLOCK_TYPE_SYMBOLS]; + uint8_t length_depths[BROTLI_NUM_BLOCK_LEN_SYMBOLS]; + uint16_t length_bits[BROTLI_NUM_BLOCK_LEN_SYMBOLS]; +} BlockSplitCode; + +/* Stores a number between 0 and 255. */ +static void StoreVarLenUint8(size_t n, size_t* storage_ix, uint8_t* storage) { + if (n == 0) { + BrotliWriteBits(1, 0, storage_ix, storage); + } else { + size_t nbits = Log2FloorNonZero(n); + BrotliWriteBits(1, 1, storage_ix, storage); + BrotliWriteBits(3, nbits, storage_ix, storage); + BrotliWriteBits(nbits, n - ((size_t)1 << nbits), storage_ix, storage); + } +} + +/* Stores the compressed meta-block header. + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) */ +static void StoreCompressedMetaBlockHeader(BROTLI_BOOL is_final_block, + size_t length, + size_t* storage_ix, + uint8_t* storage) { + uint64_t lenbits; + size_t nlenbits; + uint64_t nibblesbits; + + /* Write ISLAST bit. */ + BrotliWriteBits(1, (uint64_t)is_final_block, storage_ix, storage); + /* Write ISEMPTY bit. */ + if (is_final_block) { + BrotliWriteBits(1, 0, storage_ix, storage); + } + + BrotliEncodeMlen(length, &lenbits, &nlenbits, &nibblesbits); + BrotliWriteBits(2, nibblesbits, storage_ix, storage); + BrotliWriteBits(nlenbits, lenbits, storage_ix, storage); + + if (!is_final_block) { + /* Write ISUNCOMPRESSED bit. */ + BrotliWriteBits(1, 0, storage_ix, storage); + } +} + +/* Stores the uncompressed meta-block header. + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) */ +static void BrotliStoreUncompressedMetaBlockHeader(size_t length, + size_t* storage_ix, + uint8_t* storage) { + uint64_t lenbits; + size_t nlenbits; + uint64_t nibblesbits; + + /* Write ISLAST bit. + Uncompressed block cannot be the last one, so set to 0. */ + BrotliWriteBits(1, 0, storage_ix, storage); + BrotliEncodeMlen(length, &lenbits, &nlenbits, &nibblesbits); + BrotliWriteBits(2, nibblesbits, storage_ix, storage); + BrotliWriteBits(nlenbits, lenbits, storage_ix, storage); + /* Write ISUNCOMPRESSED bit. */ + BrotliWriteBits(1, 1, storage_ix, storage); +} + +static void BrotliStoreHuffmanTreeOfHuffmanTreeToBitMask( + const int num_codes, const uint8_t* code_length_bitdepth, + size_t* storage_ix, uint8_t* storage) { + static const uint8_t kStorageOrder[BROTLI_CODE_LENGTH_CODES] = { + 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15 + }; + /* The bit lengths of the Huffman code over the code length alphabet + are compressed with the following static Huffman code: + Symbol Code + ------ ---- + 0 00 + 1 1110 + 2 110 + 3 01 + 4 10 + 5 1111 */ + static const uint8_t kHuffmanBitLengthHuffmanCodeSymbols[6] = { + 0, 7, 3, 2, 1, 15 + }; + static const uint8_t kHuffmanBitLengthHuffmanCodeBitLengths[6] = { + 2, 4, 3, 2, 2, 4 + }; + + size_t skip_some = 0; /* skips none. */ + + /* Throw away trailing zeros: */ + size_t codes_to_store = BROTLI_CODE_LENGTH_CODES; + if (num_codes > 1) { + for (; codes_to_store > 0; --codes_to_store) { + if (code_length_bitdepth[kStorageOrder[codes_to_store - 1]] != 0) { + break; + } + } + } + if (code_length_bitdepth[kStorageOrder[0]] == 0 && + code_length_bitdepth[kStorageOrder[1]] == 0) { + skip_some = 2; /* skips two. */ + if (code_length_bitdepth[kStorageOrder[2]] == 0) { + skip_some = 3; /* skips three. */ + } + } + BrotliWriteBits(2, skip_some, storage_ix, storage); + { + size_t i; + for (i = skip_some; i < codes_to_store; ++i) { + size_t l = code_length_bitdepth[kStorageOrder[i]]; + BrotliWriteBits(kHuffmanBitLengthHuffmanCodeBitLengths[l], + kHuffmanBitLengthHuffmanCodeSymbols[l], storage_ix, storage); + } + } +} + +static void BrotliStoreHuffmanTreeToBitMask( + const size_t huffman_tree_size, const uint8_t* huffman_tree, + const uint8_t* huffman_tree_extra_bits, const uint8_t* code_length_bitdepth, + const uint16_t* code_length_bitdepth_symbols, + size_t* BROTLI_RESTRICT storage_ix, uint8_t* BROTLI_RESTRICT storage) { + size_t i; + for (i = 0; i < huffman_tree_size; ++i) { + size_t ix = huffman_tree[i]; + BrotliWriteBits(code_length_bitdepth[ix], code_length_bitdepth_symbols[ix], + storage_ix, storage); + /* Extra bits */ + switch (ix) { + case BROTLI_REPEAT_PREVIOUS_CODE_LENGTH: + BrotliWriteBits(2, huffman_tree_extra_bits[i], storage_ix, storage); + break; + case BROTLI_REPEAT_ZERO_CODE_LENGTH: + BrotliWriteBits(3, huffman_tree_extra_bits[i], storage_ix, storage); + break; + } + } +} + +static void StoreSimpleHuffmanTree(const uint8_t* depths, + size_t symbols[4], + size_t num_symbols, + size_t max_bits, + size_t *storage_ix, uint8_t *storage) { + /* value of 1 indicates a simple Huffman code */ + BrotliWriteBits(2, 1, storage_ix, storage); + BrotliWriteBits(2, num_symbols - 1, storage_ix, storage); /* NSYM - 1 */ + + { + /* Sort */ + size_t i; + for (i = 0; i < num_symbols; i++) { + size_t j; + for (j = i + 1; j < num_symbols; j++) { + if (depths[symbols[j]] < depths[symbols[i]]) { + BROTLI_SWAP(size_t, symbols, j, i); + } + } + } + } + + if (num_symbols == 2) { + BrotliWriteBits(max_bits, symbols[0], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[1], storage_ix, storage); + } else if (num_symbols == 3) { + BrotliWriteBits(max_bits, symbols[0], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[1], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[2], storage_ix, storage); + } else { + BrotliWriteBits(max_bits, symbols[0], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[1], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[2], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[3], storage_ix, storage); + /* tree-select */ + BrotliWriteBits(1, depths[symbols[0]] == 1 ? 1 : 0, storage_ix, storage); + } +} + +/* num = alphabet size + depths = symbol depths */ +void BrotliStoreHuffmanTree(const uint8_t* depths, size_t num, + HuffmanTree* tree, + size_t *storage_ix, uint8_t *storage) { + /* Write the Huffman tree into the brotli-representation. + The command alphabet is the largest, so this allocation will fit all + alphabets. */ + uint8_t huffman_tree[BROTLI_NUM_COMMAND_SYMBOLS]; + uint8_t huffman_tree_extra_bits[BROTLI_NUM_COMMAND_SYMBOLS]; + size_t huffman_tree_size = 0; + uint8_t code_length_bitdepth[BROTLI_CODE_LENGTH_CODES] = { 0 }; + uint16_t code_length_bitdepth_symbols[BROTLI_CODE_LENGTH_CODES]; + uint32_t huffman_tree_histogram[BROTLI_CODE_LENGTH_CODES] = { 0 }; + size_t i; + int num_codes = 0; + size_t code = 0; + + assert(num <= BROTLI_NUM_COMMAND_SYMBOLS); + + BrotliWriteHuffmanTree(depths, num, &huffman_tree_size, huffman_tree, + huffman_tree_extra_bits); + + /* Calculate the statistics of the Huffman tree in brotli-representation. */ + for (i = 0; i < huffman_tree_size; ++i) { + ++huffman_tree_histogram[huffman_tree[i]]; + } + + for (i = 0; i < BROTLI_CODE_LENGTH_CODES; ++i) { + if (huffman_tree_histogram[i]) { + if (num_codes == 0) { + code = i; + num_codes = 1; + } else if (num_codes == 1) { + num_codes = 2; + break; + } + } + } + + /* Calculate another Huffman tree to use for compressing both the + earlier Huffman tree with. */ + BrotliCreateHuffmanTree(huffman_tree_histogram, BROTLI_CODE_LENGTH_CODES, + 5, tree, code_length_bitdepth); + BrotliConvertBitDepthsToSymbols(code_length_bitdepth, + BROTLI_CODE_LENGTH_CODES, + code_length_bitdepth_symbols); + + /* Now, we have all the data, let's start storing it */ + BrotliStoreHuffmanTreeOfHuffmanTreeToBitMask(num_codes, code_length_bitdepth, + storage_ix, storage); + + if (num_codes == 1) { + code_length_bitdepth[code] = 0; + } + + /* Store the real huffman tree now. */ + BrotliStoreHuffmanTreeToBitMask(huffman_tree_size, + huffman_tree, + huffman_tree_extra_bits, + code_length_bitdepth, + code_length_bitdepth_symbols, + storage_ix, storage); +} + +/* Builds a Huffman tree from histogram[0:length] into depth[0:length] and + bits[0:length] and stores the encoded tree to the bit stream. */ +static void BuildAndStoreHuffmanTree(const uint32_t *histogram, + const size_t length, + HuffmanTree* tree, + uint8_t* depth, + uint16_t* bits, + size_t* storage_ix, + uint8_t* storage) { + size_t count = 0; + size_t s4[4] = { 0 }; + size_t i; + size_t max_bits = 0; + for (i = 0; i < length; i++) { + if (histogram[i]) { + if (count < 4) { + s4[count] = i; + } else if (count > 4) { + break; + } + count++; + } + } + + { + size_t max_bits_counter = length - 1; + while (max_bits_counter) { + max_bits_counter >>= 1; + ++max_bits; + } + } + + if (count <= 1) { + BrotliWriteBits(4, 1, storage_ix, storage); + BrotliWriteBits(max_bits, s4[0], storage_ix, storage); + depth[s4[0]] = 0; + bits[s4[0]] = 0; + return; + } + + memset(depth, 0, length * sizeof(depth[0])); + BrotliCreateHuffmanTree(histogram, length, 15, tree, depth); + BrotliConvertBitDepthsToSymbols(depth, length, bits); + + if (count <= 4) { + StoreSimpleHuffmanTree(depth, s4, count, max_bits, storage_ix, storage); + } else { + BrotliStoreHuffmanTree(depth, length, tree, storage_ix, storage); + } +} + +static BROTLI_INLINE BROTLI_BOOL SortHuffmanTree( + const HuffmanTree* v0, const HuffmanTree* v1) { + return TO_BROTLI_BOOL(v0->total_count_ < v1->total_count_); +} + +void BrotliBuildAndStoreHuffmanTreeFast(MemoryManager* m, + const uint32_t* histogram, + const size_t histogram_total, + const size_t max_bits, + uint8_t* depth, uint16_t* bits, + size_t* storage_ix, + uint8_t* storage) { + size_t count = 0; + size_t symbols[4] = { 0 }; + size_t length = 0; + size_t total = histogram_total; + while (total != 0) { + if (histogram[length]) { + if (count < 4) { + symbols[count] = length; + } + ++count; + total -= histogram[length]; + } + ++length; + } + + if (count <= 1) { + BrotliWriteBits(4, 1, storage_ix, storage); + BrotliWriteBits(max_bits, symbols[0], storage_ix, storage); + depth[symbols[0]] = 0; + bits[symbols[0]] = 0; + return; + } + + memset(depth, 0, length * sizeof(depth[0])); + { + const size_t max_tree_size = 2 * length + 1; + HuffmanTree* tree = BROTLI_ALLOC(m, HuffmanTree, max_tree_size); + uint32_t count_limit; + if (BROTLI_IS_OOM(m)) return; + for (count_limit = 1; ; count_limit *= 2) { + HuffmanTree* node = tree; + size_t l; + for (l = length; l != 0;) { + --l; + if (histogram[l]) { + if (PREDICT_TRUE(histogram[l] >= count_limit)) { + InitHuffmanTree(node, histogram[l], -1, (int16_t)l); + } else { + InitHuffmanTree(node, count_limit, -1, (int16_t)l); + } + ++node; + } + } + { + const int n = (int)(node - tree); + HuffmanTree sentinel; + int i = 0; /* Points to the next leaf node. */ + int j = n + 1; /* Points to the next non-leaf node. */ + int k; + + SortHuffmanTreeItems(tree, (size_t)n, SortHuffmanTree); + /* The nodes are: + [0, n): the sorted leaf nodes that we start with. + [n]: we add a sentinel here. + [n + 1, 2n): new parent nodes are added here, starting from + (n+1). These are naturally in ascending order. + [2n]: we add a sentinel at the end as well. + There will be (2n+1) elements at the end. */ + InitHuffmanTree(&sentinel, BROTLI_UINT32_MAX, -1, -1); + *node++ = sentinel; + *node++ = sentinel; + + for (k = n - 1; k > 0; --k) { + int left, right; + if (tree[i].total_count_ <= tree[j].total_count_) { + left = i; + ++i; + } else { + left = j; + ++j; + } + if (tree[i].total_count_ <= tree[j].total_count_) { + right = i; + ++i; + } else { + right = j; + ++j; + } + /* The sentinel node becomes the parent node. */ + node[-1].total_count_ = + tree[left].total_count_ + tree[right].total_count_; + node[-1].index_left_ = (int16_t)left; + node[-1].index_right_or_value_ = (int16_t)right; + /* Add back the last sentinel node. */ + *node++ = sentinel; + } + if (BrotliSetDepth(2 * n - 1, tree, depth, 14)) { + /* We need to pack the Huffman tree in 14 bits. If this was not + successful, add fake entities to the lowest values and retry. */ + break; + } + } + } + BROTLI_FREE(m, tree); + } + BrotliConvertBitDepthsToSymbols(depth, length, bits); + if (count <= 4) { + size_t i; + /* value of 1 indicates a simple Huffman code */ + BrotliWriteBits(2, 1, storage_ix, storage); + BrotliWriteBits(2, count - 1, storage_ix, storage); /* NSYM - 1 */ + + /* Sort */ + for (i = 0; i < count; i++) { + size_t j; + for (j = i + 1; j < count; j++) { + if (depth[symbols[j]] < depth[symbols[i]]) { + BROTLI_SWAP(size_t, symbols, j, i); + } + } + } + + if (count == 2) { + BrotliWriteBits(max_bits, symbols[0], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[1], storage_ix, storage); + } else if (count == 3) { + BrotliWriteBits(max_bits, symbols[0], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[1], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[2], storage_ix, storage); + } else { + BrotliWriteBits(max_bits, symbols[0], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[1], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[2], storage_ix, storage); + BrotliWriteBits(max_bits, symbols[3], storage_ix, storage); + /* tree-select */ + BrotliWriteBits(1, depth[symbols[0]] == 1 ? 1 : 0, storage_ix, storage); + } + } else { + uint8_t previous_value = 8; + size_t i; + /* Complex Huffman Tree */ + StoreStaticCodeLengthCode(storage_ix, storage); + + /* Actual rle coding. */ + for (i = 0; i < length;) { + const uint8_t value = depth[i]; + size_t reps = 1; + size_t k; + for (k = i + 1; k < length && depth[k] == value; ++k) { + ++reps; + } + i += reps; + if (value == 0) { + BrotliWriteBits(kZeroRepsDepth[reps], kZeroRepsBits[reps], + storage_ix, storage); + } else { + if (previous_value != value) { + BrotliWriteBits(kCodeLengthDepth[value], kCodeLengthBits[value], + storage_ix, storage); + --reps; + } + if (reps < 3) { + while (reps != 0) { + reps--; + BrotliWriteBits(kCodeLengthDepth[value], kCodeLengthBits[value], + storage_ix, storage); + } + } else { + reps -= 3; + BrotliWriteBits(kNonZeroRepsDepth[reps], kNonZeroRepsBits[reps], + storage_ix, storage); + } + previous_value = value; + } + } + } +} + +static size_t IndexOf(const uint8_t* v, size_t v_size, uint8_t value) { + size_t i = 0; + for (; i < v_size; ++i) { + if (v[i] == value) return i; + } + return i; +} + +static void MoveToFront(uint8_t* v, size_t index) { + uint8_t value = v[index]; + size_t i; + for (i = index; i != 0; --i) { + v[i] = v[i - 1]; + } + v[0] = value; +} + +static void MoveToFrontTransform(const uint32_t* BROTLI_RESTRICT v_in, + const size_t v_size, + uint32_t* v_out) { + size_t i; + uint8_t mtf[256]; + uint32_t max_value; + if (v_size == 0) { + return; + } + max_value = v_in[0]; + for (i = 1; i < v_size; ++i) { + if (v_in[i] > max_value) max_value = v_in[i]; + } + assert(max_value < 256u); + for (i = 0; i <= max_value; ++i) { + mtf[i] = (uint8_t)i; + } + { + size_t mtf_size = max_value + 1; + for (i = 0; i < v_size; ++i) { + size_t index = IndexOf(mtf, mtf_size, (uint8_t)v_in[i]); + assert(index < mtf_size); + v_out[i] = (uint32_t)index; + MoveToFront(mtf, index); + } + } +} + +/* Finds runs of zeros in v[0..in_size) and replaces them with a prefix code of + the run length plus extra bits (lower 9 bits is the prefix code and the rest + are the extra bits). Non-zero values in v[] are shifted by + *max_length_prefix. Will not create prefix codes bigger than the initial + value of *max_run_length_prefix. The prefix code of run length L is simply + Log2Floor(L) and the number of extra bits is the same as the prefix code. */ +static void RunLengthCodeZeros(const size_t in_size, + uint32_t* BROTLI_RESTRICT v, size_t* BROTLI_RESTRICT out_size, + uint32_t* BROTLI_RESTRICT max_run_length_prefix) { + uint32_t max_reps = 0; + size_t i; + uint32_t max_prefix; + for (i = 0; i < in_size;) { + uint32_t reps = 0; + for (; i < in_size && v[i] != 0; ++i) ; + for (; i < in_size && v[i] == 0; ++i) { + ++reps; + } + max_reps = BROTLI_MAX(uint32_t, reps, max_reps); + } + max_prefix = max_reps > 0 ? Log2FloorNonZero(max_reps) : 0; + max_prefix = BROTLI_MIN(uint32_t, max_prefix, *max_run_length_prefix); + *max_run_length_prefix = max_prefix; + *out_size = 0; + for (i = 0; i < in_size;) { + assert(*out_size <= i); + if (v[i] != 0) { + v[*out_size] = v[i] + *max_run_length_prefix; + ++i; + ++(*out_size); + } else { + uint32_t reps = 1; + size_t k; + for (k = i + 1; k < in_size && v[k] == 0; ++k) { + ++reps; + } + i += reps; + while (reps != 0) { + if (reps < (2u << max_prefix)) { + uint32_t run_length_prefix = Log2FloorNonZero(reps); + const uint32_t extra_bits = reps - (1u << run_length_prefix); + v[*out_size] = run_length_prefix + (extra_bits << 9); + ++(*out_size); + break; + } else { + const uint32_t extra_bits = (1u << max_prefix) - 1u; + v[*out_size] = max_prefix + (extra_bits << 9); + reps -= (2u << max_prefix) - 1u; + ++(*out_size); + } + } + } + } +} + +#define SYMBOL_BITS 9 + +static void EncodeContextMap(MemoryManager* m, + const uint32_t* context_map, + size_t context_map_size, + size_t num_clusters, + HuffmanTree* tree, + size_t* storage_ix, uint8_t* storage) { + size_t i; + uint32_t* rle_symbols; + uint32_t max_run_length_prefix = 6; + size_t num_rle_symbols = 0; + uint32_t histogram[BROTLI_MAX_CONTEXT_MAP_SYMBOLS]; + static const uint32_t kSymbolMask = (1u << SYMBOL_BITS) - 1u; + uint8_t depths[BROTLI_MAX_CONTEXT_MAP_SYMBOLS]; + uint16_t bits[BROTLI_MAX_CONTEXT_MAP_SYMBOLS]; + + StoreVarLenUint8(num_clusters - 1, storage_ix, storage); + + if (num_clusters == 1) { + return; + } + + rle_symbols = BROTLI_ALLOC(m, uint32_t, context_map_size); + if (BROTLI_IS_OOM(m)) return; + MoveToFrontTransform(context_map, context_map_size, rle_symbols); + RunLengthCodeZeros(context_map_size, rle_symbols, + &num_rle_symbols, &max_run_length_prefix); + memset(histogram, 0, sizeof(histogram)); + for (i = 0; i < num_rle_symbols; ++i) { + ++histogram[rle_symbols[i] & kSymbolMask]; + } + { + BROTLI_BOOL use_rle = TO_BROTLI_BOOL(max_run_length_prefix > 0); + BrotliWriteBits(1, (uint64_t)use_rle, storage_ix, storage); + if (use_rle) { + BrotliWriteBits(4, max_run_length_prefix - 1, storage_ix, storage); + } + } + BuildAndStoreHuffmanTree(histogram, num_clusters + max_run_length_prefix, + tree, depths, bits, storage_ix, storage); + for (i = 0; i < num_rle_symbols; ++i) { + const uint32_t rle_symbol = rle_symbols[i] & kSymbolMask; + const uint32_t extra_bits_val = rle_symbols[i] >> SYMBOL_BITS; + BrotliWriteBits(depths[rle_symbol], bits[rle_symbol], storage_ix, storage); + if (rle_symbol > 0 && rle_symbol <= max_run_length_prefix) { + BrotliWriteBits(rle_symbol, extra_bits_val, storage_ix, storage); + } + } + BrotliWriteBits(1, 1, storage_ix, storage); /* use move-to-front */ + BROTLI_FREE(m, rle_symbols); +} + +/* Stores the block switch command with index block_ix to the bit stream. */ +static BROTLI_INLINE void StoreBlockSwitch(BlockSplitCode* code, + const uint32_t block_len, + const uint8_t block_type, + BROTLI_BOOL is_first_block, + size_t* storage_ix, + uint8_t* storage) { + size_t typecode = NextBlockTypeCode(&code->type_code_calculator, block_type); + size_t lencode; + uint32_t len_nextra; + uint32_t len_extra; + if (!is_first_block) { + BrotliWriteBits(code->type_depths[typecode], code->type_bits[typecode], + storage_ix, storage); + } + GetBlockLengthPrefixCode(block_len, &lencode, &len_nextra, &len_extra); + + BrotliWriteBits(code->length_depths[lencode], code->length_bits[lencode], + storage_ix, storage); + BrotliWriteBits(len_nextra, len_extra, storage_ix, storage); +} + +/* Builds a BlockSplitCode data structure from the block split given by the + vector of block types and block lengths and stores it to the bit stream. */ +static void BuildAndStoreBlockSplitCode(const uint8_t* types, + const uint32_t* lengths, + const size_t num_blocks, + const size_t num_types, + HuffmanTree* tree, + BlockSplitCode* code, + size_t* storage_ix, + uint8_t* storage) { + uint32_t type_histo[BROTLI_MAX_BLOCK_TYPE_SYMBOLS]; + uint32_t length_histo[BROTLI_NUM_BLOCK_LEN_SYMBOLS]; + size_t i; + BlockTypeCodeCalculator type_code_calculator; + memset(type_histo, 0, (num_types + 2) * sizeof(type_histo[0])); + memset(length_histo, 0, sizeof(length_histo)); + InitBlockTypeCodeCalculator(&type_code_calculator); + for (i = 0; i < num_blocks; ++i) { + size_t type_code = NextBlockTypeCode(&type_code_calculator, types[i]); + if (i != 0) ++type_histo[type_code]; + ++length_histo[BlockLengthPrefixCode(lengths[i])]; + } + StoreVarLenUint8(num_types - 1, storage_ix, storage); + if (num_types > 1) { /* TODO: else? could StoreBlockSwitch occur? */ + BuildAndStoreHuffmanTree(&type_histo[0], num_types + 2, tree, + &code->type_depths[0], &code->type_bits[0], + storage_ix, storage); + BuildAndStoreHuffmanTree(&length_histo[0], BROTLI_NUM_BLOCK_LEN_SYMBOLS, + tree, &code->length_depths[0], + &code->length_bits[0], storage_ix, storage); + StoreBlockSwitch(code, lengths[0], types[0], 1, storage_ix, storage); + } +} + +/* Stores a context map where the histogram type is always the block type. */ +static void StoreTrivialContextMap(size_t num_types, + size_t context_bits, + HuffmanTree* tree, + size_t* storage_ix, + uint8_t* storage) { + StoreVarLenUint8(num_types - 1, storage_ix, storage); + if (num_types > 1) { + size_t repeat_code = context_bits - 1u; + size_t repeat_bits = (1u << repeat_code) - 1u; + size_t alphabet_size = num_types + repeat_code; + uint32_t histogram[BROTLI_MAX_CONTEXT_MAP_SYMBOLS]; + uint8_t depths[BROTLI_MAX_CONTEXT_MAP_SYMBOLS]; + uint16_t bits[BROTLI_MAX_CONTEXT_MAP_SYMBOLS]; + size_t i; + memset(histogram, 0, alphabet_size * sizeof(histogram[0])); + /* Write RLEMAX. */ + BrotliWriteBits(1, 1, storage_ix, storage); + BrotliWriteBits(4, repeat_code - 1, storage_ix, storage); + histogram[repeat_code] = (uint32_t)num_types; + histogram[0] = 1; + for (i = context_bits; i < alphabet_size; ++i) { + histogram[i] = 1; + } + BuildAndStoreHuffmanTree(histogram, alphabet_size, tree, + depths, bits, storage_ix, storage); + for (i = 0; i < num_types; ++i) { + size_t code = (i == 0 ? 0 : i + context_bits - 1); + BrotliWriteBits(depths[code], bits[code], storage_ix, storage); + BrotliWriteBits( + depths[repeat_code], bits[repeat_code], storage_ix, storage); + BrotliWriteBits(repeat_code, repeat_bits, storage_ix, storage); + } + /* Write IMTF (inverse-move-to-front) bit. */ + BrotliWriteBits(1, 1, storage_ix, storage); + } +} + +/* Manages the encoding of one block category (literal, command or distance). */ +typedef struct BlockEncoder { + size_t alphabet_size_; + size_t num_block_types_; + const uint8_t* block_types_; /* Not owned. */ + const uint32_t* block_lengths_; /* Not owned. */ + size_t num_blocks_; + BlockSplitCode block_split_code_; + size_t block_ix_; + size_t block_len_; + size_t entropy_ix_; + uint8_t* depths_; + uint16_t* bits_; +} BlockEncoder; + +static void InitBlockEncoder(BlockEncoder* self, size_t alphabet_size, + size_t num_block_types, const uint8_t* block_types, + const uint32_t* block_lengths, const size_t num_blocks) { + self->alphabet_size_ = alphabet_size; + self->num_block_types_ = num_block_types; + self->block_types_ = block_types; + self->block_lengths_ = block_lengths; + self->num_blocks_ = num_blocks; + InitBlockTypeCodeCalculator(&self->block_split_code_.type_code_calculator); + self->block_ix_ = 0; + self->block_len_ = num_blocks == 0 ? 0 : block_lengths[0]; + self->entropy_ix_ = 0; + self->depths_ = 0; + self->bits_ = 0; +} + +static void CleanupBlockEncoder(MemoryManager* m, BlockEncoder* self) { + BROTLI_FREE(m, self->depths_); + BROTLI_FREE(m, self->bits_); +} + +/* Creates entropy codes of block lengths and block types and stores them + to the bit stream. */ +static void BuildAndStoreBlockSwitchEntropyCodes(BlockEncoder* self, + HuffmanTree* tree, size_t* storage_ix, uint8_t* storage) { + BuildAndStoreBlockSplitCode(self->block_types_, self->block_lengths_, + self->num_blocks_, self->num_block_types_, tree, &self->block_split_code_, + storage_ix, storage); +} + +/* Stores the next symbol with the entropy code of the current block type. + Updates the block type and block length at block boundaries. */ +static void StoreSymbol(BlockEncoder* self, size_t symbol, size_t* storage_ix, + uint8_t* storage) { + if (self->block_len_ == 0) { + size_t block_ix = ++self->block_ix_; + uint32_t block_len = self->block_lengths_[block_ix]; + uint8_t block_type = self->block_types_[block_ix]; + self->block_len_ = block_len; + self->entropy_ix_ = block_type * self->alphabet_size_; + StoreBlockSwitch(&self->block_split_code_, block_len, block_type, 0, + storage_ix, storage); + } + --self->block_len_; + { + size_t ix = self->entropy_ix_ + symbol; + BrotliWriteBits(self->depths_[ix], self->bits_[ix], storage_ix, storage); + } +} + +/* Stores the next symbol with the entropy code of the current block type and + context value. + Updates the block type and block length at block boundaries. */ +static void StoreSymbolWithContext(BlockEncoder* self, size_t symbol, + size_t context, const uint32_t* context_map, size_t* storage_ix, + uint8_t* storage, const size_t context_bits) { + if (self->block_len_ == 0) { + size_t block_ix = ++self->block_ix_; + uint32_t block_len = self->block_lengths_[block_ix]; + uint8_t block_type = self->block_types_[block_ix]; + self->block_len_ = block_len; + self->entropy_ix_ = (size_t)block_type << context_bits; + StoreBlockSwitch(&self->block_split_code_, block_len, block_type, 0, + storage_ix, storage); + } + --self->block_len_; + { + size_t histo_ix = context_map[self->entropy_ix_ + context]; + size_t ix = histo_ix * self->alphabet_size_ + symbol; + BrotliWriteBits(self->depths_[ix], self->bits_[ix], storage_ix, storage); + } +} + +#define FN(X) X ## Literal +/* NOLINTNEXTLINE(build/include) */ +#include "./block_encoder_inc.h" +#undef FN + +#define FN(X) X ## Command +/* NOLINTNEXTLINE(build/include) */ +#include "./block_encoder_inc.h" +#undef FN + +#define FN(X) X ## Distance +/* NOLINTNEXTLINE(build/include) */ +#include "./block_encoder_inc.h" +#undef FN + +static void JumpToByteBoundary(size_t* storage_ix, uint8_t* storage) { + *storage_ix = (*storage_ix + 7u) & ~7u; + storage[*storage_ix >> 3] = 0; +} + +void BrotliStoreMetaBlock(MemoryManager* m, + const uint8_t* input, + size_t start_pos, + size_t length, + size_t mask, + uint8_t prev_byte, + uint8_t prev_byte2, + BROTLI_BOOL is_last, + uint32_t num_direct_distance_codes, + uint32_t distance_postfix_bits, + ContextType literal_context_mode, + const Command *commands, + size_t n_commands, + const MetaBlockSplit* mb, + size_t *storage_ix, + uint8_t *storage) { + size_t pos = start_pos; + size_t i; + size_t num_distance_codes = + BROTLI_NUM_DISTANCE_SHORT_CODES + num_direct_distance_codes + + (48u << distance_postfix_bits); + HuffmanTree* tree; + BlockEncoder literal_enc; + BlockEncoder command_enc; + BlockEncoder distance_enc; + + StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage); + + tree = BROTLI_ALLOC(m, HuffmanTree, MAX_HUFFMAN_TREE_SIZE); + if (BROTLI_IS_OOM(m)) return; + InitBlockEncoder(&literal_enc, 256, mb->literal_split.num_types, + mb->literal_split.types, mb->literal_split.lengths, + mb->literal_split.num_blocks); + InitBlockEncoder(&command_enc, BROTLI_NUM_COMMAND_SYMBOLS, + mb->command_split.num_types, mb->command_split.types, + mb->command_split.lengths, mb->command_split.num_blocks); + InitBlockEncoder(&distance_enc, num_distance_codes, + mb->distance_split.num_types, mb->distance_split.types, + mb->distance_split.lengths, mb->distance_split.num_blocks); + + BuildAndStoreBlockSwitchEntropyCodes(&literal_enc, tree, storage_ix, storage); + BuildAndStoreBlockSwitchEntropyCodes(&command_enc, tree, storage_ix, storage); + BuildAndStoreBlockSwitchEntropyCodes( + &distance_enc, tree, storage_ix, storage); + + BrotliWriteBits(2, distance_postfix_bits, storage_ix, storage); + BrotliWriteBits(4, num_direct_distance_codes >> distance_postfix_bits, + storage_ix, storage); + for (i = 0; i < mb->literal_split.num_types; ++i) { + BrotliWriteBits(2, literal_context_mode, storage_ix, storage); + } + + if (mb->literal_context_map_size == 0) { + StoreTrivialContextMap(mb->literal_histograms_size, + BROTLI_LITERAL_CONTEXT_BITS, tree, storage_ix, storage); + } else { + EncodeContextMap(m, + mb->literal_context_map, mb->literal_context_map_size, + mb->literal_histograms_size, tree, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + } + + if (mb->distance_context_map_size == 0) { + StoreTrivialContextMap(mb->distance_histograms_size, + BROTLI_DISTANCE_CONTEXT_BITS, tree, storage_ix, storage); + } else { + EncodeContextMap(m, + mb->distance_context_map, mb->distance_context_map_size, + mb->distance_histograms_size, tree, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + } + + BuildAndStoreEntropyCodesLiteral(m, &literal_enc, mb->literal_histograms, + mb->literal_histograms_size, tree, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + BuildAndStoreEntropyCodesCommand(m, &command_enc, mb->command_histograms, + mb->command_histograms_size, tree, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + BuildAndStoreEntropyCodesDistance(m, &distance_enc, mb->distance_histograms, + mb->distance_histograms_size, tree, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + BROTLI_FREE(m, tree); + + for (i = 0; i < n_commands; ++i) { + const Command cmd = commands[i]; + size_t cmd_code = cmd.cmd_prefix_; + StoreSymbol(&command_enc, cmd_code, storage_ix, storage); + StoreCommandExtra(&cmd, storage_ix, storage); + if (mb->literal_context_map_size == 0) { + size_t j; + for (j = cmd.insert_len_; j != 0; --j) { + StoreSymbol(&literal_enc, input[pos & mask], storage_ix, storage); + ++pos; + } + } else { + size_t j; + for (j = cmd.insert_len_; j != 0; --j) { + size_t context = Context(prev_byte, prev_byte2, literal_context_mode); + uint8_t literal = input[pos & mask]; + StoreSymbolWithContext(&literal_enc, literal, context, + mb->literal_context_map, storage_ix, storage, + BROTLI_LITERAL_CONTEXT_BITS); + prev_byte2 = prev_byte; + prev_byte = literal; + ++pos; + } + } + pos += CommandCopyLen(&cmd); + if (CommandCopyLen(&cmd)) { + prev_byte2 = input[(pos - 2) & mask]; + prev_byte = input[(pos - 1) & mask]; + if (cmd.cmd_prefix_ >= 128) { + size_t dist_code = cmd.dist_prefix_; + uint32_t distnumextra = cmd.dist_extra_ >> 24; + uint64_t distextra = cmd.dist_extra_ & 0xffffff; + if (mb->distance_context_map_size == 0) { + StoreSymbol(&distance_enc, dist_code, storage_ix, storage); + } else { + size_t context = CommandDistanceContext(&cmd); + StoreSymbolWithContext(&distance_enc, dist_code, context, + mb->distance_context_map, storage_ix, storage, + BROTLI_DISTANCE_CONTEXT_BITS); + } + BrotliWriteBits(distnumextra, distextra, storage_ix, storage); + } + } + } + CleanupBlockEncoder(m, &distance_enc); + CleanupBlockEncoder(m, &command_enc); + CleanupBlockEncoder(m, &literal_enc); + if (is_last) { + JumpToByteBoundary(storage_ix, storage); + } +} + +static void BuildHistograms(const uint8_t* input, + size_t start_pos, + size_t mask, + const Command *commands, + size_t n_commands, + HistogramLiteral* lit_histo, + HistogramCommand* cmd_histo, + HistogramDistance* dist_histo) { + size_t pos = start_pos; + size_t i; + for (i = 0; i < n_commands; ++i) { + const Command cmd = commands[i]; + size_t j; + HistogramAddCommand(cmd_histo, cmd.cmd_prefix_); + for (j = cmd.insert_len_; j != 0; --j) { + HistogramAddLiteral(lit_histo, input[pos & mask]); + ++pos; + } + pos += CommandCopyLen(&cmd); + if (CommandCopyLen(&cmd) && cmd.cmd_prefix_ >= 128) { + HistogramAddDistance(dist_histo, cmd.dist_prefix_); + } + } +} + +static void StoreDataWithHuffmanCodes(const uint8_t* input, + size_t start_pos, + size_t mask, + const Command *commands, + size_t n_commands, + const uint8_t* lit_depth, + const uint16_t* lit_bits, + const uint8_t* cmd_depth, + const uint16_t* cmd_bits, + const uint8_t* dist_depth, + const uint16_t* dist_bits, + size_t* storage_ix, + uint8_t* storage) { + size_t pos = start_pos; + size_t i; + for (i = 0; i < n_commands; ++i) { + const Command cmd = commands[i]; + const size_t cmd_code = cmd.cmd_prefix_; + size_t j; + BrotliWriteBits( + cmd_depth[cmd_code], cmd_bits[cmd_code], storage_ix, storage); + StoreCommandExtra(&cmd, storage_ix, storage); + for (j = cmd.insert_len_; j != 0; --j) { + const uint8_t literal = input[pos & mask]; + BrotliWriteBits( + lit_depth[literal], lit_bits[literal], storage_ix, storage); + ++pos; + } + pos += CommandCopyLen(&cmd); + if (CommandCopyLen(&cmd) && cmd.cmd_prefix_ >= 128) { + const size_t dist_code = cmd.dist_prefix_; + const uint32_t distnumextra = cmd.dist_extra_ >> 24; + const uint32_t distextra = cmd.dist_extra_ & 0xffffff; + BrotliWriteBits(dist_depth[dist_code], dist_bits[dist_code], + storage_ix, storage); + BrotliWriteBits(distnumextra, distextra, storage_ix, storage); + } + } +} + +void BrotliStoreMetaBlockTrivial(MemoryManager* m, + const uint8_t* input, + size_t start_pos, + size_t length, + size_t mask, + BROTLI_BOOL is_last, + const Command *commands, + size_t n_commands, + size_t *storage_ix, + uint8_t *storage) { + HistogramLiteral lit_histo; + HistogramCommand cmd_histo; + HistogramDistance dist_histo; + uint8_t lit_depth[256]; + uint16_t lit_bits[256]; + uint8_t cmd_depth[BROTLI_NUM_COMMAND_SYMBOLS]; + uint16_t cmd_bits[BROTLI_NUM_COMMAND_SYMBOLS]; + uint8_t dist_depth[64]; + uint16_t dist_bits[64]; + HuffmanTree* tree; + + StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage); + + HistogramClearLiteral(&lit_histo); + HistogramClearCommand(&cmd_histo); + HistogramClearDistance(&dist_histo); + + BuildHistograms(input, start_pos, mask, commands, n_commands, + &lit_histo, &cmd_histo, &dist_histo); + + BrotliWriteBits(13, 0, storage_ix, storage); + + tree = BROTLI_ALLOC(m, HuffmanTree, MAX_HUFFMAN_TREE_SIZE); + if (BROTLI_IS_OOM(m)) return; + BuildAndStoreHuffmanTree(lit_histo.data_, 256, tree, + lit_depth, lit_bits, + storage_ix, storage); + BuildAndStoreHuffmanTree(cmd_histo.data_, BROTLI_NUM_COMMAND_SYMBOLS, tree, + cmd_depth, cmd_bits, + storage_ix, storage); + BuildAndStoreHuffmanTree(dist_histo.data_, 64, tree, + dist_depth, dist_bits, + storage_ix, storage); + BROTLI_FREE(m, tree); + StoreDataWithHuffmanCodes(input, start_pos, mask, commands, + n_commands, lit_depth, lit_bits, + cmd_depth, cmd_bits, + dist_depth, dist_bits, + storage_ix, storage); + if (is_last) { + JumpToByteBoundary(storage_ix, storage); + } +} + +void BrotliStoreMetaBlockFast(MemoryManager* m, + const uint8_t* input, + size_t start_pos, + size_t length, + size_t mask, + BROTLI_BOOL is_last, + const Command *commands, + size_t n_commands, + size_t *storage_ix, + uint8_t *storage) { + StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage); + + BrotliWriteBits(13, 0, storage_ix, storage); + + if (n_commands <= 128) { + uint32_t histogram[BROTLI_NUM_LITERAL_SYMBOLS] = { 0 }; + size_t pos = start_pos; + size_t num_literals = 0; + size_t i; + uint8_t lit_depth[BROTLI_NUM_LITERAL_SYMBOLS]; + uint16_t lit_bits[BROTLI_NUM_LITERAL_SYMBOLS]; + for (i = 0; i < n_commands; ++i) { + const Command cmd = commands[i]; + size_t j; + for (j = cmd.insert_len_; j != 0; --j) { + ++histogram[input[pos & mask]]; + ++pos; + } + num_literals += cmd.insert_len_; + pos += CommandCopyLen(&cmd); + } + BrotliBuildAndStoreHuffmanTreeFast(m, histogram, num_literals, + /* max_bits = */ 8, + lit_depth, lit_bits, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + StoreStaticCommandHuffmanTree(storage_ix, storage); + StoreStaticDistanceHuffmanTree(storage_ix, storage); + StoreDataWithHuffmanCodes(input, start_pos, mask, commands, + n_commands, lit_depth, lit_bits, + kStaticCommandCodeDepth, + kStaticCommandCodeBits, + kStaticDistanceCodeDepth, + kStaticDistanceCodeBits, + storage_ix, storage); + } else { + HistogramLiteral lit_histo; + HistogramCommand cmd_histo; + HistogramDistance dist_histo; + uint8_t lit_depth[BROTLI_NUM_LITERAL_SYMBOLS]; + uint16_t lit_bits[BROTLI_NUM_LITERAL_SYMBOLS]; + uint8_t cmd_depth[BROTLI_NUM_COMMAND_SYMBOLS]; + uint16_t cmd_bits[BROTLI_NUM_COMMAND_SYMBOLS]; + uint8_t dist_depth[64]; + uint16_t dist_bits[64]; + HistogramClearLiteral(&lit_histo); + HistogramClearCommand(&cmd_histo); + HistogramClearDistance(&dist_histo); + BuildHistograms(input, start_pos, mask, commands, n_commands, + &lit_histo, &cmd_histo, &dist_histo); + BrotliBuildAndStoreHuffmanTreeFast(m, lit_histo.data_, + lit_histo.total_count_, + /* max_bits = */ 8, + lit_depth, lit_bits, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + BrotliBuildAndStoreHuffmanTreeFast(m, cmd_histo.data_, + cmd_histo.total_count_, + /* max_bits = */ 10, + cmd_depth, cmd_bits, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + BrotliBuildAndStoreHuffmanTreeFast(m, dist_histo.data_, + dist_histo.total_count_, + /* max_bits = */ 6, + dist_depth, dist_bits, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + StoreDataWithHuffmanCodes(input, start_pos, mask, commands, + n_commands, lit_depth, lit_bits, + cmd_depth, cmd_bits, + dist_depth, dist_bits, + storage_ix, storage); + } + + if (is_last) { + JumpToByteBoundary(storage_ix, storage); + } +} + +/* This is for storing uncompressed blocks (simple raw storage of + bytes-as-bytes). */ +void BrotliStoreUncompressedMetaBlock(BROTLI_BOOL is_final_block, + const uint8_t * BROTLI_RESTRICT input, + size_t position, size_t mask, + size_t len, + size_t * BROTLI_RESTRICT storage_ix, + uint8_t * BROTLI_RESTRICT storage) { + size_t masked_pos = position & mask; + BrotliStoreUncompressedMetaBlockHeader(len, storage_ix, storage); + JumpToByteBoundary(storage_ix, storage); + + if (masked_pos + len > mask + 1) { + size_t len1 = mask + 1 - masked_pos; + memcpy(&storage[*storage_ix >> 3], &input[masked_pos], len1); + *storage_ix += len1 << 3; + len -= len1; + masked_pos = 0; + } + memcpy(&storage[*storage_ix >> 3], &input[masked_pos], len); + *storage_ix += len << 3; + + /* We need to clear the next 4 bytes to continue to be + compatible with BrotliWriteBits. */ + BrotliWriteBitsPrepareStorage(*storage_ix, storage); + + /* Since the uncompressed block itself may not be the final block, add an + empty one after this. */ + if (is_final_block) { + BrotliWriteBits(1, 1, storage_ix, storage); /* islast */ + BrotliWriteBits(1, 1, storage_ix, storage); /* isempty */ + JumpToByteBoundary(storage_ix, storage); + } +} + +void BrotliStoreSyncMetaBlock(size_t* BROTLI_RESTRICT storage_ix, + uint8_t* BROTLI_RESTRICT storage) { + /* Empty metadata meta-block bit pattern: + 1 bit: is_last (0) + 2 bits: num nibbles (3) + 1 bit: reserved (0) + 2 bits: metadata length bytes (0) */ + BrotliWriteBits(6, 6, storage_ix, storage); + JumpToByteBoundary(storage_ix, storage); +} + + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/brotli_bit_stream.cc b/thirdparty/brotli/enc/brotli_bit_stream.cc deleted file mode 100644 index 43f12107..00000000 --- a/thirdparty/brotli/enc/brotli_bit_stream.cc +++ /dev/null @@ -1,1181 +0,0 @@ -/* Copyright 2014 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Brotli bit stream functions to support the low level format. There are no -// compression algorithms here, just the right ordering of bits to match the -// specs. - -#include "./brotli_bit_stream.h" - -#include <algorithm> -#include <cstdlib> /* free, malloc */ -#include <cstring> -#include <limits> -#include <vector> - -#include "./bit_cost.h" -#include "./context.h" -#include "./entropy_encode.h" -#include "./entropy_encode_static.h" -#include "./fast_log.h" -#include "./prefix.h" -#include "./write_bits.h" - -namespace brotli { - -namespace { - -static const size_t kMaxHuffmanTreeSize = 2 * kNumCommandPrefixes + 1; -// Context map alphabet has 256 context id symbols plus max 16 rle symbols. -static const size_t kContextMapAlphabetSize = 256 + 16; -// Block type alphabet has 256 block id symbols plus 2 special symbols. -static const size_t kBlockTypeAlphabetSize = 256 + 2; - -// nibblesbits represents the 2 bits to encode MNIBBLES (0-3) -// REQUIRES: length > 0 -// REQUIRES: length <= (1 << 24) -void EncodeMlen(size_t length, uint64_t* bits, - size_t* numbits, uint64_t* nibblesbits) { - assert(length > 0); - assert(length <= (1 << 24)); - length--; // MLEN - 1 is encoded - size_t lg = length == 0 ? 1 : Log2FloorNonZero( - static_cast<uint32_t>(length)) + 1; - assert(lg <= 24); - size_t mnibbles = (lg < 16 ? 16 : (lg + 3)) / 4; - *nibblesbits = mnibbles - 4; - *numbits = mnibbles * 4; - *bits = length; -} - -static inline void StoreCommandExtra( - const Command& cmd, size_t* storage_ix, uint8_t* storage) { - uint32_t copylen_code = cmd.copy_len_code(); - uint16_t inscode = GetInsertLengthCode(cmd.insert_len_); - uint16_t copycode = GetCopyLengthCode(copylen_code); - uint32_t insnumextra = GetInsertExtra(inscode); - uint64_t insextraval = cmd.insert_len_ - GetInsertBase(inscode); - uint64_t copyextraval = copylen_code - GetCopyBase(copycode); - uint64_t bits = (copyextraval << insnumextra) | insextraval; - WriteBits(insnumextra + GetCopyExtra(copycode), bits, storage_ix, storage); -} - -} // namespace - -void StoreVarLenUint8(size_t n, size_t* storage_ix, uint8_t* storage) { - if (n == 0) { - WriteBits(1, 0, storage_ix, storage); - } else { - WriteBits(1, 1, storage_ix, storage); - size_t nbits = Log2FloorNonZero(n); - WriteBits(3, nbits, storage_ix, storage); - WriteBits(nbits, n - (1 << nbits), storage_ix, storage); - } -} - -void StoreCompressedMetaBlockHeader(bool final_block, - size_t length, - size_t* storage_ix, - uint8_t* storage) { - // Write ISLAST bit. - WriteBits(1, final_block, storage_ix, storage); - // Write ISEMPTY bit. - if (final_block) { - WriteBits(1, 0, storage_ix, storage); - } - - uint64_t lenbits; - size_t nlenbits; - uint64_t nibblesbits; - EncodeMlen(length, &lenbits, &nlenbits, &nibblesbits); - WriteBits(2, nibblesbits, storage_ix, storage); - WriteBits(nlenbits, lenbits, storage_ix, storage); - - if (!final_block) { - // Write ISUNCOMPRESSED bit. - WriteBits(1, 0, storage_ix, storage); - } -} - -void StoreUncompressedMetaBlockHeader(size_t length, - size_t* storage_ix, - uint8_t* storage) { - // Write ISLAST bit. Uncompressed block cannot be the last one, so set to 0. - WriteBits(1, 0, storage_ix, storage); - uint64_t lenbits; - size_t nlenbits; - uint64_t nibblesbits; - EncodeMlen(length, &lenbits, &nlenbits, &nibblesbits); - WriteBits(2, nibblesbits, storage_ix, storage); - WriteBits(nlenbits, lenbits, storage_ix, storage); - // Write ISUNCOMPRESSED bit. - WriteBits(1, 1, storage_ix, storage); -} - -void StoreHuffmanTreeOfHuffmanTreeToBitMask( - const int num_codes, - const uint8_t *code_length_bitdepth, - size_t *storage_ix, - uint8_t *storage) { - static const uint8_t kStorageOrder[kCodeLengthCodes] = { - 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15 - }; - // The bit lengths of the Huffman code over the code length alphabet - // are compressed with the following static Huffman code: - // Symbol Code - // ------ ---- - // 0 00 - // 1 1110 - // 2 110 - // 3 01 - // 4 10 - // 5 1111 - static const uint8_t kHuffmanBitLengthHuffmanCodeSymbols[6] = { - 0, 7, 3, 2, 1, 15 - }; - static const uint8_t kHuffmanBitLengthHuffmanCodeBitLengths[6] = { - 2, 4, 3, 2, 2, 4 - }; - - // Throw away trailing zeros: - size_t codes_to_store = kCodeLengthCodes; - if (num_codes > 1) { - for (; codes_to_store > 0; --codes_to_store) { - if (code_length_bitdepth[kStorageOrder[codes_to_store - 1]] != 0) { - break; - } - } - } - size_t skip_some = 0; // skips none. - if (code_length_bitdepth[kStorageOrder[0]] == 0 && - code_length_bitdepth[kStorageOrder[1]] == 0) { - skip_some = 2; // skips two. - if (code_length_bitdepth[kStorageOrder[2]] == 0) { - skip_some = 3; // skips three. - } - } - WriteBits(2, skip_some, storage_ix, storage); - for (size_t i = skip_some; i < codes_to_store; ++i) { - size_t l = code_length_bitdepth[kStorageOrder[i]]; - WriteBits(kHuffmanBitLengthHuffmanCodeBitLengths[l], - kHuffmanBitLengthHuffmanCodeSymbols[l], storage_ix, storage); - } -} - -static void StoreHuffmanTreeToBitMask( - const size_t huffman_tree_size, - const uint8_t* huffman_tree, - const uint8_t* huffman_tree_extra_bits, - const uint8_t* code_length_bitdepth, - const uint16_t* code_length_bitdepth_symbols, - size_t * __restrict storage_ix, - uint8_t * __restrict storage) { - for (size_t i = 0; i < huffman_tree_size; ++i) { - size_t ix = huffman_tree[i]; - WriteBits(code_length_bitdepth[ix], code_length_bitdepth_symbols[ix], - storage_ix, storage); - // Extra bits - switch (ix) { - case 16: - WriteBits(2, huffman_tree_extra_bits[i], storage_ix, storage); - break; - case 17: - WriteBits(3, huffman_tree_extra_bits[i], storage_ix, storage); - break; - } - } -} - -static void StoreSimpleHuffmanTree(const uint8_t* depths, - size_t symbols[4], - size_t num_symbols, - size_t max_bits, - size_t *storage_ix, uint8_t *storage) { - // value of 1 indicates a simple Huffman code - WriteBits(2, 1, storage_ix, storage); - WriteBits(2, num_symbols - 1, storage_ix, storage); // NSYM - 1 - - // Sort - for (size_t i = 0; i < num_symbols; i++) { - for (size_t j = i + 1; j < num_symbols; j++) { - if (depths[symbols[j]] < depths[symbols[i]]) { - std::swap(symbols[j], symbols[i]); - } - } - } - - if (num_symbols == 2) { - WriteBits(max_bits, symbols[0], storage_ix, storage); - WriteBits(max_bits, symbols[1], storage_ix, storage); - } else if (num_symbols == 3) { - WriteBits(max_bits, symbols[0], storage_ix, storage); - WriteBits(max_bits, symbols[1], storage_ix, storage); - WriteBits(max_bits, symbols[2], storage_ix, storage); - } else { - WriteBits(max_bits, symbols[0], storage_ix, storage); - WriteBits(max_bits, symbols[1], storage_ix, storage); - WriteBits(max_bits, symbols[2], storage_ix, storage); - WriteBits(max_bits, symbols[3], storage_ix, storage); - // tree-select - WriteBits(1, depths[symbols[0]] == 1 ? 1 : 0, storage_ix, storage); - } -} - -// num = alphabet size -// depths = symbol depths -void StoreHuffmanTree(const uint8_t* depths, size_t num, - HuffmanTree* tree, - size_t *storage_ix, uint8_t *storage) { - // Write the Huffman tree into the brotli-representation. - // The command alphabet is the largest, so this allocation will fit all - // alphabets. - assert(num <= kNumCommandPrefixes); - uint8_t huffman_tree[kNumCommandPrefixes]; - uint8_t huffman_tree_extra_bits[kNumCommandPrefixes]; - size_t huffman_tree_size = 0; - WriteHuffmanTree(depths, num, &huffman_tree_size, huffman_tree, - huffman_tree_extra_bits); - - // Calculate the statistics of the Huffman tree in brotli-representation. - uint32_t huffman_tree_histogram[kCodeLengthCodes] = { 0 }; - for (size_t i = 0; i < huffman_tree_size; ++i) { - ++huffman_tree_histogram[huffman_tree[i]]; - } - - int num_codes = 0; - int code = 0; - for (int i = 0; i < kCodeLengthCodes; ++i) { - if (huffman_tree_histogram[i]) { - if (num_codes == 0) { - code = i; - num_codes = 1; - } else if (num_codes == 1) { - num_codes = 2; - break; - } - } - } - - // Calculate another Huffman tree to use for compressing both the - // earlier Huffman tree with. - uint8_t code_length_bitdepth[kCodeLengthCodes] = { 0 }; - uint16_t code_length_bitdepth_symbols[kCodeLengthCodes] = { 0 }; - CreateHuffmanTree(&huffman_tree_histogram[0], kCodeLengthCodes, - 5, tree, &code_length_bitdepth[0]); - ConvertBitDepthsToSymbols(code_length_bitdepth, kCodeLengthCodes, - &code_length_bitdepth_symbols[0]); - - // Now, we have all the data, let's start storing it - StoreHuffmanTreeOfHuffmanTreeToBitMask(num_codes, code_length_bitdepth, - storage_ix, storage); - - if (num_codes == 1) { - code_length_bitdepth[code] = 0; - } - - // Store the real huffman tree now. - StoreHuffmanTreeToBitMask(huffman_tree_size, - huffman_tree, - huffman_tree_extra_bits, - &code_length_bitdepth[0], - code_length_bitdepth_symbols, - storage_ix, storage); -} - -void BuildAndStoreHuffmanTree(const uint32_t *histogram, - const size_t length, - HuffmanTree* tree, - uint8_t* depth, - uint16_t* bits, - size_t* storage_ix, - uint8_t* storage) { - size_t count = 0; - size_t s4[4] = { 0 }; - for (size_t i = 0; i < length; i++) { - if (histogram[i]) { - if (count < 4) { - s4[count] = i; - } else if (count > 4) { - break; - } - count++; - } - } - - size_t max_bits_counter = length - 1; - size_t max_bits = 0; - while (max_bits_counter) { - max_bits_counter >>= 1; - ++max_bits; - } - - if (count <= 1) { - WriteBits(4, 1, storage_ix, storage); - WriteBits(max_bits, s4[0], storage_ix, storage); - return; - } - - CreateHuffmanTree(histogram, length, 15, tree, depth); - ConvertBitDepthsToSymbols(depth, length, bits); - - if (count <= 4) { - StoreSimpleHuffmanTree(depth, s4, count, max_bits, storage_ix, storage); - } else { - StoreHuffmanTree(depth, length, tree, storage_ix, storage); - } -} - -static inline bool SortHuffmanTree(const HuffmanTree& v0, - const HuffmanTree& v1) { - return v0.total_count_ < v1.total_count_; -} - -void BuildAndStoreHuffmanTreeFast(const uint32_t *histogram, - const size_t histogram_total, - const size_t max_bits, - uint8_t* depth, - uint16_t* bits, - size_t* storage_ix, - uint8_t* storage) { - size_t count = 0; - size_t symbols[4] = { 0 }; - size_t length = 0; - size_t total = histogram_total; - while (total != 0) { - if (histogram[length]) { - if (count < 4) { - symbols[count] = length; - } - ++count; - total -= histogram[length]; - } - ++length; - } - - if (count <= 1) { - WriteBits(4, 1, storage_ix, storage); - WriteBits(max_bits, symbols[0], storage_ix, storage); - return; - } - - const size_t max_tree_size = 2 * length + 1; - HuffmanTree* const tree = - static_cast<HuffmanTree*>(malloc(max_tree_size * sizeof(HuffmanTree))); - for (uint32_t count_limit = 1; ; count_limit *= 2) { - HuffmanTree* node = tree; - for (size_t i = length; i != 0;) { - --i; - if (histogram[i]) { - if (PREDICT_TRUE(histogram[i] >= count_limit)) { - *node = HuffmanTree(histogram[i], -1, static_cast<int16_t>(i)); - } else { - *node = HuffmanTree(count_limit, -1, static_cast<int16_t>(i)); - } - ++node; - } - } - const int n = static_cast<int>(node - tree); - std::sort(tree, node, SortHuffmanTree); - // The nodes are: - // [0, n): the sorted leaf nodes that we start with. - // [n]: we add a sentinel here. - // [n + 1, 2n): new parent nodes are added here, starting from - // (n+1). These are naturally in ascending order. - // [2n]: we add a sentinel at the end as well. - // There will be (2n+1) elements at the end. - const HuffmanTree sentinel(std::numeric_limits<int>::max(), -1, -1); - *node++ = sentinel; - *node++ = sentinel; - - int i = 0; // Points to the next leaf node. - int j = n + 1; // Points to the next non-leaf node. - for (int k = n - 1; k > 0; --k) { - int left, right; - if (tree[i].total_count_ <= tree[j].total_count_) { - left = i; - ++i; - } else { - left = j; - ++j; - } - if (tree[i].total_count_ <= tree[j].total_count_) { - right = i; - ++i; - } else { - right = j; - ++j; - } - // The sentinel node becomes the parent node. - node[-1].total_count_ = - tree[left].total_count_ + tree[right].total_count_; - node[-1].index_left_ = static_cast<int16_t>(left); - node[-1].index_right_or_value_ = static_cast<int16_t>(right); - // Add back the last sentinel node. - *node++ = sentinel; - } - SetDepth(tree[2 * n - 1], &tree[0], depth, 0); - // We need to pack the Huffman tree in 14 bits. - // If this was not successful, add fake entities to the lowest values - // and retry. - if (PREDICT_TRUE(*std::max_element(&depth[0], &depth[length]) <= 14)) { - break; - } - } - free(tree); - ConvertBitDepthsToSymbols(depth, length, bits); - if (count <= 4) { - // value of 1 indicates a simple Huffman code - WriteBits(2, 1, storage_ix, storage); - WriteBits(2, count - 1, storage_ix, storage); // NSYM - 1 - - // Sort - for (size_t i = 0; i < count; i++) { - for (size_t j = i + 1; j < count; j++) { - if (depth[symbols[j]] < depth[symbols[i]]) { - std::swap(symbols[j], symbols[i]); - } - } - } - - if (count == 2) { - WriteBits(max_bits, symbols[0], storage_ix, storage); - WriteBits(max_bits, symbols[1], storage_ix, storage); - } else if (count == 3) { - WriteBits(max_bits, symbols[0], storage_ix, storage); - WriteBits(max_bits, symbols[1], storage_ix, storage); - WriteBits(max_bits, symbols[2], storage_ix, storage); - } else { - WriteBits(max_bits, symbols[0], storage_ix, storage); - WriteBits(max_bits, symbols[1], storage_ix, storage); - WriteBits(max_bits, symbols[2], storage_ix, storage); - WriteBits(max_bits, symbols[3], storage_ix, storage); - // tree-select - WriteBits(1, depth[symbols[0]] == 1 ? 1 : 0, storage_ix, storage); - } - } else { - // Complex Huffman Tree - StoreStaticCodeLengthCode(storage_ix, storage); - - // Actual rle coding. - uint8_t previous_value = 8; - for (size_t i = 0; i < length;) { - const uint8_t value = depth[i]; - size_t reps = 1; - for (size_t k = i + 1; k < length && depth[k] == value; ++k) { - ++reps; - } - i += reps; - if (value == 0) { - WriteBits(kZeroRepsDepth[reps], kZeroRepsBits[reps], - storage_ix, storage); - } else { - if (previous_value != value) { - WriteBits(kCodeLengthDepth[value], kCodeLengthBits[value], - storage_ix, storage); - --reps; - } - if (reps < 3) { - while (reps != 0) { - reps--; - WriteBits(kCodeLengthDepth[value], kCodeLengthBits[value], - storage_ix, storage); - } - } else { - reps -= 3; - WriteBits(kNonZeroRepsDepth[reps], kNonZeroRepsBits[reps], - storage_ix, storage); - } - previous_value = value; - } - } - } -} - -static size_t IndexOf(const uint8_t* v, size_t v_size, uint8_t value) { - size_t i = 0; - for (; i < v_size; ++i) { - if (v[i] == value) return i; - } - return i; -} - -static void MoveToFront(uint8_t* v, size_t index) { - uint8_t value = v[index]; - for (size_t i = index; i != 0; --i) { - v[i] = v[i - 1]; - } - v[0] = value; -} - -static void MoveToFrontTransform(const uint32_t* __restrict v_in, - const size_t v_size, - uint32_t* v_out) { - if (v_size == 0) { - return; - } - uint32_t max_value = *std::max_element(v_in, v_in + v_size); - assert(max_value < 256u); - uint8_t mtf[256]; - size_t mtf_size = max_value + 1; - for (uint32_t i = 0; i <= max_value; ++i) { - mtf[i] = static_cast<uint8_t>(i); - } - for (size_t i = 0; i < v_size; ++i) { - size_t index = IndexOf(mtf, mtf_size, static_cast<uint8_t>(v_in[i])); - assert(index < mtf_size); - v_out[i] = static_cast<uint32_t>(index); - MoveToFront(mtf, index); - } -} - -// Finds runs of zeros in v[0..in_size) and replaces them with a prefix code of -// the run length plus extra bits (lower 9 bits is the prefix code and the rest -// are the extra bits). Non-zero values in v[] are shifted by -// *max_length_prefix. Will not create prefix codes bigger than the initial -// value of *max_run_length_prefix. The prefix code of run length L is simply -// Log2Floor(L) and the number of extra bits is the same as the prefix code. -static void RunLengthCodeZeros(const size_t in_size, - uint32_t* __restrict v, - size_t* __restrict out_size, - uint32_t* __restrict max_run_length_prefix) { - uint32_t max_reps = 0; - for (size_t i = 0; i < in_size;) { - for (; i < in_size && v[i] != 0; ++i) ; - uint32_t reps = 0; - for (; i < in_size && v[i] == 0; ++i) { - ++reps; - } - max_reps = std::max(reps, max_reps); - } - uint32_t max_prefix = max_reps > 0 ? Log2FloorNonZero(max_reps) : 0; - max_prefix = std::min(max_prefix, *max_run_length_prefix); - *max_run_length_prefix = max_prefix; - *out_size = 0; - for (size_t i = 0; i < in_size;) { - assert(*out_size <= i); - if (v[i] != 0) { - v[*out_size] = v[i] + *max_run_length_prefix; - ++i; - ++(*out_size); - } else { - uint32_t reps = 1; - for (size_t k = i + 1; k < in_size && v[k] == 0; ++k) { - ++reps; - } - i += reps; - while (reps != 0) { - if (reps < (2u << max_prefix)) { - uint32_t run_length_prefix = Log2FloorNonZero(reps); - const uint32_t extra_bits = reps - (1u << run_length_prefix); - v[*out_size] = run_length_prefix + (extra_bits << 9); - ++(*out_size); - break; - } else { - const uint32_t extra_bits = (1u << max_prefix) - 1u; - v[*out_size] = max_prefix + (extra_bits << 9); - reps -= (2u << max_prefix) - 1u; - ++(*out_size); - } - } - } - } -} - -void EncodeContextMap(const std::vector<uint32_t>& context_map, - size_t num_clusters, - HuffmanTree* tree, - size_t* storage_ix, uint8_t* storage) { - StoreVarLenUint8(num_clusters - 1, storage_ix, storage); - - if (num_clusters == 1) { - return; - } - - uint32_t* rle_symbols = new uint32_t[context_map.size()]; - MoveToFrontTransform(&context_map[0], context_map.size(), rle_symbols); - uint32_t max_run_length_prefix = 6; - size_t num_rle_symbols = 0; - RunLengthCodeZeros(context_map.size(), rle_symbols, - &num_rle_symbols, &max_run_length_prefix); - uint32_t histogram[kContextMapAlphabetSize]; - memset(histogram, 0, sizeof(histogram)); - static const int kSymbolBits = 9; - static const uint32_t kSymbolMask = (1u << kSymbolBits) - 1u; - for (size_t i = 0; i < num_rle_symbols; ++i) { - ++histogram[rle_symbols[i] & kSymbolMask]; - } - bool use_rle = max_run_length_prefix > 0; - WriteBits(1, use_rle, storage_ix, storage); - if (use_rle) { - WriteBits(4, max_run_length_prefix - 1, storage_ix, storage); - } - uint8_t depths[kContextMapAlphabetSize]; - uint16_t bits[kContextMapAlphabetSize]; - memset(depths, 0, sizeof(depths)); - memset(bits, 0, sizeof(bits)); - BuildAndStoreHuffmanTree(histogram, num_clusters + max_run_length_prefix, - tree, depths, bits, storage_ix, storage); - for (size_t i = 0; i < num_rle_symbols; ++i) { - const uint32_t rle_symbol = rle_symbols[i] & kSymbolMask; - const uint32_t extra_bits_val = rle_symbols[i] >> kSymbolBits; - WriteBits(depths[rle_symbol], bits[rle_symbol], storage_ix, storage); - if (rle_symbol > 0 && rle_symbol <= max_run_length_prefix) { - WriteBits(rle_symbol, extra_bits_val, storage_ix, storage); - } - } - WriteBits(1, 1, storage_ix, storage); // use move-to-front - delete[] rle_symbols; -} - -void StoreBlockSwitch(const BlockSplitCode& code, - const size_t block_ix, - size_t* storage_ix, - uint8_t* storage) { - if (block_ix > 0) { - size_t typecode = code.type_code[block_ix]; - WriteBits(code.type_depths[typecode], code.type_bits[typecode], - storage_ix, storage); - } - size_t lencode = code.length_prefix[block_ix]; - WriteBits(code.length_depths[lencode], code.length_bits[lencode], - storage_ix, storage); - WriteBits(code.length_nextra[block_ix], code.length_extra[block_ix], - storage_ix, storage); -} - -static void BuildAndStoreBlockSplitCode(const std::vector<uint8_t>& types, - const std::vector<uint32_t>& lengths, - const size_t num_types, - HuffmanTree* tree, - BlockSplitCode* code, - size_t* storage_ix, - uint8_t* storage) { - const size_t num_blocks = types.size(); - uint32_t type_histo[kBlockTypeAlphabetSize]; - uint32_t length_histo[kNumBlockLenPrefixes]; - memset(type_histo, 0, (num_types + 2) * sizeof(type_histo[0])); - memset(length_histo, 0, sizeof(length_histo)); - size_t last_type = 1; - size_t second_last_type = 0; - code->type_code.resize(num_blocks); - code->length_prefix.resize(num_blocks); - code->length_nextra.resize(num_blocks); - code->length_extra.resize(num_blocks); - code->type_depths.resize(num_types + 2); - code->type_bits.resize(num_types + 2); - memset(code->length_depths, 0, sizeof(code->length_depths)); - memset(code->length_bits, 0, sizeof(code->length_bits)); - for (size_t i = 0; i < num_blocks; ++i) { - size_t type = types[i]; - size_t type_code = (type == last_type + 1 ? 1 : - type == second_last_type ? 0 : - type + 2); - second_last_type = last_type; - last_type = type; - code->type_code[i] = static_cast<uint32_t>(type_code); - if (i != 0) ++type_histo[type_code]; - GetBlockLengthPrefixCode(lengths[i], - &code->length_prefix[i], - &code->length_nextra[i], - &code->length_extra[i]); - ++length_histo[code->length_prefix[i]]; - } - StoreVarLenUint8(num_types - 1, storage_ix, storage); - if (num_types > 1) { - BuildAndStoreHuffmanTree(&type_histo[0], num_types + 2, tree, - &code->type_depths[0], &code->type_bits[0], - storage_ix, storage); - BuildAndStoreHuffmanTree(&length_histo[0], kNumBlockLenPrefixes, tree, - &code->length_depths[0], &code->length_bits[0], - storage_ix, storage); - StoreBlockSwitch(*code, 0, storage_ix, storage); - } -} - -void StoreTrivialContextMap(size_t num_types, - size_t context_bits, - HuffmanTree* tree, - size_t* storage_ix, - uint8_t* storage) { - StoreVarLenUint8(num_types - 1, storage_ix, storage); - if (num_types > 1) { - size_t repeat_code = context_bits - 1u; - size_t repeat_bits = (1u << repeat_code) - 1u; - size_t alphabet_size = num_types + repeat_code; - uint32_t histogram[kContextMapAlphabetSize]; - uint8_t depths[kContextMapAlphabetSize]; - uint16_t bits[kContextMapAlphabetSize]; - memset(histogram, 0, alphabet_size * sizeof(histogram[0])); - memset(depths, 0, alphabet_size * sizeof(depths[0])); - memset(bits, 0, alphabet_size * sizeof(bits[0])); - // Write RLEMAX. - WriteBits(1, 1, storage_ix, storage); - WriteBits(4, repeat_code - 1, storage_ix, storage); - histogram[repeat_code] = static_cast<uint32_t>(num_types); - histogram[0] = 1; - for (size_t i = context_bits; i < alphabet_size; ++i) { - histogram[i] = 1; - } - BuildAndStoreHuffmanTree(&histogram[0], alphabet_size, tree, - &depths[0], &bits[0], - storage_ix, storage); - for (size_t i = 0; i < num_types; ++i) { - size_t code = (i == 0 ? 0 : i + context_bits - 1); - WriteBits(depths[code], bits[code], storage_ix, storage); - WriteBits(depths[repeat_code], bits[repeat_code], storage_ix, storage); - WriteBits(repeat_code, repeat_bits, storage_ix, storage); - } - // Write IMTF (inverse-move-to-front) bit. - WriteBits(1, 1, storage_ix, storage); - } -} - -// Manages the encoding of one block category (literal, command or distance). -class BlockEncoder { - public: - BlockEncoder(size_t alphabet_size, - size_t num_block_types, - const std::vector<uint8_t>& block_types, - const std::vector<uint32_t>& block_lengths) - : alphabet_size_(alphabet_size), - num_block_types_(num_block_types), - block_types_(block_types), - block_lengths_(block_lengths), - block_ix_(0), - block_len_(block_lengths.empty() ? 0 : block_lengths[0]), - entropy_ix_(0) {} - - // Creates entropy codes of block lengths and block types and stores them - // to the bit stream. - void BuildAndStoreBlockSwitchEntropyCodes(HuffmanTree* tree, - size_t* storage_ix, - uint8_t* storage) { - BuildAndStoreBlockSplitCode( - block_types_, block_lengths_, num_block_types_, - tree, &block_split_code_, storage_ix, storage); - } - - // Creates entropy codes for all block types and stores them to the bit - // stream. - template<int kSize> - void BuildAndStoreEntropyCodes( - const std::vector<Histogram<kSize> >& histograms, - HuffmanTree* tree, - size_t* storage_ix, uint8_t* storage) { - depths_.resize(histograms.size() * alphabet_size_); - bits_.resize(histograms.size() * alphabet_size_); - for (size_t i = 0; i < histograms.size(); ++i) { - size_t ix = i * alphabet_size_; - BuildAndStoreHuffmanTree(&histograms[i].data_[0], alphabet_size_, - tree, - &depths_[ix], &bits_[ix], - storage_ix, storage); - } - } - - // Stores the next symbol with the entropy code of the current block type. - // Updates the block type and block length at block boundaries. - void StoreSymbol(size_t symbol, size_t* storage_ix, uint8_t* storage) { - if (block_len_ == 0) { - ++block_ix_; - block_len_ = block_lengths_[block_ix_]; - entropy_ix_ = block_types_[block_ix_] * alphabet_size_; - StoreBlockSwitch(block_split_code_, block_ix_, storage_ix, storage); - } - --block_len_; - size_t ix = entropy_ix_ + symbol; - WriteBits(depths_[ix], bits_[ix], storage_ix, storage); - } - - // Stores the next symbol with the entropy code of the current block type and - // context value. - // Updates the block type and block length at block boundaries. - template<int kContextBits> - void StoreSymbolWithContext(size_t symbol, size_t context, - const std::vector<uint32_t>& context_map, - size_t* storage_ix, uint8_t* storage) { - if (block_len_ == 0) { - ++block_ix_; - block_len_ = block_lengths_[block_ix_]; - size_t block_type = block_types_[block_ix_]; - entropy_ix_ = block_type << kContextBits; - StoreBlockSwitch(block_split_code_, block_ix_, storage_ix, storage); - } - --block_len_; - size_t histo_ix = context_map[entropy_ix_ + context]; - size_t ix = histo_ix * alphabet_size_ + symbol; - WriteBits(depths_[ix], bits_[ix], storage_ix, storage); - } - - private: - const size_t alphabet_size_; - const size_t num_block_types_; - const std::vector<uint8_t>& block_types_; - const std::vector<uint32_t>& block_lengths_; - BlockSplitCode block_split_code_; - size_t block_ix_; - size_t block_len_; - size_t entropy_ix_; - std::vector<uint8_t> depths_; - std::vector<uint16_t> bits_; -}; - -static void JumpToByteBoundary(size_t* storage_ix, uint8_t* storage) { - *storage_ix = (*storage_ix + 7u) & ~7u; - storage[*storage_ix >> 3] = 0; -} - -void StoreMetaBlock(const uint8_t* input, - size_t start_pos, - size_t length, - size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - bool is_last, - uint32_t num_direct_distance_codes, - uint32_t distance_postfix_bits, - ContextType literal_context_mode, - const brotli::Command *commands, - size_t n_commands, - const MetaBlockSplit& mb, - size_t *storage_ix, - uint8_t *storage) { - StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage); - - size_t num_distance_codes = - kNumDistanceShortCodes + num_direct_distance_codes + - (48u << distance_postfix_bits); - - HuffmanTree* tree = static_cast<HuffmanTree*>( - malloc(kMaxHuffmanTreeSize * sizeof(HuffmanTree))); - BlockEncoder literal_enc(256, - mb.literal_split.num_types, - mb.literal_split.types, - mb.literal_split.lengths); - BlockEncoder command_enc(kNumCommandPrefixes, - mb.command_split.num_types, - mb.command_split.types, - mb.command_split.lengths); - BlockEncoder distance_enc(num_distance_codes, - mb.distance_split.num_types, - mb.distance_split.types, - mb.distance_split.lengths); - - literal_enc.BuildAndStoreBlockSwitchEntropyCodes(tree, storage_ix, storage); - command_enc.BuildAndStoreBlockSwitchEntropyCodes(tree, storage_ix, storage); - distance_enc.BuildAndStoreBlockSwitchEntropyCodes(tree, storage_ix, storage); - - WriteBits(2, distance_postfix_bits, storage_ix, storage); - WriteBits(4, num_direct_distance_codes >> distance_postfix_bits, - storage_ix, storage); - for (size_t i = 0; i < mb.literal_split.num_types; ++i) { - WriteBits(2, literal_context_mode, storage_ix, storage); - } - - size_t num_literal_histograms = mb.literal_histograms.size(); - if (mb.literal_context_map.empty()) { - StoreTrivialContextMap(num_literal_histograms, kLiteralContextBits, tree, - storage_ix, storage); - } else { - EncodeContextMap(mb.literal_context_map, num_literal_histograms, tree, - storage_ix, storage); - } - - size_t num_dist_histograms = mb.distance_histograms.size(); - if (mb.distance_context_map.empty()) { - StoreTrivialContextMap(num_dist_histograms, kDistanceContextBits, tree, - storage_ix, storage); - } else { - EncodeContextMap(mb.distance_context_map, num_dist_histograms, tree, - storage_ix, storage); - } - - literal_enc.BuildAndStoreEntropyCodes(mb.literal_histograms, tree, - storage_ix, storage); - command_enc.BuildAndStoreEntropyCodes(mb.command_histograms, tree, - storage_ix, storage); - distance_enc.BuildAndStoreEntropyCodes(mb.distance_histograms, tree, - storage_ix, storage); - free(tree); - - size_t pos = start_pos; - for (size_t i = 0; i < n_commands; ++i) { - const Command cmd = commands[i]; - size_t cmd_code = cmd.cmd_prefix_; - command_enc.StoreSymbol(cmd_code, storage_ix, storage); - StoreCommandExtra(cmd, storage_ix, storage); - if (mb.literal_context_map.empty()) { - for (size_t j = cmd.insert_len_; j != 0; --j) { - literal_enc.StoreSymbol(input[pos & mask], storage_ix, storage); - ++pos; - } - } else { - for (size_t j = cmd.insert_len_; j != 0; --j) { - size_t context = Context(prev_byte, prev_byte2, literal_context_mode); - uint8_t literal = input[pos & mask]; - literal_enc.StoreSymbolWithContext<kLiteralContextBits>( - literal, context, mb.literal_context_map, storage_ix, storage); - prev_byte2 = prev_byte; - prev_byte = literal; - ++pos; - } - } - pos += cmd.copy_len(); - if (cmd.copy_len()) { - prev_byte2 = input[(pos - 2) & mask]; - prev_byte = input[(pos - 1) & mask]; - if (cmd.cmd_prefix_ >= 128) { - size_t dist_code = cmd.dist_prefix_; - uint32_t distnumextra = cmd.dist_extra_ >> 24; - uint64_t distextra = cmd.dist_extra_ & 0xffffff; - if (mb.distance_context_map.empty()) { - distance_enc.StoreSymbol(dist_code, storage_ix, storage); - } else { - size_t context = cmd.DistanceContext(); - distance_enc.StoreSymbolWithContext<kDistanceContextBits>( - dist_code, context, mb.distance_context_map, storage_ix, storage); - } - brotli::WriteBits(distnumextra, distextra, storage_ix, storage); - } - } - } - if (is_last) { - JumpToByteBoundary(storage_ix, storage); - } -} - -static void BuildHistograms(const uint8_t* input, - size_t start_pos, - size_t mask, - const brotli::Command *commands, - size_t n_commands, - HistogramLiteral* lit_histo, - HistogramCommand* cmd_histo, - HistogramDistance* dist_histo) { - size_t pos = start_pos; - for (size_t i = 0; i < n_commands; ++i) { - const Command cmd = commands[i]; - cmd_histo->Add(cmd.cmd_prefix_); - for (size_t j = cmd.insert_len_; j != 0; --j) { - lit_histo->Add(input[pos & mask]); - ++pos; - } - pos += cmd.copy_len(); - if (cmd.copy_len() && cmd.cmd_prefix_ >= 128) { - dist_histo->Add(cmd.dist_prefix_); - } - } -} - -static void StoreDataWithHuffmanCodes(const uint8_t* input, - size_t start_pos, - size_t mask, - const brotli::Command *commands, - size_t n_commands, - const uint8_t* lit_depth, - const uint16_t* lit_bits, - const uint8_t* cmd_depth, - const uint16_t* cmd_bits, - const uint8_t* dist_depth, - const uint16_t* dist_bits, - size_t* storage_ix, - uint8_t* storage) { - size_t pos = start_pos; - for (size_t i = 0; i < n_commands; ++i) { - const Command cmd = commands[i]; - const size_t cmd_code = cmd.cmd_prefix_; - WriteBits(cmd_depth[cmd_code], cmd_bits[cmd_code], storage_ix, storage); - StoreCommandExtra(cmd, storage_ix, storage); - for (size_t j = cmd.insert_len_; j != 0; --j) { - const uint8_t literal = input[pos & mask]; - WriteBits(lit_depth[literal], lit_bits[literal], storage_ix, storage); - ++pos; - } - pos += cmd.copy_len(); - if (cmd.copy_len() && cmd.cmd_prefix_ >= 128) { - const size_t dist_code = cmd.dist_prefix_; - const uint32_t distnumextra = cmd.dist_extra_ >> 24; - const uint32_t distextra = cmd.dist_extra_ & 0xffffff; - WriteBits(dist_depth[dist_code], dist_bits[dist_code], - storage_ix, storage); - WriteBits(distnumextra, distextra, storage_ix, storage); - } - } -} - -void StoreMetaBlockTrivial(const uint8_t* input, - size_t start_pos, - size_t length, - size_t mask, - bool is_last, - const brotli::Command *commands, - size_t n_commands, - size_t *storage_ix, - uint8_t *storage) { - StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage); - - HistogramLiteral lit_histo; - HistogramCommand cmd_histo; - HistogramDistance dist_histo; - - BuildHistograms(input, start_pos, mask, commands, n_commands, - &lit_histo, &cmd_histo, &dist_histo); - - WriteBits(13, 0, storage_ix, storage); - - std::vector<uint8_t> lit_depth(256); - std::vector<uint16_t> lit_bits(256); - std::vector<uint8_t> cmd_depth(kNumCommandPrefixes); - std::vector<uint16_t> cmd_bits(kNumCommandPrefixes); - std::vector<uint8_t> dist_depth(64); - std::vector<uint16_t> dist_bits(64); - - HuffmanTree* tree = static_cast<HuffmanTree*>( - malloc(kMaxHuffmanTreeSize * sizeof(HuffmanTree))); - BuildAndStoreHuffmanTree(&lit_histo.data_[0], 256, tree, - &lit_depth[0], &lit_bits[0], - storage_ix, storage); - BuildAndStoreHuffmanTree(&cmd_histo.data_[0], kNumCommandPrefixes, tree, - &cmd_depth[0], &cmd_bits[0], - storage_ix, storage); - BuildAndStoreHuffmanTree(&dist_histo.data_[0], 64, tree, - &dist_depth[0], &dist_bits[0], - storage_ix, storage); - free(tree); - StoreDataWithHuffmanCodes(input, start_pos, mask, commands, - n_commands, &lit_depth[0], &lit_bits[0], - &cmd_depth[0], &cmd_bits[0], - &dist_depth[0], &dist_bits[0], - storage_ix, storage); - if (is_last) { - JumpToByteBoundary(storage_ix, storage); - } -} - -void StoreMetaBlockFast(const uint8_t* input, - size_t start_pos, - size_t length, - size_t mask, - bool is_last, - const brotli::Command *commands, - size_t n_commands, - size_t *storage_ix, - uint8_t *storage) { - StoreCompressedMetaBlockHeader(is_last, length, storage_ix, storage); - - WriteBits(13, 0, storage_ix, storage); - - if (n_commands <= 128) { - uint32_t histogram[256] = { 0 }; - size_t pos = start_pos; - size_t num_literals = 0; - for (size_t i = 0; i < n_commands; ++i) { - const Command cmd = commands[i]; - for (size_t j = cmd.insert_len_; j != 0; --j) { - ++histogram[input[pos & mask]]; - ++pos; - } - num_literals += cmd.insert_len_; - pos += cmd.copy_len(); - } - uint8_t lit_depth[256] = { 0 }; - uint16_t lit_bits[256] = { 0 }; - BuildAndStoreHuffmanTreeFast(histogram, num_literals, - /* max_bits = */ 8, - lit_depth, lit_bits, - storage_ix, storage); - StoreStaticCommandHuffmanTree(storage_ix, storage); - StoreStaticDistanceHuffmanTree(storage_ix, storage); - StoreDataWithHuffmanCodes(input, start_pos, mask, commands, - n_commands, &lit_depth[0], &lit_bits[0], - kStaticCommandCodeDepth, - kStaticCommandCodeBits, - kStaticDistanceCodeDepth, - kStaticDistanceCodeBits, - storage_ix, storage); - } else { - HistogramLiteral lit_histo; - HistogramCommand cmd_histo; - HistogramDistance dist_histo; - BuildHistograms(input, start_pos, mask, commands, n_commands, - &lit_histo, &cmd_histo, &dist_histo); - std::vector<uint8_t> lit_depth(256); - std::vector<uint16_t> lit_bits(256); - std::vector<uint8_t> cmd_depth(kNumCommandPrefixes); - std::vector<uint16_t> cmd_bits(kNumCommandPrefixes); - std::vector<uint8_t> dist_depth(64); - std::vector<uint16_t> dist_bits(64); - BuildAndStoreHuffmanTreeFast(&lit_histo.data_[0], lit_histo.total_count_, - /* max_bits = */ 8, - &lit_depth[0], &lit_bits[0], - storage_ix, storage); - BuildAndStoreHuffmanTreeFast(&cmd_histo.data_[0], cmd_histo.total_count_, - /* max_bits = */ 10, - &cmd_depth[0], &cmd_bits[0], - storage_ix, storage); - BuildAndStoreHuffmanTreeFast(&dist_histo.data_[0], dist_histo.total_count_, - /* max_bits = */ 6, - &dist_depth[0], &dist_bits[0], - storage_ix, storage); - StoreDataWithHuffmanCodes(input, start_pos, mask, commands, - n_commands, &lit_depth[0], &lit_bits[0], - &cmd_depth[0], &cmd_bits[0], - &dist_depth[0], &dist_bits[0], - storage_ix, storage); - } - - if (is_last) { - JumpToByteBoundary(storage_ix, storage); - } -} - -// This is for storing uncompressed blocks (simple raw storage of -// bytes-as-bytes). -void StoreUncompressedMetaBlock(bool final_block, - const uint8_t * __restrict input, - size_t position, size_t mask, - size_t len, - size_t * __restrict storage_ix, - uint8_t * __restrict storage) { - StoreUncompressedMetaBlockHeader(len, storage_ix, storage); - JumpToByteBoundary(storage_ix, storage); - - size_t masked_pos = position & mask; - if (masked_pos + len > mask + 1) { - size_t len1 = mask + 1 - masked_pos; - memcpy(&storage[*storage_ix >> 3], &input[masked_pos], len1); - *storage_ix += len1 << 3; - len -= len1; - masked_pos = 0; - } - memcpy(&storage[*storage_ix >> 3], &input[masked_pos], len); - *storage_ix += len << 3; - - // We need to clear the next 4 bytes to continue to be - // compatible with WriteBits. - brotli::WriteBitsPrepareStorage(*storage_ix, storage); - - // Since the uncompressed block itself may not be the final block, add an - // empty one after this. - if (final_block) { - brotli::WriteBits(1, 1, storage_ix, storage); // islast - brotli::WriteBits(1, 1, storage_ix, storage); // isempty - JumpToByteBoundary(storage_ix, storage); - } -} - -void StoreSyncMetaBlock(size_t * __restrict storage_ix, - uint8_t * __restrict storage) { - // Empty metadata meta-block bit pattern: - // 1 bit: is_last (0) - // 2 bits: num nibbles (3) - // 1 bit: reserved (0) - // 2 bits: metadata length bytes (0) - WriteBits(6, 6, storage_ix, storage); - JumpToByteBoundary(storage_ix, storage); -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/brotli_bit_stream.h b/thirdparty/brotli/enc/brotli_bit_stream.h index 6c706535..03a0d7b0 100644 --- a/thirdparty/brotli/enc/brotli_bit_stream.h +++ b/thirdparty/brotli/enc/brotli_bit_stream.h @@ -4,176 +4,104 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Functions to convert brotli-related data structures into the -// brotli bit stream. The functions here operate under -// assumption that there is enough space in the storage, i.e., there are -// no out-of-range checks anywhere. -// -// These functions do bit addressing into a byte array. The byte array -// is called "storage" and the index to the bit is called storage_ix -// in function arguments. +/* Functions to convert brotli-related data structures into the + brotli bit stream. The functions here operate under + assumption that there is enough space in the storage, i.e., there are + no out-of-range checks anywhere. + + These functions do bit addressing into a byte array. The byte array + is called "storage" and the index to the bit is called storage_ix + in function arguments. */ #ifndef BROTLI_ENC_BROTLI_BIT_STREAM_H_ #define BROTLI_ENC_BROTLI_BIT_STREAM_H_ -#include <vector> - +#include "../common/types.h" +#include "./command.h" +#include "./context.h" #include "./entropy_encode.h" +#include "./memory.h" #include "./metablock.h" -#include "./types.h" - -namespace brotli { - -// All Store functions here will use a storage_ix, which is always the bit -// position for the current storage. - -// Stores a number between 0 and 255. -void StoreVarLenUint8(size_t n, size_t* storage_ix, uint8_t* storage); - -// Stores the compressed meta-block header. -// REQUIRES: length > 0 -// REQUIRES: length <= (1 << 24) -void StoreCompressedMetaBlockHeader(bool final_block, - size_t length, - size_t* storage_ix, - uint8_t* storage); - -// Stores the uncompressed meta-block header. -// REQUIRES: length > 0 -// REQUIRES: length <= (1 << 24) -void StoreUncompressedMetaBlockHeader(size_t length, - size_t* storage_ix, - uint8_t* storage); - -// Stores a context map where the histogram type is always the block type. -void StoreTrivialContextMap(size_t num_types, - size_t context_bits, - HuffmanTree* tree, - size_t* storage_ix, - uint8_t* storage); - -void StoreHuffmanTreeOfHuffmanTreeToBitMask( - const int num_codes, - const uint8_t *code_length_bitdepth, - size_t *storage_ix, - uint8_t *storage); - -void StoreHuffmanTree(const uint8_t* depths, size_t num, HuffmanTree* tree, - size_t *storage_ix, uint8_t *storage); - -// Builds a Huffman tree from histogram[0:length] into depth[0:length] and -// bits[0:length] and stores the encoded tree to the bit stream. -void BuildAndStoreHuffmanTree(const uint32_t *histogram, - const size_t length, - HuffmanTree* tree, - uint8_t* depth, - uint16_t* bits, - size_t* storage_ix, - uint8_t* storage); - -void BuildAndStoreHuffmanTreeFast(const uint32_t *histogram, - const size_t histogram_total, - const size_t max_bits, - uint8_t* depth, - uint16_t* bits, - size_t* storage_ix, - uint8_t* storage); - -// Encodes the given context map to the bit stream. The number of different -// histogram ids is given by num_clusters. -void EncodeContextMap(const std::vector<uint32_t>& context_map, - size_t num_clusters, - HuffmanTree* tree, - size_t* storage_ix, uint8_t* storage); - -// Data structure that stores everything that is needed to encode each block -// switch command. -struct BlockSplitCode { - std::vector<uint32_t> type_code; - std::vector<uint32_t> length_prefix; - std::vector<uint32_t> length_nextra; - std::vector<uint32_t> length_extra; - std::vector<uint8_t> type_depths; - std::vector<uint16_t> type_bits; - uint8_t length_depths[kNumBlockLenPrefixes]; - uint16_t length_bits[kNumBlockLenPrefixes]; -}; - -// Builds a BlockSplitCode data structure from the block split given by the -// vector of block types and block lengths and stores it to the bit stream. -void BuildAndStoreBlockSplitCode(const std::vector<uint8_t>& types, - const std::vector<uint32_t>& lengths, - const size_t num_types, - BlockSplitCode* code, - size_t* storage_ix, - uint8_t* storage); - -// Stores the block switch command with index block_ix to the bit stream. -void StoreBlockSwitch(const BlockSplitCode& code, - const size_t block_ix, - size_t* storage_ix, - uint8_t* storage); - -// REQUIRES: length > 0 -// REQUIRES: length <= (1 << 24) -void StoreMetaBlock(const uint8_t* input, - size_t start_pos, - size_t length, - size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - bool final_block, - uint32_t num_direct_distance_codes, - uint32_t distance_postfix_bits, - ContextType literal_context_mode, - const brotli::Command *commands, - size_t n_commands, - const MetaBlockSplit& mb, - size_t *storage_ix, - uint8_t *storage); - -// Stores the meta-block without doing any block splitting, just collects -// one histogram per block category and uses that for entropy coding. -// REQUIRES: length > 0 -// REQUIRES: length <= (1 << 24) -void StoreMetaBlockTrivial(const uint8_t* input, - size_t start_pos, - size_t length, - size_t mask, - bool is_last, - const brotli::Command *commands, - size_t n_commands, - size_t *storage_ix, - uint8_t *storage); - -// Same as above, but uses static prefix codes for histograms with a only a few -// symbols, and uses static code length prefix codes for all other histograms. -// REQUIRES: length > 0 -// REQUIRES: length <= (1 << 24) -void StoreMetaBlockFast(const uint8_t* input, - size_t start_pos, - size_t length, - size_t mask, - bool is_last, - const brotli::Command *commands, - size_t n_commands, - size_t *storage_ix, - uint8_t *storage); - -// This is for storing uncompressed blocks (simple raw storage of -// bytes-as-bytes). -// REQUIRES: length > 0 -// REQUIRES: length <= (1 << 24) -void StoreUncompressedMetaBlock(bool final_block, - const uint8_t* input, - size_t position, size_t mask, - size_t len, - size_t* storage_ix, - uint8_t* storage); - -// Stores an empty metadata meta-block and syncs to a byte boundary. -void StoreSyncMetaBlock(size_t* storage_ix, uint8_t* storage); - -} // namespace brotli - -#endif // BROTLI_ENC_BROTLI_BIT_STREAM_H_ +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* All Store functions here will use a storage_ix, which is always the bit + position for the current storage. */ + +BROTLI_INTERNAL void BrotliStoreHuffmanTree(const uint8_t* depths, size_t num, + HuffmanTree* tree, size_t *storage_ix, uint8_t *storage); + +BROTLI_INTERNAL void BrotliBuildAndStoreHuffmanTreeFast( + MemoryManager* m, const uint32_t* histogram, const size_t histogram_total, + const size_t max_bits, uint8_t* depth, uint16_t* bits, size_t* storage_ix, + uint8_t* storage); + +/* REQUIRES: length > 0 */ +/* REQUIRES: length <= (1 << 24) */ +BROTLI_INTERNAL void BrotliStoreMetaBlock(MemoryManager* m, + const uint8_t* input, + size_t start_pos, + size_t length, + size_t mask, + uint8_t prev_byte, + uint8_t prev_byte2, + BROTLI_BOOL is_final_block, + uint32_t num_direct_distance_codes, + uint32_t distance_postfix_bits, + ContextType literal_context_mode, + const Command* commands, + size_t n_commands, + const MetaBlockSplit* mb, + size_t* storage_ix, + uint8_t* storage); + +/* Stores the meta-block without doing any block splitting, just collects + one histogram per block category and uses that for entropy coding. + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) */ +BROTLI_INTERNAL void BrotliStoreMetaBlockTrivial(MemoryManager* m, + const uint8_t* input, + size_t start_pos, + size_t length, + size_t mask, + BROTLI_BOOL is_last, + const Command *commands, + size_t n_commands, + size_t* storage_ix, + uint8_t* storage); + +/* Same as above, but uses static prefix codes for histograms with a only a few + symbols, and uses static code length prefix codes for all other histograms. + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) */ +BROTLI_INTERNAL void BrotliStoreMetaBlockFast(MemoryManager* m, + const uint8_t* input, + size_t start_pos, + size_t length, + size_t mask, + BROTLI_BOOL is_last, + const Command *commands, + size_t n_commands, + size_t* storage_ix, + uint8_t* storage); + +/* This is for storing uncompressed blocks (simple raw storage of + bytes-as-bytes). + REQUIRES: length > 0 + REQUIRES: length <= (1 << 24) */ +BROTLI_INTERNAL void BrotliStoreUncompressedMetaBlock( + BROTLI_BOOL is_final_block, const uint8_t* input, size_t position, + size_t mask, size_t len, size_t* storage_ix, uint8_t* storage); + +/* Stores an empty metadata meta-block and syncs to a byte boundary. */ +BROTLI_INTERNAL void BrotliStoreSyncMetaBlock(size_t* storage_ix, + uint8_t* storage); + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_BROTLI_BIT_STREAM_H_ */ diff --git a/thirdparty/brotli/enc/cluster.c b/thirdparty/brotli/enc/cluster.c new file mode 100644 index 00000000..d3370e3e --- /dev/null +++ b/thirdparty/brotli/enc/cluster.c @@ -0,0 +1,56 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Functions for clustering similar histograms together. */ + +#include "./cluster.h" + +#include "../common/types.h" +#include "./bit_cost.h" /* BrotliPopulationCost */ +#include "./fast_log.h" +#include "./histogram.h" +#include "./memory.h" +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +static BROTLI_INLINE BROTLI_BOOL HistogramPairIsLess( + const HistogramPair* p1, const HistogramPair* p2) { + if (p1->cost_diff != p2->cost_diff) { + return TO_BROTLI_BOOL(p1->cost_diff > p2->cost_diff); + } + return TO_BROTLI_BOOL((p1->idx2 - p1->idx1) > (p2->idx2 - p2->idx1)); +} + +/* Returns entropy reduction of the context map when we combine two clusters. */ +static BROTLI_INLINE double ClusterCostDiff(size_t size_a, size_t size_b) { + size_t size_c = size_a + size_b; + return (double)size_a * FastLog2(size_a) + + (double)size_b * FastLog2(size_b) - + (double)size_c * FastLog2(size_c); +} + +#define CODE(X) X + +#define FN(X) X ## Literal +#include "./cluster_inc.h" /* NOLINT(build/include) */ +#undef FN + +#define FN(X) X ## Command +#include "./cluster_inc.h" /* NOLINT(build/include) */ +#undef FN + +#define FN(X) X ## Distance +#include "./cluster_inc.h" /* NOLINT(build/include) */ +#undef FN + +#undef CODE + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/cluster.h b/thirdparty/brotli/enc/cluster.h index 5054faf7..241e3092 100644 --- a/thirdparty/brotli/enc/cluster.h +++ b/thirdparty/brotli/enc/cluster.h @@ -4,327 +4,45 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Functions for clustering similar histograms together. +/* Functions for clustering similar histograms together. */ #ifndef BROTLI_ENC_CLUSTER_H_ #define BROTLI_ENC_CLUSTER_H_ -#include <math.h> -#include <algorithm> -#include <utility> -#include <vector> - -#include "./bit_cost.h" -#include "./entropy_encode.h" -#include "./fast_log.h" +#include "../common/types.h" #include "./histogram.h" +#include "./memory.h" #include "./port.h" -#include "./types.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -struct HistogramPair { +typedef struct HistogramPair { uint32_t idx1; uint32_t idx2; double cost_combo; double cost_diff; -}; - -inline bool operator<(const HistogramPair& p1, const HistogramPair& p2) { - if (p1.cost_diff != p2.cost_diff) { - return p1.cost_diff > p2.cost_diff; - } - return (p1.idx2 - p1.idx1) > (p2.idx2 - p2.idx1); -} - -// Returns entropy reduction of the context map when we combine two clusters. -inline double ClusterCostDiff(size_t size_a, size_t size_b) { - size_t size_c = size_a + size_b; - return static_cast<double>(size_a) * FastLog2(size_a) + - static_cast<double>(size_b) * FastLog2(size_b) - - static_cast<double>(size_c) * FastLog2(size_c); -} - -// Computes the bit cost reduction by combining out[idx1] and out[idx2] and if -// it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. -template<typename HistogramType> -void CompareAndPushToQueue(const HistogramType* out, - const uint32_t* cluster_size, - uint32_t idx1, uint32_t idx2, - size_t max_num_pairs, - HistogramPair* pairs, - size_t* num_pairs) { - if (idx1 == idx2) { - return; - } - if (idx2 < idx1) { - uint32_t t = idx2; - idx2 = idx1; - idx1 = t; - } - bool store_pair = false; - HistogramPair p; - p.idx1 = idx1; - p.idx2 = idx2; - p.cost_diff = 0.5 * ClusterCostDiff(cluster_size[idx1], cluster_size[idx2]); - p.cost_diff -= out[idx1].bit_cost_; - p.cost_diff -= out[idx2].bit_cost_; - - if (out[idx1].total_count_ == 0) { - p.cost_combo = out[idx2].bit_cost_; - store_pair = true; - } else if (out[idx2].total_count_ == 0) { - p.cost_combo = out[idx1].bit_cost_; - store_pair = true; - } else { - double threshold = *num_pairs == 0 ? 1e99 : - std::max(0.0, pairs[0].cost_diff); - HistogramType combo = out[idx1]; - combo.AddHistogram(out[idx2]); - double cost_combo = PopulationCost(combo); - if (cost_combo < threshold - p.cost_diff) { - p.cost_combo = cost_combo; - store_pair = true; - } - } - if (store_pair) { - p.cost_diff += p.cost_combo; - if (*num_pairs > 0 && pairs[0] < p) { - // Replace the top of the queue if needed. - if (*num_pairs < max_num_pairs) { - pairs[*num_pairs] = pairs[0]; - ++(*num_pairs); - } - pairs[0] = p; - } else if (*num_pairs < max_num_pairs) { - pairs[*num_pairs] = p; - ++(*num_pairs); - } - } -} - -template<typename HistogramType> -size_t HistogramCombine(HistogramType* out, - uint32_t* cluster_size, - uint32_t* symbols, - uint32_t* clusters, - HistogramPair* pairs, - size_t num_clusters, - size_t symbols_size, - size_t max_clusters, - size_t max_num_pairs) { - double cost_diff_threshold = 0.0; - size_t min_cluster_size = 1; - - // We maintain a vector of histogram pairs, with the property that the pair - // with the maximum bit cost reduction is the first. - size_t num_pairs = 0; - for (size_t idx1 = 0; idx1 < num_clusters; ++idx1) { - for (size_t idx2 = idx1 + 1; idx2 < num_clusters; ++idx2) { - CompareAndPushToQueue(out, cluster_size, clusters[idx1], clusters[idx2], - max_num_pairs, &pairs[0], &num_pairs); - } - } - - while (num_clusters > min_cluster_size) { - if (pairs[0].cost_diff >= cost_diff_threshold) { - cost_diff_threshold = 1e99; - min_cluster_size = max_clusters; - continue; - } - // Take the best pair from the top of heap. - uint32_t best_idx1 = pairs[0].idx1; - uint32_t best_idx2 = pairs[0].idx2; - out[best_idx1].AddHistogram(out[best_idx2]); - out[best_idx1].bit_cost_ = pairs[0].cost_combo; - cluster_size[best_idx1] += cluster_size[best_idx2]; - for (size_t i = 0; i < symbols_size; ++i) { - if (symbols[i] == best_idx2) { - symbols[i] = best_idx1; - } - } - for (size_t i = 0; i < num_clusters; ++i) { - if (clusters[i] == best_idx2) { - memmove(&clusters[i], &clusters[i + 1], - (num_clusters - i - 1) * sizeof(clusters[0])); - break; - } - } - --num_clusters; - // Remove pairs intersecting the just combined best pair. - size_t copy_to_idx = 0; - for (size_t i = 0; i < num_pairs; ++i) { - HistogramPair& p = pairs[i]; - if (p.idx1 == best_idx1 || p.idx2 == best_idx1 || - p.idx1 == best_idx2 || p.idx2 == best_idx2) { - // Remove invalid pair from the queue. - continue; - } - if (pairs[0] < p) { - // Replace the top of the queue if needed. - HistogramPair front = pairs[0]; - pairs[0] = p; - pairs[copy_to_idx] = front; - } else { - pairs[copy_to_idx] = p; - } - ++copy_to_idx; - } - num_pairs = copy_to_idx; - - // Push new pairs formed with the combined histogram to the heap. - for (size_t i = 0; i < num_clusters; ++i) { - CompareAndPushToQueue(out, cluster_size, best_idx1, clusters[i], - max_num_pairs, &pairs[0], &num_pairs); - } - } - return num_clusters; -} - -// ----------------------------------------------------------------------------- -// Histogram refinement - -// What is the bit cost of moving histogram from cur_symbol to candidate. -template<typename HistogramType> -double HistogramBitCostDistance(const HistogramType& histogram, - const HistogramType& candidate) { - if (histogram.total_count_ == 0) { - return 0.0; - } - HistogramType tmp = histogram; - tmp.AddHistogram(candidate); - return PopulationCost(tmp) - candidate.bit_cost_; -} - -// Find the best 'out' histogram for each of the 'in' histograms. -// When called, clusters[0..num_clusters) contains the unique values from -// symbols[0..in_size), but this property is not preserved in this function. -// Note: we assume that out[]->bit_cost_ is already up-to-date. -template<typename HistogramType> -void HistogramRemap(const HistogramType* in, size_t in_size, - const uint32_t* clusters, size_t num_clusters, - HistogramType* out, uint32_t* symbols) { - for (size_t i = 0; i < in_size; ++i) { - uint32_t best_out = i == 0 ? symbols[0] : symbols[i - 1]; - double best_bits = HistogramBitCostDistance(in[i], out[best_out]); - for (size_t j = 0; j < num_clusters; ++j) { - const double cur_bits = HistogramBitCostDistance(in[i], out[clusters[j]]); - if (cur_bits < best_bits) { - best_bits = cur_bits; - best_out = clusters[j]; - } - } - symbols[i] = best_out; - } - - // Recompute each out based on raw and symbols. - for (size_t j = 0; j < num_clusters; ++j) { - out[clusters[j]].Clear(); - } - for (size_t i = 0; i < in_size; ++i) { - out[symbols[i]].AddHistogram(in[i]); - } -} - -// Reorders elements of the out[0..length) array and changes values in -// symbols[0..length) array in the following way: -// * when called, symbols[] contains indexes into out[], and has N unique -// values (possibly N < length) -// * on return, symbols'[i] = f(symbols[i]) and -// out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, -// where f is a bijection between the range of symbols[] and [0..N), and -// the first occurrences of values in symbols'[i] come in consecutive -// increasing order. -// Returns N, the number of unique values in symbols[]. -template<typename HistogramType> -size_t HistogramReindex(HistogramType* out, uint32_t* symbols, size_t length) { - static const uint32_t kInvalidIndex = std::numeric_limits<uint32_t>::max(); - std::vector<uint32_t> new_index(length, kInvalidIndex); - uint32_t next_index = 0; - for (size_t i = 0; i < length; ++i) { - if (new_index[symbols[i]] == kInvalidIndex) { - new_index[symbols[i]] = next_index; - ++next_index; - } - } - std::vector<HistogramType> tmp(next_index); - next_index = 0; - for (size_t i = 0; i < length; ++i) { - if (new_index[symbols[i]] == next_index) { - tmp[next_index] = out[symbols[i]]; - ++next_index; - } - symbols[i] = new_index[symbols[i]]; - } - for (size_t i = 0; i < next_index; ++i) { - out[i] = tmp[i]; - } - return next_index; -} - -// Clusters similar histograms in 'in' together, the selected histograms are -// placed in 'out', and for each index in 'in', *histogram_symbols will -// indicate which of the 'out' histograms is the best approximation. -template<typename HistogramType> -void ClusterHistograms(const std::vector<HistogramType>& in, - size_t num_contexts, size_t num_blocks, - size_t max_histograms, - std::vector<HistogramType>* out, - std::vector<uint32_t>* histogram_symbols) { - const size_t in_size = num_contexts * num_blocks; - assert(in_size == in.size()); - std::vector<uint32_t> cluster_size(in_size, 1); - std::vector<uint32_t> clusters(in_size); - size_t num_clusters = 0; - out->resize(in_size); - histogram_symbols->resize(in_size); - for (size_t i = 0; i < in_size; ++i) { - (*out)[i] = in[i]; - (*out)[i].bit_cost_ = PopulationCost(in[i]); - (*histogram_symbols)[i] = static_cast<uint32_t>(i); - } - - const size_t max_input_histograms = 64; - // For the first pass of clustering, we allow all pairs. - size_t max_num_pairs = max_input_histograms * max_input_histograms / 2; - std::vector<HistogramPair> pairs(max_num_pairs + 1); +} HistogramPair; - for (size_t i = 0; i < in_size; i += max_input_histograms) { - size_t num_to_combine = std::min(in_size - i, max_input_histograms); - for (size_t j = 0; j < num_to_combine; ++j) { - clusters[num_clusters + j] = static_cast<uint32_t>(i + j); - } - size_t num_new_clusters = - HistogramCombine(&(*out)[0], &cluster_size[0], - &(*histogram_symbols)[i], - &clusters[num_clusters], &pairs[0], - num_to_combine, num_to_combine, - max_histograms, max_num_pairs); - num_clusters += num_new_clusters; - } +#define CODE(X) /* Declaration */; - // For the second pass, we limit the total number of histogram pairs. - // After this limit is reached, we only keep searching for the best pair. - max_num_pairs = - std::min(64 * num_clusters, (num_clusters / 2) * num_clusters); - pairs.resize(max_num_pairs + 1); +#define FN(X) X ## Literal +#include "./cluster_inc.h" /* NOLINT(build/include) */ +#undef FN - // Collapse similar histograms. - num_clusters = HistogramCombine(&(*out)[0], &cluster_size[0], - &(*histogram_symbols)[0], &clusters[0], - &pairs[0], num_clusters, in_size, - max_histograms, max_num_pairs); +#define FN(X) X ## Command +#include "./cluster_inc.h" /* NOLINT(build/include) */ +#undef FN - // Find the optimal map from original histograms to the final ones. - HistogramRemap(&in[0], in_size, &clusters[0], num_clusters, - &(*out)[0], &(*histogram_symbols)[0]); +#define FN(X) X ## Distance +#include "./cluster_inc.h" /* NOLINT(build/include) */ +#undef FN - // Convert the context map to a canonical form. - size_t num_histograms = - HistogramReindex(&(*out)[0], &(*histogram_symbols)[0], in_size); - out->resize(num_histograms); -} +#undef CODE -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_CLUSTER_H_ +#endif /* BROTLI_ENC_CLUSTER_H_ */ diff --git a/thirdparty/brotli/enc/cluster_inc.h b/thirdparty/brotli/enc/cluster_inc.h new file mode 100644 index 00000000..cf279bde --- /dev/null +++ b/thirdparty/brotli/enc/cluster_inc.h @@ -0,0 +1,315 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN, CODE */ + +#define HistogramType FN(Histogram) + +/* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if + it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ +BROTLI_INTERNAL void FN(BrotliCompareAndPushToQueue)( + const HistogramType* out, const uint32_t* cluster_size, uint32_t idx1, + uint32_t idx2, size_t max_num_pairs, HistogramPair* pairs, + size_t* num_pairs) CODE({ + BROTLI_BOOL is_good_pair = BROTLI_FALSE; + HistogramPair p; + if (idx1 == idx2) { + return; + } + if (idx2 < idx1) { + uint32_t t = idx2; + idx2 = idx1; + idx1 = t; + } + p.idx1 = idx1; + p.idx2 = idx2; + p.cost_diff = 0.5 * ClusterCostDiff(cluster_size[idx1], cluster_size[idx2]); + p.cost_diff -= out[idx1].bit_cost_; + p.cost_diff -= out[idx2].bit_cost_; + + if (out[idx1].total_count_ == 0) { + p.cost_combo = out[idx2].bit_cost_; + is_good_pair = BROTLI_TRUE; + } else if (out[idx2].total_count_ == 0) { + p.cost_combo = out[idx1].bit_cost_; + is_good_pair = BROTLI_TRUE; + } else { + double threshold = *num_pairs == 0 ? 1e99 : + BROTLI_MAX(double, 0.0, pairs[0].cost_diff); + HistogramType combo = out[idx1]; + double cost_combo; + FN(HistogramAddHistogram)(&combo, &out[idx2]); + cost_combo = FN(BrotliPopulationCost)(&combo); + if (cost_combo < threshold - p.cost_diff) { + p.cost_combo = cost_combo; + is_good_pair = BROTLI_TRUE; + } + } + if (is_good_pair) { + p.cost_diff += p.cost_combo; + if (*num_pairs > 0 && HistogramPairIsLess(&pairs[0], &p)) { + /* Replace the top of the queue if needed. */ + if (*num_pairs < max_num_pairs) { + pairs[*num_pairs] = pairs[0]; + ++(*num_pairs); + } + pairs[0] = p; + } else if (*num_pairs < max_num_pairs) { + pairs[*num_pairs] = p; + ++(*num_pairs); + } + } +}) + +BROTLI_INTERNAL size_t FN(BrotliHistogramCombine)(HistogramType* out, + uint32_t* cluster_size, + uint32_t* symbols, + uint32_t* clusters, + HistogramPair* pairs, + size_t num_clusters, + size_t symbols_size, + size_t max_clusters, + size_t max_num_pairs) CODE({ + double cost_diff_threshold = 0.0; + size_t min_cluster_size = 1; + size_t num_pairs = 0; + + { + /* We maintain a vector of histogram pairs, with the property that the pair + with the maximum bit cost reduction is the first. */ + size_t idx1; + for (idx1 = 0; idx1 < num_clusters; ++idx1) { + size_t idx2; + for (idx2 = idx1 + 1; idx2 < num_clusters; ++idx2) { + FN(BrotliCompareAndPushToQueue)(out, cluster_size, clusters[idx1], + clusters[idx2], max_num_pairs, &pairs[0], &num_pairs); + } + } + } + + while (num_clusters > min_cluster_size) { + uint32_t best_idx1; + uint32_t best_idx2; + size_t i; + if (pairs[0].cost_diff >= cost_diff_threshold) { + cost_diff_threshold = 1e99; + min_cluster_size = max_clusters; + continue; + } + /* Take the best pair from the top of heap. */ + best_idx1 = pairs[0].idx1; + best_idx2 = pairs[0].idx2; + FN(HistogramAddHistogram)(&out[best_idx1], &out[best_idx2]); + out[best_idx1].bit_cost_ = pairs[0].cost_combo; + cluster_size[best_idx1] += cluster_size[best_idx2]; + for (i = 0; i < symbols_size; ++i) { + if (symbols[i] == best_idx2) { + symbols[i] = best_idx1; + } + } + for (i = 0; i < num_clusters; ++i) { + if (clusters[i] == best_idx2) { + memmove(&clusters[i], &clusters[i + 1], + (num_clusters - i - 1) * sizeof(clusters[0])); + break; + } + } + --num_clusters; + { + /* Remove pairs intersecting the just combined best pair. */ + size_t copy_to_idx = 0; + for (i = 0; i < num_pairs; ++i) { + HistogramPair* p = &pairs[i]; + if (p->idx1 == best_idx1 || p->idx2 == best_idx1 || + p->idx1 == best_idx2 || p->idx2 == best_idx2) { + /* Remove invalid pair from the queue. */ + continue; + } + if (HistogramPairIsLess(&pairs[0], p)) { + /* Replace the top of the queue if needed. */ + HistogramPair front = pairs[0]; + pairs[0] = *p; + pairs[copy_to_idx] = front; + } else { + pairs[copy_to_idx] = *p; + } + ++copy_to_idx; + } + num_pairs = copy_to_idx; + } + + /* Push new pairs formed with the combined histogram to the heap. */ + for (i = 0; i < num_clusters; ++i) { + FN(BrotliCompareAndPushToQueue)(out, cluster_size, best_idx1, clusters[i], + max_num_pairs, &pairs[0], &num_pairs); + } + } + return num_clusters; +}) + +/* What is the bit cost of moving histogram from cur_symbol to candidate. */ +BROTLI_INTERNAL double FN(BrotliHistogramBitCostDistance)( + const HistogramType* histogram, const HistogramType* candidate) CODE({ + if (histogram->total_count_ == 0) { + return 0.0; + } else { + HistogramType tmp = *histogram; + FN(HistogramAddHistogram)(&tmp, candidate); + return FN(BrotliPopulationCost)(&tmp) - candidate->bit_cost_; + } +}) + +/* Find the best 'out' histogram for each of the 'in' histograms. + When called, clusters[0..num_clusters) contains the unique values from + symbols[0..in_size), but this property is not preserved in this function. + Note: we assume that out[]->bit_cost_ is already up-to-date. */ +BROTLI_INTERNAL void FN(BrotliHistogramRemap)(const HistogramType* in, + size_t in_size, const uint32_t* clusters, size_t num_clusters, + HistogramType* out, uint32_t* symbols) CODE({ + size_t i; + for (i = 0; i < in_size; ++i) { + uint32_t best_out = i == 0 ? symbols[0] : symbols[i - 1]; + double best_bits = + FN(BrotliHistogramBitCostDistance)(&in[i], &out[best_out]); + size_t j; + for (j = 0; j < num_clusters; ++j) { + const double cur_bits = + FN(BrotliHistogramBitCostDistance)(&in[i], &out[clusters[j]]); + if (cur_bits < best_bits) { + best_bits = cur_bits; + best_out = clusters[j]; + } + } + symbols[i] = best_out; + } + + /* Recompute each out based on raw and symbols. */ + for (i = 0; i < num_clusters; ++i) { + FN(HistogramClear)(&out[clusters[i]]); + } + for (i = 0; i < in_size; ++i) { + FN(HistogramAddHistogram)(&out[symbols[i]], &in[i]); + } +}) + +/* Reorders elements of the out[0..length) array and changes values in + symbols[0..length) array in the following way: + * when called, symbols[] contains indexes into out[], and has N unique + values (possibly N < length) + * on return, symbols'[i] = f(symbols[i]) and + out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, + where f is a bijection between the range of symbols[] and [0..N), and + the first occurrences of values in symbols'[i] come in consecutive + increasing order. + Returns N, the number of unique values in symbols[]. */ +BROTLI_INTERNAL size_t FN(BrotliHistogramReindex)(MemoryManager* m, + HistogramType* out, uint32_t* symbols, size_t length) CODE({ + static const uint32_t kInvalidIndex = BROTLI_UINT32_MAX; + uint32_t* new_index = BROTLI_ALLOC(m, uint32_t, length); + uint32_t next_index; + HistogramType* tmp; + size_t i; + if (BROTLI_IS_OOM(m)) return 0; + for (i = 0; i < length; ++i) { + new_index[i] = kInvalidIndex; + } + next_index = 0; + for (i = 0; i < length; ++i) { + if (new_index[symbols[i]] == kInvalidIndex) { + new_index[symbols[i]] = next_index; + ++next_index; + } + } + /* TODO: by using idea of "cycle-sort" we can avoid allocation of + tmp and reduce the number of copying by the factor of 2. */ + tmp = BROTLI_ALLOC(m, HistogramType, next_index); + if (BROTLI_IS_OOM(m)) return 0; + next_index = 0; + for (i = 0; i < length; ++i) { + if (new_index[symbols[i]] == next_index) { + tmp[next_index] = out[symbols[i]]; + ++next_index; + } + symbols[i] = new_index[symbols[i]]; + } + BROTLI_FREE(m, new_index); + for (i = 0; i < next_index; ++i) { + out[i] = tmp[i]; + } + BROTLI_FREE(m, tmp); + return next_index; +}) + +BROTLI_INTERNAL void FN(BrotliClusterHistograms)( + MemoryManager* m, const HistogramType* in, const size_t in_size, + size_t max_histograms, HistogramType* out, size_t* out_size, + uint32_t* histogram_symbols) CODE({ + uint32_t* cluster_size = BROTLI_ALLOC(m, uint32_t, in_size); + uint32_t* clusters = BROTLI_ALLOC(m, uint32_t, in_size); + size_t num_clusters = 0; + const size_t max_input_histograms = 64; + size_t pairs_capacity = max_input_histograms * max_input_histograms / 2; + /* For the first pass of clustering, we allow all pairs. */ + HistogramPair* pairs = BROTLI_ALLOC(m, HistogramPair, pairs_capacity + 1); + size_t i; + + if (BROTLI_IS_OOM(m)) return; + + for (i = 0; i < in_size; ++i) { + cluster_size[i] = 1; + } + + for (i = 0; i < in_size; ++i) { + out[i] = in[i]; + out[i].bit_cost_ = FN(BrotliPopulationCost)(&in[i]); + histogram_symbols[i] = (uint32_t)i; + } + + for (i = 0; i < in_size; i += max_input_histograms) { + size_t num_to_combine = + BROTLI_MIN(size_t, in_size - i, max_input_histograms); + size_t num_new_clusters; + size_t j; + for (j = 0; j < num_to_combine; ++j) { + clusters[num_clusters + j] = (uint32_t)(i + j); + } + num_new_clusters = + FN(BrotliHistogramCombine)(out, cluster_size, + &histogram_symbols[i], + &clusters[num_clusters], pairs, + num_to_combine, num_to_combine, + max_histograms, pairs_capacity); + num_clusters += num_new_clusters; + } + + { + /* For the second pass, we limit the total number of histogram pairs. + After this limit is reached, we only keep searching for the best pair. */ + size_t max_num_pairs = BROTLI_MIN(size_t, + 64 * num_clusters, (num_clusters / 2) * num_clusters); + BROTLI_ENSURE_CAPACITY( + m, HistogramPair, pairs, pairs_capacity, max_num_pairs + 1); + if (BROTLI_IS_OOM(m)) return; + + /* Collapse similar histograms. */ + num_clusters = FN(BrotliHistogramCombine)(out, cluster_size, + histogram_symbols, clusters, + pairs, num_clusters, in_size, + max_histograms, max_num_pairs); + } + BROTLI_FREE(m, pairs); + BROTLI_FREE(m, cluster_size); + /* Find the optimal map from original histograms to the final ones. */ + FN(BrotliHistogramRemap)(in, in_size, clusters, num_clusters, + out, histogram_symbols); + BROTLI_FREE(m, clusters); + /* Convert the context map to a canonical form. */ + *out_size = FN(BrotliHistogramReindex)(m, out, histogram_symbols, in_size); + if (BROTLI_IS_OOM(m)) return; +}) + +#undef HistogramType diff --git a/thirdparty/brotli/enc/command.h b/thirdparty/brotli/enc/command.h index b5cc872b..a5fa6aeb 100644 --- a/thirdparty/brotli/enc/command.h +++ b/thirdparty/brotli/enc/command.h @@ -4,16 +4,19 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// This class models a sequence of literals and a backward reference copy. +/* This class models a sequence of literals and a backward reference copy. */ #ifndef BROTLI_ENC_COMMAND_H_ #define BROTLI_ENC_COMMAND_H_ +#include "../common/types.h" +#include "../common/port.h" #include "./fast_log.h" #include "./prefix.h" -#include "./types.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif static uint32_t kInsBase[] = { 0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26, 34, 50, 66, 98, 130, 194, 322, 578, 1090, 2114, 6210, 22594 }; @@ -24,15 +27,14 @@ static uint32_t kCopyBase[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 18, 22, 30, static uint32_t kCopyExtra[] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24 }; -static inline uint16_t GetInsertLengthCode(size_t insertlen) { +static BROTLI_INLINE uint16_t GetInsertLengthCode(size_t insertlen) { if (insertlen < 6) { - return static_cast<uint16_t>(insertlen); + return (uint16_t)insertlen; } else if (insertlen < 130) { - insertlen -= 2; - uint32_t nbits = Log2FloorNonZero(insertlen) - 1u; - return static_cast<uint16_t>((nbits << 1) + (insertlen >> nbits) + 2); + uint32_t nbits = Log2FloorNonZero(insertlen - 2) - 1u; + return (uint16_t)((nbits << 1) + ((insertlen - 2) >> nbits) + 2); } else if (insertlen < 2114) { - return static_cast<uint16_t>(Log2FloorNonZero(insertlen - 66) + 10); + return (uint16_t)(Log2FloorNonZero(insertlen - 66) + 10); } else if (insertlen < 6210) { return 21u; } else if (insertlen < 22594) { @@ -42,115 +44,120 @@ static inline uint16_t GetInsertLengthCode(size_t insertlen) { } } -static inline uint16_t GetCopyLengthCode(size_t copylen) { +static BROTLI_INLINE uint16_t GetCopyLengthCode(size_t copylen) { if (copylen < 10) { - return static_cast<uint16_t>(copylen - 2); + return (uint16_t)(copylen - 2); } else if (copylen < 134) { - copylen -= 6; - uint32_t nbits = Log2FloorNonZero(copylen) - 1u; - return static_cast<uint16_t>((nbits << 1) + (copylen >> nbits) + 4); + uint32_t nbits = Log2FloorNonZero(copylen - 6) - 1u; + return (uint16_t)((nbits << 1) + ((copylen - 6) >> nbits) + 4); } else if (copylen < 2118) { - return static_cast<uint16_t>(Log2FloorNonZero(copylen - 70) + 12); + return (uint16_t)(Log2FloorNonZero(copylen - 70) + 12); } else { return 23u; } } -static inline uint16_t CombineLengthCodes( - uint16_t inscode, uint16_t copycode, bool use_last_distance) { +static BROTLI_INLINE uint16_t CombineLengthCodes( + uint16_t inscode, uint16_t copycode, BROTLI_BOOL use_last_distance) { uint16_t bits64 = - static_cast<uint16_t>((copycode & 0x7u) | ((inscode & 0x7u) << 3)); + (uint16_t)((copycode & 0x7u) | ((inscode & 0x7u) << 3)); if (use_last_distance && inscode < 8 && copycode < 16) { return (copycode < 8) ? bits64 : (bits64 | 64); } else { - // "To convert an insert-and-copy length code to an insert length code and - // a copy length code, the following table can be used" + /* "To convert an insert-and-copy length code to an insert length code and + a copy length code, the following table can be used" */ static const uint16_t cells[9] = { 128u, 192u, 384u, 256u, 320u, 512u, 448u, 576u, 640u }; return cells[(copycode >> 3) + 3 * (inscode >> 3)] | bits64; } } -static inline void GetLengthCode(size_t insertlen, size_t copylen, - bool use_last_distance, - uint16_t* code) { +static BROTLI_INLINE void GetLengthCode(size_t insertlen, size_t copylen, + BROTLI_BOOL use_last_distance, + uint16_t* code) { uint16_t inscode = GetInsertLengthCode(insertlen); uint16_t copycode = GetCopyLengthCode(copylen); *code = CombineLengthCodes(inscode, copycode, use_last_distance); } -static inline uint32_t GetInsertBase(uint16_t inscode) { +static BROTLI_INLINE uint32_t GetInsertBase(uint16_t inscode) { return kInsBase[inscode]; } -static inline uint32_t GetInsertExtra(uint16_t inscode) { +static BROTLI_INLINE uint32_t GetInsertExtra(uint16_t inscode) { return kInsExtra[inscode]; } -static inline uint32_t GetCopyBase(uint16_t copycode) { +static BROTLI_INLINE uint32_t GetCopyBase(uint16_t copycode) { return kCopyBase[copycode]; } -static inline uint32_t GetCopyExtra(uint16_t copycode) { +static BROTLI_INLINE uint32_t GetCopyExtra(uint16_t copycode) { return kCopyExtra[copycode]; } -struct Command { - // distance_code is e.g. 0 for same-as-last short code, or 16 for offset 1. - Command(size_t insertlen, size_t copylen, size_t copylen_code, - size_t distance_code) - : insert_len_(static_cast<uint32_t>(insertlen)) { - copy_len_ = static_cast<uint32_t>( - copylen | ((copylen_code ^ copylen) << 24)); - // The distance prefix and extra bits are stored in this Command as if - // npostfix and ndirect were 0, they are only recomputed later after the - // clustering if needed. - PrefixEncodeCopyDistance(distance_code, 0, 0, &dist_prefix_, &dist_extra_); - GetLengthCode(insertlen, copylen_code, dist_prefix_ == 0, - &cmd_prefix_); - } +typedef struct Command { + uint32_t insert_len_; + /* Stores copy_len in low 24 bits and copy_len XOR copy_code in high 8 bit. */ + uint32_t copy_len_; + uint32_t dist_extra_; + uint16_t cmd_prefix_; + uint16_t dist_prefix_; +} Command; + +/* distance_code is e.g. 0 for same-as-last short code, or 16 for offset 1. */ +static BROTLI_INLINE void InitCommand(Command* self, size_t insertlen, + size_t copylen, size_t copylen_code, size_t distance_code) { + self->insert_len_ = (uint32_t)insertlen; + self->copy_len_ = (uint32_t)(copylen | ((copylen_code ^ copylen) << 24)); + /* The distance prefix and extra bits are stored in this Command as if + npostfix and ndirect were 0, they are only recomputed later after the + clustering if needed. */ + PrefixEncodeCopyDistance( + distance_code, 0, 0, &self->dist_prefix_, &self->dist_extra_); + GetLengthCode( + insertlen, copylen_code, TO_BROTLI_BOOL(self->dist_prefix_ == 0), + &self->cmd_prefix_); +} - explicit Command(size_t insertlen) - : insert_len_(static_cast<uint32_t>(insertlen)) - , copy_len_(4 << 24), dist_extra_(0), dist_prefix_(16) { - GetLengthCode(insertlen, 4, dist_prefix_ == 0, &cmd_prefix_); - } +static BROTLI_INLINE void InitInsertCommand(Command* self, size_t insertlen) { + self->insert_len_ = (uint32_t)insertlen; + self->copy_len_ = 4 << 24; + self->dist_extra_ = 0; + self->dist_prefix_ = 16; + GetLengthCode(insertlen, 4, BROTLI_FALSE, &self->cmd_prefix_); +} - uint32_t DistanceCode(void) const { - if (dist_prefix_ < 16) { - return dist_prefix_; - } - uint32_t nbits = dist_extra_ >> 24; - uint32_t extra = dist_extra_ & 0xffffff; - uint32_t prefix = dist_prefix_ - 12 - 2 * nbits; +static BROTLI_INLINE uint32_t CommandDistanceCode(const Command* self) { + if (self->dist_prefix_ < 16) { + return self->dist_prefix_; + } else { + uint32_t nbits = self->dist_extra_ >> 24; + uint32_t extra = self->dist_extra_ & 0xffffff; + uint32_t prefix = self->dist_prefix_ - 12u - 2u * nbits; return (prefix << nbits) + extra + 12; } +} - uint32_t DistanceContext(void) const { - uint32_t r = cmd_prefix_ >> 6; - uint32_t c = cmd_prefix_ & 7; - if ((r == 0 || r == 2 || r == 4 || r == 7) && (c <= 2)) { - return c; - } - return 3; - } - - inline uint32_t copy_len(void) const { - return copy_len_ & 0xFFFFFF; +static BROTLI_INLINE uint32_t CommandDistanceContext(const Command* self) { + uint32_t r = self->cmd_prefix_ >> 6; + uint32_t c = self->cmd_prefix_ & 7; + if ((r == 0 || r == 2 || r == 4 || r == 7) && (c <= 2)) { + return c; } + return 3; +} - inline uint32_t copy_len_code(void) const { - return (copy_len_ & 0xFFFFFF) ^ (copy_len_ >> 24); - } +static BROTLI_INLINE uint32_t CommandCopyLen(const Command* self) { + return self->copy_len_ & 0xFFFFFF; +} - uint32_t insert_len_; - /* Stores copy_len in low 24 bits and copy_len XOR copy_code in high 8 bit. */ - uint32_t copy_len_; - uint32_t dist_extra_; - uint16_t cmd_prefix_; - uint16_t dist_prefix_; -}; +static BROTLI_INLINE uint32_t CommandCopyLenCode(const Command* self) { + return (self->copy_len_ & 0xFFFFFF) ^ (self->copy_len_ >> 24); +} -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_COMMAND_H_ +#endif /* BROTLI_ENC_COMMAND_H_ */ diff --git a/thirdparty/brotli/enc/compress_fragment.c b/thirdparty/brotli/enc/compress_fragment.c new file mode 100644 index 00000000..5b787eda --- /dev/null +++ b/thirdparty/brotli/enc/compress_fragment.c @@ -0,0 +1,747 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Function for fast encoding of an input fragment, independently from the input + history. This function uses one-pass processing: when we find a backward + match, we immediately emit the corresponding command and literal codes to + the bit stream. + + Adapted from the CompressFragment() function in + https://github.com/google/snappy/blob/master/snappy.cc */ + +#include "./compress_fragment.h" + +#include <string.h> /* memcmp, memcpy, memset */ + +#include "../common/types.h" +#include "./brotli_bit_stream.h" +#include "./entropy_encode.h" +#include "./fast_log.h" +#include "./find_match_length.h" +#include "./memory.h" +#include "./port.h" +#include "./write_bits.h" + + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* kHashMul32 multiplier has these properties: + * The multiplier must be odd. Otherwise we may lose the highest bit. + * No long streaks of 1s or 0s. + * There is no effort to ensure that it is a prime, the oddity is enough + for this use. + * The number has been tuned heuristically against compression benchmarks. */ +static const uint32_t kHashMul32 = 0x1e35a7bd; + +static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) { + const uint64_t h = (BROTLI_UNALIGNED_LOAD64(p) << 24) * kHashMul32; + return (uint32_t)(h >> shift); +} + +static BROTLI_INLINE uint32_t HashBytesAtOffset( + uint64_t v, int offset, size_t shift) { + assert(offset >= 0); + assert(offset <= 3); + { + const uint64_t h = ((v >> (8 * offset)) << 24) * kHashMul32; + return (uint32_t)(h >> shift); + } +} + +static BROTLI_INLINE BROTLI_BOOL IsMatch(const uint8_t* p1, const uint8_t* p2) { + return TO_BROTLI_BOOL( + BROTLI_UNALIGNED_LOAD32(p1) == BROTLI_UNALIGNED_LOAD32(p2) && + p1[4] == p2[4]); +} + +/* Builds a literal prefix code into "depths" and "bits" based on the statistics + of the "input" string and stores it into the bit stream. + Note that the prefix code here is built from the pre-LZ77 input, therefore + we can only approximate the statistics of the actual literal stream. + Moreover, for long inputs we build a histogram from a sample of the input + and thus have to assign a non-zero depth for each literal. + Returns estimated compression ratio millibytes/char for encoding given input + with generated code. */ +static size_t BuildAndStoreLiteralPrefixCode(MemoryManager* m, + const uint8_t* input, + const size_t input_size, + uint8_t depths[256], + uint16_t bits[256], + size_t* storage_ix, + uint8_t* storage) { + uint32_t histogram[256] = { 0 }; + size_t histogram_total; + size_t i; + if (input_size < (1 << 15)) { + for (i = 0; i < input_size; ++i) { + ++histogram[input[i]]; + } + histogram_total = input_size; + for (i = 0; i < 256; ++i) { + /* We weigh the first 11 samples with weight 3 to account for the + balancing effect of the LZ77 phase on the histogram. */ + const uint32_t adjust = 2 * BROTLI_MIN(uint32_t, histogram[i], 11u); + histogram[i] += adjust; + histogram_total += adjust; + } + } else { + static const size_t kSampleRate = 29; + for (i = 0; i < input_size; i += kSampleRate) { + ++histogram[input[i]]; + } + histogram_total = (input_size + kSampleRate - 1) / kSampleRate; + for (i = 0; i < 256; ++i) { + /* We add 1 to each population count to avoid 0 bit depths (since this is + only a sample and we don't know if the symbol appears or not), and we + weigh the first 11 samples with weight 3 to account for the balancing + effect of the LZ77 phase on the histogram (more frequent symbols are + more likely to be in backward references instead as literals). */ + const uint32_t adjust = 1 + 2 * BROTLI_MIN(uint32_t, histogram[i], 11u); + histogram[i] += adjust; + histogram_total += adjust; + } + } + BrotliBuildAndStoreHuffmanTreeFast(m, histogram, histogram_total, + /* max_bits = */ 8, + depths, bits, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return 0; + { + size_t literal_ratio = 0; + for (i = 0; i < 256; ++i) { + if (histogram[i]) literal_ratio += histogram[i] * depths[i]; + } + /* Estimated encoding ratio, millibytes per symbol. */ + return (literal_ratio * 125) / histogram_total; + } +} + +/* Builds a command and distance prefix code (each 64 symbols) into "depth" and + "bits" based on "histogram" and stores it into the bit stream. */ +static void BuildAndStoreCommandPrefixCode(const uint32_t histogram[128], + uint8_t depth[128], uint16_t bits[128], size_t* storage_ix, + uint8_t* storage) { + /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ + HuffmanTree tree[129]; + uint8_t cmd_depth[BROTLI_NUM_COMMAND_SYMBOLS] = { 0 }; + uint16_t cmd_bits[64]; + + BrotliCreateHuffmanTree(histogram, 64, 15, tree, depth); + BrotliCreateHuffmanTree(&histogram[64], 64, 14, tree, &depth[64]); + /* We have to jump through a few hoopes here in order to compute + the command bits because the symbols are in a different order than in + the full alphabet. This looks complicated, but having the symbols + in this order in the command bits saves a few branches in the Emit* + functions. */ + memcpy(cmd_depth, depth, 24); + memcpy(cmd_depth + 24, depth + 40, 8); + memcpy(cmd_depth + 32, depth + 24, 8); + memcpy(cmd_depth + 40, depth + 48, 8); + memcpy(cmd_depth + 48, depth + 32, 8); + memcpy(cmd_depth + 56, depth + 56, 8); + BrotliConvertBitDepthsToSymbols(cmd_depth, 64, cmd_bits); + memcpy(bits, cmd_bits, 48); + memcpy(bits + 24, cmd_bits + 32, 16); + memcpy(bits + 32, cmd_bits + 48, 16); + memcpy(bits + 40, cmd_bits + 24, 16); + memcpy(bits + 48, cmd_bits + 40, 16); + memcpy(bits + 56, cmd_bits + 56, 16); + BrotliConvertBitDepthsToSymbols(&depth[64], 64, &bits[64]); + { + /* Create the bit length array for the full command alphabet. */ + size_t i; + memset(cmd_depth, 0, 64); /* only 64 first values were used */ + memcpy(cmd_depth, depth, 8); + memcpy(cmd_depth + 64, depth + 8, 8); + memcpy(cmd_depth + 128, depth + 16, 8); + memcpy(cmd_depth + 192, depth + 24, 8); + memcpy(cmd_depth + 384, depth + 32, 8); + for (i = 0; i < 8; ++i) { + cmd_depth[128 + 8 * i] = depth[40 + i]; + cmd_depth[256 + 8 * i] = depth[48 + i]; + cmd_depth[448 + 8 * i] = depth[56 + i]; + } + BrotliStoreHuffmanTree( + cmd_depth, BROTLI_NUM_COMMAND_SYMBOLS, tree, storage_ix, storage); + } + BrotliStoreHuffmanTree(&depth[64], 64, tree, storage_ix, storage); +} + +/* REQUIRES: insertlen < 6210 */ +static BROTLI_INLINE void EmitInsertLen(size_t insertlen, + const uint8_t depth[128], + const uint16_t bits[128], + uint32_t histo[128], + size_t* storage_ix, + uint8_t* storage) { + if (insertlen < 6) { + const size_t code = insertlen + 40; + BrotliWriteBits(depth[code], bits[code], storage_ix, storage); + ++histo[code]; + } else if (insertlen < 130) { + const size_t tail = insertlen - 2; + const uint32_t nbits = Log2FloorNonZero(tail) - 1u; + const size_t prefix = tail >> nbits; + const size_t inscode = (nbits << 1) + prefix + 42; + BrotliWriteBits(depth[inscode], bits[inscode], storage_ix, storage); + BrotliWriteBits(nbits, tail - (prefix << nbits), storage_ix, storage); + ++histo[inscode]; + } else if (insertlen < 2114) { + const size_t tail = insertlen - 66; + const uint32_t nbits = Log2FloorNonZero(tail); + const size_t code = nbits + 50; + BrotliWriteBits(depth[code], bits[code], storage_ix, storage); + BrotliWriteBits(nbits, tail - ((size_t)1 << nbits), storage_ix, storage); + ++histo[code]; + } else { + BrotliWriteBits(depth[61], bits[61], storage_ix, storage); + BrotliWriteBits(12, insertlen - 2114, storage_ix, storage); + ++histo[21]; + } +} + +static BROTLI_INLINE void EmitLongInsertLen(size_t insertlen, + const uint8_t depth[128], + const uint16_t bits[128], + uint32_t histo[128], + size_t* storage_ix, + uint8_t* storage) { + if (insertlen < 22594) { + BrotliWriteBits(depth[62], bits[62], storage_ix, storage); + BrotliWriteBits(14, insertlen - 6210, storage_ix, storage); + ++histo[22]; + } else { + BrotliWriteBits(depth[63], bits[63], storage_ix, storage); + BrotliWriteBits(24, insertlen - 22594, storage_ix, storage); + ++histo[23]; + } +} + +static BROTLI_INLINE void EmitCopyLen(size_t copylen, + const uint8_t depth[128], + const uint16_t bits[128], + uint32_t histo[128], + size_t* storage_ix, + uint8_t* storage) { + if (copylen < 10) { + BrotliWriteBits( + depth[copylen + 14], bits[copylen + 14], storage_ix, storage); + ++histo[copylen + 14]; + } else if (copylen < 134) { + const size_t tail = copylen - 6; + const uint32_t nbits = Log2FloorNonZero(tail) - 1u; + const size_t prefix = tail >> nbits; + const size_t code = (nbits << 1) + prefix + 20; + BrotliWriteBits(depth[code], bits[code], storage_ix, storage); + BrotliWriteBits(nbits, tail - (prefix << nbits), storage_ix, storage); + ++histo[code]; + } else if (copylen < 2118) { + const size_t tail = copylen - 70; + const uint32_t nbits = Log2FloorNonZero(tail); + const size_t code = nbits + 28; + BrotliWriteBits(depth[code], bits[code], storage_ix, storage); + BrotliWriteBits(nbits, tail - ((size_t)1 << nbits), storage_ix, storage); + ++histo[code]; + } else { + BrotliWriteBits(depth[39], bits[39], storage_ix, storage); + BrotliWriteBits(24, copylen - 2118, storage_ix, storage); + ++histo[47]; + } +} + +static BROTLI_INLINE void EmitCopyLenLastDistance(size_t copylen, + const uint8_t depth[128], + const uint16_t bits[128], + uint32_t histo[128], + size_t* storage_ix, + uint8_t* storage) { + if (copylen < 12) { + BrotliWriteBits(depth[copylen - 4], bits[copylen - 4], storage_ix, storage); + ++histo[copylen - 4]; + } else if (copylen < 72) { + const size_t tail = copylen - 8; + const uint32_t nbits = Log2FloorNonZero(tail) - 1; + const size_t prefix = tail >> nbits; + const size_t code = (nbits << 1) + prefix + 4; + BrotliWriteBits(depth[code], bits[code], storage_ix, storage); + BrotliWriteBits(nbits, tail - (prefix << nbits), storage_ix, storage); + ++histo[code]; + } else if (copylen < 136) { + const size_t tail = copylen - 8; + const size_t code = (tail >> 5) + 30; + BrotliWriteBits(depth[code], bits[code], storage_ix, storage); + BrotliWriteBits(5, tail & 31, storage_ix, storage); + BrotliWriteBits(depth[64], bits[64], storage_ix, storage); + ++histo[code]; + ++histo[64]; + } else if (copylen < 2120) { + const size_t tail = copylen - 72; + const uint32_t nbits = Log2FloorNonZero(tail); + const size_t code = nbits + 28; + BrotliWriteBits(depth[code], bits[code], storage_ix, storage); + BrotliWriteBits(nbits, tail - ((size_t)1 << nbits), storage_ix, storage); + BrotliWriteBits(depth[64], bits[64], storage_ix, storage); + ++histo[code]; + ++histo[64]; + } else { + BrotliWriteBits(depth[39], bits[39], storage_ix, storage); + BrotliWriteBits(24, copylen - 2120, storage_ix, storage); + BrotliWriteBits(depth[64], bits[64], storage_ix, storage); + ++histo[47]; + ++histo[64]; + } +} + +static BROTLI_INLINE void EmitDistance(size_t distance, + const uint8_t depth[128], + const uint16_t bits[128], + uint32_t histo[128], + size_t* storage_ix, uint8_t* storage) { + const size_t d = distance + 3; + const uint32_t nbits = Log2FloorNonZero(d) - 1u; + const size_t prefix = (d >> nbits) & 1; + const size_t offset = (2 + prefix) << nbits; + const size_t distcode = 2 * (nbits - 1) + prefix + 80; + BrotliWriteBits(depth[distcode], bits[distcode], storage_ix, storage); + BrotliWriteBits(nbits, d - offset, storage_ix, storage); + ++histo[distcode]; +} + +static BROTLI_INLINE void EmitLiterals(const uint8_t* input, const size_t len, + const uint8_t depth[256], + const uint16_t bits[256], + size_t* storage_ix, uint8_t* storage) { + size_t j; + for (j = 0; j < len; j++) { + const uint8_t lit = input[j]; + BrotliWriteBits(depth[lit], bits[lit], storage_ix, storage); + } +} + +/* REQUIRES: len <= 1 << 20. */ +static void BrotliStoreMetaBlockHeader( + size_t len, BROTLI_BOOL is_uncompressed, size_t* storage_ix, + uint8_t* storage) { + /* ISLAST */ + BrotliWriteBits(1, 0, storage_ix, storage); + if (len <= (1U << 16)) { + /* MNIBBLES is 4 */ + BrotliWriteBits(2, 0, storage_ix, storage); + BrotliWriteBits(16, len - 1, storage_ix, storage); + } else { + /* MNIBBLES is 5 */ + BrotliWriteBits(2, 1, storage_ix, storage); + BrotliWriteBits(20, len - 1, storage_ix, storage); + } + /* ISUNCOMPRESSED */ + BrotliWriteBits(1, (uint64_t)is_uncompressed, storage_ix, storage); +} + +static void UpdateBits(size_t n_bits, uint32_t bits, size_t pos, + uint8_t *array) { + while (n_bits > 0) { + size_t byte_pos = pos >> 3; + size_t n_unchanged_bits = pos & 7; + size_t n_changed_bits = BROTLI_MIN(size_t, n_bits, 8 - n_unchanged_bits); + size_t total_bits = n_unchanged_bits + n_changed_bits; + uint32_t mask = + (~((1u << total_bits) - 1u)) | ((1u << n_unchanged_bits) - 1u); + uint32_t unchanged_bits = array[byte_pos] & mask; + uint32_t changed_bits = bits & ((1u << n_changed_bits) - 1u); + array[byte_pos] = + (uint8_t)((changed_bits << n_unchanged_bits) | unchanged_bits); + n_bits -= n_changed_bits; + bits >>= n_changed_bits; + pos += n_changed_bits; + } +} + +static void RewindBitPosition(const size_t new_storage_ix, + size_t* storage_ix, uint8_t* storage) { + const size_t bitpos = new_storage_ix & 7; + const size_t mask = (1u << bitpos) - 1; + storage[new_storage_ix >> 3] &= (uint8_t)mask; + *storage_ix = new_storage_ix; +} + +static BROTLI_BOOL ShouldMergeBlock( + const uint8_t* data, size_t len, const uint8_t* depths) { + size_t histo[256] = { 0 }; + static const size_t kSampleRate = 43; + size_t i; + for (i = 0; i < len; i += kSampleRate) { + ++histo[data[i]]; + } + { + const size_t total = (len + kSampleRate - 1) / kSampleRate; + double r = (FastLog2(total) + 0.5) * (double)total + 200; + for (i = 0; i < 256; ++i) { + r -= (double)histo[i] * (depths[i] + FastLog2(histo[i])); + } + return TO_BROTLI_BOOL(r >= 0.0); + } +} + +/* Acceptable loss for uncompressible speedup is 2% */ +#define MIN_RATIO 980 + +static BROTLI_INLINE BROTLI_BOOL ShouldUseUncompressedMode( + const uint8_t* metablock_start, const uint8_t* next_emit, + const size_t insertlen, const size_t literal_ratio) { + const size_t compressed = (size_t)(next_emit - metablock_start); + if (compressed * 50 > insertlen) { + return BROTLI_FALSE; + } else { + return TO_BROTLI_BOOL(literal_ratio > MIN_RATIO); + } +} + +static void EmitUncompressedMetaBlock(const uint8_t* begin, const uint8_t* end, + const size_t storage_ix_start, + size_t* storage_ix, uint8_t* storage) { + const size_t len = (size_t)(end - begin); + RewindBitPosition(storage_ix_start, storage_ix, storage); + BrotliStoreMetaBlockHeader(len, 1, storage_ix, storage); + *storage_ix = (*storage_ix + 7u) & ~7u; + memcpy(&storage[*storage_ix >> 3], begin, len); + *storage_ix += len << 3; + storage[*storage_ix >> 3] = 0; +} + +static uint32_t kCmdHistoSeed[128] = { + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, +}; + +void BrotliCompressFragmentFast(MemoryManager* m, + const uint8_t* input, size_t input_size, + BROTLI_BOOL is_last, + int* table, size_t table_size, + uint8_t cmd_depth[128], uint16_t cmd_bits[128], + size_t* cmd_code_numbits, uint8_t* cmd_code, + size_t* storage_ix, uint8_t* storage) { + uint32_t cmd_histo[128]; + const uint8_t* ip_end; + + /* "next_emit" is a pointer to the first byte that is not covered by a + previous copy. Bytes between "next_emit" and the start of the next copy or + the end of the input will be emitted as literal bytes. */ + const uint8_t* next_emit = input; + /* Save the start of the first block for position and distance computations. + */ + const uint8_t* base_ip = input; + + static const size_t kFirstBlockSize = 3 << 15; + static const size_t kMergeBlockSize = 1 << 16; + + const size_t kInputMarginBytes = 16; + const size_t kMinMatchLen = 5; + + const uint8_t* metablock_start = input; + size_t block_size = BROTLI_MIN(size_t, input_size, kFirstBlockSize); + size_t total_block_size = block_size; + /* Save the bit position of the MLEN field of the meta-block header, so that + we can update it later if we decide to extend this meta-block. */ + size_t mlen_storage_ix = *storage_ix + 3; + + uint8_t lit_depth[256]; + uint16_t lit_bits[256]; + + size_t literal_ratio; + + const uint8_t* ip; + int last_distance; + + const size_t shift = 64u - Log2FloorNonZero(table_size); + assert(table_size); + assert(table_size <= (1u << 31)); + /* table must be power of two */ + assert((table_size & (table_size - 1)) == 0); + assert(table_size - 1 == + (size_t)(MAKE_UINT64_T(0xFFFFFFFF, 0xFFFFFF) >> shift)); + + if (input_size == 0) { + assert(is_last); + BrotliWriteBits(1, 1, storage_ix, storage); /* islast */ + BrotliWriteBits(1, 1, storage_ix, storage); /* isempty */ + *storage_ix = (*storage_ix + 7u) & ~7u; + return; + } + + BrotliStoreMetaBlockHeader(block_size, 0, storage_ix, storage); + /* No block splits, no contexts. */ + BrotliWriteBits(13, 0, storage_ix, storage); + + literal_ratio = BuildAndStoreLiteralPrefixCode( + m, input, block_size, lit_depth, lit_bits, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + + { + /* Store the pre-compressed command and distance prefix codes. */ + size_t i; + for (i = 0; i + 7 < *cmd_code_numbits; i += 8) { + BrotliWriteBits(8, cmd_code[i >> 3], storage_ix, storage); + } + } + BrotliWriteBits(*cmd_code_numbits & 7, cmd_code[*cmd_code_numbits >> 3], + storage_ix, storage); + + emit_commands: + /* Initialize the command and distance histograms. We will gather + statistics of command and distance codes during the processing + of this block and use it to update the command and distance + prefix codes for the next block. */ + memcpy(cmd_histo, kCmdHistoSeed, sizeof(kCmdHistoSeed)); + + /* "ip" is the input pointer. */ + ip = input; + last_distance = -1; + ip_end = input + block_size; + + if (PREDICT_TRUE(block_size >= kInputMarginBytes)) { + /* For the last block, we need to keep a 16 bytes margin so that we can be + sure that all distances are at most window size - 16. + For all other blocks, we only need to keep a margin of 5 bytes so that + we don't go over the block size with a copy. */ + const size_t len_limit = BROTLI_MIN(size_t, block_size - kMinMatchLen, + input_size - kInputMarginBytes); + const uint8_t* ip_limit = input + len_limit; + + uint32_t next_hash; + for (next_hash = Hash(++ip, shift); ; ) { + /* Step 1: Scan forward in the input looking for a 5-byte-long match. + If we get close to exhausting the input then goto emit_remainder. + + Heuristic match skipping: If 32 bytes are scanned with no matches + found, start looking only at every other byte. If 32 more bytes are + scanned, look at every third byte, etc.. When a match is found, + immediately go back to looking at every byte. This is a small loss + (~5% performance, ~0.1% density) for compressible data due to more + bookkeeping, but for non-compressible data (such as JPEG) it's a huge + win since the compressor quickly "realizes" the data is incompressible + and doesn't bother looking for matches everywhere. + + The "skip" variable keeps track of how many bytes there are since the + last match; dividing it by 32 (ie. right-shifting by five) gives the + number of bytes to move ahead for each iteration. */ + uint32_t skip = 32; + + const uint8_t* next_ip = ip; + const uint8_t* candidate; + assert(next_emit < ip); + + do { + uint32_t hash = next_hash; + uint32_t bytes_between_hash_lookups = skip++ >> 5; + assert(hash == Hash(next_ip, shift)); + ip = next_ip; + next_ip = ip + bytes_between_hash_lookups; + if (PREDICT_FALSE(next_ip > ip_limit)) { + goto emit_remainder; + } + next_hash = Hash(next_ip, shift); + candidate = ip - last_distance; + if (IsMatch(ip, candidate)) { + if (PREDICT_TRUE(candidate < ip)) { + table[hash] = (int)(ip - base_ip); + break; + } + } + candidate = base_ip + table[hash]; + assert(candidate >= base_ip); + assert(candidate < ip); + + table[hash] = (int)(ip - base_ip); + } while (PREDICT_TRUE(!IsMatch(ip, candidate))); + + /* Step 2: Emit the found match together with the literal bytes from + "next_emit" to the bit stream, and then see if we can find a next macth + immediately afterwards. Repeat until we find no match for the input + without emitting some literal bytes. */ + + { + /* We have a 5-byte match at ip, and we need to emit bytes in + [next_emit, ip). */ + const uint8_t* base = ip; + size_t matched = 5 + FindMatchLengthWithLimit( + candidate + 5, ip + 5, (size_t)(ip_end - ip) - 5); + int distance = (int)(base - candidate); /* > 0 */ + size_t insert = (size_t)(base - next_emit); + ip += matched; + assert(0 == memcmp(base, candidate, matched)); + if (PREDICT_TRUE(insert < 6210)) { + EmitInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, + storage_ix, storage); + } else if (ShouldUseUncompressedMode(metablock_start, next_emit, insert, + literal_ratio)) { + EmitUncompressedMetaBlock(metablock_start, base, mlen_storage_ix - 3, + storage_ix, storage); + input_size -= (size_t)(base - input); + input = base; + next_emit = input; + goto next_block; + } else { + EmitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, + storage_ix, storage); + } + EmitLiterals(next_emit, insert, lit_depth, lit_bits, + storage_ix, storage); + if (distance == last_distance) { + BrotliWriteBits(cmd_depth[64], cmd_bits[64], storage_ix, storage); + ++cmd_histo[64]; + } else { + EmitDistance((size_t)distance, cmd_depth, cmd_bits, + cmd_histo, storage_ix, storage); + last_distance = distance; + } + EmitCopyLenLastDistance(matched, cmd_depth, cmd_bits, cmd_histo, + storage_ix, storage); + + next_emit = ip; + if (PREDICT_FALSE(ip >= ip_limit)) { + goto emit_remainder; + } + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some positions + within the last copy. */ + { + uint64_t input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 3); + uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); + uint32_t cur_hash = HashBytesAtOffset(input_bytes, 3, shift); + table[prev_hash] = (int)(ip - base_ip - 3); + prev_hash = HashBytesAtOffset(input_bytes, 1, shift); + table[prev_hash] = (int)(ip - base_ip - 2); + prev_hash = HashBytesAtOffset(input_bytes, 2, shift); + table[prev_hash] = (int)(ip - base_ip - 1); + + candidate = base_ip + table[cur_hash]; + table[cur_hash] = (int)(ip - base_ip); + } + } + + while (IsMatch(ip, candidate)) { + /* We have a 5-byte match at ip, and no need to emit any literal bytes + prior to ip. */ + const uint8_t* base = ip; + size_t matched = 5 + FindMatchLengthWithLimit( + candidate + 5, ip + 5, (size_t)(ip_end - ip) - 5); + ip += matched; + last_distance = (int)(base - candidate); /* > 0 */ + assert(0 == memcmp(base, candidate, matched)); + EmitCopyLen(matched, cmd_depth, cmd_bits, cmd_histo, + storage_ix, storage); + EmitDistance((size_t)last_distance, cmd_depth, cmd_bits, + cmd_histo, storage_ix, storage); + + next_emit = ip; + if (PREDICT_FALSE(ip >= ip_limit)) { + goto emit_remainder; + } + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some positions + within the last copy. */ + { + uint64_t input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 3); + uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); + uint32_t cur_hash = HashBytesAtOffset(input_bytes, 3, shift); + table[prev_hash] = (int)(ip - base_ip - 3); + prev_hash = HashBytesAtOffset(input_bytes, 1, shift); + table[prev_hash] = (int)(ip - base_ip - 2); + prev_hash = HashBytesAtOffset(input_bytes, 2, shift); + table[prev_hash] = (int)(ip - base_ip - 1); + + candidate = base_ip + table[cur_hash]; + table[cur_hash] = (int)(ip - base_ip); + } + } + + next_hash = Hash(++ip, shift); + } + } + + emit_remainder: + assert(next_emit <= ip_end); + input += block_size; + input_size -= block_size; + block_size = BROTLI_MIN(size_t, input_size, kMergeBlockSize); + + /* Decide if we want to continue this meta-block instead of emitting the + last insert-only command. */ + if (input_size > 0 && + total_block_size + block_size <= (1 << 20) && + ShouldMergeBlock(input, block_size, lit_depth)) { + assert(total_block_size > (1 << 16)); + /* Update the size of the current meta-block and continue emitting commands. + We can do this because the current size and the new size both have 5 + nibbles. */ + total_block_size += block_size; + UpdateBits(20, (uint32_t)(total_block_size - 1), mlen_storage_ix, storage); + goto emit_commands; + } + + /* Emit the remaining bytes as literals. */ + if (next_emit < ip_end) { + const size_t insert = (size_t)(ip_end - next_emit); + if (PREDICT_TRUE(insert < 6210)) { + EmitInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, + storage_ix, storage); + EmitLiterals(next_emit, insert, lit_depth, lit_bits, storage_ix, storage); + } else if (ShouldUseUncompressedMode(metablock_start, next_emit, insert, + literal_ratio)) { + EmitUncompressedMetaBlock(metablock_start, ip_end, mlen_storage_ix - 3, + storage_ix, storage); + } else { + EmitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, + storage_ix, storage); + EmitLiterals(next_emit, insert, lit_depth, lit_bits, + storage_ix, storage); + } + } + next_emit = ip_end; + +next_block: + /* If we have more data, write a new meta-block header and prefix codes and + then continue emitting commands. */ + if (input_size > 0) { + metablock_start = input; + block_size = BROTLI_MIN(size_t, input_size, kFirstBlockSize); + total_block_size = block_size; + /* Save the bit position of the MLEN field of the meta-block header, so that + we can update it later if we decide to extend this meta-block. */ + mlen_storage_ix = *storage_ix + 3; + BrotliStoreMetaBlockHeader(block_size, 0, storage_ix, storage); + /* No block splits, no contexts. */ + BrotliWriteBits(13, 0, storage_ix, storage); + literal_ratio = BuildAndStoreLiteralPrefixCode( + m, input, block_size, lit_depth, lit_bits, storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + BuildAndStoreCommandPrefixCode(cmd_histo, cmd_depth, cmd_bits, + storage_ix, storage); + goto emit_commands; + } + + if (is_last) { + BrotliWriteBits(1, 1, storage_ix, storage); /* islast */ + BrotliWriteBits(1, 1, storage_ix, storage); /* isempty */ + *storage_ix = (*storage_ix + 7u) & ~7u; + } else { + /* If this is not the last block, update the command and distance prefix + codes for the next block and store the compressed forms. */ + cmd_code[0] = 0; + *cmd_code_numbits = 0; + BuildAndStoreCommandPrefixCode(cmd_histo, cmd_depth, cmd_bits, + cmd_code_numbits, cmd_code); + } +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/compress_fragment.cc b/thirdparty/brotli/enc/compress_fragment.cc deleted file mode 100644 index 5620112a..00000000 --- a/thirdparty/brotli/enc/compress_fragment.cc +++ /dev/null @@ -1,701 +0,0 @@ -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Function for fast encoding of an input fragment, independently from the input -// history. This function uses one-pass processing: when we find a backward -// match, we immediately emit the corresponding command and literal codes to -// the bit stream. -// -// Adapted from the CompressFragment() function in -// https://github.com/google/snappy/blob/master/snappy.cc - -#include "./compress_fragment.h" - -#include <algorithm> -#include <cstring> - -#include "./brotli_bit_stream.h" -#include "./entropy_encode.h" -#include "./fast_log.h" -#include "./find_match_length.h" -#include "./port.h" -#include "./types.h" -#include "./write_bits.h" - -namespace brotli { - -// kHashMul32 multiplier has these properties: -// * The multiplier must be odd. Otherwise we may lose the highest bit. -// * No long streaks of 1s or 0s. -// * There is no effort to ensure that it is a prime, the oddity is enough -// for this use. -// * The number has been tuned heuristically against compression benchmarks. -static const uint32_t kHashMul32 = 0x1e35a7bd; - -static inline uint32_t Hash(const uint8_t* p, size_t shift) { - const uint64_t h = (BROTLI_UNALIGNED_LOAD64(p) << 24) * kHashMul32; - return static_cast<uint32_t>(h >> shift); -} - -static inline uint32_t HashBytesAtOffset(uint64_t v, int offset, size_t shift) { - assert(offset >= 0); - assert(offset <= 3); - const uint64_t h = ((v >> (8 * offset)) << 24) * kHashMul32; - return static_cast<uint32_t>(h >> shift); -} - -static inline int IsMatch(const uint8_t* p1, const uint8_t* p2) { - return (BROTLI_UNALIGNED_LOAD32(p1) == BROTLI_UNALIGNED_LOAD32(p2) && - p1[4] == p2[4]); -} - -// Builds a literal prefix code into "depths" and "bits" based on the statistics -// of the "input" string and stores it into the bit stream. -// Note that the prefix code here is built from the pre-LZ77 input, therefore -// we can only approximate the statistics of the actual literal stream. -// Moreover, for long inputs we build a histogram from a sample of the input -// and thus have to assign a non-zero depth for each literal. -static void BuildAndStoreLiteralPrefixCode(const uint8_t* input, - const size_t input_size, - uint8_t depths[256], - uint16_t bits[256], - size_t* storage_ix, - uint8_t* storage) { - uint32_t histogram[256] = { 0 }; - size_t histogram_total; - if (input_size < (1 << 15)) { - for (size_t i = 0; i < input_size; ++i) { - ++histogram[input[i]]; - } - histogram_total = input_size; - for (size_t i = 0; i < 256; ++i) { - // We weigh the first 11 samples with weight 3 to account for the - // balancing effect of the LZ77 phase on the histogram. - const uint32_t adjust = 2 * std::min(histogram[i], 11u); - histogram[i] += adjust; - histogram_total += adjust; - } - } else { - static const size_t kSampleRate = 29; - for (size_t i = 0; i < input_size; i += kSampleRate) { - ++histogram[input[i]]; - } - histogram_total = (input_size + kSampleRate - 1) / kSampleRate; - for (size_t i = 0; i < 256; ++i) { - // We add 1 to each population count to avoid 0 bit depths (since this is - // only a sample and we don't know if the symbol appears or not), and we - // weigh the first 11 samples with weight 3 to account for the balancing - // effect of the LZ77 phase on the histogram (more frequent symbols are - // more likely to be in backward references instead as literals). - const uint32_t adjust = 1 + 2 * std::min(histogram[i], 11u); - histogram[i] += adjust; - histogram_total += adjust; - } - } - BuildAndStoreHuffmanTreeFast(histogram, histogram_total, - /* max_bits = */ 8, - depths, bits, storage_ix, storage); -} - -// Builds a command and distance prefix code (each 64 symbols) into "depth" and -// "bits" based on "histogram" and stores it into the bit stream. -static void BuildAndStoreCommandPrefixCode(const uint32_t histogram[128], - uint8_t depth[128], - uint16_t bits[128], - size_t* storage_ix, - uint8_t* storage) { - // Tree size for building a tree over 64 symbols is 2 * 64 + 1. - static const size_t kTreeSize = 129; - HuffmanTree tree[kTreeSize]; - CreateHuffmanTree(histogram, 64, 15, tree, depth); - CreateHuffmanTree(&histogram[64], 64, 14, tree, &depth[64]); - // We have to jump through a few hoopes here in order to compute - // the command bits because the symbols are in a different order than in - // the full alphabet. This looks complicated, but having the symbols - // in this order in the command bits saves a few branches in the Emit* - // functions. - uint8_t cmd_depth[64]; - uint16_t cmd_bits[64]; - memcpy(cmd_depth, depth, 24); - memcpy(cmd_depth + 24, depth + 40, 8); - memcpy(cmd_depth + 32, depth + 24, 8); - memcpy(cmd_depth + 40, depth + 48, 8); - memcpy(cmd_depth + 48, depth + 32, 8); - memcpy(cmd_depth + 56, depth + 56, 8); - ConvertBitDepthsToSymbols(cmd_depth, 64, cmd_bits); - memcpy(bits, cmd_bits, 48); - memcpy(bits + 24, cmd_bits + 32, 16); - memcpy(bits + 32, cmd_bits + 48, 16); - memcpy(bits + 40, cmd_bits + 24, 16); - memcpy(bits + 48, cmd_bits + 40, 16); - memcpy(bits + 56, cmd_bits + 56, 16); - ConvertBitDepthsToSymbols(&depth[64], 64, &bits[64]); - { - // Create the bit length array for the full command alphabet. - uint8_t cmd_depth[704] = { 0 }; - memcpy(cmd_depth, depth, 8); - memcpy(cmd_depth + 64, depth + 8, 8); - memcpy(cmd_depth + 128, depth + 16, 8); - memcpy(cmd_depth + 192, depth + 24, 8); - memcpy(cmd_depth + 384, depth + 32, 8); - for (size_t i = 0; i < 8; ++i) { - cmd_depth[128 + 8 * i] = depth[40 + i]; - cmd_depth[256 + 8 * i] = depth[48 + i]; - cmd_depth[448 + 8 * i] = depth[56 + i]; - } - StoreHuffmanTree(cmd_depth, 704, tree, storage_ix, storage); - } - StoreHuffmanTree(&depth[64], 64, tree, storage_ix, storage); -} - -// REQUIRES: insertlen < 6210 -inline void EmitInsertLen(size_t insertlen, - const uint8_t depth[128], - const uint16_t bits[128], - uint32_t histo[128], - size_t* storage_ix, - uint8_t* storage) { - if (insertlen < 6) { - const size_t code = insertlen + 40; - WriteBits(depth[code], bits[code], storage_ix, storage); - ++histo[code]; - } else if (insertlen < 130) { - insertlen -= 2; - const uint32_t nbits = Log2FloorNonZero(insertlen) - 1u; - const size_t prefix = insertlen >> nbits; - const size_t inscode = (nbits << 1) + prefix + 42; - WriteBits(depth[inscode], bits[inscode], storage_ix, storage); - WriteBits(nbits, insertlen - (prefix << nbits), storage_ix, storage); - ++histo[inscode]; - } else if (insertlen < 2114) { - insertlen -= 66; - const uint32_t nbits = Log2FloorNonZero(insertlen); - const size_t code = nbits + 50; - WriteBits(depth[code], bits[code], storage_ix, storage); - WriteBits(nbits, insertlen - (1 << nbits), storage_ix, storage); - ++histo[code]; - } else { - WriteBits(depth[61], bits[61], storage_ix, storage); - WriteBits(12, insertlen - 2114, storage_ix, storage); - ++histo[21]; - } -} - -inline void EmitLongInsertLen(size_t insertlen, - const uint8_t depth[128], - const uint16_t bits[128], - uint32_t histo[128], - size_t* storage_ix, - uint8_t* storage) { - if (insertlen < 22594) { - WriteBits(depth[62], bits[62], storage_ix, storage); - WriteBits(14, insertlen - 6210, storage_ix, storage); - ++histo[22]; - } else { - WriteBits(depth[63], bits[63], storage_ix, storage); - WriteBits(24, insertlen - 22594, storage_ix, storage); - ++histo[23]; - } -} - -inline void EmitCopyLen(size_t copylen, - const uint8_t depth[128], - const uint16_t bits[128], - uint32_t histo[128], - size_t* storage_ix, - uint8_t* storage) { - if (copylen < 10) { - WriteBits(depth[copylen + 14], bits[copylen + 14], storage_ix, storage); - ++histo[copylen + 14]; - } else if (copylen < 134) { - copylen -= 6; - const uint32_t nbits = Log2FloorNonZero(copylen) - 1u; - const size_t prefix = copylen >> nbits; - const size_t code = (nbits << 1) + prefix + 20; - WriteBits(depth[code], bits[code], storage_ix, storage); - WriteBits(nbits, copylen - (prefix << nbits), storage_ix, storage); - ++histo[code]; - } else if (copylen < 2118) { - copylen -= 70; - const uint32_t nbits = Log2FloorNonZero(copylen); - const size_t code = nbits + 28; - WriteBits(depth[code], bits[code], storage_ix, storage); - WriteBits(nbits, copylen - (1 << nbits), storage_ix, storage); - ++histo[code]; - } else { - WriteBits(depth[39], bits[39], storage_ix, storage); - WriteBits(24, copylen - 2118, storage_ix, storage); - ++histo[47]; - } -} - -inline void EmitCopyLenLastDistance(size_t copylen, - const uint8_t depth[128], - const uint16_t bits[128], - uint32_t histo[128], - size_t* storage_ix, - uint8_t* storage) { - if (copylen < 12) { - WriteBits(depth[copylen - 4], bits[copylen - 4], storage_ix, storage); - ++histo[copylen - 4]; - } else if (copylen < 72) { - copylen -= 8; - const uint32_t nbits = Log2FloorNonZero(copylen) - 1; - const size_t prefix = copylen >> nbits; - const size_t code = (nbits << 1) + prefix + 4; - WriteBits(depth[code], bits[code], storage_ix, storage); - WriteBits(nbits, copylen - (prefix << nbits), storage_ix, storage); - ++histo[code]; - } else if (copylen < 136) { - copylen -= 8; - const size_t code = (copylen >> 5) + 30; - WriteBits(depth[code], bits[code], storage_ix, storage); - WriteBits(5, copylen & 31, storage_ix, storage); - WriteBits(depth[64], bits[64], storage_ix, storage); - ++histo[code]; - ++histo[64]; - } else if (copylen < 2120) { - copylen -= 72; - const uint32_t nbits = Log2FloorNonZero(copylen); - const size_t code = nbits + 28; - WriteBits(depth[code], bits[code], storage_ix, storage); - WriteBits(nbits, copylen - (1 << nbits), storage_ix, storage); - WriteBits(depth[64], bits[64], storage_ix, storage); - ++histo[code]; - ++histo[64]; - } else { - WriteBits(depth[39], bits[39], storage_ix, storage); - WriteBits(24, copylen - 2120, storage_ix, storage); - WriteBits(depth[64], bits[64], storage_ix, storage); - ++histo[47]; - ++histo[64]; - } -} - -inline void EmitDistance(size_t distance, - const uint8_t depth[128], - const uint16_t bits[128], - uint32_t histo[128], - size_t* storage_ix, uint8_t* storage) { - distance += 3; - const uint32_t nbits = Log2FloorNonZero(distance) - 1u; - const size_t prefix = (distance >> nbits) & 1; - const size_t offset = (2 + prefix) << nbits; - const size_t distcode = 2 * (nbits - 1) + prefix + 80; - WriteBits(depth[distcode], bits[distcode], storage_ix, storage); - WriteBits(nbits, distance - offset, storage_ix, storage); - ++histo[distcode]; -} - -inline void EmitLiterals(const uint8_t* input, const size_t len, - const uint8_t depth[256], const uint16_t bits[256], - size_t* storage_ix, uint8_t* storage) { - for (size_t j = 0; j < len; j++) { - const uint8_t lit = input[j]; - WriteBits(depth[lit], bits[lit], storage_ix, storage); - } -} - -// REQUIRES: len <= 1 << 20. -static void StoreMetaBlockHeader( - size_t len, bool is_uncompressed, size_t* storage_ix, uint8_t* storage) { - // ISLAST - WriteBits(1, 0, storage_ix, storage); - if (len <= (1U << 16)) { - // MNIBBLES is 4 - WriteBits(2, 0, storage_ix, storage); - WriteBits(16, len - 1, storage_ix, storage); - } else { - // MNIBBLES is 5 - WriteBits(2, 1, storage_ix, storage); - WriteBits(20, len - 1, storage_ix, storage); - } - // ISUNCOMPRESSED - WriteBits(1, is_uncompressed, storage_ix, storage); -} - -static void UpdateBits(size_t n_bits, - uint32_t bits, - size_t pos, - uint8_t *array) { - while (n_bits > 0) { - size_t byte_pos = pos >> 3; - size_t n_unchanged_bits = pos & 7; - size_t n_changed_bits = std::min(n_bits, 8 - n_unchanged_bits); - size_t total_bits = n_unchanged_bits + n_changed_bits; - uint32_t mask = (~((1 << total_bits) - 1)) | ((1 << n_unchanged_bits) - 1); - uint32_t unchanged_bits = array[byte_pos] & mask; - uint32_t changed_bits = bits & ((1 << n_changed_bits) - 1); - array[byte_pos] = - static_cast<uint8_t>((changed_bits << n_unchanged_bits) | - unchanged_bits); - n_bits -= n_changed_bits; - bits >>= n_changed_bits; - pos += n_changed_bits; - } -} - -static void RewindBitPosition(const size_t new_storage_ix, - size_t* storage_ix, uint8_t* storage) { - const size_t bitpos = new_storage_ix & 7; - const size_t mask = (1u << bitpos) - 1; - storage[new_storage_ix >> 3] &= static_cast<uint8_t>(mask); - *storage_ix = new_storage_ix; -} - -static bool ShouldMergeBlock(const uint8_t* data, size_t len, - const uint8_t* depths) { - size_t histo[256] = { 0 }; - static const size_t kSampleRate = 43; - for (size_t i = 0; i < len; i += kSampleRate) { - ++histo[data[i]]; - } - const size_t total = (len + kSampleRate - 1) / kSampleRate; - double r = (FastLog2(total) + 0.5) * static_cast<double>(total) + 200; - for (size_t i = 0; i < 256; ++i) { - r -= static_cast<double>(histo[i]) * (depths[i] + FastLog2(histo[i])); - } - return r >= 0.0; -} - -inline bool ShouldUseUncompressedMode(const uint8_t* metablock_start, - const uint8_t* next_emit, - const size_t insertlen, - const uint8_t literal_depths[256]) { - const size_t compressed = static_cast<size_t>(next_emit - metablock_start); - if (compressed * 50 > insertlen) { - return false; - } - static const double kAcceptableLossForUncompressibleSpeedup = 0.02; - static const double kMinEntropy = - 8 * (1.0 - kAcceptableLossForUncompressibleSpeedup); - uint32_t sum = 0; - for (int i = 0; i < 256; ++i) { - const uint32_t n = literal_depths[i]; - sum += n << (15 - n); - } - return sum > static_cast<uint32_t>((1 << 15) * kMinEntropy); -} - -static void EmitUncompressedMetaBlock(const uint8_t* begin, const uint8_t* end, - const size_t storage_ix_start, - size_t* storage_ix, uint8_t* storage) { - const size_t len = static_cast<size_t>(end - begin); - RewindBitPosition(storage_ix_start, storage_ix, storage); - StoreMetaBlockHeader(len, 1, storage_ix, storage); - *storage_ix = (*storage_ix + 7u) & ~7u; - memcpy(&storage[*storage_ix >> 3], begin, len); - *storage_ix += len << 3; - storage[*storage_ix >> 3] = 0; -} - -void BrotliCompressFragmentFast(const uint8_t* input, size_t input_size, - bool is_last, - int* table, size_t table_size, - uint8_t cmd_depth[128], uint16_t cmd_bits[128], - size_t* cmd_code_numbits, uint8_t* cmd_code, - size_t* storage_ix, uint8_t* storage) { - if (input_size == 0) { - assert(is_last); - WriteBits(1, 1, storage_ix, storage); // islast - WriteBits(1, 1, storage_ix, storage); // isempty - *storage_ix = (*storage_ix + 7u) & ~7u; - return; - } - - // "next_emit" is a pointer to the first byte that is not covered by a - // previous copy. Bytes between "next_emit" and the start of the next copy or - // the end of the input will be emitted as literal bytes. - const uint8_t* next_emit = input; - // Save the start of the first block for position and distance computations. - const uint8_t* base_ip = input; - - static const size_t kFirstBlockSize = 3 << 15; - static const size_t kMergeBlockSize = 1 << 16; - - const uint8_t* metablock_start = input; - size_t block_size = std::min(input_size, kFirstBlockSize); - size_t total_block_size = block_size; - // Save the bit position of the MLEN field of the meta-block header, so that - // we can update it later if we decide to extend this meta-block. - size_t mlen_storage_ix = *storage_ix + 3; - StoreMetaBlockHeader(block_size, 0, storage_ix, storage); - // No block splits, no contexts. - WriteBits(13, 0, storage_ix, storage); - - uint8_t lit_depth[256] = { 0 }; - uint16_t lit_bits[256] = { 0 }; - BuildAndStoreLiteralPrefixCode(input, block_size, lit_depth, lit_bits, - storage_ix, storage); - - // Store the pre-compressed command and distance prefix codes. - for (size_t i = 0; i + 7 < *cmd_code_numbits; i += 8) { - WriteBits(8, cmd_code[i >> 3], storage_ix, storage); - } - WriteBits(*cmd_code_numbits & 7, cmd_code[*cmd_code_numbits >> 3], - storage_ix, storage); - - emit_commands: - // Initialize the command and distance histograms. We will gather - // statistics of command and distance codes during the processing - // of this block and use it to update the command and distance - // prefix codes for the next block. - uint32_t cmd_histo[128] = { - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, - }; - - // "ip" is the input pointer. - const uint8_t* ip = input; - assert(table_size); - assert(table_size <= (1u << 31)); - assert((table_size & (table_size - 1)) == 0); // table must be power of two - const size_t shift = 64u - Log2FloorNonZero(table_size); - assert(table_size - 1 == static_cast<size_t>( - MAKE_UINT64_T(0xFFFFFFFF, 0xFFFFFF) >> shift)); - const uint8_t* ip_end = input + block_size; - - int last_distance = -1; - const size_t kInputMarginBytes = 16; - const size_t kMinMatchLen = 5; - if (PREDICT_TRUE(block_size >= kInputMarginBytes)) { - // For the last block, we need to keep a 16 bytes margin so that we can be - // sure that all distances are at most window size - 16. - // For all other blocks, we only need to keep a margin of 5 bytes so that - // we don't go over the block size with a copy. - const size_t len_limit = std::min(block_size - kMinMatchLen, - input_size - kInputMarginBytes); - const uint8_t* ip_limit = input + len_limit; - - for (uint32_t next_hash = Hash(++ip, shift); ; ) { - assert(next_emit < ip); - // Step 1: Scan forward in the input looking for a 5-byte-long match. - // If we get close to exhausting the input then goto emit_remainder. - // - // Heuristic match skipping: If 32 bytes are scanned with no matches - // found, start looking only at every other byte. If 32 more bytes are - // scanned, look at every third byte, etc.. When a match is found, - // immediately go back to looking at every byte. This is a small loss - // (~5% performance, ~0.1% density) for compressible data due to more - // bookkeeping, but for non-compressible data (such as JPEG) it's a huge - // win since the compressor quickly "realizes" the data is incompressible - // and doesn't bother looking for matches everywhere. - // - // The "skip" variable keeps track of how many bytes there are since the - // last match; dividing it by 32 (ie. right-shifting by five) gives the - // number of bytes to move ahead for each iteration. - uint32_t skip = 32; - - const uint8_t* next_ip = ip; - const uint8_t* candidate; - do { - ip = next_ip; - uint32_t hash = next_hash; - assert(hash == Hash(ip, shift)); - uint32_t bytes_between_hash_lookups = skip++ >> 5; - next_ip = ip + bytes_between_hash_lookups; - if (PREDICT_FALSE(next_ip > ip_limit)) { - goto emit_remainder; - } - next_hash = Hash(next_ip, shift); - candidate = ip - last_distance; - if (IsMatch(ip, candidate)) { - if (PREDICT_TRUE(candidate < ip)) { - table[hash] = static_cast<int>(ip - base_ip); - break; - } - } - candidate = base_ip + table[hash]; - assert(candidate >= base_ip); - assert(candidate < ip); - - table[hash] = static_cast<int>(ip - base_ip); - } while (PREDICT_TRUE(!IsMatch(ip, candidate))); - - // Step 2: Emit the found match together with the literal bytes from - // "next_emit" to the bit stream, and then see if we can find a next macth - // immediately afterwards. Repeat until we find no match for the input - // without emitting some literal bytes. - uint64_t input_bytes; - - { - // We have a 5-byte match at ip, and we need to emit bytes in - // [next_emit, ip). - const uint8_t* base = ip; - size_t matched = 5 + FindMatchLengthWithLimit( - candidate + 5, ip + 5, static_cast<size_t>(ip_end - ip) - 5); - ip += matched; - int distance = static_cast<int>(base - candidate); /* > 0 */ - size_t insert = static_cast<size_t>(base - next_emit); - assert(0 == memcmp(base, candidate, matched)); - if (PREDICT_TRUE(insert < 6210)) { - EmitInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, - storage_ix, storage); - } else if (ShouldUseUncompressedMode(metablock_start, next_emit, insert, - lit_depth)) { - EmitUncompressedMetaBlock(metablock_start, base, mlen_storage_ix - 3, - storage_ix, storage); - input_size -= static_cast<size_t>(base - input); - input = base; - next_emit = input; - goto next_block; - } else { - EmitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, - storage_ix, storage); - } - EmitLiterals(next_emit, insert, lit_depth, lit_bits, - storage_ix, storage); - if (distance == last_distance) { - WriteBits(cmd_depth[64], cmd_bits[64], storage_ix, storage); - ++cmd_histo[64]; - } else { - EmitDistance(static_cast<size_t>(distance), cmd_depth, cmd_bits, - cmd_histo, storage_ix, storage); - last_distance = distance; - } - EmitCopyLenLastDistance(matched, cmd_depth, cmd_bits, cmd_histo, - storage_ix, storage); - - next_emit = ip; - if (PREDICT_FALSE(ip >= ip_limit)) { - goto emit_remainder; - } - // We could immediately start working at ip now, but to improve - // compression we first update "table" with the hashes of some positions - // within the last copy. - input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 3); - uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 3); - prev_hash = HashBytesAtOffset(input_bytes, 1, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 2); - prev_hash = HashBytesAtOffset(input_bytes, 2, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 1); - - uint32_t cur_hash = HashBytesAtOffset(input_bytes, 3, shift); - candidate = base_ip + table[cur_hash]; - table[cur_hash] = static_cast<int>(ip - base_ip); - } - - while (IsMatch(ip, candidate)) { - // We have a 5-byte match at ip, and no need to emit any literal bytes - // prior to ip. - const uint8_t* base = ip; - size_t matched = 5 + FindMatchLengthWithLimit( - candidate + 5, ip + 5, static_cast<size_t>(ip_end - ip) - 5); - ip += matched; - last_distance = static_cast<int>(base - candidate); /* > 0 */ - assert(0 == memcmp(base, candidate, matched)); - EmitCopyLen(matched, cmd_depth, cmd_bits, cmd_histo, - storage_ix, storage); - EmitDistance(static_cast<size_t>(last_distance), cmd_depth, cmd_bits, - cmd_histo, storage_ix, storage); - - next_emit = ip; - if (PREDICT_FALSE(ip >= ip_limit)) { - goto emit_remainder; - } - // We could immediately start working at ip now, but to improve - // compression we first update "table" with the hashes of some positions - // within the last copy. - input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 3); - uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 3); - prev_hash = HashBytesAtOffset(input_bytes, 1, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 2); - prev_hash = HashBytesAtOffset(input_bytes, 2, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 1); - - uint32_t cur_hash = HashBytesAtOffset(input_bytes, 3, shift); - candidate = base_ip + table[cur_hash]; - table[cur_hash] = static_cast<int>(ip - base_ip); - } - - next_hash = Hash(++ip, shift); - } - } - - emit_remainder: - assert(next_emit <= ip_end); - input += block_size; - input_size -= block_size; - block_size = std::min(input_size, kMergeBlockSize); - - // Decide if we want to continue this meta-block instead of emitting the - // last insert-only command. - if (input_size > 0 && - total_block_size + block_size <= (1 << 20) && - ShouldMergeBlock(input, block_size, lit_depth)) { - assert(total_block_size > (1 << 16)); - // Update the size of the current meta-block and continue emitting commands. - // We can do this because the current size and the new size both have 5 - // nibbles. - total_block_size += block_size; - UpdateBits(20, static_cast<uint32_t>(total_block_size - 1), - mlen_storage_ix, storage); - goto emit_commands; - } - - // Emit the remaining bytes as literals. - if (next_emit < ip_end) { - const size_t insert = static_cast<size_t>(ip_end - next_emit); - if (PREDICT_TRUE(insert < 6210)) { - EmitInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, - storage_ix, storage); - EmitLiterals(next_emit, insert, lit_depth, lit_bits, storage_ix, storage); - } else if (ShouldUseUncompressedMode(metablock_start, next_emit, insert, - lit_depth)) { - EmitUncompressedMetaBlock(metablock_start, ip_end, mlen_storage_ix - 3, - storage_ix, storage); - } else { - EmitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo, - storage_ix, storage); - EmitLiterals(next_emit, insert, lit_depth, lit_bits, - storage_ix, storage); - } - } - next_emit = ip_end; - -next_block: - // If we have more data, write a new meta-block header and prefix codes and - // then continue emitting commands. - if (input_size > 0) { - metablock_start = input; - block_size = std::min(input_size, kFirstBlockSize); - total_block_size = block_size; - // Save the bit position of the MLEN field of the meta-block header, so that - // we can update it later if we decide to extend this meta-block. - mlen_storage_ix = *storage_ix + 3; - StoreMetaBlockHeader(block_size, 0, storage_ix, storage); - // No block splits, no contexts. - WriteBits(13, 0, storage_ix, storage); - memset(lit_depth, 0, sizeof(lit_depth)); - memset(lit_bits, 0, sizeof(lit_bits)); - BuildAndStoreLiteralPrefixCode(input, block_size, lit_depth, lit_bits, - storage_ix, storage); - BuildAndStoreCommandPrefixCode(cmd_histo, cmd_depth, cmd_bits, - storage_ix, storage); - goto emit_commands; - } - - if (is_last) { - WriteBits(1, 1, storage_ix, storage); // islast - WriteBits(1, 1, storage_ix, storage); // isempty - *storage_ix = (*storage_ix + 7u) & ~7u; - } else { - // If this is not the last block, update the command and distance prefix - // codes for the next block and store the compressed forms. - cmd_code[0] = 0; - *cmd_code_numbits = 0; - BuildAndStoreCommandPrefixCode(cmd_histo, cmd_depth, cmd_bits, - cmd_code_numbits, cmd_code); - } -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/compress_fragment.h b/thirdparty/brotli/enc/compress_fragment.h index 7ce05fdf..a99e9395 100644 --- a/thirdparty/brotli/enc/compress_fragment.h +++ b/thirdparty/brotli/enc/compress_fragment.h @@ -4,44 +4,55 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Function for fast encoding of an input fragment, independently from the input -// history. This function uses one-pass processing: when we find a backward -// match, we immediately emit the corresponding command and literal codes to -// the bit stream. +/* Function for fast encoding of an input fragment, independently from the input + history. This function uses one-pass processing: when we find a backward + match, we immediately emit the corresponding command and literal codes to + the bit stream. */ #ifndef BROTLI_ENC_COMPRESS_FRAGMENT_H_ #define BROTLI_ENC_COMPRESS_FRAGMENT_H_ -#include "./types.h" - -namespace brotli { - -// Compresses "input" string to the "*storage" buffer as one or more complete -// meta-blocks, and updates the "*storage_ix" bit position. -// -// If "is_last" is true, emits an additional empty last meta-block. -// -// "cmd_depth" and "cmd_bits" contain the command and distance prefix codes -// (see comment in encode.h) used for the encoding of this input fragment. -// If "is_last" is false, they are updated to reflect the statistics -// of this input fragment, to be used for the encoding of the next fragment. -// -// "*cmd_code_numbits" is the number of bits of the compressed representation -// of the command and distance prefix codes, and "cmd_code" is an array of -// at least "(*cmd_code_numbits + 7) >> 3" size that contains the compressed -// command and distance prefix codes. If "is_last" is false, these are also -// updated to represent the updated "cmd_depth" and "cmd_bits". -// -// REQUIRES: "input_size" is greater than zero, or "is_last" is true. -// REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. -// REQUIRES: "table_size" is a power of two -void BrotliCompressFragmentFast(const uint8_t* input, size_t input_size, - bool is_last, - int* table, size_t table_size, - uint8_t cmd_depth[128], uint16_t cmd_bits[128], - size_t* cmd_code_numbits, uint8_t* cmd_code, - size_t* storage_ix, uint8_t* storage); - -} // namespace brotli - -#endif // BROTLI_ENC_COMPRESS_FRAGMENT_H_ +#include "../common/types.h" +#include "./memory.h" +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* Compresses "input" string to the "*storage" buffer as one or more complete + meta-blocks, and updates the "*storage_ix" bit position. + + If "is_last" is 1, emits an additional empty last meta-block. + + "cmd_depth" and "cmd_bits" contain the command and distance prefix codes + (see comment in encode.h) used for the encoding of this input fragment. + If "is_last" is 0, they are updated to reflect the statistics + of this input fragment, to be used for the encoding of the next fragment. + + "*cmd_code_numbits" is the number of bits of the compressed representation + of the command and distance prefix codes, and "cmd_code" is an array of + at least "(*cmd_code_numbits + 7) >> 3" size that contains the compressed + command and distance prefix codes. If "is_last" is 0, these are also + updated to represent the updated "cmd_depth" and "cmd_bits". + + REQUIRES: "input_size" is greater than zero, or "is_last" is 1. + REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. + REQUIRES: "table_size" is a power of two */ +BROTLI_INTERNAL void BrotliCompressFragmentFast(MemoryManager* m, + const uint8_t* input, + size_t input_size, + BROTLI_BOOL is_last, + int* table, size_t table_size, + uint8_t cmd_depth[128], + uint16_t cmd_bits[128], + size_t* cmd_code_numbits, + uint8_t* cmd_code, + size_t* storage_ix, + uint8_t* storage); + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_COMPRESS_FRAGMENT_H_ */ diff --git a/thirdparty/brotli/enc/compress_fragment_two_pass.c b/thirdparty/brotli/enc/compress_fragment_two_pass.c new file mode 100644 index 00000000..93eac149 --- /dev/null +++ b/thirdparty/brotli/enc/compress_fragment_two_pass.c @@ -0,0 +1,557 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Function for fast encoding of an input fragment, independently from the input + history. This function uses two-pass processing: in the first pass we save + the found backward matches and literal bytes into a buffer, and in the + second pass we emit them into the bit stream using prefix codes built based + on the actual command and literal byte histograms. */ + +#include "./compress_fragment_two_pass.h" + +#include <string.h> /* memcmp, memcpy, memset */ + +#include "../common/types.h" +#include "./bit_cost.h" +#include "./brotli_bit_stream.h" +#include "./entropy_encode.h" +#include "./fast_log.h" +#include "./find_match_length.h" +#include "./memory.h" +#include "./port.h" +#include "./write_bits.h" + + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* kHashMul32 multiplier has these properties: + * The multiplier must be odd. Otherwise we may lose the highest bit. + * No long streaks of 1s or 0s. + * There is no effort to ensure that it is a prime, the oddity is enough + for this use. + * The number has been tuned heuristically against compression benchmarks. */ +static const uint32_t kHashMul32 = 0x1e35a7bd; + +static BROTLI_INLINE uint32_t Hash(const uint8_t* p, size_t shift) { + const uint64_t h = (BROTLI_UNALIGNED_LOAD64(p) << 16) * kHashMul32; + return (uint32_t)(h >> shift); +} + +static BROTLI_INLINE uint32_t HashBytesAtOffset( + uint64_t v, int offset, size_t shift) { + assert(offset >= 0); + assert(offset <= 2); + { + const uint64_t h = ((v >> (8 * offset)) << 16) * kHashMul32; + return (uint32_t)(h >> shift); + } +} + +static BROTLI_INLINE BROTLI_BOOL IsMatch(const uint8_t* p1, const uint8_t* p2) { + return TO_BROTLI_BOOL( + BROTLI_UNALIGNED_LOAD32(p1) == BROTLI_UNALIGNED_LOAD32(p2) && + p1[4] == p2[4] && + p1[5] == p2[5]); +} + +/* Builds a command and distance prefix code (each 64 symbols) into "depth" and + "bits" based on "histogram" and stores it into the bit stream. */ +static void BuildAndStoreCommandPrefixCode( + const uint32_t histogram[128], + uint8_t depth[128], uint16_t bits[128], + size_t* storage_ix, uint8_t* storage) { + /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ + HuffmanTree tree[129]; + uint8_t cmd_depth[BROTLI_NUM_COMMAND_SYMBOLS] = { 0 }; + uint16_t cmd_bits[64]; + BrotliCreateHuffmanTree(histogram, 64, 15, tree, depth); + BrotliCreateHuffmanTree(&histogram[64], 64, 14, tree, &depth[64]); + /* We have to jump through a few hoopes here in order to compute + the command bits because the symbols are in a different order than in + the full alphabet. This looks complicated, but having the symbols + in this order in the command bits saves a few branches in the Emit* + functions. */ + memcpy(cmd_depth, depth + 24, 24); + memcpy(cmd_depth + 24, depth, 8); + memcpy(cmd_depth + 32, depth + 48, 8); + memcpy(cmd_depth + 40, depth + 8, 8); + memcpy(cmd_depth + 48, depth + 56, 8); + memcpy(cmd_depth + 56, depth + 16, 8); + BrotliConvertBitDepthsToSymbols(cmd_depth, 64, cmd_bits); + memcpy(bits, cmd_bits + 24, 16); + memcpy(bits + 8, cmd_bits + 40, 16); + memcpy(bits + 16, cmd_bits + 56, 16); + memcpy(bits + 24, cmd_bits, 48); + memcpy(bits + 48, cmd_bits + 32, 16); + memcpy(bits + 56, cmd_bits + 48, 16); + BrotliConvertBitDepthsToSymbols(&depth[64], 64, &bits[64]); + { + /* Create the bit length array for the full command alphabet. */ + size_t i; + memset(cmd_depth, 0, 64); /* only 64 first values were used */ + memcpy(cmd_depth, depth + 24, 8); + memcpy(cmd_depth + 64, depth + 32, 8); + memcpy(cmd_depth + 128, depth + 40, 8); + memcpy(cmd_depth + 192, depth + 48, 8); + memcpy(cmd_depth + 384, depth + 56, 8); + for (i = 0; i < 8; ++i) { + cmd_depth[128 + 8 * i] = depth[i]; + cmd_depth[256 + 8 * i] = depth[8 + i]; + cmd_depth[448 + 8 * i] = depth[16 + i]; + } + BrotliStoreHuffmanTree( + cmd_depth, BROTLI_NUM_COMMAND_SYMBOLS, tree, storage_ix, storage); + } + BrotliStoreHuffmanTree(&depth[64], 64, tree, storage_ix, storage); +} + +static BROTLI_INLINE void EmitInsertLen( + uint32_t insertlen, uint32_t** commands) { + if (insertlen < 6) { + **commands = insertlen; + } else if (insertlen < 130) { + const uint32_t tail = insertlen - 2; + const uint32_t nbits = Log2FloorNonZero(tail) - 1u; + const uint32_t prefix = tail >> nbits; + const uint32_t inscode = (nbits << 1) + prefix + 2; + const uint32_t extra = tail - (prefix << nbits); + **commands = inscode | (extra << 8); + } else if (insertlen < 2114) { + const uint32_t tail = insertlen - 66; + const uint32_t nbits = Log2FloorNonZero(tail); + const uint32_t code = nbits + 10; + const uint32_t extra = tail - (1u << nbits); + **commands = code | (extra << 8); + } else if (insertlen < 6210) { + const uint32_t extra = insertlen - 2114; + **commands = 21 | (extra << 8); + } else if (insertlen < 22594) { + const uint32_t extra = insertlen - 6210; + **commands = 22 | (extra << 8); + } else { + const uint32_t extra = insertlen - 22594; + **commands = 23 | (extra << 8); + } + ++(*commands); +} + +static BROTLI_INLINE void EmitCopyLen(size_t copylen, uint32_t** commands) { + if (copylen < 10) { + **commands = (uint32_t)(copylen + 38); + } else if (copylen < 134) { + const size_t tail = copylen - 6; + const size_t nbits = Log2FloorNonZero(tail) - 1; + const size_t prefix = tail >> nbits; + const size_t code = (nbits << 1) + prefix + 44; + const size_t extra = tail - (prefix << nbits); + **commands = (uint32_t)(code | (extra << 8)); + } else if (copylen < 2118) { + const size_t tail = copylen - 70; + const size_t nbits = Log2FloorNonZero(tail); + const size_t code = nbits + 52; + const size_t extra = tail - ((size_t)1 << nbits); + **commands = (uint32_t)(code | (extra << 8)); + } else { + const size_t extra = copylen - 2118; + **commands = (uint32_t)(63 | (extra << 8)); + } + ++(*commands); +} + +static BROTLI_INLINE void EmitCopyLenLastDistance( + size_t copylen, uint32_t** commands) { + if (copylen < 12) { + **commands = (uint32_t)(copylen + 20); + ++(*commands); + } else if (copylen < 72) { + const size_t tail = copylen - 8; + const size_t nbits = Log2FloorNonZero(tail) - 1; + const size_t prefix = tail >> nbits; + const size_t code = (nbits << 1) + prefix + 28; + const size_t extra = tail - (prefix << nbits); + **commands = (uint32_t)(code | (extra << 8)); + ++(*commands); + } else if (copylen < 136) { + const size_t tail = copylen - 8; + const size_t code = (tail >> 5) + 54; + const size_t extra = tail & 31; + **commands = (uint32_t)(code | (extra << 8)); + ++(*commands); + **commands = 64; + ++(*commands); + } else if (copylen < 2120) { + const size_t tail = copylen - 72; + const size_t nbits = Log2FloorNonZero(tail); + const size_t code = nbits + 52; + const size_t extra = tail - ((size_t)1 << nbits); + **commands = (uint32_t)(code | (extra << 8)); + ++(*commands); + **commands = 64; + ++(*commands); + } else { + const size_t extra = copylen - 2120; + **commands = (uint32_t)(63 | (extra << 8)); + ++(*commands); + **commands = 64; + ++(*commands); + } +} + +static BROTLI_INLINE void EmitDistance(uint32_t distance, uint32_t** commands) { + uint32_t d = distance + 3; + uint32_t nbits = Log2FloorNonZero(d) - 1; + const uint32_t prefix = (d >> nbits) & 1; + const uint32_t offset = (2 + prefix) << nbits; + const uint32_t distcode = 2 * (nbits - 1) + prefix + 80; + uint32_t extra = d - offset; + **commands = distcode | (extra << 8); + ++(*commands); +} + +/* REQUIRES: len <= 1 << 20. */ +static void BrotliStoreMetaBlockHeader( + size_t len, BROTLI_BOOL is_uncompressed, size_t* storage_ix, + uint8_t* storage) { + /* ISLAST */ + BrotliWriteBits(1, 0, storage_ix, storage); + if (len <= (1U << 16)) { + /* MNIBBLES is 4 */ + BrotliWriteBits(2, 0, storage_ix, storage); + BrotliWriteBits(16, len - 1, storage_ix, storage); + } else { + /* MNIBBLES is 5 */ + BrotliWriteBits(2, 1, storage_ix, storage); + BrotliWriteBits(20, len - 1, storage_ix, storage); + } + /* ISUNCOMPRESSED */ + BrotliWriteBits(1, (uint64_t)is_uncompressed, storage_ix, storage); +} + +static void CreateCommands(const uint8_t* input, size_t block_size, + size_t input_size, const uint8_t* base_ip, int* table, size_t table_size, + uint8_t** literals, uint32_t** commands) { + /* "ip" is the input pointer. */ + const uint8_t* ip = input; + const size_t shift = 64u - Log2FloorNonZero(table_size); + const uint8_t* ip_end = input + block_size; + /* "next_emit" is a pointer to the first byte that is not covered by a + previous copy. Bytes between "next_emit" and the start of the next copy or + the end of the input will be emitted as literal bytes. */ + const uint8_t* next_emit = input; + + int last_distance = -1; + const size_t kInputMarginBytes = 16; + const size_t kMinMatchLen = 6; + + assert(table_size); + assert(table_size <= (1u << 31)); + /* table must be power of two */ + assert((table_size & (table_size - 1)) == 0); + assert(table_size - 1 == + (size_t)(MAKE_UINT64_T(0xFFFFFFFF, 0xFFFFFF) >> shift)); + + if (PREDICT_TRUE(block_size >= kInputMarginBytes)) { + /* For the last block, we need to keep a 16 bytes margin so that we can be + sure that all distances are at most window size - 16. + For all other blocks, we only need to keep a margin of 5 bytes so that + we don't go over the block size with a copy. */ + const size_t len_limit = BROTLI_MIN(size_t, block_size - kMinMatchLen, + input_size - kInputMarginBytes); + const uint8_t* ip_limit = input + len_limit; + + uint32_t next_hash; + for (next_hash = Hash(++ip, shift); ; ) { + /* Step 1: Scan forward in the input looking for a 6-byte-long match. + If we get close to exhausting the input then goto emit_remainder. + + Heuristic match skipping: If 32 bytes are scanned with no matches + found, start looking only at every other byte. If 32 more bytes are + scanned, look at every third byte, etc.. When a match is found, + immediately go back to looking at every byte. This is a small loss + (~5% performance, ~0.1% density) for compressible data due to more + bookkeeping, but for non-compressible data (such as JPEG) it's a huge + win since the compressor quickly "realizes" the data is incompressible + and doesn't bother looking for matches everywhere. + + The "skip" variable keeps track of how many bytes there are since the + last match; dividing it by 32 (ie. right-shifting by five) gives the + number of bytes to move ahead for each iteration. */ + uint32_t skip = 32; + + const uint8_t* next_ip = ip; + const uint8_t* candidate; + + assert(next_emit < ip); + + do { + uint32_t hash = next_hash; + uint32_t bytes_between_hash_lookups = skip++ >> 5; + ip = next_ip; + assert(hash == Hash(ip, shift)); + next_ip = ip + bytes_between_hash_lookups; + if (PREDICT_FALSE(next_ip > ip_limit)) { + goto emit_remainder; + } + next_hash = Hash(next_ip, shift); + candidate = ip - last_distance; + if (IsMatch(ip, candidate)) { + if (PREDICT_TRUE(candidate < ip)) { + table[hash] = (int)(ip - base_ip); + break; + } + } + candidate = base_ip + table[hash]; + assert(candidate >= base_ip); + assert(candidate < ip); + + table[hash] = (int)(ip - base_ip); + } while (PREDICT_TRUE(!IsMatch(ip, candidate))); + + /* Step 2: Emit the found match together with the literal bytes from + "next_emit", and then see if we can find a next macth immediately + afterwards. Repeat until we find no match for the input + without emitting some literal bytes. */ + + { + /* We have a 6-byte match at ip, and we need to emit bytes in + [next_emit, ip). */ + const uint8_t* base = ip; + size_t matched = 6 + FindMatchLengthWithLimit( + candidate + 6, ip + 6, (size_t)(ip_end - ip) - 6); + int distance = (int)(base - candidate); /* > 0 */ + int insert = (int)(base - next_emit); + ip += matched; + assert(0 == memcmp(base, candidate, matched)); + EmitInsertLen((uint32_t)insert, commands); + memcpy(*literals, next_emit, (size_t)insert); + *literals += insert; + if (distance == last_distance) { + **commands = 64; + ++(*commands); + } else { + EmitDistance((uint32_t)distance, commands); + last_distance = distance; + } + EmitCopyLenLastDistance(matched, commands); + + next_emit = ip; + if (PREDICT_FALSE(ip >= ip_limit)) { + goto emit_remainder; + } + { + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some + positions within the last copy. */ + uint64_t input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 5); + uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); + uint32_t cur_hash; + table[prev_hash] = (int)(ip - base_ip - 5); + prev_hash = HashBytesAtOffset(input_bytes, 1, shift); + table[prev_hash] = (int)(ip - base_ip - 4); + prev_hash = HashBytesAtOffset(input_bytes, 2, shift); + table[prev_hash] = (int)(ip - base_ip - 3); + input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 2); + cur_hash = HashBytesAtOffset(input_bytes, 2, shift); + prev_hash = HashBytesAtOffset(input_bytes, 0, shift); + table[prev_hash] = (int)(ip - base_ip - 2); + prev_hash = HashBytesAtOffset(input_bytes, 1, shift); + table[prev_hash] = (int)(ip - base_ip - 1); + + candidate = base_ip + table[cur_hash]; + table[cur_hash] = (int)(ip - base_ip); + } + } + + while (IsMatch(ip, candidate)) { + /* We have a 6-byte match at ip, and no need to emit any + literal bytes prior to ip. */ + const uint8_t* base = ip; + size_t matched = 6 + FindMatchLengthWithLimit( + candidate + 6, ip + 6, (size_t)(ip_end - ip) - 6); + ip += matched; + last_distance = (int)(base - candidate); /* > 0 */ + assert(0 == memcmp(base, candidate, matched)); + EmitCopyLen(matched, commands); + EmitDistance((uint32_t)last_distance, commands); + + next_emit = ip; + if (PREDICT_FALSE(ip >= ip_limit)) { + goto emit_remainder; + } + { + /* We could immediately start working at ip now, but to improve + compression we first update "table" with the hashes of some + positions within the last copy. */ + uint64_t input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 5); + uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); + uint32_t cur_hash; + table[prev_hash] = (int)(ip - base_ip - 5); + prev_hash = HashBytesAtOffset(input_bytes, 1, shift); + table[prev_hash] = (int)(ip - base_ip - 4); + prev_hash = HashBytesAtOffset(input_bytes, 2, shift); + table[prev_hash] = (int)(ip - base_ip - 3); + input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 2); + cur_hash = HashBytesAtOffset(input_bytes, 2, shift); + prev_hash = HashBytesAtOffset(input_bytes, 0, shift); + table[prev_hash] = (int)(ip - base_ip - 2); + prev_hash = HashBytesAtOffset(input_bytes, 1, shift); + table[prev_hash] = (int)(ip - base_ip - 1); + + candidate = base_ip + table[cur_hash]; + table[cur_hash] = (int)(ip - base_ip); + } + } + + next_hash = Hash(++ip, shift); + } + } + +emit_remainder: + assert(next_emit <= ip_end); + /* Emit the remaining bytes as literals. */ + if (next_emit < ip_end) { + const uint32_t insert = (uint32_t)(ip_end - next_emit); + EmitInsertLen(insert, commands); + memcpy(*literals, next_emit, insert); + *literals += insert; + } +} + +static void StoreCommands(MemoryManager* m, + const uint8_t* literals, const size_t num_literals, + const uint32_t* commands, const size_t num_commands, + size_t* storage_ix, uint8_t* storage) { + static const uint32_t kNumExtraBits[128] = { + 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 14, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, + 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, + 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, + }; + static const uint32_t kInsertOffset[24] = { + 0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26, 34, 50, 66, 98, 130, 194, 322, 578, + 1090, 2114, 6210, 22594, + }; + + uint8_t lit_depths[256]; + uint16_t lit_bits[256]; + uint32_t lit_histo[256] = { 0 }; + uint8_t cmd_depths[128] = { 0 }; + uint16_t cmd_bits[128] = { 0 }; + uint32_t cmd_histo[128] = { 0 }; + size_t i; + for (i = 0; i < num_literals; ++i) { + ++lit_histo[literals[i]]; + } + BrotliBuildAndStoreHuffmanTreeFast(m, lit_histo, num_literals, + /* max_bits = */ 8, + lit_depths, lit_bits, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + + for (i = 0; i < num_commands; ++i) { + ++cmd_histo[commands[i] & 0xff]; + } + cmd_histo[1] += 1; + cmd_histo[2] += 1; + cmd_histo[64] += 1; + cmd_histo[84] += 1; + BuildAndStoreCommandPrefixCode(cmd_histo, cmd_depths, cmd_bits, + storage_ix, storage); + + for (i = 0; i < num_commands; ++i) { + const uint32_t cmd = commands[i]; + const uint32_t code = cmd & 0xff; + const uint32_t extra = cmd >> 8; + BrotliWriteBits(cmd_depths[code], cmd_bits[code], storage_ix, storage); + BrotliWriteBits(kNumExtraBits[code], extra, storage_ix, storage); + if (code < 24) { + const uint32_t insert = kInsertOffset[code] + extra; + uint32_t j; + for (j = 0; j < insert; ++j) { + const uint8_t lit = *literals; + BrotliWriteBits(lit_depths[lit], lit_bits[lit], storage_ix, storage); + ++literals; + } + } + } +} + +/* Acceptable loss for uncompressible speedup is 2% */ +#define MIN_RATIO 0.98 +#define SAMPLE_RATE 43 + +static BROTLI_BOOL ShouldCompress( + const uint8_t* input, size_t input_size, size_t num_literals) { + double corpus_size = (double)input_size; + if (num_literals < MIN_RATIO * corpus_size) { + return BROTLI_TRUE; + } else { + uint32_t literal_histo[256] = { 0 }; + const double max_total_bit_cost = corpus_size * 8 * MIN_RATIO / SAMPLE_RATE; + size_t i; + for (i = 0; i < input_size; i += SAMPLE_RATE) { + ++literal_histo[input[i]]; + } + return TO_BROTLI_BOOL(BitsEntropy(literal_histo, 256) < max_total_bit_cost); + } +} + +void BrotliCompressFragmentTwoPass(MemoryManager* m, + const uint8_t* input, size_t input_size, + BROTLI_BOOL is_last, + uint32_t* command_buf, uint8_t* literal_buf, + int* table, size_t table_size, + size_t* storage_ix, uint8_t* storage) { + /* Save the start of the first block for position and distance computations. + */ + const uint8_t* base_ip = input; + + while (input_size > 0) { + size_t block_size = + BROTLI_MIN(size_t, input_size, kCompressFragmentTwoPassBlockSize); + uint32_t* commands = command_buf; + uint8_t* literals = literal_buf; + size_t num_literals; + CreateCommands(input, block_size, input_size, base_ip, table, table_size, + &literals, &commands); + num_literals = (size_t)(literals - literal_buf); + if (ShouldCompress(input, block_size, num_literals)) { + const size_t num_commands = (size_t)(commands - command_buf); + BrotliStoreMetaBlockHeader(block_size, 0, storage_ix, storage); + /* No block splits, no contexts. */ + BrotliWriteBits(13, 0, storage_ix, storage); + StoreCommands(m, literal_buf, num_literals, command_buf, num_commands, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + } else { + /* Since we did not find many backward references and the entropy of + the data is close to 8 bits, we can simply emit an uncompressed block. + This makes compression speed of uncompressible data about 3x faster. */ + BrotliStoreMetaBlockHeader(block_size, 1, storage_ix, storage); + *storage_ix = (*storage_ix + 7u) & ~7u; + memcpy(&storage[*storage_ix >> 3], input, block_size); + *storage_ix += block_size << 3; + storage[*storage_ix >> 3] = 0; + } + input += block_size; + input_size -= block_size; + } + + if (is_last) { + BrotliWriteBits(1, 1, storage_ix, storage); /* islast */ + BrotliWriteBits(1, 1, storage_ix, storage); /* isempty */ + *storage_ix = (*storage_ix + 7u) & ~7u; + } +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/compress_fragment_two_pass.cc b/thirdparty/brotli/enc/compress_fragment_two_pass.cc deleted file mode 100644 index a032740d..00000000 --- a/thirdparty/brotli/enc/compress_fragment_two_pass.cc +++ /dev/null @@ -1,524 +0,0 @@ -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Function for fast encoding of an input fragment, independently from the input -// history. This function uses two-pass processing: in the first pass we save -// the found backward matches and literal bytes into a buffer, and in the -// second pass we emit them into the bit stream using prefix codes built based -// on the actual command and literal byte histograms. - -#include "./compress_fragment_two_pass.h" - -#include <algorithm> - -#include "./brotli_bit_stream.h" -#include "./bit_cost.h" -#include "./entropy_encode.h" -#include "./fast_log.h" -#include "./find_match_length.h" -#include "./port.h" -#include "./types.h" -#include "./write_bits.h" - -namespace brotli { - -// kHashMul32 multiplier has these properties: -// * The multiplier must be odd. Otherwise we may lose the highest bit. -// * No long streaks of 1s or 0s. -// * There is no effort to ensure that it is a prime, the oddity is enough -// for this use. -// * The number has been tuned heuristically against compression benchmarks. -static const uint32_t kHashMul32 = 0x1e35a7bd; - -static inline uint32_t Hash(const uint8_t* p, size_t shift) { - const uint64_t h = (BROTLI_UNALIGNED_LOAD64(p) << 16) * kHashMul32; - return static_cast<uint32_t>(h >> shift); -} - -static inline uint32_t HashBytesAtOffset(uint64_t v, int offset, size_t shift) { - assert(offset >= 0); - assert(offset <= 2); - const uint64_t h = ((v >> (8 * offset)) << 16) * kHashMul32; - return static_cast<uint32_t>(h >> shift); -} - -static inline int IsMatch(const uint8_t* p1, const uint8_t* p2) { - return (BROTLI_UNALIGNED_LOAD32(p1) == BROTLI_UNALIGNED_LOAD32(p2) && - p1[4] == p2[4] && - p1[5] == p2[5]); -} - -// Builds a command and distance prefix code (each 64 symbols) into "depth" and -// "bits" based on "histogram" and stores it into the bit stream. -static void BuildAndStoreCommandPrefixCode( - const uint32_t histogram[128], - uint8_t depth[128], uint16_t bits[128], - size_t* storage_ix, uint8_t* storage) { - // Tree size for building a tree over 64 symbols is 2 * 64 + 1. - static const size_t kTreeSize = 129; - HuffmanTree tree[kTreeSize]; - CreateHuffmanTree(histogram, 64, 15, tree, depth); - CreateHuffmanTree(&histogram[64], 64, 14, tree, &depth[64]); - // We have to jump through a few hoopes here in order to compute - // the command bits because the symbols are in a different order than in - // the full alphabet. This looks complicated, but having the symbols - // in this order in the command bits saves a few branches in the Emit* - // functions. - uint8_t cmd_depth[64]; - uint16_t cmd_bits[64]; - memcpy(cmd_depth, depth + 24, 24); - memcpy(cmd_depth + 24, depth, 8); - memcpy(cmd_depth + 32, depth + 48, 8); - memcpy(cmd_depth + 40, depth + 8, 8); - memcpy(cmd_depth + 48, depth + 56, 8); - memcpy(cmd_depth + 56, depth + 16, 8); - ConvertBitDepthsToSymbols(cmd_depth, 64, cmd_bits); - memcpy(bits, cmd_bits + 24, 16); - memcpy(bits + 8, cmd_bits + 40, 16); - memcpy(bits + 16, cmd_bits + 56, 16); - memcpy(bits + 24, cmd_bits, 48); - memcpy(bits + 48, cmd_bits + 32, 16); - memcpy(bits + 56, cmd_bits + 48, 16); - ConvertBitDepthsToSymbols(&depth[64], 64, &bits[64]); - { - // Create the bit length array for the full command alphabet. - uint8_t cmd_depth[704] = { 0 }; - memcpy(cmd_depth, depth + 24, 8); - memcpy(cmd_depth + 64, depth + 32, 8); - memcpy(cmd_depth + 128, depth + 40, 8); - memcpy(cmd_depth + 192, depth + 48, 8); - memcpy(cmd_depth + 384, depth + 56, 8); - for (size_t i = 0; i < 8; ++i) { - cmd_depth[128 + 8 * i] = depth[i]; - cmd_depth[256 + 8 * i] = depth[8 + i]; - cmd_depth[448 + 8 * i] = depth[16 + i]; - } - StoreHuffmanTree(cmd_depth, 704, tree, storage_ix, storage); - } - StoreHuffmanTree(&depth[64], 64, tree, storage_ix, storage); -} - -inline void EmitInsertLen(uint32_t insertlen, uint32_t** commands) { - if (insertlen < 6) { - **commands = insertlen; - } else if (insertlen < 130) { - insertlen -= 2; - const uint32_t nbits = Log2FloorNonZero(insertlen) - 1u; - const uint32_t prefix = insertlen >> nbits; - const uint32_t inscode = (nbits << 1) + prefix + 2; - const uint32_t extra = insertlen - (prefix << nbits); - **commands = inscode | (extra << 8); - } else if (insertlen < 2114) { - insertlen -= 66; - const uint32_t nbits = Log2FloorNonZero(insertlen); - const uint32_t code = nbits + 10; - const uint32_t extra = insertlen - (1 << nbits); - **commands = code | (extra << 8); - } else if (insertlen < 6210) { - const uint32_t extra = insertlen - 2114; - **commands = 21 | (extra << 8); - } else if (insertlen < 22594) { - const uint32_t extra = insertlen - 6210; - **commands = 22 | (extra << 8); - } else { - const uint32_t extra = insertlen - 22594; - **commands = 23 | (extra << 8); - } - ++(*commands); -} - -inline void EmitCopyLen(size_t copylen, uint32_t** commands) { - if (copylen < 10) { - **commands = static_cast<uint32_t>(copylen + 38); - } else if (copylen < 134) { - copylen -= 6; - const size_t nbits = Log2FloorNonZero(copylen) - 1; - const size_t prefix = copylen >> nbits; - const size_t code = (nbits << 1) + prefix + 44; - const size_t extra = copylen - (prefix << nbits); - **commands = static_cast<uint32_t>(code | (extra << 8)); - } else if (copylen < 2118) { - copylen -= 70; - const size_t nbits = Log2FloorNonZero(copylen); - const size_t code = nbits + 52; - const size_t extra = copylen - (1 << nbits); - **commands = static_cast<uint32_t>(code | (extra << 8)); - } else { - const size_t extra = copylen - 2118; - **commands = static_cast<uint32_t>(63 | (extra << 8)); - } - ++(*commands); -} - -inline void EmitCopyLenLastDistance(size_t copylen, uint32_t** commands) { - if (copylen < 12) { - **commands = static_cast<uint32_t>(copylen + 20); - ++(*commands); - } else if (copylen < 72) { - copylen -= 8; - const size_t nbits = Log2FloorNonZero(copylen) - 1; - const size_t prefix = copylen >> nbits; - const size_t code = (nbits << 1) + prefix + 28; - const size_t extra = copylen - (prefix << nbits); - **commands = static_cast<uint32_t>(code | (extra << 8)); - ++(*commands); - } else if (copylen < 136) { - copylen -= 8; - const size_t code = (copylen >> 5) + 54; - const size_t extra = copylen & 31; - **commands = static_cast<uint32_t>(code | (extra << 8)); - ++(*commands); - **commands = 64; - ++(*commands); - } else if (copylen < 2120) { - copylen -= 72; - const size_t nbits = Log2FloorNonZero(copylen); - const size_t code = nbits + 52; - const size_t extra = copylen - (1 << nbits); - **commands = static_cast<uint32_t>(code | (extra << 8)); - ++(*commands); - **commands = 64; - ++(*commands); - } else { - const size_t extra = copylen - 2120; - **commands = static_cast<uint32_t>(63 | (extra << 8)); - ++(*commands); - **commands = 64; - ++(*commands); - } -} - -inline void EmitDistance(uint32_t distance, uint32_t** commands) { - distance += 3; - uint32_t nbits = Log2FloorNonZero(distance) - 1; - const uint32_t prefix = (distance >> nbits) & 1; - const uint32_t offset = (2 + prefix) << nbits; - const uint32_t distcode = 2 * (nbits - 1) + prefix + 80; - uint32_t extra = distance - offset; - **commands = distcode | (extra << 8); - ++(*commands); -} - -// REQUIRES: len <= 1 << 20. -static void StoreMetaBlockHeader( - size_t len, bool is_uncompressed, size_t* storage_ix, uint8_t* storage) { - // ISLAST - WriteBits(1, 0, storage_ix, storage); - if (len <= (1U << 16)) { - // MNIBBLES is 4 - WriteBits(2, 0, storage_ix, storage); - WriteBits(16, len - 1, storage_ix, storage); - } else { - // MNIBBLES is 5 - WriteBits(2, 1, storage_ix, storage); - WriteBits(20, len - 1, storage_ix, storage); - } - // ISUNCOMPRESSED - WriteBits(1, is_uncompressed, storage_ix, storage); -} - -static void CreateCommands(const uint8_t* input, size_t block_size, - size_t input_size, const uint8_t* base_ip, - int* table, size_t table_size, - uint8_t** literals, uint32_t** commands) { - // "ip" is the input pointer. - const uint8_t* ip = input; - assert(table_size); - assert(table_size <= (1u << 31)); - assert((table_size & (table_size - 1)) == 0); // table must be power of two - const size_t shift = 64u - Log2FloorNonZero(table_size); - assert(table_size - 1 == static_cast<size_t>( - MAKE_UINT64_T(0xFFFFFFFF, 0xFFFFFF) >> shift)); - const uint8_t* ip_end = input + block_size; - // "next_emit" is a pointer to the first byte that is not covered by a - // previous copy. Bytes between "next_emit" and the start of the next copy or - // the end of the input will be emitted as literal bytes. - const uint8_t* next_emit = input; - - int last_distance = -1; - const size_t kInputMarginBytes = 16; - const size_t kMinMatchLen = 6; - if (PREDICT_TRUE(block_size >= kInputMarginBytes)) { - // For the last block, we need to keep a 16 bytes margin so that we can be - // sure that all distances are at most window size - 16. - // For all other blocks, we only need to keep a margin of 5 bytes so that - // we don't go over the block size with a copy. - const size_t len_limit = std::min(block_size - kMinMatchLen, - input_size - kInputMarginBytes); - const uint8_t* ip_limit = input + len_limit; - - for (uint32_t next_hash = Hash(++ip, shift); ; ) { - assert(next_emit < ip); - // Step 1: Scan forward in the input looking for a 6-byte-long match. - // If we get close to exhausting the input then goto emit_remainder. - // - // Heuristic match skipping: If 32 bytes are scanned with no matches - // found, start looking only at every other byte. If 32 more bytes are - // scanned, look at every third byte, etc.. When a match is found, - // immediately go back to looking at every byte. This is a small loss - // (~5% performance, ~0.1% density) for compressible data due to more - // bookkeeping, but for non-compressible data (such as JPEG) it's a huge - // win since the compressor quickly "realizes" the data is incompressible - // and doesn't bother looking for matches everywhere. - // - // The "skip" variable keeps track of how many bytes there are since the - // last match; dividing it by 32 (ie. right-shifting by five) gives the - // number of bytes to move ahead for each iteration. - uint32_t skip = 32; - - const uint8_t* next_ip = ip; - const uint8_t* candidate; - do { - ip = next_ip; - uint32_t hash = next_hash; - assert(hash == Hash(ip, shift)); - uint32_t bytes_between_hash_lookups = skip++ >> 5; - next_ip = ip + bytes_between_hash_lookups; - if (PREDICT_FALSE(next_ip > ip_limit)) { - goto emit_remainder; - } - next_hash = Hash(next_ip, shift); - candidate = ip - last_distance; - if (IsMatch(ip, candidate)) { - if (PREDICT_TRUE(candidate < ip)) { - table[hash] = static_cast<int>(ip - base_ip); - break; - } - } - candidate = base_ip + table[hash]; - assert(candidate >= base_ip); - assert(candidate < ip); - - table[hash] = static_cast<int>(ip - base_ip); - } while (PREDICT_TRUE(!IsMatch(ip, candidate))); - - // Step 2: Emit the found match together with the literal bytes from - // "next_emit", and then see if we can find a next macth immediately - // afterwards. Repeat until we find no match for the input - // without emitting some literal bytes. - uint64_t input_bytes; - - { - // We have a 6-byte match at ip, and we need to emit bytes in - // [next_emit, ip). - const uint8_t* base = ip; - size_t matched = 6 + FindMatchLengthWithLimit( - candidate + 6, ip + 6, static_cast<size_t>(ip_end - ip) - 6); - ip += matched; - int distance = static_cast<int>(base - candidate); /* > 0 */ - int insert = static_cast<int>(base - next_emit); - assert(0 == memcmp(base, candidate, matched)); - EmitInsertLen(static_cast<uint32_t>(insert), commands); - memcpy(*literals, next_emit, static_cast<size_t>(insert)); - *literals += insert; - if (distance == last_distance) { - **commands = 64; - ++(*commands); - } else { - EmitDistance(static_cast<uint32_t>(distance), commands); - last_distance = distance; - } - EmitCopyLenLastDistance(matched, commands); - - next_emit = ip; - if (PREDICT_FALSE(ip >= ip_limit)) { - goto emit_remainder; - } - // We could immediately start working at ip now, but to improve - // compression we first update "table" with the hashes of some positions - // within the last copy. - input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 5); - uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 5); - prev_hash = HashBytesAtOffset(input_bytes, 1, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 4); - prev_hash = HashBytesAtOffset(input_bytes, 2, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 3); - input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 2); - prev_hash = HashBytesAtOffset(input_bytes, 0, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 2); - prev_hash = HashBytesAtOffset(input_bytes, 1, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 1); - - uint32_t cur_hash = HashBytesAtOffset(input_bytes, 2, shift); - candidate = base_ip + table[cur_hash]; - table[cur_hash] = static_cast<int>(ip - base_ip); - } - - while (IsMatch(ip, candidate)) { - // We have a 6-byte match at ip, and no need to emit any - // literal bytes prior to ip. - const uint8_t* base = ip; - size_t matched = 6 + FindMatchLengthWithLimit( - candidate + 6, ip + 6, static_cast<size_t>(ip_end - ip) - 6); - ip += matched; - last_distance = static_cast<int>(base - candidate); /* > 0 */ - assert(0 == memcmp(base, candidate, matched)); - EmitCopyLen(matched, commands); - EmitDistance(static_cast<uint32_t>(last_distance), commands); - - next_emit = ip; - if (PREDICT_FALSE(ip >= ip_limit)) { - goto emit_remainder; - } - // We could immediately start working at ip now, but to improve - // compression we first update "table" with the hashes of some positions - // within the last copy. - input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 5); - uint32_t prev_hash = HashBytesAtOffset(input_bytes, 0, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 5); - prev_hash = HashBytesAtOffset(input_bytes, 1, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 4); - prev_hash = HashBytesAtOffset(input_bytes, 2, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 3); - input_bytes = BROTLI_UNALIGNED_LOAD64(ip - 2); - prev_hash = HashBytesAtOffset(input_bytes, 0, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 2); - prev_hash = HashBytesAtOffset(input_bytes, 1, shift); - table[prev_hash] = static_cast<int>(ip - base_ip - 1); - - uint32_t cur_hash = HashBytesAtOffset(input_bytes, 2, shift); - candidate = base_ip + table[cur_hash]; - table[cur_hash] = static_cast<int>(ip - base_ip); - } - - next_hash = Hash(++ip, shift); - } - } - -emit_remainder: - assert(next_emit <= ip_end); - // Emit the remaining bytes as literals. - if (next_emit < ip_end) { - const uint32_t insert = static_cast<uint32_t>(ip_end - next_emit); - EmitInsertLen(insert, commands); - memcpy(*literals, next_emit, insert); - *literals += insert; - } -} - -static void StoreCommands(const uint8_t* literals, const size_t num_literals, - const uint32_t* commands, const size_t num_commands, - size_t* storage_ix, uint8_t* storage) { - uint8_t lit_depths[256] = { 0 }; - uint16_t lit_bits[256] = { 0 }; - uint32_t lit_histo[256] = { 0 }; - for (size_t i = 0; i < num_literals; ++i) { - ++lit_histo[literals[i]]; - } - BuildAndStoreHuffmanTreeFast(lit_histo, num_literals, - /* max_bits = */ 8, - lit_depths, lit_bits, - storage_ix, storage); - - uint8_t cmd_depths[128] = { 0 }; - uint16_t cmd_bits[128] = { 0 }; - uint32_t cmd_histo[128] = { 0 }; - for (size_t i = 0; i < num_commands; ++i) { - ++cmd_histo[commands[i] & 0xff]; - } - cmd_histo[1] += 1; - cmd_histo[2] += 1; - cmd_histo[64] += 1; - cmd_histo[84] += 1; - BuildAndStoreCommandPrefixCode(cmd_histo, cmd_depths, cmd_bits, - storage_ix, storage); - - static const uint32_t kNumExtraBits[128] = { - 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 14, 24, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, - 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, - 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, - }; - static const uint32_t kInsertOffset[24] = { - 0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26, 34, 50, 66, 98, 130, 194, 322, 578, - 1090, 2114, 6210, 22594, - }; - - for (size_t i = 0; i < num_commands; ++i) { - const uint32_t cmd = commands[i]; - const uint32_t code = cmd & 0xff; - const uint32_t extra = cmd >> 8; - WriteBits(cmd_depths[code], cmd_bits[code], storage_ix, storage); - WriteBits(kNumExtraBits[code], extra, storage_ix, storage); - if (code < 24) { - const uint32_t insert = kInsertOffset[code] + extra; - for (uint32_t j = 0; j < insert; ++j) { - const uint8_t lit = *literals; - WriteBits(lit_depths[lit], lit_bits[lit], storage_ix, storage); - ++literals; - } - } - } -} - -static bool ShouldCompress(const uint8_t* input, size_t input_size, - size_t num_literals) { - static const double kAcceptableLossForUncompressibleSpeedup = 0.02; - static const double kMaxRatioOfLiterals = - 1.0 - kAcceptableLossForUncompressibleSpeedup; - if (num_literals < kMaxRatioOfLiterals * static_cast<double>(input_size)) { - return true; - } - uint32_t literal_histo[256] = { 0 }; - static const uint32_t kSampleRate = 43; - static const double kMaxEntropy = - 8 * (1.0 - kAcceptableLossForUncompressibleSpeedup); - const double max_total_bit_cost = - static_cast<double>(input_size) * kMaxEntropy / kSampleRate; - for (size_t i = 0; i < input_size; i += kSampleRate) { - ++literal_histo[input[i]]; - } - return BitsEntropy(literal_histo, 256) < max_total_bit_cost; -} - -void BrotliCompressFragmentTwoPass(const uint8_t* input, size_t input_size, - bool is_last, - uint32_t* command_buf, uint8_t* literal_buf, - int* table, size_t table_size, - size_t* storage_ix, uint8_t* storage) { - // Save the start of the first block for position and distance computations. - const uint8_t* base_ip = input; - - while (input_size > 0) { - size_t block_size = std::min(input_size, kCompressFragmentTwoPassBlockSize); - uint32_t* commands = command_buf; - uint8_t* literals = literal_buf; - CreateCommands(input, block_size, input_size, base_ip, table, table_size, - &literals, &commands); - const size_t num_literals = static_cast<size_t>(literals - literal_buf); - const size_t num_commands = static_cast<size_t>(commands - command_buf); - if (ShouldCompress(input, block_size, num_literals)) { - StoreMetaBlockHeader(block_size, 0, storage_ix, storage); - // No block splits, no contexts. - WriteBits(13, 0, storage_ix, storage); - StoreCommands(literal_buf, num_literals, command_buf, num_commands, - storage_ix, storage); - } else { - // Since we did not find many backward references and the entropy of - // the data is close to 8 bits, we can simply emit an uncompressed block. - // This makes compression speed of uncompressible data about 3x faster. - StoreMetaBlockHeader(block_size, 1, storage_ix, storage); - *storage_ix = (*storage_ix + 7u) & ~7u; - memcpy(&storage[*storage_ix >> 3], input, block_size); - *storage_ix += block_size << 3; - storage[*storage_ix >> 3] = 0; - } - input += block_size; - input_size -= block_size; - } - - if (is_last) { - WriteBits(1, 1, storage_ix, storage); // islast - WriteBits(1, 1, storage_ix, storage); // isempty - *storage_ix = (*storage_ix + 7u) & ~7u; - } -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/compress_fragment_two_pass.h b/thirdparty/brotli/enc/compress_fragment_two_pass.h index 690ed081..49d2b993 100644 --- a/thirdparty/brotli/enc/compress_fragment_two_pass.h +++ b/thirdparty/brotli/enc/compress_fragment_two_pass.h @@ -4,37 +4,48 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Function for fast encoding of an input fragment, independently from the input -// history. This function uses two-pass processing: in the first pass we save -// the found backward matches and literal bytes into a buffer, and in the -// second pass we emit them into the bit stream using prefix codes built based -// on the actual command and literal byte histograms. +/* Function for fast encoding of an input fragment, independently from the input + history. This function uses two-pass processing: in the first pass we save + the found backward matches and literal bytes into a buffer, and in the + second pass we emit them into the bit stream using prefix codes built based + on the actual command and literal byte histograms. */ #ifndef BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_ #define BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_ -#include "./types.h" +#include "../common/types.h" +#include "./memory.h" +#include "./port.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif static const size_t kCompressFragmentTwoPassBlockSize = 1 << 17; -// Compresses "input" string to the "*storage" buffer as one or more complete -// meta-blocks, and updates the "*storage_ix" bit position. -// -// If "is_last" is true, emits an additional empty last meta-block. -// -// REQUIRES: "input_size" is greater than zero, or "is_last" is true. -// REQUIRES: "command_buf" and "literal_buf" point to at least -// kCompressFragmentTwoPassBlockSize long arrays. -// REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. -// REQUIRES: "table_size" is a power of two -void BrotliCompressFragmentTwoPass(const uint8_t* input, size_t input_size, - bool is_last, - uint32_t* command_buf, uint8_t* literal_buf, - int* table, size_t table_size, - size_t* storage_ix, uint8_t* storage); - -} // namespace brotli - -#endif // BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_ +/* Compresses "input" string to the "*storage" buffer as one or more complete + meta-blocks, and updates the "*storage_ix" bit position. + + If "is_last" is 1, emits an additional empty last meta-block. + + REQUIRES: "input_size" is greater than zero, or "is_last" is 1. + REQUIRES: "command_buf" and "literal_buf" point to at least + kCompressFragmentTwoPassBlockSize long arrays. + REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. + REQUIRES: "table_size" is a power of two */ +BROTLI_INTERNAL void BrotliCompressFragmentTwoPass(MemoryManager* m, + const uint8_t* input, + size_t input_size, + BROTLI_BOOL is_last, + uint32_t* command_buf, + uint8_t* literal_buf, + int* table, + size_t table_size, + size_t* storage_ix, + uint8_t* storage); + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_COMPRESS_FRAGMENT_TWO_PASS_H_ */ diff --git a/thirdparty/brotli/enc/compressor.cc b/thirdparty/brotli/enc/compressor.cc new file mode 100644 index 00000000..709b5439 --- /dev/null +++ b/thirdparty/brotli/enc/compressor.cc @@ -0,0 +1,139 @@ +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Brotli compressor API C++ wrapper and utilities. */ + +#include "./compressor.h" + +#include <cstdlib> /* exit */ + +namespace brotli { + +static void SetParams(const BrotliParams* from, BrotliEncoderState* to) { + BrotliEncoderMode mode = BROTLI_MODE_GENERIC; + if (from->mode == BrotliParams::MODE_TEXT) { + mode = BROTLI_MODE_TEXT; + } else if (from->mode == BrotliParams::MODE_FONT) { + mode = BROTLI_MODE_FONT; + } + BrotliEncoderSetParameter(to, BROTLI_PARAM_MODE, (uint32_t)mode); + BrotliEncoderSetParameter(to, BROTLI_PARAM_QUALITY, (uint32_t)from->quality); + BrotliEncoderSetParameter(to, BROTLI_PARAM_LGWIN, (uint32_t)from->lgwin); + BrotliEncoderSetParameter(to, BROTLI_PARAM_LGBLOCK, (uint32_t)from->lgblock); +} + +BrotliCompressor::BrotliCompressor(BrotliParams params) { + state_ = BrotliEncoderCreateInstance(0, 0, 0); + if (state_ == 0) std::exit(EXIT_FAILURE); /* OOM */ + SetParams(¶ms, state_); +} + +BrotliCompressor::~BrotliCompressor(void) { + BrotliEncoderDestroyInstance(state_); +} + +bool BrotliCompressor::WriteMetaBlock(const size_t input_size, + const uint8_t* input_buffer, + const bool is_last, size_t* encoded_size, + uint8_t* encoded_buffer) { + return !!BrotliEncoderWriteMetaBlock(state_, input_size, input_buffer, + TO_BROTLI_BOOL(is_last), encoded_size, + encoded_buffer); +} + +bool BrotliCompressor::WriteMetadata(const size_t input_size, + const uint8_t* input_buffer, + const bool is_last, size_t* encoded_size, + uint8_t* encoded_buffer) { + return !!BrotliEncoderWriteMetadata(state_, input_size, input_buffer, + TO_BROTLI_BOOL(is_last), encoded_size, + encoded_buffer); +} + +bool BrotliCompressor::FinishStream(size_t* encoded_size, + uint8_t* encoded_buffer) { + return !!BrotliEncoderFinishStream(state_, encoded_size, encoded_buffer); +} + +void BrotliCompressor::CopyInputToRingBuffer(const size_t input_size, + const uint8_t* input_buffer) { + BrotliEncoderCopyInputToRingBuffer(state_, input_size, input_buffer); +} + +bool BrotliCompressor::WriteBrotliData(const bool is_last, + const bool force_flush, size_t* out_size, + uint8_t** output) { + return !!BrotliEncoderWriteData(state_, TO_BROTLI_BOOL(is_last), + TO_BROTLI_BOOL(force_flush), out_size, output); +} + +void BrotliCompressor::BrotliSetCustomDictionary(size_t size, + const uint8_t* dict) { + BrotliEncoderSetCustomDictionary(state_, size, dict); +} + +int BrotliCompressBuffer(BrotliParams params, size_t input_size, + const uint8_t* input_buffer, size_t* encoded_size, + uint8_t* encoded_buffer) { + return BrotliEncoderCompress(params.quality, params.lgwin, + (BrotliEncoderMode)params.mode, input_size, input_buffer, + encoded_size, encoded_buffer); +} + +int BrotliCompress(BrotliParams params, BrotliIn* in, BrotliOut* out) { + return BrotliCompressWithCustomDictionary(0, 0, params, in, out); +} + +int BrotliCompressWithCustomDictionary(size_t dictsize, const uint8_t* dict, + BrotliParams params, BrotliIn* in, + BrotliOut* out) { + const size_t kOutputBufferSize = 65536; + uint8_t* output_buffer; + bool result = true; + size_t available_in = 0; + const uint8_t* next_in = NULL; + size_t total_out = 0; + bool end_of_input = false; + BrotliEncoderState* s; + + s = BrotliEncoderCreateInstance(0, 0, 0); + if (!s) return 0; + SetParams(¶ms, s); + BrotliEncoderSetCustomDictionary(s, dictsize, dict); + output_buffer = new uint8_t[kOutputBufferSize]; + + while (true) { + if (available_in == 0 && !end_of_input) { + next_in = reinterpret_cast<const uint8_t*>( + in->Read(BrotliEncoderInputBlockSize(s), &available_in)); + if (!next_in) { + end_of_input = true; + available_in = 0; + } else if (available_in == 0) { + continue; + } + } + size_t available_out = kOutputBufferSize; + uint8_t* next_out = output_buffer; + result = !!BrotliEncoderCompressStream( + s, end_of_input ? BROTLI_OPERATION_FINISH : BROTLI_OPERATION_PROCESS, + &available_in, &next_in, &available_out, &next_out, &total_out); + if (!result) break; + size_t used_output = kOutputBufferSize - available_out; + if (used_output != 0) { + result = out->Write(output_buffer, used_output); + if (!result) break; + } + if (BrotliEncoderIsFinished(s)) break; + } + + delete[] output_buffer; + BrotliEncoderDestroyInstance(s); + return result ? 1 : 0; +} + + +} /* namespace brotli */ diff --git a/thirdparty/brotli/enc/compressor.h b/thirdparty/brotli/enc/compressor.h new file mode 100644 index 00000000..a6995bc8 --- /dev/null +++ b/thirdparty/brotli/enc/compressor.h @@ -0,0 +1,161 @@ +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* C++ API for Brotli compression. */ + +#ifndef BROTLI_ENC_COMPRESSOR_H_ +#define BROTLI_ENC_COMPRESSOR_H_ + +#include "./encode.h" +#include "./streams.h" + +namespace brotli { + +static const int kMinWindowBits = kBrotliMinWindowBits; +static const int kMaxWindowBits = kBrotliMaxWindowBits; +static const int kMinInputBlockBits = kBrotliMinInputBlockBits; +static const int kMaxInputBlockBits = kBrotliMaxInputBlockBits; + +struct BrotliParams { + BrotliParams(void) + : mode(MODE_GENERIC), + quality(11), + lgwin(22), + lgblock(0), + enable_dictionary(true), + enable_transforms(false), + greedy_block_split(false), + enable_context_modeling(true) {} + + enum Mode { + /* Default compression mode. The compressor does not know anything in + advance about the properties of the input. */ + MODE_GENERIC = 0, + /* Compression mode for UTF-8 format text input. */ + MODE_TEXT = 1, + /* Compression mode used in WOFF 2.0. */ + MODE_FONT = 2 + }; + Mode mode; + + /* Controls the compression-speed vs compression-density tradeoffs. The higher + the |quality|, the slower the compression. Range is 0 to 11. */ + int quality; + /* Base 2 logarithm of the sliding window size. Range is 10 to 24. */ + int lgwin; + /* Base 2 logarithm of the maximum input block size. Range is 16 to 24. + If set to 0, the value will be set based on the quality. */ + int lgblock; + + /* These settings are deprecated and will be ignored. + All speed vs. size compromises are controlled by the |quality| param. */ + bool enable_dictionary; + bool enable_transforms; + bool greedy_block_split; + bool enable_context_modeling; +}; + +/* An instance can not be reused for multiple brotli streams. */ +class BrotliCompressor { + public: + explicit BrotliCompressor(BrotliParams params); + ~BrotliCompressor(void); + + /* The maximum input size that can be processed at once. */ + size_t input_block_size(void) const { + return BrotliEncoderInputBlockSize(state_); + } + + /* Encodes the data in |input_buffer| as a meta-block and writes it to + |encoded_buffer| (|*encoded_size should| be set to the size of + |encoded_buffer|) and sets |*encoded_size| to the number of bytes that + was written. The |input_size| must not be greater than input_block_size(). + Returns false if there was an error and true otherwise. */ + bool WriteMetaBlock(const size_t input_size, + const uint8_t* input_buffer, + const bool is_last, + size_t* encoded_size, + uint8_t* encoded_buffer); + + /* Writes a metadata meta-block containing the given input to encoded_buffer. + |*encoded_size| should be set to the size of the encoded_buffer. + Sets |*encoded_size| to the number of bytes that was written. + Note that the given input data will not be part of the sliding window and + thus no backward references can be made to this data from subsequent + metablocks. |input_size| must not be greater than 2^24 and provided + |*encoded_size| must not be less than |input_size| + 6. + Returns false if there was an error and true otherwise. */ + bool WriteMetadata(const size_t input_size, + const uint8_t* input_buffer, + const bool is_last, + size_t* encoded_size, + uint8_t* encoded_buffer); + + /* Writes a zero-length meta-block with end-of-input bit set to the + internal output buffer and copies the output buffer to |encoded_buffer| + (|*encoded_size| should be set to the size of |encoded_buffer|) and sets + |*encoded_size| to the number of bytes written. + Returns false if there was an error and true otherwise. */ + bool FinishStream(size_t* encoded_size, uint8_t* encoded_buffer); + + /* Copies the given input data to the internal ring buffer of the compressor. + No processing of the data occurs at this time and this function can be + called multiple times before calling WriteBrotliData() to process the + accumulated input. At most input_block_size() bytes of input data can be + copied to the ring buffer, otherwise the next WriteBrotliData() will fail. + */ + void CopyInputToRingBuffer(const size_t input_size, + const uint8_t* input_buffer); + + /* Processes the accumulated input data and sets |*out_size| to the length of + the new output meta-block, or to zero if no new output meta-block has been + created (in this case the processed input data is buffered internally). + If |*out_size| is positive, |*output| points to the start of the output + data. If |is_last| or |force_flush| is true, an output meta-block is always + created. However, until |is_last| is true encoder may retain up to 7 bits + of the last byte of output. To force encoder to dump the remaining bits + use WriteMetadata() to append an empty meta-data block. + Returns false if the size of the input data is larger than + input_block_size(). */ + bool WriteBrotliData(const bool is_last, const bool force_flush, + size_t* out_size, uint8_t** output); + + /* Fills the new state with a dictionary for LZ77, warming up the ringbuffer, + e.g. for custom static dictionaries for data formats. + Not to be confused with the built-in transformable dictionary of Brotli. + To decode, use BrotliSetCustomDictionary() of the decoder with the same + dictionary. */ + void BrotliSetCustomDictionary(size_t size, const uint8_t* dict); + + /* No-op, but we keep it here for API backward-compatibility. */ + void WriteStreamHeader(void) {} + + private: + BrotliEncoderState* state_; +}; + +/* Compresses the data in |input_buffer| into |encoded_buffer|, and sets + |*encoded_size| to the compressed length. + Returns 0 if there was an error and 1 otherwise. */ +int BrotliCompressBuffer(BrotliParams params, + size_t input_size, + const uint8_t* input_buffer, + size_t* encoded_size, + uint8_t* encoded_buffer); + +/* Same as above, but uses the specified input and output classes instead + of reading from and writing to pre-allocated memory buffers. */ +int BrotliCompress(BrotliParams params, BrotliIn* in, BrotliOut* out); + +/* Before compressing the data, sets a custom LZ77 dictionary with + BrotliCompressor::BrotliSetCustomDictionary. */ +int BrotliCompressWithCustomDictionary(size_t dictsize, const uint8_t* dict, + BrotliParams params, + BrotliIn* in, BrotliOut* out); + +} /* namespace brotli */ + +#endif /* BROTLI_ENC_COMPRESSOR_H_ */ diff --git a/thirdparty/brotli/enc/context.h b/thirdparty/brotli/enc/context.h index 00c065bc..c50f6be1 100644 --- a/thirdparty/brotli/enc/context.h +++ b/thirdparty/brotli/enc/context.h @@ -4,91 +4,95 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Functions to map previous bytes into a context id. +/* Functions to map previous bytes into a context id. */ #ifndef BROTLI_ENC_CONTEXT_H_ #define BROTLI_ENC_CONTEXT_H_ -#include "./types.h" - -namespace brotli { - -// Second-order context lookup table for UTF8 byte streams. -// -// If p1 and p2 are the previous two bytes, we calculate the context as -// -// context = kUTF8ContextLookup[p1] | kUTF8ContextLookup[p2 + 256]. -// -// If the previous two bytes are ASCII characters (i.e. < 128), this will be -// equivalent to -// -// context = 4 * context1(p1) + context2(p2), -// -// where context1 is based on the previous byte in the following way: -// -// 0 : non-ASCII control -// 1 : \t, \n, \r -// 2 : space -// 3 : other punctuation -// 4 : " ' -// 5 : % -// 6 : ( < [ { -// 7 : ) > ] } -// 8 : , ; : -// 9 : . -// 10 : = -// 11 : number -// 12 : upper-case vowel -// 13 : upper-case consonant -// 14 : lower-case vowel -// 15 : lower-case consonant -// -// and context2 is based on the second last byte: -// -// 0 : control, space -// 1 : punctuation -// 2 : upper-case letter, number -// 3 : lower-case letter -// -// If the last byte is ASCII, and the second last byte is not (in a valid UTF8 -// stream it will be a continuation byte, value between 128 and 191), the -// context is the same as if the second last byte was an ASCII control or space. -// -// If the last byte is a UTF8 lead byte (value >= 192), then the next byte will -// be a continuation byte and the context id is 2 or 3 depending on the LSB of -// the last byte and to a lesser extent on the second last byte if it is ASCII. -// -// If the last byte is a UTF8 continuation byte, the second last byte can be: -// - continuation byte: the next byte is probably ASCII or lead byte (assuming -// 4-byte UTF8 characters are rare) and the context id is 0 or 1. -// - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1 -// - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3 -// -// The possible value combinations of the previous two bytes, the range of -// context ids and the type of the next byte is summarized in the table below: -// -// |--------\-----------------------------------------------------------------| -// | \ Last byte | -// | Second \---------------------------------------------------------------| -// | last byte \ ASCII | cont. byte | lead byte | -// | \ (0-127) | (128-191) | (192-) | -// |=============|===================|=====================|==================| -// | ASCII | next: ASCII/lead | not valid | next: cont. | -// | (0-127) | context: 4 - 63 | | context: 2 - 3 | -// |-------------|-------------------|---------------------|------------------| -// | cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. | -// | (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 | -// |-------------|-------------------|---------------------|------------------| -// | lead byte | not valid | next: ASCII/lead | not valid | -// | (192-207) | | context: 0 - 1 | | -// |-------------|-------------------|---------------------|------------------| -// | lead byte | not valid | next: cont. | not valid | -// | (208-) | | context: 2 - 3 | | -// |-------------|-------------------|---------------------|------------------| +#include "../common/types.h" +#include "../common/port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* Second-order context lookup table for UTF8 byte streams. + + If p1 and p2 are the previous two bytes, we calculate the context as + + context = kUTF8ContextLookup[p1] | kUTF8ContextLookup[p2 + 256]. + + If the previous two bytes are ASCII characters (i.e. < 128), this will be + equivalent to + + context = 4 * context1(p1) + context2(p2), + + where context1 is based on the previous byte in the following way: + + 0 : non-ASCII control + 1 : \t, \n, \r + 2 : space + 3 : other punctuation + 4 : " ' + 5 : % + 6 : ( < [ { + 7 : ) > ] } + 8 : , ; : + 9 : . + 10 : = + 11 : number + 12 : upper-case vowel + 13 : upper-case consonant + 14 : lower-case vowel + 15 : lower-case consonant + + and context2 is based on the second last byte: + + 0 : control, space + 1 : punctuation + 2 : upper-case letter, number + 3 : lower-case letter + + If the last byte is ASCII, and the second last byte is not (in a valid UTF8 + stream it will be a continuation byte, value between 128 and 191), the + context is the same as if the second last byte was an ASCII control or space. + + If the last byte is a UTF8 lead byte (value >= 192), then the next byte will + be a continuation byte and the context id is 2 or 3 depending on the LSB of + the last byte and to a lesser extent on the second last byte if it is ASCII. + + If the last byte is a UTF8 continuation byte, the second last byte can be: + - continuation byte: the next byte is probably ASCII or lead byte (assuming + 4-byte UTF8 characters are rare) and the context id is 0 or 1. + - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1 + - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3 + + The possible value combinations of the previous two bytes, the range of + context ids and the type of the next byte is summarized in the table below: + + |--------\-----------------------------------------------------------------| + | \ Last byte | + | Second \---------------------------------------------------------------| + | last byte \ ASCII | cont. byte | lead byte | + | \ (0-127) | (128-191) | (192-) | + |=============|===================|=====================|==================| + | ASCII | next: ASCII/lead | not valid | next: cont. | + | (0-127) | context: 4 - 63 | | context: 2 - 3 | + |-------------|-------------------|---------------------|------------------| + | cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. | + | (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 | + |-------------|-------------------|---------------------|------------------| + | lead byte | not valid | next: ASCII/lead | not valid | + | (192-207) | | context: 0 - 1 | | + |-------------|-------------------|---------------------|------------------| + | lead byte | not valid | next: cont. | not valid | + | (208-) | | context: 2 - 3 | | + |-------------|-------------------|---------------------|------------------| +*/ static const uint8_t kUTF8ContextLookup[512] = { - // Last byte. - // - // ASCII range. + /* Last byte. */ + /* */ + /* ASCII range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12, @@ -97,19 +101,19 @@ static const uint8_t kUTF8ContextLookup[512] = { 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12, 12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12, 0, - // UTF8 continuation byte range. + /* UTF8 continuation byte range. */ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, - // UTF8 lead byte range. + /* UTF8 lead byte range. */ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, - // Second last byte. - // - // ASCII range. + /* Second last byte. */ + /* */ + /* ASCII range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -118,19 +122,19 @@ static const uint8_t kUTF8ContextLookup[512] = { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, - // UTF8 continuation byte range. + /* UTF8 continuation byte range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // UTF8 lead byte range. + /* UTF8 lead byte range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }; -// Context lookup table for small signed integers. +/* Context lookup table for small signed integers. */ static const uint8_t kSigned3BitContextLookup[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -150,29 +154,31 @@ static const uint8_t kSigned3BitContextLookup[] = { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, }; -enum ContextType { +typedef enum ContextType { CONTEXT_LSB6 = 0, CONTEXT_MSB6 = 1, CONTEXT_UTF8 = 2, CONTEXT_SIGNED = 3 -}; +} ContextType; -static inline uint8_t Context(uint8_t p1, uint8_t p2, ContextType mode) { +static BROTLI_INLINE uint8_t Context(uint8_t p1, uint8_t p2, ContextType mode) { switch (mode) { case CONTEXT_LSB6: return p1 & 0x3f; case CONTEXT_MSB6: - return static_cast<uint8_t>(p1 >> 2); + return (uint8_t)(p1 >> 2); case CONTEXT_UTF8: return kUTF8ContextLookup[p1] | kUTF8ContextLookup[p2 + 256]; case CONTEXT_SIGNED: - return static_cast<uint8_t>((kSigned3BitContextLookup[p1] << 3) + - kSigned3BitContextLookup[p2]); + return (uint8_t)((kSigned3BitContextLookup[p1] << 3) + + kSigned3BitContextLookup[p2]); default: return 0; } } -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_CONTEXT_H_ +#endif /* BROTLI_ENC_CONTEXT_H_ */ diff --git a/thirdparty/brotli/enc/dictionary.cc b/thirdparty/brotli/enc/dictionary.cc deleted file mode 100644 index 0564bab6..00000000 --- a/thirdparty/brotli/enc/dictionary.cc +++ /dev/null @@ -1,9466 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -#include "./dictionary.h" - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - -// In case of multiple definition linker error with dictionary.c from the -// decoder: include only one of enc/dictionary.cc or dec/dictionary.c in a -// target using both enc and dec. -const uint8_t kBrotliDictionary[122784] = { - 0x74, 0x69, 0x6d, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x66, 0x65, 0x6c, - 0x65, 0x66, 0x74, 0x62, 0x61, 0x63, 0x6b, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x61, - 0x74, 0x61, 0x73, 0x68, 0x6f, 0x77, 0x6f, 0x6e, 0x6c, 0x79, 0x73, 0x69, 0x74, - 0x65, 0x63, 0x69, 0x74, 0x79, 0x6f, 0x70, 0x65, 0x6e, 0x6a, 0x75, 0x73, 0x74, - 0x6c, 0x69, 0x6b, 0x65, 0x66, 0x72, 0x65, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x74, - 0x65, 0x78, 0x74, 0x79, 0x65, 0x61, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x62, 0x6f, - 0x64, 0x79, 0x6c, 0x6f, 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x62, 0x6f, 0x6f, - 0x6b, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x76, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x68, 0x65, 0x6c, 0x70, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6d, - 0x6f, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x68, - 0x65, 0x6d, 0x76, 0x69, 0x65, 0x77, 0x66, 0x69, 0x6e, 0x64, 0x70, 0x61, 0x67, - 0x65, 0x64, 0x61, 0x79, 0x73, 0x66, 0x75, 0x6c, 0x6c, 0x68, 0x65, 0x61, 0x64, - 0x74, 0x65, 0x72, 0x6d, 0x65, 0x61, 0x63, 0x68, 0x61, 0x72, 0x65, 0x61, 0x66, - 0x72, 0x6f, 0x6d, 0x74, 0x72, 0x75, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x62, - 0x6c, 0x65, 0x75, 0x70, 0x6f, 0x6e, 0x68, 0x69, 0x67, 0x68, 0x64, 0x61, 0x74, - 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x6e, 0x65, 0x77, 0x73, 0x65, 0x76, 0x65, 0x6e, - 0x6e, 0x65, 0x78, 0x74, 0x63, 0x61, 0x73, 0x65, 0x62, 0x6f, 0x74, 0x68, 0x70, - 0x6f, 0x73, 0x74, 0x75, 0x73, 0x65, 0x64, 0x6d, 0x61, 0x64, 0x65, 0x68, 0x61, - 0x6e, 0x64, 0x68, 0x65, 0x72, 0x65, 0x77, 0x68, 0x61, 0x74, 0x6e, 0x61, 0x6d, - 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x62, 0x6c, 0x6f, 0x67, 0x73, 0x69, 0x7a, 0x65, - 0x62, 0x61, 0x73, 0x65, 0x68, 0x65, 0x6c, 0x64, 0x6d, 0x61, 0x6b, 0x65, 0x6d, - 0x61, 0x69, 0x6e, 0x75, 0x73, 0x65, 0x72, 0x27, 0x29, 0x20, 0x2b, 0x68, 0x6f, - 0x6c, 0x64, 0x65, 0x6e, 0x64, 0x73, 0x77, 0x69, 0x74, 0x68, 0x4e, 0x65, 0x77, - 0x73, 0x72, 0x65, 0x61, 0x64, 0x77, 0x65, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, - 0x74, 0x61, 0x6b, 0x65, 0x68, 0x61, 0x76, 0x65, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x65, 0x65, 0x6e, 0x63, 0x61, 0x6c, 0x6c, 0x70, 0x61, 0x74, 0x68, 0x77, 0x65, - 0x6c, 0x6c, 0x70, 0x6c, 0x75, 0x73, 0x6d, 0x65, 0x6e, 0x75, 0x66, 0x69, 0x6c, - 0x6d, 0x70, 0x61, 0x72, 0x74, 0x6a, 0x6f, 0x69, 0x6e, 0x74, 0x68, 0x69, 0x73, - 0x6c, 0x69, 0x73, 0x74, 0x67, 0x6f, 0x6f, 0x64, 0x6e, 0x65, 0x65, 0x64, 0x77, - 0x61, 0x79, 0x73, 0x77, 0x65, 0x73, 0x74, 0x6a, 0x6f, 0x62, 0x73, 0x6d, 0x69, - 0x6e, 0x64, 0x61, 0x6c, 0x73, 0x6f, 0x6c, 0x6f, 0x67, 0x6f, 0x72, 0x69, 0x63, - 0x68, 0x75, 0x73, 0x65, 0x73, 0x6c, 0x61, 0x73, 0x74, 0x74, 0x65, 0x61, 0x6d, - 0x61, 0x72, 0x6d, 0x79, 0x66, 0x6f, 0x6f, 0x64, 0x6b, 0x69, 0x6e, 0x67, 0x77, - 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x77, 0x61, 0x72, 0x64, 0x62, 0x65, - 0x73, 0x74, 0x66, 0x69, 0x72, 0x65, 0x50, 0x61, 0x67, 0x65, 0x6b, 0x6e, 0x6f, - 0x77, 0x61, 0x77, 0x61, 0x79, 0x2e, 0x70, 0x6e, 0x67, 0x6d, 0x6f, 0x76, 0x65, - 0x74, 0x68, 0x61, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x67, 0x69, 0x76, 0x65, 0x73, - 0x65, 0x6c, 0x66, 0x6e, 0x6f, 0x74, 0x65, 0x6d, 0x75, 0x63, 0x68, 0x66, 0x65, - 0x65, 0x64, 0x6d, 0x61, 0x6e, 0x79, 0x72, 0x6f, 0x63, 0x6b, 0x69, 0x63, 0x6f, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x6c, 0x6f, 0x6f, 0x6b, 0x68, 0x69, 0x64, 0x65, - 0x64, 0x69, 0x65, 0x64, 0x48, 0x6f, 0x6d, 0x65, 0x72, 0x75, 0x6c, 0x65, 0x68, - 0x6f, 0x73, 0x74, 0x61, 0x6a, 0x61, 0x78, 0x69, 0x6e, 0x66, 0x6f, 0x63, 0x6c, - 0x75, 0x62, 0x6c, 0x61, 0x77, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x68, 0x61, 0x6c, - 0x66, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x75, 0x63, 0x68, 0x7a, 0x6f, 0x6e, 0x65, - 0x31, 0x30, 0x30, 0x25, 0x6f, 0x6e, 0x65, 0x73, 0x63, 0x61, 0x72, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x72, 0x61, 0x63, 0x65, 0x62, 0x6c, 0x75, 0x65, 0x66, 0x6f, - 0x75, 0x72, 0x77, 0x65, 0x65, 0x6b, 0x66, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x70, - 0x65, 0x67, 0x61, 0x76, 0x65, 0x68, 0x61, 0x72, 0x64, 0x6c, 0x6f, 0x73, 0x74, - 0x77, 0x68, 0x65, 0x6e, 0x70, 0x61, 0x72, 0x6b, 0x6b, 0x65, 0x70, 0x74, 0x70, - 0x61, 0x73, 0x73, 0x73, 0x68, 0x69, 0x70, 0x72, 0x6f, 0x6f, 0x6d, 0x48, 0x54, - 0x4d, 0x4c, 0x70, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x6f, 0x6e, - 0x65, 0x73, 0x61, 0x76, 0x65, 0x6b, 0x65, 0x65, 0x70, 0x66, 0x6c, 0x61, 0x67, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x6f, 0x6c, 0x64, 0x66, 0x69, 0x76, 0x65, 0x74, - 0x6f, 0x6f, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x74, 0x6f, 0x77, 0x6e, 0x6a, 0x75, - 0x6d, 0x70, 0x74, 0x68, 0x75, 0x73, 0x64, 0x61, 0x72, 0x6b, 0x63, 0x61, 0x72, - 0x64, 0x66, 0x69, 0x6c, 0x65, 0x66, 0x65, 0x61, 0x72, 0x73, 0x74, 0x61, 0x79, - 0x6b, 0x69, 0x6c, 0x6c, 0x74, 0x68, 0x61, 0x74, 0x66, 0x61, 0x6c, 0x6c, 0x61, - 0x75, 0x74, 0x6f, 0x65, 0x76, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x74, 0x61, - 0x6c, 0x6b, 0x73, 0x68, 0x6f, 0x70, 0x76, 0x6f, 0x74, 0x65, 0x64, 0x65, 0x65, - 0x70, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x73, 0x74, 0x74, 0x75, 0x72, 0x6e, - 0x62, 0x6f, 0x72, 0x6e, 0x62, 0x61, 0x6e, 0x64, 0x66, 0x65, 0x6c, 0x6c, 0x72, - 0x6f, 0x73, 0x65, 0x75, 0x72, 0x6c, 0x28, 0x73, 0x6b, 0x69, 0x6e, 0x72, 0x6f, - 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x61, 0x63, 0x74, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x6d, 0x65, 0x65, 0x74, 0x67, 0x6f, 0x6c, 0x64, 0x2e, 0x6a, 0x70, 0x67, - 0x69, 0x74, 0x65, 0x6d, 0x76, 0x61, 0x72, 0x79, 0x66, 0x65, 0x6c, 0x74, 0x74, - 0x68, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x64, 0x64, 0x72, 0x6f, 0x70, 0x56, 0x69, - 0x65, 0x77, 0x63, 0x6f, 0x70, 0x79, 0x31, 0x2e, 0x30, 0x22, 0x3c, 0x2f, 0x61, - 0x3e, 0x73, 0x74, 0x6f, 0x70, 0x65, 0x6c, 0x73, 0x65, 0x6c, 0x69, 0x65, 0x73, - 0x74, 0x6f, 0x75, 0x72, 0x70, 0x61, 0x63, 0x6b, 0x2e, 0x67, 0x69, 0x66, 0x70, - 0x61, 0x73, 0x74, 0x63, 0x73, 0x73, 0x3f, 0x67, 0x72, 0x61, 0x79, 0x6d, 0x65, - 0x61, 0x6e, 0x26, 0x67, 0x74, 0x3b, 0x72, 0x69, 0x64, 0x65, 0x73, 0x68, 0x6f, - 0x74, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x61, 0x69, 0x64, 0x72, 0x6f, 0x61, 0x64, - 0x76, 0x61, 0x72, 0x20, 0x66, 0x65, 0x65, 0x6c, 0x6a, 0x6f, 0x68, 0x6e, 0x72, - 0x69, 0x63, 0x6b, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x61, 0x73, 0x74, 0x27, 0x55, - 0x41, 0x2d, 0x64, 0x65, 0x61, 0x64, 0x3c, 0x2f, 0x62, 0x3e, 0x70, 0x6f, 0x6f, - 0x72, 0x62, 0x69, 0x6c, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x55, 0x2e, 0x53, 0x2e, - 0x77, 0x6f, 0x6f, 0x64, 0x6d, 0x75, 0x73, 0x74, 0x32, 0x70, 0x78, 0x3b, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x61, 0x6e, 0x6b, 0x77, 0x69, 0x64, 0x65, 0x77, 0x61, - 0x6e, 0x74, 0x77, 0x61, 0x6c, 0x6c, 0x6c, 0x65, 0x61, 0x64, 0x5b, 0x30, 0x5d, - 0x3b, 0x70, 0x61, 0x75, 0x6c, 0x77, 0x61, 0x76, 0x65, 0x73, 0x75, 0x72, 0x65, - 0x24, 0x28, 0x27, 0x23, 0x77, 0x61, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x73, 0x61, - 0x72, 0x6d, 0x73, 0x67, 0x6f, 0x65, 0x73, 0x67, 0x61, 0x69, 0x6e, 0x6c, 0x61, - 0x6e, 0x67, 0x70, 0x61, 0x69, 0x64, 0x21, 0x2d, 0x2d, 0x20, 0x6c, 0x6f, 0x63, - 0x6b, 0x75, 0x6e, 0x69, 0x74, 0x72, 0x6f, 0x6f, 0x74, 0x77, 0x61, 0x6c, 0x6b, - 0x66, 0x69, 0x72, 0x6d, 0x77, 0x69, 0x66, 0x65, 0x78, 0x6d, 0x6c, 0x22, 0x73, - 0x6f, 0x6e, 0x67, 0x74, 0x65, 0x73, 0x74, 0x32, 0x30, 0x70, 0x78, 0x6b, 0x69, - 0x6e, 0x64, 0x72, 0x6f, 0x77, 0x73, 0x74, 0x6f, 0x6f, 0x6c, 0x66, 0x6f, 0x6e, - 0x74, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x61, 0x66, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x6d, 0x61, 0x70, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x72, 0x61, 0x69, 0x6e, 0x66, - 0x6c, 0x6f, 0x77, 0x62, 0x61, 0x62, 0x79, 0x73, 0x70, 0x61, 0x6e, 0x73, 0x61, - 0x79, 0x73, 0x34, 0x70, 0x78, 0x3b, 0x36, 0x70, 0x78, 0x3b, 0x61, 0x72, 0x74, - 0x73, 0x66, 0x6f, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6c, 0x77, 0x69, 0x6b, 0x69, - 0x68, 0x65, 0x61, 0x74, 0x73, 0x74, 0x65, 0x70, 0x74, 0x72, 0x69, 0x70, 0x6f, - 0x72, 0x67, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x77, 0x65, 0x61, 0x6b, 0x74, 0x6f, - 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x63, 0x61, 0x73, 0x74, 0x66, 0x61, 0x6e, - 0x73, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x65, 0x72, 0x79, 0x72, 0x75, 0x6e, 0x73, - 0x6a, 0x75, 0x6c, 0x79, 0x74, 0x61, 0x73, 0x6b, 0x31, 0x70, 0x78, 0x3b, 0x67, - 0x6f, 0x61, 0x6c, 0x67, 0x72, 0x65, 0x77, 0x73, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x67, 0x65, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x65, 0x74, 0x73, 0x35, 0x70, 0x78, - 0x3b, 0x2e, 0x6a, 0x73, 0x3f, 0x34, 0x30, 0x70, 0x78, 0x69, 0x66, 0x20, 0x28, - 0x73, 0x6f, 0x6f, 0x6e, 0x73, 0x65, 0x61, 0x74, 0x6e, 0x6f, 0x6e, 0x65, 0x74, - 0x75, 0x62, 0x65, 0x7a, 0x65, 0x72, 0x6f, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x65, - 0x65, 0x64, 0x66, 0x61, 0x63, 0x74, 0x69, 0x6e, 0x74, 0x6f, 0x67, 0x69, 0x66, - 0x74, 0x68, 0x61, 0x72, 0x6d, 0x31, 0x38, 0x70, 0x78, 0x63, 0x61, 0x6d, 0x65, - 0x68, 0x69, 0x6c, 0x6c, 0x62, 0x6f, 0x6c, 0x64, 0x7a, 0x6f, 0x6f, 0x6d, 0x76, - 0x6f, 0x69, 0x64, 0x65, 0x61, 0x73, 0x79, 0x72, 0x69, 0x6e, 0x67, 0x66, 0x69, - 0x6c, 0x6c, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x69, 0x74, 0x63, 0x6f, 0x73, - 0x74, 0x33, 0x70, 0x78, 0x3b, 0x6a, 0x61, 0x63, 0x6b, 0x74, 0x61, 0x67, 0x73, - 0x62, 0x69, 0x74, 0x73, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x69, 0x74, 0x6b, - 0x6e, 0x65, 0x77, 0x6e, 0x65, 0x61, 0x72, 0x3c, 0x21, 0x2d, 0x2d, 0x67, 0x72, - 0x6f, 0x77, 0x4a, 0x53, 0x4f, 0x4e, 0x64, 0x75, 0x74, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x61, 0x6c, 0x65, 0x79, 0x6f, 0x75, 0x20, 0x6c, 0x6f, 0x74, 0x73, - 0x70, 0x61, 0x69, 0x6e, 0x6a, 0x61, 0x7a, 0x7a, 0x63, 0x6f, 0x6c, 0x64, 0x65, - 0x79, 0x65, 0x73, 0x66, 0x69, 0x73, 0x68, 0x77, 0x77, 0x77, 0x2e, 0x72, 0x69, - 0x73, 0x6b, 0x74, 0x61, 0x62, 0x73, 0x70, 0x72, 0x65, 0x76, 0x31, 0x30, 0x70, - 0x78, 0x72, 0x69, 0x73, 0x65, 0x32, 0x35, 0x70, 0x78, 0x42, 0x6c, 0x75, 0x65, - 0x64, 0x69, 0x6e, 0x67, 0x33, 0x30, 0x30, 0x2c, 0x62, 0x61, 0x6c, 0x6c, 0x66, - 0x6f, 0x72, 0x64, 0x65, 0x61, 0x72, 0x6e, 0x77, 0x69, 0x6c, 0x64, 0x62, 0x6f, - 0x78, 0x2e, 0x66, 0x61, 0x69, 0x72, 0x6c, 0x61, 0x63, 0x6b, 0x76, 0x65, 0x72, - 0x73, 0x70, 0x61, 0x69, 0x72, 0x6a, 0x75, 0x6e, 0x65, 0x74, 0x65, 0x63, 0x68, - 0x69, 0x66, 0x28, 0x21, 0x70, 0x69, 0x63, 0x6b, 0x65, 0x76, 0x69, 0x6c, 0x24, - 0x28, 0x22, 0x23, 0x77, 0x61, 0x72, 0x6d, 0x6c, 0x6f, 0x72, 0x64, 0x64, 0x6f, - 0x65, 0x73, 0x70, 0x75, 0x6c, 0x6c, 0x2c, 0x30, 0x30, 0x30, 0x69, 0x64, 0x65, - 0x61, 0x64, 0x72, 0x61, 0x77, 0x68, 0x75, 0x67, 0x65, 0x73, 0x70, 0x6f, 0x74, - 0x66, 0x75, 0x6e, 0x64, 0x62, 0x75, 0x72, 0x6e, 0x68, 0x72, 0x65, 0x66, 0x63, - 0x65, 0x6c, 0x6c, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x68, 0x6f, - 0x75, 0x72, 0x6c, 0x6f, 0x73, 0x73, 0x66, 0x75, 0x65, 0x6c, 0x31, 0x32, 0x70, - 0x78, 0x73, 0x75, 0x69, 0x74, 0x64, 0x65, 0x61, 0x6c, 0x52, 0x53, 0x53, 0x22, - 0x61, 0x67, 0x65, 0x64, 0x67, 0x72, 0x65, 0x79, 0x47, 0x45, 0x54, 0x22, 0x65, - 0x61, 0x73, 0x65, 0x61, 0x69, 0x6d, 0x73, 0x67, 0x69, 0x72, 0x6c, 0x61, 0x69, - 0x64, 0x73, 0x38, 0x70, 0x78, 0x3b, 0x6e, 0x61, 0x76, 0x79, 0x67, 0x72, 0x69, - 0x64, 0x74, 0x69, 0x70, 0x73, 0x23, 0x39, 0x39, 0x39, 0x77, 0x61, 0x72, 0x73, - 0x6c, 0x61, 0x64, 0x79, 0x63, 0x61, 0x72, 0x73, 0x29, 0x3b, 0x20, 0x7d, 0x70, - 0x68, 0x70, 0x3f, 0x68, 0x65, 0x6c, 0x6c, 0x74, 0x61, 0x6c, 0x6c, 0x77, 0x68, - 0x6f, 0x6d, 0x7a, 0x68, 0x3a, 0xe5, 0x2a, 0x2f, 0x0d, 0x0a, 0x20, 0x31, 0x30, - 0x30, 0x68, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x0a, 0x41, 0x37, 0x70, 0x78, 0x3b, - 0x70, 0x75, 0x73, 0x68, 0x63, 0x68, 0x61, 0x74, 0x30, 0x70, 0x78, 0x3b, 0x63, - 0x72, 0x65, 0x77, 0x2a, 0x2f, 0x3c, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x37, 0x35, - 0x70, 0x78, 0x66, 0x6c, 0x61, 0x74, 0x72, 0x61, 0x72, 0x65, 0x20, 0x26, 0x26, - 0x20, 0x74, 0x65, 0x6c, 0x6c, 0x63, 0x61, 0x6d, 0x70, 0x6f, 0x6e, 0x74, 0x6f, - 0x6c, 0x61, 0x69, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x73, 0x6b, 0x69, 0x70, 0x74, - 0x65, 0x6e, 0x74, 0x66, 0x69, 0x6e, 0x65, 0x6d, 0x61, 0x6c, 0x65, 0x67, 0x65, - 0x74, 0x73, 0x70, 0x6c, 0x6f, 0x74, 0x34, 0x30, 0x30, 0x2c, 0x0d, 0x0a, 0x0d, - 0x0a, 0x63, 0x6f, 0x6f, 0x6c, 0x66, 0x65, 0x65, 0x74, 0x2e, 0x70, 0x68, 0x70, - 0x3c, 0x62, 0x72, 0x3e, 0x65, 0x72, 0x69, 0x63, 0x6d, 0x6f, 0x73, 0x74, 0x67, - 0x75, 0x69, 0x64, 0x62, 0x65, 0x6c, 0x6c, 0x64, 0x65, 0x73, 0x63, 0x68, 0x61, - 0x69, 0x72, 0x6d, 0x61, 0x74, 0x68, 0x61, 0x74, 0x6f, 0x6d, 0x2f, 0x69, 0x6d, - 0x67, 0x26, 0x23, 0x38, 0x32, 0x6c, 0x75, 0x63, 0x6b, 0x63, 0x65, 0x6e, 0x74, - 0x30, 0x30, 0x30, 0x3b, 0x74, 0x69, 0x6e, 0x79, 0x67, 0x6f, 0x6e, 0x65, 0x68, - 0x74, 0x6d, 0x6c, 0x73, 0x65, 0x6c, 0x6c, 0x64, 0x72, 0x75, 0x67, 0x46, 0x52, - 0x45, 0x45, 0x6e, 0x6f, 0x64, 0x65, 0x6e, 0x69, 0x63, 0x6b, 0x3f, 0x69, 0x64, - 0x3d, 0x6c, 0x6f, 0x73, 0x65, 0x6e, 0x75, 0x6c, 0x6c, 0x76, 0x61, 0x73, 0x74, - 0x77, 0x69, 0x6e, 0x64, 0x52, 0x53, 0x53, 0x20, 0x77, 0x65, 0x61, 0x72, 0x72, - 0x65, 0x6c, 0x79, 0x62, 0x65, 0x65, 0x6e, 0x73, 0x61, 0x6d, 0x65, 0x64, 0x75, - 0x6b, 0x65, 0x6e, 0x61, 0x73, 0x61, 0x63, 0x61, 0x70, 0x65, 0x77, 0x69, 0x73, - 0x68, 0x67, 0x75, 0x6c, 0x66, 0x54, 0x32, 0x33, 0x3a, 0x68, 0x69, 0x74, 0x73, - 0x73, 0x6c, 0x6f, 0x74, 0x67, 0x61, 0x74, 0x65, 0x6b, 0x69, 0x63, 0x6b, 0x62, - 0x6c, 0x75, 0x72, 0x74, 0x68, 0x65, 0x79, 0x31, 0x35, 0x70, 0x78, 0x27, 0x27, - 0x29, 0x3b, 0x29, 0x3b, 0x22, 0x3e, 0x6d, 0x73, 0x69, 0x65, 0x77, 0x69, 0x6e, - 0x73, 0x62, 0x69, 0x72, 0x64, 0x73, 0x6f, 0x72, 0x74, 0x62, 0x65, 0x74, 0x61, - 0x73, 0x65, 0x65, 0x6b, 0x54, 0x31, 0x38, 0x3a, 0x6f, 0x72, 0x64, 0x73, 0x74, - 0x72, 0x65, 0x65, 0x6d, 0x61, 0x6c, 0x6c, 0x36, 0x30, 0x70, 0x78, 0x66, 0x61, - 0x72, 0x6d, 0xe2, 0x80, 0x99, 0x73, 0x62, 0x6f, 0x79, 0x73, 0x5b, 0x30, 0x5d, - 0x2e, 0x27, 0x29, 0x3b, 0x22, 0x50, 0x4f, 0x53, 0x54, 0x62, 0x65, 0x61, 0x72, - 0x6b, 0x69, 0x64, 0x73, 0x29, 0x3b, 0x7d, 0x7d, 0x6d, 0x61, 0x72, 0x79, 0x74, - 0x65, 0x6e, 0x64, 0x28, 0x55, 0x4b, 0x29, 0x71, 0x75, 0x61, 0x64, 0x7a, 0x68, - 0x3a, 0xe6, 0x2d, 0x73, 0x69, 0x7a, 0x2d, 0x2d, 0x2d, 0x2d, 0x70, 0x72, 0x6f, - 0x70, 0x27, 0x29, 0x3b, 0x0d, 0x6c, 0x69, 0x66, 0x74, 0x54, 0x31, 0x39, 0x3a, - 0x76, 0x69, 0x63, 0x65, 0x61, 0x6e, 0x64, 0x79, 0x64, 0x65, 0x62, 0x74, 0x3e, - 0x52, 0x53, 0x53, 0x70, 0x6f, 0x6f, 0x6c, 0x6e, 0x65, 0x63, 0x6b, 0x62, 0x6c, - 0x6f, 0x77, 0x54, 0x31, 0x36, 0x3a, 0x64, 0x6f, 0x6f, 0x72, 0x65, 0x76, 0x61, - 0x6c, 0x54, 0x31, 0x37, 0x3a, 0x6c, 0x65, 0x74, 0x73, 0x66, 0x61, 0x69, 0x6c, - 0x6f, 0x72, 0x61, 0x6c, 0x70, 0x6f, 0x6c, 0x6c, 0x6e, 0x6f, 0x76, 0x61, 0x63, - 0x6f, 0x6c, 0x73, 0x67, 0x65, 0x6e, 0x65, 0x20, 0xe2, 0x80, 0x94, 0x73, 0x6f, - 0x66, 0x74, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x69, 0x6c, 0x6c, 0x72, 0x6f, 0x73, - 0x73, 0x3c, 0x68, 0x33, 0x3e, 0x70, 0x6f, 0x75, 0x72, 0x66, 0x61, 0x64, 0x65, - 0x70, 0x69, 0x6e, 0x6b, 0x3c, 0x74, 0x72, 0x3e, 0x6d, 0x69, 0x6e, 0x69, 0x29, - 0x7c, 0x21, 0x28, 0x6d, 0x69, 0x6e, 0x65, 0x7a, 0x68, 0x3a, 0xe8, 0x62, 0x61, - 0x72, 0x73, 0x68, 0x65, 0x61, 0x72, 0x30, 0x30, 0x29, 0x3b, 0x6d, 0x69, 0x6c, - 0x6b, 0x20, 0x2d, 0x2d, 0x3e, 0x69, 0x72, 0x6f, 0x6e, 0x66, 0x72, 0x65, 0x64, - 0x64, 0x69, 0x73, 0x6b, 0x77, 0x65, 0x6e, 0x74, 0x73, 0x6f, 0x69, 0x6c, 0x70, - 0x75, 0x74, 0x73, 0x2f, 0x6a, 0x73, 0x2f, 0x68, 0x6f, 0x6c, 0x79, 0x54, 0x32, - 0x32, 0x3a, 0x49, 0x53, 0x42, 0x4e, 0x54, 0x32, 0x30, 0x3a, 0x61, 0x64, 0x61, - 0x6d, 0x73, 0x65, 0x65, 0x73, 0x3c, 0x68, 0x32, 0x3e, 0x6a, 0x73, 0x6f, 0x6e, - 0x27, 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6e, 0x74, 0x54, 0x32, 0x31, 0x3a, 0x20, - 0x52, 0x53, 0x53, 0x6c, 0x6f, 0x6f, 0x70, 0x61, 0x73, 0x69, 0x61, 0x6d, 0x6f, - 0x6f, 0x6e, 0x3c, 0x2f, 0x70, 0x3e, 0x73, 0x6f, 0x75, 0x6c, 0x4c, 0x49, 0x4e, - 0x45, 0x66, 0x6f, 0x72, 0x74, 0x63, 0x61, 0x72, 0x74, 0x54, 0x31, 0x34, 0x3a, - 0x3c, 0x68, 0x31, 0x3e, 0x38, 0x30, 0x70, 0x78, 0x21, 0x2d, 0x2d, 0x3c, 0x39, - 0x70, 0x78, 0x3b, 0x54, 0x30, 0x34, 0x3a, 0x6d, 0x69, 0x6b, 0x65, 0x3a, 0x34, - 0x36, 0x5a, 0x6e, 0x69, 0x63, 0x65, 0x69, 0x6e, 0x63, 0x68, 0x59, 0x6f, 0x72, - 0x6b, 0x72, 0x69, 0x63, 0x65, 0x7a, 0x68, 0x3a, 0xe4, 0x27, 0x29, 0x29, 0x3b, - 0x70, 0x75, 0x72, 0x65, 0x6d, 0x61, 0x67, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x6f, 0x6e, 0x65, 0x62, 0x6f, 0x6e, 0x64, 0x3a, 0x33, 0x37, 0x5a, 0x5f, 0x6f, - 0x66, 0x5f, 0x27, 0x5d, 0x29, 0x3b, 0x30, 0x30, 0x30, 0x2c, 0x7a, 0x68, 0x3a, - 0xe7, 0x74, 0x61, 0x6e, 0x6b, 0x79, 0x61, 0x72, 0x64, 0x62, 0x6f, 0x77, 0x6c, - 0x62, 0x75, 0x73, 0x68, 0x3a, 0x35, 0x36, 0x5a, 0x4a, 0x61, 0x76, 0x61, 0x33, - 0x30, 0x70, 0x78, 0x0a, 0x7c, 0x7d, 0x0a, 0x25, 0x43, 0x33, 0x25, 0x3a, 0x33, - 0x34, 0x5a, 0x6a, 0x65, 0x66, 0x66, 0x45, 0x58, 0x50, 0x49, 0x63, 0x61, 0x73, - 0x68, 0x76, 0x69, 0x73, 0x61, 0x67, 0x6f, 0x6c, 0x66, 0x73, 0x6e, 0x6f, 0x77, - 0x7a, 0x68, 0x3a, 0xe9, 0x71, 0x75, 0x65, 0x72, 0x2e, 0x63, 0x73, 0x73, 0x73, - 0x69, 0x63, 0x6b, 0x6d, 0x65, 0x61, 0x74, 0x6d, 0x69, 0x6e, 0x2e, 0x62, 0x69, - 0x6e, 0x64, 0x64, 0x65, 0x6c, 0x6c, 0x68, 0x69, 0x72, 0x65, 0x70, 0x69, 0x63, - 0x73, 0x72, 0x65, 0x6e, 0x74, 0x3a, 0x33, 0x36, 0x5a, 0x48, 0x54, 0x54, 0x50, - 0x2d, 0x32, 0x30, 0x31, 0x66, 0x6f, 0x74, 0x6f, 0x77, 0x6f, 0x6c, 0x66, 0x45, - 0x4e, 0x44, 0x20, 0x78, 0x62, 0x6f, 0x78, 0x3a, 0x35, 0x34, 0x5a, 0x42, 0x4f, - 0x44, 0x59, 0x64, 0x69, 0x63, 0x6b, 0x3b, 0x0a, 0x7d, 0x0a, 0x65, 0x78, 0x69, - 0x74, 0x3a, 0x33, 0x35, 0x5a, 0x76, 0x61, 0x72, 0x73, 0x62, 0x65, 0x61, 0x74, - 0x27, 0x7d, 0x29, 0x3b, 0x64, 0x69, 0x65, 0x74, 0x39, 0x39, 0x39, 0x3b, 0x61, - 0x6e, 0x6e, 0x65, 0x7d, 0x7d, 0x3c, 0x2f, 0x5b, 0x69, 0x5d, 0x2e, 0x4c, 0x61, - 0x6e, 0x67, 0x6b, 0x6d, 0xc2, 0xb2, 0x77, 0x69, 0x72, 0x65, 0x74, 0x6f, 0x79, - 0x73, 0x61, 0x64, 0x64, 0x73, 0x73, 0x65, 0x61, 0x6c, 0x61, 0x6c, 0x65, 0x78, - 0x3b, 0x0a, 0x09, 0x7d, 0x65, 0x63, 0x68, 0x6f, 0x6e, 0x69, 0x6e, 0x65, 0x2e, - 0x6f, 0x72, 0x67, 0x30, 0x30, 0x35, 0x29, 0x74, 0x6f, 0x6e, 0x79, 0x6a, 0x65, - 0x77, 0x73, 0x73, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x67, 0x73, 0x72, 0x6f, 0x6f, - 0x66, 0x30, 0x30, 0x30, 0x29, 0x20, 0x32, 0x30, 0x30, 0x77, 0x69, 0x6e, 0x65, - 0x67, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x67, 0x73, 0x62, 0x6f, 0x6f, 0x74, 0x67, - 0x61, 0x72, 0x79, 0x63, 0x75, 0x74, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x74, 0x65, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x63, 0x6f, 0x63, - 0x6b, 0x67, 0x61, 0x6e, 0x67, 0x24, 0x28, 0x27, 0x2e, 0x35, 0x30, 0x70, 0x78, - 0x50, 0x68, 0x2e, 0x44, 0x6d, 0x69, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x6e, 0x6c, - 0x6f, 0x61, 0x6e, 0x64, 0x65, 0x73, 0x6b, 0x6d, 0x69, 0x6c, 0x65, 0x72, 0x79, - 0x61, 0x6e, 0x75, 0x6e, 0x69, 0x78, 0x64, 0x69, 0x73, 0x63, 0x29, 0x3b, 0x7d, - 0x0a, 0x64, 0x75, 0x73, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x29, 0x2e, 0x0a, 0x0a, - 0x37, 0x30, 0x70, 0x78, 0x2d, 0x32, 0x30, 0x30, 0x44, 0x56, 0x44, 0x73, 0x37, - 0x5d, 0x3e, 0x3c, 0x74, 0x61, 0x70, 0x65, 0x64, 0x65, 0x6d, 0x6f, 0x69, 0x2b, - 0x2b, 0x29, 0x77, 0x61, 0x67, 0x65, 0x65, 0x75, 0x72, 0x6f, 0x70, 0x68, 0x69, - 0x6c, 0x6f, 0x70, 0x74, 0x73, 0x68, 0x6f, 0x6c, 0x65, 0x46, 0x41, 0x51, 0x73, - 0x61, 0x73, 0x69, 0x6e, 0x2d, 0x32, 0x36, 0x54, 0x6c, 0x61, 0x62, 0x73, 0x70, - 0x65, 0x74, 0x73, 0x55, 0x52, 0x4c, 0x20, 0x62, 0x75, 0x6c, 0x6b, 0x63, 0x6f, - 0x6f, 0x6b, 0x3b, 0x7d, 0x0d, 0x0a, 0x48, 0x45, 0x41, 0x44, 0x5b, 0x30, 0x5d, - 0x29, 0x61, 0x62, 0x62, 0x72, 0x6a, 0x75, 0x61, 0x6e, 0x28, 0x31, 0x39, 0x38, - 0x6c, 0x65, 0x73, 0x68, 0x74, 0x77, 0x69, 0x6e, 0x3c, 0x2f, 0x69, 0x3e, 0x73, - 0x6f, 0x6e, 0x79, 0x67, 0x75, 0x79, 0x73, 0x66, 0x75, 0x63, 0x6b, 0x70, 0x69, - 0x70, 0x65, 0x7c, 0x2d, 0x0a, 0x21, 0x30, 0x30, 0x32, 0x29, 0x6e, 0x64, 0x6f, - 0x77, 0x5b, 0x31, 0x5d, 0x3b, 0x5b, 0x5d, 0x3b, 0x0a, 0x4c, 0x6f, 0x67, 0x20, - 0x73, 0x61, 0x6c, 0x74, 0x0d, 0x0a, 0x09, 0x09, 0x62, 0x61, 0x6e, 0x67, 0x74, - 0x72, 0x69, 0x6d, 0x62, 0x61, 0x74, 0x68, 0x29, 0x7b, 0x0d, 0x0a, 0x30, 0x30, - 0x70, 0x78, 0x0a, 0x7d, 0x29, 0x3b, 0x6b, 0x6f, 0x3a, 0xec, 0x66, 0x65, 0x65, - 0x73, 0x61, 0x64, 0x3e, 0x0d, 0x73, 0x3a, 0x2f, 0x2f, 0x20, 0x5b, 0x5d, 0x3b, - 0x74, 0x6f, 0x6c, 0x6c, 0x70, 0x6c, 0x75, 0x67, 0x28, 0x29, 0x7b, 0x0a, 0x7b, - 0x0d, 0x0a, 0x20, 0x2e, 0x6a, 0x73, 0x27, 0x32, 0x30, 0x30, 0x70, 0x64, 0x75, - 0x61, 0x6c, 0x62, 0x6f, 0x61, 0x74, 0x2e, 0x4a, 0x50, 0x47, 0x29, 0x3b, 0x0a, - 0x7d, 0x71, 0x75, 0x6f, 0x74, 0x29, 0x3b, 0x0a, 0x0a, 0x27, 0x29, 0x3b, 0x0a, - 0x0d, 0x0a, 0x7d, 0x0d, 0x32, 0x30, 0x31, 0x34, 0x32, 0x30, 0x31, 0x35, 0x32, - 0x30, 0x31, 0x36, 0x32, 0x30, 0x31, 0x37, 0x32, 0x30, 0x31, 0x38, 0x32, 0x30, - 0x31, 0x39, 0x32, 0x30, 0x32, 0x30, 0x32, 0x30, 0x32, 0x31, 0x32, 0x30, 0x32, - 0x32, 0x32, 0x30, 0x32, 0x33, 0x32, 0x30, 0x32, 0x34, 0x32, 0x30, 0x32, 0x35, - 0x32, 0x30, 0x32, 0x36, 0x32, 0x30, 0x32, 0x37, 0x32, 0x30, 0x32, 0x38, 0x32, - 0x30, 0x32, 0x39, 0x32, 0x30, 0x33, 0x30, 0x32, 0x30, 0x33, 0x31, 0x32, 0x30, - 0x33, 0x32, 0x32, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x34, 0x32, 0x30, 0x33, - 0x35, 0x32, 0x30, 0x33, 0x36, 0x32, 0x30, 0x33, 0x37, 0x32, 0x30, 0x31, 0x33, - 0x32, 0x30, 0x31, 0x32, 0x32, 0x30, 0x31, 0x31, 0x32, 0x30, 0x31, 0x30, 0x32, - 0x30, 0x30, 0x39, 0x32, 0x30, 0x30, 0x38, 0x32, 0x30, 0x30, 0x37, 0x32, 0x30, - 0x30, 0x36, 0x32, 0x30, 0x30, 0x35, 0x32, 0x30, 0x30, 0x34, 0x32, 0x30, 0x30, - 0x33, 0x32, 0x30, 0x30, 0x32, 0x32, 0x30, 0x30, 0x31, 0x32, 0x30, 0x30, 0x30, - 0x31, 0x39, 0x39, 0x39, 0x31, 0x39, 0x39, 0x38, 0x31, 0x39, 0x39, 0x37, 0x31, - 0x39, 0x39, 0x36, 0x31, 0x39, 0x39, 0x35, 0x31, 0x39, 0x39, 0x34, 0x31, 0x39, - 0x39, 0x33, 0x31, 0x39, 0x39, 0x32, 0x31, 0x39, 0x39, 0x31, 0x31, 0x39, 0x39, - 0x30, 0x31, 0x39, 0x38, 0x39, 0x31, 0x39, 0x38, 0x38, 0x31, 0x39, 0x38, 0x37, - 0x31, 0x39, 0x38, 0x36, 0x31, 0x39, 0x38, 0x35, 0x31, 0x39, 0x38, 0x34, 0x31, - 0x39, 0x38, 0x33, 0x31, 0x39, 0x38, 0x32, 0x31, 0x39, 0x38, 0x31, 0x31, 0x39, - 0x38, 0x30, 0x31, 0x39, 0x37, 0x39, 0x31, 0x39, 0x37, 0x38, 0x31, 0x39, 0x37, - 0x37, 0x31, 0x39, 0x37, 0x36, 0x31, 0x39, 0x37, 0x35, 0x31, 0x39, 0x37, 0x34, - 0x31, 0x39, 0x37, 0x33, 0x31, 0x39, 0x37, 0x32, 0x31, 0x39, 0x37, 0x31, 0x31, - 0x39, 0x37, 0x30, 0x31, 0x39, 0x36, 0x39, 0x31, 0x39, 0x36, 0x38, 0x31, 0x39, - 0x36, 0x37, 0x31, 0x39, 0x36, 0x36, 0x31, 0x39, 0x36, 0x35, 0x31, 0x39, 0x36, - 0x34, 0x31, 0x39, 0x36, 0x33, 0x31, 0x39, 0x36, 0x32, 0x31, 0x39, 0x36, 0x31, - 0x31, 0x39, 0x36, 0x30, 0x31, 0x39, 0x35, 0x39, 0x31, 0x39, 0x35, 0x38, 0x31, - 0x39, 0x35, 0x37, 0x31, 0x39, 0x35, 0x36, 0x31, 0x39, 0x35, 0x35, 0x31, 0x39, - 0x35, 0x34, 0x31, 0x39, 0x35, 0x33, 0x31, 0x39, 0x35, 0x32, 0x31, 0x39, 0x35, - 0x31, 0x31, 0x39, 0x35, 0x30, 0x31, 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x34, - 0x31, 0x33, 0x39, 0x34, 0x30, 0x30, 0x30, 0x30, 0x39, 0x39, 0x39, 0x39, 0x63, - 0x6f, 0x6d, 0x6f, 0x6d, 0xc3, 0xa1, 0x73, 0x65, 0x73, 0x74, 0x65, 0x65, 0x73, - 0x74, 0x61, 0x70, 0x65, 0x72, 0x6f, 0x74, 0x6f, 0x64, 0x6f, 0x68, 0x61, 0x63, - 0x65, 0x63, 0x61, 0x64, 0x61, 0x61, 0xc3, 0xb1, 0x6f, 0x62, 0x69, 0x65, 0x6e, - 0x64, 0xc3, 0xad, 0x61, 0x61, 0x73, 0xc3, 0xad, 0x76, 0x69, 0x64, 0x61, 0x63, - 0x61, 0x73, 0x6f, 0x6f, 0x74, 0x72, 0x6f, 0x66, 0x6f, 0x72, 0x6f, 0x73, 0x6f, - 0x6c, 0x6f, 0x6f, 0x74, 0x72, 0x61, 0x63, 0x75, 0x61, 0x6c, 0x64, 0x69, 0x6a, - 0x6f, 0x73, 0x69, 0x64, 0x6f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x70, 0x6f, - 0x74, 0x65, 0x6d, 0x61, 0x64, 0x65, 0x62, 0x65, 0x61, 0x6c, 0x67, 0x6f, 0x71, - 0x75, 0xc3, 0xa9, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x61, 0x64, 0x61, 0x74, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x63, 0x6f, 0x63, 0x61, 0x73, 0x61, 0x62, 0x61, 0x6a, - 0x6f, 0x74, 0x6f, 0x64, 0x61, 0x73, 0x69, 0x6e, 0x6f, 0x61, 0x67, 0x75, 0x61, - 0x70, 0x75, 0x65, 0x73, 0x75, 0x6e, 0x6f, 0x73, 0x61, 0x6e, 0x74, 0x65, 0x64, - 0x69, 0x63, 0x65, 0x6c, 0x75, 0x69, 0x73, 0x65, 0x6c, 0x6c, 0x61, 0x6d, 0x61, - 0x79, 0x6f, 0x7a, 0x6f, 0x6e, 0x61, 0x61, 0x6d, 0x6f, 0x72, 0x70, 0x69, 0x73, - 0x6f, 0x6f, 0x62, 0x72, 0x61, 0x63, 0x6c, 0x69, 0x63, 0x65, 0x6c, 0x6c, 0x6f, - 0x64, 0x69, 0x6f, 0x73, 0x68, 0x6f, 0x72, 0x61, 0x63, 0x61, 0x73, 0x69, 0xd0, - 0xb7, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xbe, 0xd0, 0xbc, 0xd1, 0x80, - 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x83, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, - 0xb5, 0xd0, 0xbf, 0xd0, 0xbe, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xb7, - 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, - 0xb6, 0xd0, 0xb5, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, 0x85, 0xd0, 0x9d, - 0xd0, 0xb0, 0xd0, 0xb5, 0xd0, 0xb5, 0xd0, 0xb1, 0xd1, 0x8b, 0xd0, 0xbc, 0xd1, - 0x8b, 0xd0, 0x92, 0xd1, 0x8b, 0xd1, 0x81, 0xd0, 0xbe, 0xd0, 0xb2, 0xd1, 0x8b, - 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0x9d, 0xd0, 0xbe, 0xd0, 0xbe, 0xd0, 0xb1, 0xd0, - 0x9f, 0xd0, 0xbe, 0xd0, 0xbb, 0xd0, 0xb8, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xa0, - 0xd0, 0xa4, 0xd0, 0x9d, 0xd0, 0xb5, 0xd0, 0x9c, 0xd1, 0x8b, 0xd1, 0x82, 0xd1, - 0x8b, 0xd0, 0x9e, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xbc, 0xd0, 0xb4, 0xd0, 0xb0, - 0xd0, 0x97, 0xd0, 0xb0, 0xd0, 0x94, 0xd0, 0xb0, 0xd0, 0x9d, 0xd1, 0x83, 0xd0, - 0x9e, 0xd0, 0xb1, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0x98, 0xd0, 0xb7, 0xd0, 0xb5, - 0xd0, 0xb9, 0xd0, 0xbd, 0xd1, 0x83, 0xd0, 0xbc, 0xd0, 0xbc, 0xd0, 0xa2, 0xd1, - 0x8b, 0xd1, 0x83, 0xd0, 0xb6, 0xd9, 0x81, 0xd9, 0x8a, 0xd8, 0xa3, 0xd9, 0x86, - 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xb9, 0xd9, 0x83, 0xd9, 0x84, 0xd8, - 0xa3, 0xd9, 0x88, 0xd8, 0xb1, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, 0x81, - 0xd9, 0x89, 0xd9, 0x87, 0xd9, 0x88, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x84, 0xd9, - 0x83, 0xd8, 0xa7, 0xd9, 0x88, 0xd9, 0x84, 0xd9, 0x87, 0xd8, 0xa8, 0xd8, 0xb3, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa5, 0xd9, 0x86, 0xd9, 0x87, 0xd9, 0x8a, 0xd8, - 0xa3, 0xd9, 0x8a, 0xd9, 0x82, 0xd8, 0xaf, 0xd9, 0x87, 0xd9, 0x84, 0xd8, 0xab, - 0xd9, 0x85, 0xd8, 0xa8, 0xd9, 0x87, 0xd9, 0x84, 0xd9, 0x88, 0xd9, 0x84, 0xd9, - 0x8a, 0xd8, 0xa8, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x8a, 0xd8, 0xa8, 0xd9, 0x83, - 0xd8, 0xb4, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xa3, 0xd9, 0x85, 0xd9, - 0x86, 0xd8, 0xaa, 0xd8, 0xa8, 0xd9, 0x8a, 0xd9, 0x84, 0xd9, 0x86, 0xd8, 0xad, - 0xd8, 0xa8, 0xd9, 0x87, 0xd9, 0x85, 0xd9, 0x85, 0xd8, 0xb4, 0xd9, 0x88, 0xd8, - 0xb4, 0x66, 0x69, 0x72, 0x73, 0x74, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x77, 0x68, 0x69, 0x74, 0x65, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x62, 0x6c, 0x61, - 0x63, 0x6b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x62, - 0x6f, 0x6f, 0x6b, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x75, 0x73, 0x69, - 0x63, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x68, 0x6f, 0x75, - 0x73, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x79, - 0x65, 0x61, 0x72, 0x73, 0x73, 0x74, 0x61, 0x74, 0x65, 0x74, 0x6f, 0x64, 0x61, - 0x79, 0x77, 0x61, 0x74, 0x65, 0x72, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x64, 0x65, 0x61, 0x74, 0x68, 0x70, 0x6f, 0x77, 0x65, 0x72, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x74, - 0x65, 0x72, 0x6d, 0x73, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x74, 0x6f, 0x6f, 0x6c, - 0x73, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x73, - 0x67, 0x61, 0x6d, 0x65, 0x73, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x67, 0x75, 0x69, 0x64, - 0x65, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x77, 0x6f, - 0x6d, 0x65, 0x6e, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x6d, 0x6f, 0x6e, 0x65, 0x79, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x79, 0x6f, 0x75, - 0x6e, 0x67, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x66, 0x72, 0x6f, 0x6e, - 0x74, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x77, 0x61, 0x74, 0x63, 0x68, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x70, 0x72, 0x69, 0x63, 0x65, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x62, 0x65, 0x67, 0x69, 0x6e, 0x61, 0x66, 0x74, 0x65, 0x72, 0x76, 0x69, 0x73, - 0x69, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x61, 0x72, 0x65, 0x61, 0x73, 0x62, - 0x65, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x70, 0x72, - 0x69, 0x6e, 0x74, 0x70, 0x72, 0x65, 0x73, 0x73, 0x62, 0x75, 0x69, 0x6c, 0x74, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x73, 0x70, 0x65, 0x65, 0x64, 0x73, 0x74, 0x75, - 0x64, 0x79, 0x74, 0x72, 0x61, 0x64, 0x65, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x73, - 0x65, 0x6e, 0x73, 0x65, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x68, 0x6f, 0x77, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x61, 0x64, - 0x64, 0x65, 0x64, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x6d, 0x6f, 0x76, 0x65, 0x64, - 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x66, 0x6c, 0x61, - 0x73, 0x68, 0x66, 0x69, 0x78, 0x65, 0x64, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x73, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x72, 0x69, 0x76, 0x65, 0x72, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x73, 0x68, 0x61, 0x70, 0x65, - 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x67, 0x6f, 0x69, - 0x6e, 0x67, 0x6d, 0x6f, 0x76, 0x69, 0x65, 0x74, 0x68, 0x69, 0x72, 0x64, 0x62, - 0x61, 0x73, 0x69, 0x63, 0x70, 0x65, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x77, 0x69, 0x64, 0x74, 0x68, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x69, 0x64, - 0x65, 0x61, 0x73, 0x77, 0x72, 0x6f, 0x74, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x64, 0x72, 0x69, 0x76, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x73, 0x69, 0x74, 0x65, 0x73, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x77, 0x68, 0x65, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x65, 0x61, 0x72, 0x74, 0x68, 0x66, 0x6f, 0x72, 0x75, 0x6d, - 0x74, 0x68, 0x72, 0x65, 0x65, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x70, 0x61, 0x72, - 0x74, 0x79, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x75, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x63, 0x6f, 0x75, 0x72, 0x74, - 0x79, 0x6f, 0x75, 0x72, 0x20, 0x62, 0x69, 0x72, 0x74, 0x68, 0x70, 0x6f, 0x70, - 0x75, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x75, 0x70, 0x70, 0x65, - 0x72, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x65, 0x76, 0x65, 0x72, 0x79, 0x73, 0x68, - 0x6f, 0x77, 0x73, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x65, 0x61, 0x72, 0x6c, 0x79, 0x62, 0x65, 0x67, 0x61, 0x6e, 0x73, - 0x75, 0x70, 0x65, 0x72, 0x70, 0x61, 0x70, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x74, - 0x68, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x70, 0x61, 0x72, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x72, 0x61, - 0x6e, 0x64, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x72, 0x65, 0x61, 0x64, 0x79, 0x61, 0x75, 0x64, 0x69, - 0x6f, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x64, 0x63, 0x61, 0x73, 0x65, 0x73, - 0x64, 0x61, 0x69, 0x6c, 0x79, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x67, 0x72, 0x65, - 0x61, 0x74, 0x6a, 0x75, 0x64, 0x67, 0x65, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x75, - 0x6e, 0x69, 0x74, 0x73, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x62, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x6f, 0x61, 0x73, 0x74, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x70, - 0x70, 0x6c, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x63, 0x79, 0x63, 0x6c, 0x65, - 0x73, 0x63, 0x65, 0x6e, 0x65, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x63, 0x6c, 0x69, - 0x63, 0x6b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x71, 0x75, 0x65, 0x65, 0x6e, 0x70, - 0x69, 0x65, 0x63, 0x65, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x63, 0x61, 0x63, 0x68, 0x65, 0x63, 0x69, 0x76, 0x69, 0x6c, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x68, 0x65, - 0x6d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x72, 0x6f, 0x79, 0x61, 0x6c, 0x61, 0x73, 0x6b, 0x65, - 0x64, 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x74, - 0x6f, 0x63, 0x6b, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x66, 0x61, 0x69, 0x74, 0x68, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x6f, 0x77, 0x6e, 0x65, 0x64, 0x6d, - 0x69, 0x67, 0x68, 0x74, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x74, 0x68, 0x69, 0x6e, - 0x6b, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x61, 0x72, 0x72, 0x61, 0x79, 0x6d, 0x61, - 0x6a, 0x6f, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x68, 0x61, 0x70, 0x70, 0x79, 0x6f, 0x63, 0x63, 0x75, - 0x72, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x66, 0x72, 0x65, 0x73, 0x68, 0x71, 0x75, - 0x69, 0x74, 0x65, 0x66, 0x69, 0x6c, 0x6d, 0x73, 0x67, 0x72, 0x61, 0x64, 0x65, - 0x6e, 0x65, 0x65, 0x64, 0x73, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x66, 0x69, 0x67, - 0x68, 0x74, 0x62, 0x61, 0x73, 0x69, 0x73, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x75, 0x74, 0x6f, 0x3b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x68, 0x74, 0x6d, - 0x6c, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x59, 0x6f, - 0x75, 0x72, 0x20, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x72, 0x61, - 0x77, 0x6e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, - 0x69, 0x67, 0x68, 0x74, 0x64, 0x61, 0x74, 0x65, 0x73, 0x6d, 0x61, 0x72, 0x63, - 0x68, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x4c, 0x69, - 0x6e, 0x6b, 0x73, 0x64, 0x6f, 0x75, 0x62, 0x74, 0x61, 0x73, 0x79, 0x6e, 0x63, - 0x74, 0x68, 0x75, 0x6d, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x63, 0x68, 0x69, - 0x65, 0x66, 0x79, 0x6f, 0x75, 0x74, 0x68, 0x6e, 0x6f, 0x76, 0x65, 0x6c, 0x31, - 0x30, 0x70, 0x78, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x75, 0x6e, 0x74, 0x69, - 0x6c, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x71, 0x75, 0x65, 0x72, 0x79, 0x6a, 0x61, 0x6d, 0x65, 0x73, - 0x65, 0x71, 0x75, 0x61, 0x6c, 0x74, 0x77, 0x69, 0x63, 0x65, 0x30, 0x2c, 0x30, - 0x30, 0x30, 0x53, 0x74, 0x61, 0x72, 0x74, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x73, - 0x6f, 0x6e, 0x67, 0x73, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x73, 0x68, 0x69, 0x66, 0x74, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x70, 0x6f, - 0x73, 0x74, 0x73, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x77, 0x65, 0x65, 0x6b, 0x73, - 0x61, 0x76, 0x6f, 0x69, 0x64, 0x74, 0x68, 0x65, 0x73, 0x65, 0x6d, 0x69, 0x6c, - 0x65, 0x73, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x6d, 0x61, 0x72, 0x6b, - 0x73, 0x72, 0x61, 0x74, 0x65, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x73, 0x61, 0x6c, 0x65, 0x73, 0x74, 0x65, 0x78, 0x74, 0x73, - 0x73, 0x74, 0x61, 0x72, 0x73, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x3c, 0x2f, 0x68, - 0x33, 0x3e, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x68, 0x65, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x6f, - 0x6c, 0x69, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x62, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x68, 0x69, 0x70, 0x73, 0x73, 0x74, 0x61, 0x66, 0x66, 0x74, 0x72, 0x69, - 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x2f, 0x2f, 0x2d, 0x2d, 0x3e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x65, 0x67, - 0x79, 0x70, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x31, 0x35, 0x70, 0x78, 0x3b, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x72, 0x75, 0x65, 0x22, 0x63, 0x72, 0x6f, - 0x73, 0x73, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x62, 0x6c, 0x6f, 0x67, 0x73, 0x62, - 0x6f, 0x78, 0x22, 0x3e, 0x6e, 0x6f, 0x74, 0x65, 0x64, 0x6c, 0x65, 0x61, 0x76, - 0x65, 0x63, 0x68, 0x69, 0x6e, 0x61, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x67, 0x75, - 0x65, 0x73, 0x74, 0x3c, 0x2f, 0x68, 0x34, 0x3e, 0x72, 0x6f, 0x62, 0x6f, 0x74, - 0x68, 0x65, 0x61, 0x76, 0x79, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x73, 0x65, 0x76, - 0x65, 0x6e, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x63, 0x72, 0x69, 0x6d, 0x65, 0x73, - 0x69, 0x67, 0x6e, 0x73, 0x61, 0x77, 0x61, 0x72, 0x65, 0x64, 0x61, 0x6e, 0x63, - 0x65, 0x70, 0x68, 0x61, 0x73, 0x65, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x65, 0x6e, - 0x5f, 0x55, 0x53, 0x26, 0x23, 0x33, 0x39, 0x3b, 0x32, 0x30, 0x30, 0x70, 0x78, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x6a, - 0x6f, 0x79, 0x61, 0x6a, 0x61, 0x78, 0x2e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x68, 0x55, 0x2e, 0x53, 0x2e, 0x20, 0x68, 0x6f, 0x6c, 0x64, - 0x73, 0x70, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, - 0x76, 0x22, 0x3e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x64, 0x6f, 0x69, 0x6e, 0x67, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x31, 0x39, 0x39, 0x30, 0x73, 0x72, - 0x6f, 0x6d, 0x61, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x6a, 0x61, 0x70, 0x61, - 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x61, 0x67, 0x72, 0x65, 0x65, 0x3c, 0x2f, 0x68, 0x32, 0x3e, - 0x61, 0x62, 0x75, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x63, 0x61, 0x72, 0x64, 0x73, 0x68, - 0x69, 0x6c, 0x6c, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x50, 0x68, 0x6f, 0x74, - 0x6f, 0x74, 0x72, 0x75, 0x74, 0x68, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x2e, 0x70, - 0x68, 0x70, 0x3f, 0x73, 0x61, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x6c, - 0x6c, 0x6f, 0x75, 0x69, 0x73, 0x6d, 0x65, 0x61, 0x6e, 0x74, 0x70, 0x72, 0x6f, - 0x6f, 0x66, 0x62, 0x72, 0x69, 0x65, 0x66, 0x72, 0x6f, 0x77, 0x22, 0x3e, 0x67, - 0x65, 0x6e, 0x72, 0x65, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x6c, 0x6f, 0x6f, 0x6b, - 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x6e, - 0x65, 0x74, 0x2f, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, 0x74, 0x72, 0x79, 0x20, 0x7b, - 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x73, 0x63, 0x6f, 0x73, - 0x74, 0x73, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x61, 0x64, 0x75, 0x6c, 0x74, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x6c, 0x61, 0x62, 0x6f, - 0x72, 0x68, 0x65, 0x6c, 0x70, 0x73, 0x63, 0x61, 0x75, 0x73, 0x65, 0x6d, 0x61, - 0x67, 0x69, 0x63, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x69, 0x72, - 0x32, 0x35, 0x30, 0x70, 0x78, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x73, 0x74, 0x65, - 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x67, - 0x6c, 0x61, 0x73, 0x73, 0x73, 0x69, 0x64, 0x65, 0x73, 0x66, 0x75, 0x6e, 0x64, - 0x73, 0x68, 0x6f, 0x74, 0x65, 0x6c, 0x61, 0x77, 0x61, 0x72, 0x64, 0x6d, 0x6f, - 0x75, 0x74, 0x68, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x70, 0x61, 0x72, 0x69, 0x73, - 0x67, 0x69, 0x76, 0x65, 0x73, 0x64, 0x75, 0x74, 0x63, 0x68, 0x74, 0x65, 0x78, - 0x61, 0x73, 0x66, 0x72, 0x75, 0x69, 0x74, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x7c, - 0x7c, 0x5b, 0x5d, 0x3b, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x0a, 0x3c, 0x21, 0x2d, - 0x2d, 0x50, 0x4f, 0x53, 0x54, 0x22, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x3c, 0x62, - 0x72, 0x2f, 0x3e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x73, 0x70, 0x65, 0x61, 0x6b, - 0x64, 0x65, 0x70, 0x74, 0x68, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x62, 0x61, 0x6e, - 0x6b, 0x73, 0x63, 0x61, 0x74, 0x63, 0x68, 0x63, 0x68, 0x61, 0x72, 0x74, 0x32, - 0x30, 0x70, 0x78, 0x3b, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x64, 0x65, 0x61, 0x6c, - 0x73, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x35, 0x30, 0x70, 0x78, 0x3b, 0x75, 0x72, - 0x6c, 0x3d, 0x22, 0x70, 0x61, 0x72, 0x6b, 0x73, 0x6d, 0x6f, 0x75, 0x73, 0x65, - 0x4d, 0x6f, 0x73, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x3c, 0x2f, 0x61, 0x6d, 0x6f, - 0x6e, 0x67, 0x62, 0x72, 0x61, 0x69, 0x6e, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x6e, - 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x61, 0x73, 0x65, 0x64, 0x63, 0x61, 0x72, 0x72, - 0x79, 0x64, 0x72, 0x61, 0x66, 0x74, 0x72, 0x65, 0x66, 0x65, 0x72, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x2e, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x64, 0x65, 0x6c, 0x61, 0x79, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x70, 0x72, 0x6f, - 0x76, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x74, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x64, - 0x72, 0x75, 0x67, 0x73, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x61, 0x70, 0x72, 0x69, - 0x6c, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x65, 0x78, - 0x61, 0x63, 0x74, 0x66, 0x6f, 0x72, 0x74, 0x68, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x56, 0x69, 0x65, 0x77, 0x20, 0x73, 0x65, 0x65, - 0x6d, 0x73, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, - 0x28, 0x32, 0x30, 0x30, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, - 0x6b, 0x67, 0x6f, 0x61, 0x6c, 0x73, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x67, 0x72, - 0x65, 0x65, 0x6b, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x33, 0x30, 0x70, 0x78, 0x3b, 0x77, 0x68, 0x6f, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x22, 0x20, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x6a, 0x6f, 0x6e, 0x65, - 0x73, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x22, 0x3e, 0x29, 0x3b, - 0x69, 0x66, 0x28, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x64, 0x61, 0x76, 0x69, 0x64, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x46, 0x6f, 0x63, 0x75, 0x73, 0x72, 0x61, 0x69, - 0x73, 0x65, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x3c, 0x2f, 0x65, 0x6d, 0x3e, 0x62, 0x61, 0x72, 0x22, - 0x3e, 0x2e, 0x73, 0x72, 0x63, 0x3d, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x61, 0x6c, - 0x74, 0x3d, 0x22, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x68, 0x65, 0x6e, 0x72, 0x79, - 0x32, 0x34, 0x70, 0x78, 0x3b, 0x73, 0x65, 0x74, 0x75, 0x70, 0x69, 0x74, 0x61, - 0x6c, 0x79, 0x73, 0x68, 0x61, 0x72, 0x70, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x74, - 0x61, 0x73, 0x74, 0x65, 0x77, 0x61, 0x6e, 0x74, 0x73, 0x74, 0x68, 0x69, 0x73, - 0x2e, 0x72, 0x65, 0x73, 0x65, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x67, 0x69, - 0x72, 0x6c, 0x73, 0x2f, 0x63, 0x73, 0x73, 0x2f, 0x31, 0x30, 0x30, 0x25, 0x3b, - 0x63, 0x6c, 0x75, 0x62, 0x73, 0x73, 0x74, 0x75, 0x66, 0x66, 0x62, 0x69, 0x62, - 0x6c, 0x65, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x6b, - 0x6f, 0x72, 0x65, 0x61, 0x7d, 0x29, 0x3b, 0x0d, 0x0a, 0x62, 0x61, 0x6e, 0x64, - 0x73, 0x71, 0x75, 0x65, 0x75, 0x65, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x38, 0x30, - 0x70, 0x78, 0x3b, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x7b, 0x0d, 0x0a, 0x09, 0x09, - 0x61, 0x68, 0x65, 0x61, 0x64, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x72, 0x69, - 0x73, 0x68, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0x79, 0x61, 0x68, 0x6f, - 0x6f, 0x29, 0x5b, 0x30, 0x5d, 0x3b, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x66, 0x69, - 0x6e, 0x64, 0x73, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x64, 0x65, 0x62, 0x75, 0x67, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x55, 0x52, 0x4c, 0x20, 0x3d, 0x63, 0x65, 0x6c, - 0x6c, 0x73, 0x7d, 0x29, 0x28, 0x29, 0x3b, 0x31, 0x32, 0x70, 0x78, 0x3b, 0x70, - 0x72, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x6c, 0x6c, 0x73, 0x74, 0x75, 0x72, 0x6e, - 0x73, 0x30, 0x78, 0x36, 0x30, 0x30, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x73, 0x70, - 0x61, 0x69, 0x6e, 0x62, 0x65, 0x61, 0x63, 0x68, 0x74, 0x61, 0x78, 0x65, 0x73, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x2d, 0x2d, 0x3e, - 0x3c, 0x2f, 0x67, 0x69, 0x66, 0x74, 0x73, 0x73, 0x74, 0x65, 0x76, 0x65, 0x2d, - 0x6c, 0x69, 0x6e, 0x6b, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x7d, 0x29, 0x3b, 0x0a, - 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x28, 0x31, 0x39, 0x39, 0x46, 0x41, - 0x51, 0x3c, 0x2f, 0x72, 0x6f, 0x67, 0x65, 0x72, 0x66, 0x72, 0x61, 0x6e, 0x6b, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x38, 0x70, 0x78, 0x3b, 0x66, 0x65, 0x65, - 0x64, 0x73, 0x3c, 0x68, 0x31, 0x3e, 0x3c, 0x73, 0x63, 0x6f, 0x74, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x73, 0x32, 0x32, 0x70, 0x78, 0x3b, 0x64, 0x72, 0x69, 0x6e, - 0x6b, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x6c, 0x65, 0x77, 0x69, 0x73, 0x73, 0x68, - 0x61, 0x6c, 0x6c, 0x23, 0x30, 0x33, 0x39, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6c, 0x6f, 0x76, 0x65, 0x64, 0x77, 0x61, 0x73, 0x74, 0x65, 0x30, 0x30, 0x70, - 0x78, 0x3b, 0x6a, 0x61, 0x3a, 0xe3, 0x82, 0x73, 0x69, 0x6d, 0x6f, 0x6e, 0x3c, - 0x66, 0x6f, 0x6e, 0x74, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x6d, 0x65, 0x65, 0x74, - 0x73, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x68, 0x65, 0x61, 0x70, 0x74, 0x69, - 0x67, 0x68, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x21, 0x3d, 0x20, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x72, 0x6f, 0x6f, - 0x6d, 0x73, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x6d, - 0x61, 0x69, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x66, 0x75, 0x6e, 0x6e, 0x79, 0x74, 0x72, 0x65, 0x65, 0x73, 0x63, 0x6f, - 0x6d, 0x2f, 0x22, 0x31, 0x2e, 0x6a, 0x70, 0x67, 0x77, 0x6d, 0x6f, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x54, 0x41, 0x52, 0x54, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2c, 0x20, 0x32, 0x30, 0x31, 0x29, - 0x3b, 0x0a, 0x7d, 0x0a, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x69, 0x72, 0x75, - 0x73, 0x63, 0x68, 0x61, 0x69, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x77, 0x6f, - 0x72, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x3c, 0x21, 0x2d, 0x2d, 0x0a, 0x6f, 0x2d, 0x63, - 0x61, 0x63, 0x66, 0x69, 0x72, 0x6d, 0x73, 0x74, 0x6f, 0x75, 0x72, 0x73, 0x2c, - 0x30, 0x30, 0x30, 0x20, 0x61, 0x73, 0x69, 0x61, 0x6e, 0x69, 0x2b, 0x2b, 0x29, - 0x7b, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x27, 0x29, 0x5b, 0x30, 0x5d, 0x69, 0x64, - 0x3d, 0x31, 0x30, 0x62, 0x6f, 0x74, 0x68, 0x3b, 0x6d, 0x65, 0x6e, 0x75, 0x20, - 0x2e, 0x32, 0x2e, 0x6d, 0x69, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x6b, 0x65, 0x76, - 0x69, 0x6e, 0x63, 0x6f, 0x61, 0x63, 0x68, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x62, - 0x72, 0x75, 0x63, 0x65, 0x32, 0x2e, 0x6a, 0x70, 0x67, 0x55, 0x52, 0x4c, 0x29, - 0x2b, 0x2e, 0x6a, 0x70, 0x67, 0x7c, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x6c, - 0x69, 0x63, 0x65, 0x68, 0x61, 0x72, 0x72, 0x79, 0x31, 0x32, 0x30, 0x22, 0x20, - 0x73, 0x77, 0x65, 0x65, 0x74, 0x74, 0x72, 0x3e, 0x0d, 0x0a, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x64, 0x69, 0x65, 0x67, 0x6f, 0x70, 0x61, 0x67, 0x65, 0x20, 0x73, - 0x77, 0x69, 0x73, 0x73, 0x2d, 0x2d, 0x3e, 0x0a, 0x0a, 0x23, 0x66, 0x66, 0x66, - 0x3b, 0x22, 0x3e, 0x4c, 0x6f, 0x67, 0x2e, 0x63, 0x6f, 0x6d, 0x22, 0x74, 0x72, - 0x65, 0x61, 0x74, 0x73, 0x68, 0x65, 0x65, 0x74, 0x29, 0x20, 0x26, 0x26, 0x20, - 0x31, 0x34, 0x70, 0x78, 0x3b, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x64, 0x6a, 0x61, 0x3a, 0xe3, 0x83, 0x69, - 0x64, 0x3d, 0x22, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x77, 0x6f, 0x72, 0x73, - 0x65, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x64, 0x65, - 0x6c, 0x74, 0x61, 0x0a, 0x26, 0x6c, 0x74, 0x3b, 0x62, 0x65, 0x61, 0x72, 0x73, - 0x3a, 0x34, 0x38, 0x5a, 0x3c, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x72, 0x75, 0x72, - 0x61, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x62, - 0x61, 0x6b, 0x65, 0x72, 0x73, 0x68, 0x6f, 0x70, 0x73, 0x3d, 0x20, 0x22, 0x22, - 0x3b, 0x70, 0x68, 0x70, 0x22, 0x3e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x33, - 0x70, 0x78, 0x3b, 0x62, 0x72, 0x69, 0x61, 0x6e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x6f, 0x3d, 0x25, 0x32, 0x46, 0x20, 0x6a, 0x6f, - 0x69, 0x6e, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x69, - 0x6d, 0x67, 0x22, 0x3e, 0x2c, 0x20, 0x66, 0x6a, 0x73, 0x69, 0x6d, 0x67, 0x22, - 0x20, 0x22, 0x29, 0x5b, 0x30, 0x5d, 0x4d, 0x54, 0x6f, 0x70, 0x42, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x6e, 0x65, 0x77, 0x6c, 0x79, 0x44, 0x61, 0x6e, 0x73, 0x6b, - 0x63, 0x7a, 0x65, 0x63, 0x68, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x6b, 0x6e, 0x6f, - 0x77, 0x73, 0x3c, 0x2f, 0x68, 0x35, 0x3e, 0x66, 0x61, 0x71, 0x22, 0x3e, 0x7a, - 0x68, 0x2d, 0x63, 0x6e, 0x31, 0x30, 0x29, 0x3b, 0x0a, 0x2d, 0x31, 0x22, 0x29, - 0x3b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x74, 0x72, - 0x75, 0x6c, 0x79, 0x64, 0x61, 0x76, 0x69, 0x73, 0x2e, 0x6a, 0x73, 0x27, 0x3b, - 0x3e, 0x0d, 0x0a, 0x3c, 0x21, 0x73, 0x74, 0x65, 0x65, 0x6c, 0x20, 0x79, 0x6f, - 0x75, 0x20, 0x68, 0x32, 0x3e, 0x0d, 0x0a, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6a, - 0x65, 0x73, 0x75, 0x73, 0x31, 0x30, 0x30, 0x25, 0x20, 0x6d, 0x65, 0x6e, 0x75, - 0x2e, 0x0d, 0x0a, 0x09, 0x0d, 0x0a, 0x77, 0x61, 0x6c, 0x65, 0x73, 0x72, 0x69, - 0x73, 0x6b, 0x73, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x62, 0x2d, 0x6c, 0x69, 0x6b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x67, 0x69, 0x66, - 0x22, 0x20, 0x76, 0x65, 0x67, 0x61, 0x73, 0x64, 0x61, 0x6e, 0x73, 0x6b, 0x65, - 0x65, 0x73, 0x74, 0x69, 0x73, 0x68, 0x71, 0x69, 0x70, 0x73, 0x75, 0x6f, 0x6d, - 0x69, 0x73, 0x6f, 0x62, 0x72, 0x65, 0x64, 0x65, 0x73, 0x64, 0x65, 0x65, 0x6e, - 0x74, 0x72, 0x65, 0x74, 0x6f, 0x64, 0x6f, 0x73, 0x70, 0x75, 0x65, 0x64, 0x65, - 0x61, 0xc3, 0xb1, 0x6f, 0x73, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x74, 0x69, 0x65, - 0x6e, 0x65, 0x68, 0x61, 0x73, 0x74, 0x61, 0x6f, 0x74, 0x72, 0x6f, 0x73, 0x70, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x75, 0x65, 0x76, - 0x6f, 0x68, 0x61, 0x63, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6d, 0x69, - 0x73, 0x6d, 0x6f, 0x6d, 0x65, 0x6a, 0x6f, 0x72, 0x6d, 0x75, 0x6e, 0x64, 0x6f, - 0x61, 0x71, 0x75, 0xc3, 0xad, 0x64, 0xc3, 0xad, 0x61, 0x73, 0x73, 0xc3, 0xb3, - 0x6c, 0x6f, 0x61, 0x79, 0x75, 0x64, 0x61, 0x66, 0x65, 0x63, 0x68, 0x61, 0x74, - 0x6f, 0x64, 0x61, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x6f, 0x6d, 0x65, 0x6e, 0x6f, - 0x73, 0x64, 0x61, 0x74, 0x6f, 0x73, 0x6f, 0x74, 0x72, 0x61, 0x73, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6d, 0x75, 0x63, 0x68, 0x6f, 0x61, 0x68, 0x6f, 0x72, 0x61, - 0x6c, 0x75, 0x67, 0x61, 0x72, 0x6d, 0x61, 0x79, 0x6f, 0x72, 0x65, 0x73, 0x74, - 0x6f, 0x73, 0x68, 0x6f, 0x72, 0x61, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x6e, 0x74, 0x65, 0x73, 0x66, 0x6f, 0x74, 0x6f, 0x73, 0x65, 0x73, 0x74, 0x61, - 0x73, 0x70, 0x61, 0xc3, 0xad, 0x73, 0x6e, 0x75, 0x65, 0x76, 0x61, 0x73, 0x61, - 0x6c, 0x75, 0x64, 0x66, 0x6f, 0x72, 0x6f, 0x73, 0x6d, 0x65, 0x64, 0x69, 0x6f, - 0x71, 0x75, 0x69, 0x65, 0x6e, 0x6d, 0x65, 0x73, 0x65, 0x73, 0x70, 0x6f, 0x64, - 0x65, 0x72, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x72, 0xc3, 0xa1, 0x76, - 0x65, 0x63, 0x65, 0x73, 0x64, 0x65, 0x63, 0x69, 0x72, 0x6a, 0x6f, 0x73, 0xc3, - 0xa9, 0x65, 0x73, 0x74, 0x61, 0x72, 0x76, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x72, - 0x75, 0x70, 0x6f, 0x68, 0x65, 0x63, 0x68, 0x6f, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x74, 0x65, 0x6e, 0x67, 0x6f, 0x61, 0x6d, 0x69, 0x67, 0x6f, 0x63, 0x6f, 0x73, - 0x61, 0x73, 0x6e, 0x69, 0x76, 0x65, 0x6c, 0x67, 0x65, 0x6e, 0x74, 0x65, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x61, 0x69, 0x72, 0x65, 0x73, 0x6a, 0x75, 0x6c, 0x69, - 0x6f, 0x74, 0x65, 0x6d, 0x61, 0x73, 0x68, 0x61, 0x63, 0x69, 0x61, 0x66, 0x61, - 0x76, 0x6f, 0x72, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x6c, 0x69, 0x62, 0x72, 0x65, - 0x70, 0x75, 0x6e, 0x74, 0x6f, 0x62, 0x75, 0x65, 0x6e, 0x6f, 0x61, 0x75, 0x74, - 0x6f, 0x72, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x62, 0x75, 0x65, 0x6e, 0x61, 0x74, - 0x65, 0x78, 0x74, 0x6f, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x73, 0x61, 0x62, 0x65, - 0x72, 0x6c, 0x69, 0x73, 0x74, 0x61, 0x6c, 0x75, 0x65, 0x67, 0x6f, 0x63, 0xc3, - 0xb3, 0x6d, 0x6f, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x6a, 0x75, 0x65, 0x67, 0x6f, - 0x70, 0x65, 0x72, 0xc3, 0xba, 0x68, 0x61, 0x62, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x6f, 0x79, 0x6e, 0x75, 0x6e, 0x63, 0x61, 0x6d, 0x75, 0x6a, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x6f, 0x72, 0x66, 0x75, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x62, 0x72, - 0x6f, 0x67, 0x75, 0x73, 0x74, 0x61, 0x69, 0x67, 0x75, 0x61, 0x6c, 0x76, 0x6f, - 0x74, 0x6f, 0x73, 0x63, 0x61, 0x73, 0x6f, 0x73, 0x67, 0x75, 0xc3, 0xad, 0x61, - 0x70, 0x75, 0x65, 0x64, 0x6f, 0x73, 0x6f, 0x6d, 0x6f, 0x73, 0x61, 0x76, 0x69, - 0x73, 0x6f, 0x75, 0x73, 0x74, 0x65, 0x64, 0x64, 0x65, 0x62, 0x65, 0x6e, 0x6e, - 0x6f, 0x63, 0x68, 0x65, 0x62, 0x75, 0x73, 0x63, 0x61, 0x66, 0x61, 0x6c, 0x74, - 0x61, 0x65, 0x75, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x72, 0x69, 0x65, 0x64, 0x69, - 0x63, 0x68, 0x6f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x63, 0x6c, 0x61, 0x76, 0x65, - 0x63, 0x61, 0x73, 0x61, 0x73, 0x6c, 0x65, 0xc3, 0xb3, 0x6e, 0x70, 0x6c, 0x61, - 0x7a, 0x6f, 0x6c, 0x61, 0x72, 0x67, 0x6f, 0x6f, 0x62, 0x72, 0x61, 0x73, 0x76, - 0x69, 0x73, 0x74, 0x61, 0x61, 0x70, 0x6f, 0x79, 0x6f, 0x6a, 0x75, 0x6e, 0x74, - 0x6f, 0x74, 0x72, 0x61, 0x74, 0x61, 0x76, 0x69, 0x73, 0x74, 0x6f, 0x63, 0x72, - 0x65, 0x61, 0x72, 0x63, 0x61, 0x6d, 0x70, 0x6f, 0x68, 0x65, 0x6d, 0x6f, 0x73, - 0x63, 0x69, 0x6e, 0x63, 0x6f, 0x63, 0x61, 0x72, 0x67, 0x6f, 0x70, 0x69, 0x73, - 0x6f, 0x73, 0x6f, 0x72, 0x64, 0x65, 0x6e, 0x68, 0x61, 0x63, 0x65, 0x6e, 0xc3, - 0xa1, 0x72, 0x65, 0x61, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x72, - 0x6f, 0x63, 0x65, 0x72, 0x63, 0x61, 0x70, 0x75, 0x65, 0x64, 0x61, 0x70, 0x61, - 0x70, 0x65, 0x6c, 0x6d, 0x65, 0x6e, 0x6f, 0x72, 0xc3, 0xba, 0x74, 0x69, 0x6c, - 0x63, 0x6c, 0x61, 0x72, 0x6f, 0x6a, 0x6f, 0x72, 0x67, 0x65, 0x63, 0x61, 0x6c, - 0x6c, 0x65, 0x70, 0x6f, 0x6e, 0x65, 0x72, 0x74, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x61, 0x64, 0x69, 0x65, 0x6d, 0x61, 0x72, 0x63, 0x61, 0x73, 0x69, 0x67, 0x75, - 0x65, 0x65, 0x6c, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6c, 0x6f, 0x63, 0x6f, - 0x63, 0x68, 0x65, 0x6d, 0x6f, 0x74, 0x6f, 0x73, 0x6d, 0x61, 0x64, 0x72, 0x65, - 0x63, 0x6c, 0x61, 0x73, 0x65, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x69, 0xc3, - 0xb1, 0x6f, 0x71, 0x75, 0x65, 0x64, 0x61, 0x70, 0x61, 0x73, 0x61, 0x72, 0x62, - 0x61, 0x6e, 0x63, 0x6f, 0x68, 0x69, 0x6a, 0x6f, 0x73, 0x76, 0x69, 0x61, 0x6a, - 0x65, 0x70, 0x61, 0x62, 0x6c, 0x6f, 0xc3, 0xa9, 0x73, 0x74, 0x65, 0x76, 0x69, - 0x65, 0x6e, 0x65, 0x72, 0x65, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x6a, 0x61, 0x72, - 0x66, 0x6f, 0x6e, 0x64, 0x6f, 0x63, 0x61, 0x6e, 0x61, 0x6c, 0x6e, 0x6f, 0x72, - 0x74, 0x65, 0x6c, 0x65, 0x74, 0x72, 0x61, 0x63, 0x61, 0x75, 0x73, 0x61, 0x74, - 0x6f, 0x6d, 0x61, 0x72, 0x6d, 0x61, 0x6e, 0x6f, 0x73, 0x6c, 0x75, 0x6e, 0x65, - 0x73, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x61, 0x76, 0x65, - 0x6e, 0x64, 0x6f, 0x70, 0x65, 0x73, 0x61, 0x72, 0x74, 0x69, 0x70, 0x6f, 0x73, - 0x74, 0x65, 0x6e, 0x67, 0x61, 0x6d, 0x61, 0x72, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x76, 0x61, 0x70, 0x61, 0x64, 0x72, 0x65, 0x75, 0x6e, 0x69, 0x64, 0x6f, 0x76, - 0x61, 0x6d, 0x6f, 0x73, 0x7a, 0x6f, 0x6e, 0x61, 0x73, 0x61, 0x6d, 0x62, 0x6f, - 0x73, 0x62, 0x61, 0x6e, 0x64, 0x61, 0x6d, 0x61, 0x72, 0x69, 0x61, 0x61, 0x62, - 0x75, 0x73, 0x6f, 0x6d, 0x75, 0x63, 0x68, 0x61, 0x73, 0x75, 0x62, 0x69, 0x72, - 0x72, 0x69, 0x6f, 0x6a, 0x61, 0x76, 0x69, 0x76, 0x69, 0x72, 0x67, 0x72, 0x61, - 0x64, 0x6f, 0x63, 0x68, 0x69, 0x63, 0x61, 0x61, 0x6c, 0x6c, 0xc3, 0xad, 0x6a, - 0x6f, 0x76, 0x65, 0x6e, 0x64, 0x69, 0x63, 0x68, 0x61, 0x65, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x61, 0x6c, 0x65, 0x73, 0x73, 0x61, 0x6c, 0x69, 0x72, 0x73, 0x75, - 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x66, 0x69, 0x6e, 0x65, 0x73, - 0x6c, 0x6c, 0x61, 0x6d, 0x61, 0x62, 0x75, 0x73, 0x63, 0x6f, 0xc3, 0xa9, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6e, 0x65, 0x67, 0x72, 0x6f, 0x70, - 0x6c, 0x61, 0x7a, 0x61, 0x68, 0x75, 0x6d, 0x6f, 0x72, 0x70, 0x61, 0x67, 0x61, - 0x72, 0x6a, 0x75, 0x6e, 0x74, 0x61, 0x64, 0x6f, 0x62, 0x6c, 0x65, 0x69, 0x73, - 0x6c, 0x61, 0x73, 0x62, 0x6f, 0x6c, 0x73, 0x61, 0x62, 0x61, 0xc3, 0xb1, 0x6f, - 0x68, 0x61, 0x62, 0x6c, 0x61, 0x6c, 0x75, 0x63, 0x68, 0x61, 0xc3, 0x81, 0x72, - 0x65, 0x61, 0x64, 0x69, 0x63, 0x65, 0x6e, 0x6a, 0x75, 0x67, 0x61, 0x72, 0x6e, - 0x6f, 0x74, 0x61, 0x73, 0x76, 0x61, 0x6c, 0x6c, 0x65, 0x61, 0x6c, 0x6c, 0xc3, - 0xa1, 0x63, 0x61, 0x72, 0x67, 0x61, 0x64, 0x6f, 0x6c, 0x6f, 0x72, 0x61, 0x62, - 0x61, 0x6a, 0x6f, 0x65, 0x73, 0x74, 0xc3, 0xa9, 0x67, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x69, 0x6f, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x63, 0x6f, 0x73, 0x74, 0x6f, 0x66, 0x69, 0x63, 0x68, 0x61, 0x70, - 0x6c, 0x61, 0x74, 0x61, 0x68, 0x6f, 0x67, 0x61, 0x72, 0x61, 0x72, 0x74, 0x65, - 0x73, 0x6c, 0x65, 0x79, 0x65, 0x73, 0x61, 0x71, 0x75, 0x65, 0x6c, 0x6d, 0x75, - 0x73, 0x65, 0x6f, 0x62, 0x61, 0x73, 0x65, 0x73, 0x70, 0x6f, 0x63, 0x6f, 0x73, - 0x6d, 0x69, 0x74, 0x61, 0x64, 0x63, 0x69, 0x65, 0x6c, 0x6f, 0x63, 0x68, 0x69, - 0x63, 0x6f, 0x6d, 0x69, 0x65, 0x64, 0x6f, 0x67, 0x61, 0x6e, 0x61, 0x72, 0x73, - 0x61, 0x6e, 0x74, 0x6f, 0x65, 0x74, 0x61, 0x70, 0x61, 0x64, 0x65, 0x62, 0x65, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x61, 0x72, 0x65, 0x64, 0x65, 0x73, 0x73, 0x69, - 0x65, 0x74, 0x65, 0x63, 0x6f, 0x72, 0x74, 0x65, 0x63, 0x6f, 0x72, 0x65, 0x61, - 0x64, 0x75, 0x64, 0x61, 0x73, 0x64, 0x65, 0x73, 0x65, 0x6f, 0x76, 0x69, 0x65, - 0x6a, 0x6f, 0x64, 0x65, 0x73, 0x65, 0x61, 0x61, 0x67, 0x75, 0x61, 0x73, 0x26, - 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, - 0x72, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x6d, - 0x65, 0x64, 0x69, 0x75, 0x6d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x73, 0x63, 0x72, 0x65, - 0x65, 0x6e, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, - 0x70, 0x72, 0x69, 0x6e, 0x67, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x6d, 0x6f, - 0x62, 0x69, 0x6c, 0x65, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x70, 0x68, 0x6f, - 0x74, 0x6f, 0x73, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x6c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x65, - 0x78, 0x70, 0x61, 0x6e, 0x64, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x70, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x6c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x73, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x70, - 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x6c, 0x65, 0x74, 0x74, 0x65, - 0x72, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x75, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x68, 0x61, 0x64, - 0x6f, 0x77, 0x64, 0x65, 0x62, 0x61, 0x74, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x6c, 0x65, 0x61, 0x67, 0x75, 0x65, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6e, 0x6f, - 0x74, 0x69, 0x63, 0x65, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x71, 0x75, 0x61, 0x72, - 0x65, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x77, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x46, 0x72, - 0x61, 0x6e, 0x63, 0x65, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x74, 0x72, - 0x6f, 0x6e, 0x67, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x4c, 0x6f, 0x6e, 0x64, - 0x6f, 0x6e, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x65, - 0x64, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x73, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x63, 0x63, 0x69, 0x74, 0x69, 0x65, 0x73, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x6b, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x66, 0x6c, 0x69, 0x67, 0x68, - 0x74, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x3e, - 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x76, - 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x63, 0x61, 0x75, 0x73, 0x65, 0x73, 0x6c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x73, - 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x76, 0x69, - 0x73, 0x75, 0x61, 0x6c, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x6d, 0x75, 0x73, 0x65, - 0x75, 0x6d, 0x6d, 0x6f, 0x76, 0x69, 0x65, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6d, 0x6f, 0x73, 0x74, 0x6c, 0x79, - 0x6d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x63, 0x68, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x62, 0x65, 0x66, - 0x6f, 0x72, 0x65, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x6d, 0x6f, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x6d, 0x6f, 0x74, 0x69, 0x6f, - 0x6e, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x65, - 0x78, 0x69, 0x73, 0x74, 0x73, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x45, 0x75, - 0x72, 0x6f, 0x70, 0x65, 0x67, 0x72, 0x6f, 0x77, 0x74, 0x68, 0x6c, 0x65, 0x67, - 0x61, 0x63, 0x79, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x65, 0x6e, 0x6f, 0x75, - 0x67, 0x68, 0x63, 0x61, 0x72, 0x65, 0x65, 0x72, 0x61, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x73, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x74, - 0x68, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x79, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x65, 0x73, 0x63, 0x61, 0x70, - 0x65, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x63, 0x68, 0x75, 0x72, 0x63, 0x68, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x6f, 0x66, 0x66, 0x65, 0x72, - 0x73, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x73, - 0x69, 0x6c, 0x76, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x62, 0x65, 0x74, 0x74, 0x65, 0x72, 0x62, 0x72, 0x6f, - 0x77, 0x73, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x47, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x77, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, - 0x6e, 0x6f, 0x77, 0x72, 0x61, 0x70, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x61, - 0x66, 0x65, 0x74, 0x79, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x70, 0x69, - 0x72, 0x69, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x70, 0x72, 0x65, - 0x61, 0x64, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x6e, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x72, 0x75, 0x73, 0x73, 0x69, 0x61, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x62, - 0x72, 0x6f, 0x6b, 0x65, 0x6e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x63, 0x68, - 0x61, 0x72, 0x67, 0x65, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2d, 0x62, 0x61, 0x73, - 0x65, 0x64, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x79, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x64, - 0x68, 0x65, 0x6c, 0x70, 0x65, 0x64, 0x43, 0x68, 0x75, 0x72, 0x63, 0x68, 0x69, - 0x6d, 0x70, 0x61, 0x63, 0x74, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x61, 0x6c, - 0x77, 0x61, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x22, 0x20, 0x62, 0x6f, 0x74, - 0x74, 0x6f, 0x6d, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x3e, 0x29, 0x7b, 0x76, 0x61, - 0x72, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, - 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x67, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x52, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x62, 0x65, 0x61, 0x75, 0x74, - 0x79, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x66, 0x6f, 0x72, 0x67, 0x6f, 0x74, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x61, - 0x6c, 0x6d, 0x6f, 0x73, 0x74, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x62, 0x69, - 0x6c, 0x65, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x75, 0x70, 0x70, 0x6c, - 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x76, 0x69, 0x65, 0x77, 0x65, 0x64, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x63, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x69, 0x73, - 0x6c, 0x61, 0x6e, 0x64, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x63, 0x6f, 0x6f, - 0x6b, 0x69, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x6d, 0x61, 0x7a, - 0x6f, 0x6e, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x6e, 0x61, 0x64, 0x76, 0x69, 0x63, - 0x65, 0x69, 0x6e, 0x3c, 0x2f, 0x61, 0x3e, 0x3a, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x42, - 0x45, 0x47, 0x49, 0x4e, 0x20, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x6c, 0x61, - 0x6e, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x45, 0x6d, 0x70, 0x69, 0x72, - 0x65, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x65, 0x66, 0x66, 0x6f, 0x72, 0x74, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6e, 0x65, 0x61, 0x72, 0x6c, 0x79, 0x6d, - 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x0a, - 0x0a, 0x4f, 0x6e, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x6d, 0x65, 0x6e, - 0x75, 0x22, 0x3e, 0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x61, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, - 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x77, 0x65, - 0x65, 0x6b, 0x6c, 0x79, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x62, 0x65, 0x68, - 0x69, 0x6e, 0x64, 0x64, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x6c, 0x6f, 0x67, 0x67, - 0x65, 0x64, 0x75, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x3c, 0x2f, 0x62, 0x3e, 0x3c, - 0x2f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x73, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x73, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x73, 0x73, 0x75, 0x65, 0x64, 0x33, 0x30, 0x30, 0x70, 0x78, 0x7c, 0x63, 0x61, - 0x6e, 0x61, 0x64, 0x61, 0x61, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x65, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x7a, - 0x69, 0x6c, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x6f, 0x22, - 0x3e, 0x62, 0x65, 0x79, 0x6f, 0x6e, 0x64, 0x2d, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x6d, - 0x61, 0x72, 0x69, 0x6e, 0x65, 0x46, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x63, 0x61, - 0x6d, 0x65, 0x72, 0x61, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x0a, 0x5f, 0x66, 0x6f, - 0x72, 0x6d, 0x22, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x73, 0x74, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x0d, 0x0a, 0x2e, 0x67, 0x69, 0x66, 0x22, - 0x20, 0x6f, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, - 0x4f, 0x78, 0x66, 0x6f, 0x72, 0x64, 0x73, 0x69, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x75, 0x72, 0x76, 0x69, 0x76, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x66, 0x65, - 0x6d, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x73, 0x69, 0x7a, - 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x65, 0x61, 0x6c, 0x74, 0x65, 0x78, 0x74, - 0x22, 0x3e, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x74, 0x68, 0x61, 0x6e, 0x6b, - 0x73, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, - 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x61, 0x6e, 0x79, 0x6f, 0x6e, 0x65, 0x41, - 0x66, 0x72, 0x69, 0x63, 0x61, 0x61, 0x67, 0x72, 0x65, 0x65, 0x64, 0x72, 0x65, - 0x63, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x3c, 0x62, 0x72, - 0x20, 0x2f, 0x3e, 0x77, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x73, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, - 0x3b, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x77, 0x72, 0x61, 0x70, 0x22, 0x3e, 0x66, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x6d, 0x69, - 0x6e, 0x75, 0x74, 0x65, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x73, 0x31, 0x35, 0x30, 0x70, 0x78, 0x7c, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x31, - 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x70, 0x72, - 0x69, 0x6e, 0x63, 0x65, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x2e, 0x70, 0x6e, - 0x67, 0x22, 0x20, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x73, 0x73, 0x6f, 0x75, 0x6e, 0x64, - 0x73, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x26, - 0x61, 0x6d, 0x70, 0x3b, 0x20, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2e, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6f, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x73, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x74, 0x6a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x61, 0x6e, 0x6e, 0x75, 0x61, - 0x6c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, - 0x66, 0x61, 0x6d, 0x6f, 0x75, 0x73, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x6c, - 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x69, 0x2b, 0x2b, 0x29, 0x20, 0x7b, 0x69, 0x73, - 0x72, 0x61, 0x65, 0x6c, 0x73, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x63, - 0x69, 0x64, 0x65, 0x68, 0x6f, 0x6d, 0x65, 0x22, 0x3e, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x62, 0x72, 0x61, 0x6e, 0x63, - 0x68, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x64, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x3c, 0x72, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x2d, 0x2d, - 0x26, 0x67, 0x74, 0x3b, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x73, 0x65, 0x78, - 0x75, 0x61, 0x6c, 0x62, 0x75, 0x72, 0x65, 0x61, 0x75, 0x2e, 0x6a, 0x70, 0x67, - 0x22, 0x20, 0x31, 0x30, 0x2c, 0x30, 0x30, 0x30, 0x6f, 0x62, 0x74, 0x61, 0x69, - 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x64, 0x79, 0x6d, - 0x65, 0x6e, 0x75, 0x22, 0x20, 0x6c, 0x79, 0x72, 0x69, 0x63, 0x73, 0x74, 0x6f, - 0x64, 0x61, 0x79, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x65, 0x64, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x79, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x46, 0x61, 0x6d, 0x69, - 0x6c, 0x79, 0x6c, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x74, 0x75, 0x72, 0x6b, 0x65, 0x79, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x66, - 0x6f, 0x72, 0x65, 0x73, 0x74, 0x67, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x65, 0x6c, - 0x73, 0x65, 0x7b, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x67, - 0x3c, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x6c, 0x6f, 0x67, 0x69, 0x6e, - 0x2e, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, - 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x30, 0x70, - 0x72, 0x61, 0x67, 0x6d, 0x61, 0x66, 0x72, 0x69, 0x64, 0x61, 0x79, 0x6a, 0x75, - 0x6e, 0x69, 0x6f, 0x72, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x64, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x35, 0x2c, 0x30, 0x30, 0x30, 0x20, 0x70, 0x61, 0x67, 0x65, 0x22, - 0x3e, 0x62, 0x6f, 0x73, 0x74, 0x6f, 0x6e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, - 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x74, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x73, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x66, 0x69, 0x6c, - 0x6c, 0x65, 0x64, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x72, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x28, 0x61, 0x70, 0x70, 0x65, 0x61, - 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, - 0x62, 0x6f, 0x64, 0x79, 0x22, 0x3e, 0x0a, 0x2a, 0x20, 0x54, 0x68, 0x65, 0x54, - 0x68, 0x6f, 0x75, 0x67, 0x68, 0x73, 0x65, 0x65, 0x69, 0x6e, 0x67, 0x6a, 0x65, - 0x72, 0x73, 0x65, 0x79, 0x4e, 0x65, 0x77, 0x73, 0x3c, 0x2f, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x6a, 0x75, - 0x72, 0x79, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x43, 0x6f, 0x6f, 0x6b, 0x69, - 0x65, 0x53, 0x54, 0x41, 0x52, 0x54, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, - 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x6e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x62, 0x6f, - 0x78, 0x22, 0x3e, 0x0a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x44, 0x61, - 0x76, 0x69, 0x64, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x73, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x41, 0x70, 0x72, 0x69, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x69, 0x74, 0x65, 0x6d, 0x22, 0x3e, 0x6d, 0x6f, 0x72, 0x65, 0x22, 0x3e, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x73, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x7c, 0x7c, 0x20, - 0x5b, 0x5d, 0x3b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2e, 0x67, 0x75, 0x69, 0x74, - 0x61, 0x72, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x73, 0x68, 0x6f, 0x77, 0x65, 0x64, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x2e, 0x70, 0x68, 0x70, 0x22, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x77, 0x69, 0x6c, 0x73, 0x6f, 0x6e, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x72, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x73, 0x77, 0x65, - 0x64, 0x65, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x61, 0x73, 0x69, - 0x6c, 0x79, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x57, 0x68, 0x69, 0x6c, 0x74, 0x61, 0x79, 0x6c, 0x6f, 0x72, - 0x63, 0x6c, 0x65, 0x61, 0x72, 0x3a, 0x72, 0x65, 0x73, 0x6f, 0x72, 0x74, 0x66, - 0x72, 0x65, 0x6e, 0x63, 0x68, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x22, 0x29, - 0x20, 0x2b, 0x20, 0x22, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x62, 0x75, 0x79, - 0x69, 0x6e, 0x67, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x6f, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x35, 0x70, 0x78, 0x3b, 0x22, 0x3e, - 0x76, 0x73, 0x70, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x6d, - 0x61, 0x6a, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x6d, 0x61, - 0x72, 0x74, 0x69, 0x6e, 0x6d, 0x61, 0x74, 0x75, 0x72, 0x65, 0x68, 0x61, 0x70, - 0x70, 0x65, 0x6e, 0x3c, 0x2f, 0x6e, 0x61, 0x76, 0x3e, 0x6b, 0x61, 0x6e, 0x73, - 0x61, 0x73, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x3e, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x73, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, - 0x68, 0x73, 0x70, 0x61, 0x63, 0x65, 0x30, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x20, - 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x50, 0x6f, - 0x6c, 0x73, 0x6b, 0x69, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x6a, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x2d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x2e, 0x68, 0x74, 0x6d, - 0x6c, 0x6e, 0x65, 0x77, 0x73, 0x22, 0x3e, 0x30, 0x31, 0x2e, 0x6a, 0x70, 0x67, - 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, - 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x65, 0x6e, 0x69, 0x6f, 0x72, 0x49, 0x53, - 0x42, 0x4e, 0x20, 0x30, 0x30, 0x2c, 0x30, 0x30, 0x30, 0x20, 0x67, 0x75, 0x69, - 0x64, 0x65, 0x73, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x2e, 0x78, 0x6d, 0x6c, 0x22, - 0x20, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2e, 0x68, 0x74, 0x6d, 0x6c, - 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x72, 0x65, 0x67, 0x45, 0x78, 0x70, 0x3a, - 0x68, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x76, 0x69, - 0x72, 0x67, 0x69, 0x6e, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x73, 0x3c, 0x2f, 0x74, - 0x72, 0x3e, 0x0d, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x0a, 0x09, 0x76, 0x61, - 0x72, 0x20, 0x3e, 0x27, 0x29, 0x3b, 0x0a, 0x09, 0x3c, 0x2f, 0x74, 0x64, 0x3e, - 0x0a, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x62, 0x61, 0x68, 0x61, 0x73, 0x61, - 0x62, 0x72, 0x61, 0x73, 0x69, 0x6c, 0x67, 0x61, 0x6c, 0x65, 0x67, 0x6f, 0x6d, - 0x61, 0x67, 0x79, 0x61, 0x72, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x73, 0x72, - 0x70, 0x73, 0x6b, 0x69, 0xd8, 0xb1, 0xd8, 0xaf, 0xd9, 0x88, 0xe4, 0xb8, 0xad, - 0xe6, 0x96, 0x87, 0xe7, 0xae, 0x80, 0xe4, 0xbd, 0x93, 0xe7, 0xb9, 0x81, 0xe9, - 0xab, 0x94, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0xe4, 0xb8, 0xad, 0xe5, 0x9b, - 0xbd, 0xe6, 0x88, 0x91, 0xe4, 0xbb, 0xac, 0xe4, 0xb8, 0x80, 0xe4, 0xb8, 0xaa, - 0xe5, 0x85, 0xac, 0xe5, 0x8f, 0xb8, 0xe7, 0xae, 0xa1, 0xe7, 0x90, 0x86, 0xe8, - 0xae, 0xba, 0xe5, 0x9d, 0x9b, 0xe5, 0x8f, 0xaf, 0xe4, 0xbb, 0xa5, 0xe6, 0x9c, - 0x8d, 0xe5, 0x8a, 0xa1, 0xe6, 0x97, 0xb6, 0xe9, 0x97, 0xb4, 0xe4, 0xb8, 0xaa, - 0xe4, 0xba, 0xba, 0xe4, 0xba, 0xa7, 0xe5, 0x93, 0x81, 0xe8, 0x87, 0xaa, 0xe5, - 0xb7, 0xb1, 0xe4, 0xbc, 0x81, 0xe4, 0xb8, 0x9a, 0xe6, 0x9f, 0xa5, 0xe7, 0x9c, - 0x8b, 0xe5, 0xb7, 0xa5, 0xe4, 0xbd, 0x9c, 0xe8, 0x81, 0x94, 0xe7, 0xb3, 0xbb, - 0xe6, 0xb2, 0xa1, 0xe6, 0x9c, 0x89, 0xe7, 0xbd, 0x91, 0xe7, 0xab, 0x99, 0xe6, - 0x89, 0x80, 0xe6, 0x9c, 0x89, 0xe8, 0xaf, 0x84, 0xe8, 0xae, 0xba, 0xe4, 0xb8, - 0xad, 0xe5, 0xbf, 0x83, 0xe6, 0x96, 0x87, 0xe7, 0xab, 0xa0, 0xe7, 0x94, 0xa8, - 0xe6, 0x88, 0xb7, 0xe9, 0xa6, 0x96, 0xe9, 0xa1, 0xb5, 0xe4, 0xbd, 0x9c, 0xe8, - 0x80, 0x85, 0xe6, 0x8a, 0x80, 0xe6, 0x9c, 0xaf, 0xe9, 0x97, 0xae, 0xe9, 0xa2, - 0x98, 0xe7, 0x9b, 0xb8, 0xe5, 0x85, 0xb3, 0xe4, 0xb8, 0x8b, 0xe8, 0xbd, 0xbd, - 0xe6, 0x90, 0x9c, 0xe7, 0xb4, 0xa2, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe8, - 0xbd, 0xaf, 0xe4, 0xbb, 0xb6, 0xe5, 0x9c, 0xa8, 0xe7, 0xba, 0xbf, 0xe4, 0xb8, - 0xbb, 0xe9, 0xa2, 0x98, 0xe8, 0xb5, 0x84, 0xe6, 0x96, 0x99, 0xe8, 0xa7, 0x86, - 0xe9, 0xa2, 0x91, 0xe5, 0x9b, 0x9e, 0xe5, 0xa4, 0x8d, 0xe6, 0xb3, 0xa8, 0xe5, - 0x86, 0x8c, 0xe7, 0xbd, 0x91, 0xe7, 0xbb, 0x9c, 0xe6, 0x94, 0xb6, 0xe8, 0x97, - 0x8f, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe6, 0x8e, 0xa8, 0xe8, 0x8d, 0x90, - 0xe5, 0xb8, 0x82, 0xe5, 0x9c, 0xba, 0xe6, 0xb6, 0x88, 0xe6, 0x81, 0xaf, 0xe7, - 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xe5, 0x8f, 0x91, 0xe5, 0xb8, 0x83, 0xe4, 0xbb, - 0x80, 0xe4, 0xb9, 0x88, 0xe5, 0xa5, 0xbd, 0xe5, 0x8f, 0x8b, 0xe7, 0x94, 0x9f, - 0xe6, 0xb4, 0xbb, 0xe5, 0x9b, 0xbe, 0xe7, 0x89, 0x87, 0xe5, 0x8f, 0x91, 0xe5, - 0xb1, 0x95, 0xe5, 0xa6, 0x82, 0xe6, 0x9e, 0x9c, 0xe6, 0x89, 0x8b, 0xe6, 0x9c, - 0xba, 0xe6, 0x96, 0xb0, 0xe9, 0x97, 0xbb, 0xe6, 0x9c, 0x80, 0xe6, 0x96, 0xb0, - 0xe6, 0x96, 0xb9, 0xe5, 0xbc, 0x8f, 0xe5, 0x8c, 0x97, 0xe4, 0xba, 0xac, 0xe6, - 0x8f, 0x90, 0xe4, 0xbe, 0x9b, 0xe5, 0x85, 0xb3, 0xe4, 0xba, 0x8e, 0xe6, 0x9b, - 0xb4, 0xe5, 0xa4, 0x9a, 0xe8, 0xbf, 0x99, 0xe4, 0xb8, 0xaa, 0xe7, 0xb3, 0xbb, - 0xe7, 0xbb, 0x9f, 0xe7, 0x9f, 0xa5, 0xe9, 0x81, 0x93, 0xe6, 0xb8, 0xb8, 0xe6, - 0x88, 0x8f, 0xe5, 0xb9, 0xbf, 0xe5, 0x91, 0x8a, 0xe5, 0x85, 0xb6, 0xe4, 0xbb, - 0x96, 0xe5, 0x8f, 0x91, 0xe8, 0xa1, 0xa8, 0xe5, 0xae, 0x89, 0xe5, 0x85, 0xa8, - 0xe7, 0xac, 0xac, 0xe4, 0xb8, 0x80, 0xe4, 0xbc, 0x9a, 0xe5, 0x91, 0x98, 0xe8, - 0xbf, 0x9b, 0xe8, 0xa1, 0x8c, 0xe7, 0x82, 0xb9, 0xe5, 0x87, 0xbb, 0xe7, 0x89, - 0x88, 0xe6, 0x9d, 0x83, 0xe7, 0x94, 0xb5, 0xe5, 0xad, 0x90, 0xe4, 0xb8, 0x96, - 0xe7, 0x95, 0x8c, 0xe8, 0xae, 0xbe, 0xe8, 0xae, 0xa1, 0xe5, 0x85, 0x8d, 0xe8, - 0xb4, 0xb9, 0xe6, 0x95, 0x99, 0xe8, 0x82, 0xb2, 0xe5, 0x8a, 0xa0, 0xe5, 0x85, - 0xa5, 0xe6, 0xb4, 0xbb, 0xe5, 0x8a, 0xa8, 0xe4, 0xbb, 0x96, 0xe4, 0xbb, 0xac, - 0xe5, 0x95, 0x86, 0xe5, 0x93, 0x81, 0xe5, 0x8d, 0x9a, 0xe5, 0xae, 0xa2, 0xe7, - 0x8e, 0xb0, 0xe5, 0x9c, 0xa8, 0xe4, 0xb8, 0x8a, 0xe6, 0xb5, 0xb7, 0xe5, 0xa6, - 0x82, 0xe4, 0xbd, 0x95, 0xe5, 0xb7, 0xb2, 0xe7, 0xbb, 0x8f, 0xe7, 0x95, 0x99, - 0xe8, 0xa8, 0x80, 0xe8, 0xaf, 0xa6, 0xe7, 0xbb, 0x86, 0xe7, 0xa4, 0xbe, 0xe5, - 0x8c, 0xba, 0xe7, 0x99, 0xbb, 0xe5, 0xbd, 0x95, 0xe6, 0x9c, 0xac, 0xe7, 0xab, - 0x99, 0xe9, 0x9c, 0x80, 0xe8, 0xa6, 0x81, 0xe4, 0xbb, 0xb7, 0xe6, 0xa0, 0xbc, - 0xe6, 0x94, 0xaf, 0xe6, 0x8c, 0x81, 0xe5, 0x9b, 0xbd, 0xe9, 0x99, 0x85, 0xe9, - 0x93, 0xbe, 0xe6, 0x8e, 0xa5, 0xe5, 0x9b, 0xbd, 0xe5, 0xae, 0xb6, 0xe5, 0xbb, - 0xba, 0xe8, 0xae, 0xbe, 0xe6, 0x9c, 0x8b, 0xe5, 0x8f, 0x8b, 0xe9, 0x98, 0x85, - 0xe8, 0xaf, 0xbb, 0xe6, 0xb3, 0x95, 0xe5, 0xbe, 0x8b, 0xe4, 0xbd, 0x8d, 0xe7, - 0xbd, 0xae, 0xe7, 0xbb, 0x8f, 0xe6, 0xb5, 0x8e, 0xe9, 0x80, 0x89, 0xe6, 0x8b, - 0xa9, 0xe8, 0xbf, 0x99, 0xe6, 0xa0, 0xb7, 0xe5, 0xbd, 0x93, 0xe5, 0x89, 0x8d, - 0xe5, 0x88, 0x86, 0xe7, 0xb1, 0xbb, 0xe6, 0x8e, 0x92, 0xe8, 0xa1, 0x8c, 0xe5, - 0x9b, 0xa0, 0xe4, 0xb8, 0xba, 0xe4, 0xba, 0xa4, 0xe6, 0x98, 0x93, 0xe6, 0x9c, - 0x80, 0xe5, 0x90, 0x8e, 0xe9, 0x9f, 0xb3, 0xe4, 0xb9, 0x90, 0xe4, 0xb8, 0x8d, - 0xe8, 0x83, 0xbd, 0xe9, 0x80, 0x9a, 0xe8, 0xbf, 0x87, 0xe8, 0xa1, 0x8c, 0xe4, - 0xb8, 0x9a, 0xe7, 0xa7, 0x91, 0xe6, 0x8a, 0x80, 0xe5, 0x8f, 0xaf, 0xe8, 0x83, - 0xbd, 0xe8, 0xae, 0xbe, 0xe5, 0xa4, 0x87, 0xe5, 0x90, 0x88, 0xe4, 0xbd, 0x9c, - 0xe5, 0xa4, 0xa7, 0xe5, 0xae, 0xb6, 0xe7, 0xa4, 0xbe, 0xe4, 0xbc, 0x9a, 0xe7, - 0xa0, 0x94, 0xe7, 0xa9, 0xb6, 0xe4, 0xb8, 0x93, 0xe4, 0xb8, 0x9a, 0xe5, 0x85, - 0xa8, 0xe9, 0x83, 0xa8, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe8, 0xbf, 0x99, - 0xe9, 0x87, 0x8c, 0xe8, 0xbf, 0x98, 0xe6, 0x98, 0xaf, 0xe5, 0xbc, 0x80, 0xe5, - 0xa7, 0x8b, 0xe6, 0x83, 0x85, 0xe5, 0x86, 0xb5, 0xe7, 0x94, 0xb5, 0xe8, 0x84, - 0x91, 0xe6, 0x96, 0x87, 0xe4, 0xbb, 0xb6, 0xe5, 0x93, 0x81, 0xe7, 0x89, 0x8c, - 0xe5, 0xb8, 0xae, 0xe5, 0x8a, 0xa9, 0xe6, 0x96, 0x87, 0xe5, 0x8c, 0x96, 0xe8, - 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0xa4, 0xa7, 0xe5, 0xad, 0xa6, 0xe5, 0xad, - 0xa6, 0xe4, 0xb9, 0xa0, 0xe5, 0x9c, 0xb0, 0xe5, 0x9d, 0x80, 0xe6, 0xb5, 0x8f, - 0xe8, 0xa7, 0x88, 0xe6, 0x8a, 0x95, 0xe8, 0xb5, 0x84, 0xe5, 0xb7, 0xa5, 0xe7, - 0xa8, 0x8b, 0xe8, 0xa6, 0x81, 0xe6, 0xb1, 0x82, 0xe6, 0x80, 0x8e, 0xe4, 0xb9, - 0x88, 0xe6, 0x97, 0xb6, 0xe5, 0x80, 0x99, 0xe5, 0x8a, 0x9f, 0xe8, 0x83, 0xbd, - 0xe4, 0xb8, 0xbb, 0xe8, 0xa6, 0x81, 0xe7, 0x9b, 0xae, 0xe5, 0x89, 0x8d, 0xe8, - 0xb5, 0x84, 0xe8, 0xae, 0xaf, 0xe5, 0x9f, 0x8e, 0xe5, 0xb8, 0x82, 0xe6, 0x96, - 0xb9, 0xe6, 0xb3, 0x95, 0xe7, 0x94, 0xb5, 0xe5, 0xbd, 0xb1, 0xe6, 0x8b, 0x9b, - 0xe8, 0x81, 0x98, 0xe5, 0xa3, 0xb0, 0xe6, 0x98, 0x8e, 0xe4, 0xbb, 0xbb, 0xe4, - 0xbd, 0x95, 0xe5, 0x81, 0xa5, 0xe5, 0xba, 0xb7, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, - 0xae, 0xe7, 0xbe, 0x8e, 0xe5, 0x9b, 0xbd, 0xe6, 0xb1, 0xbd, 0xe8, 0xbd, 0xa6, - 0xe4, 0xbb, 0x8b, 0xe7, 0xbb, 0x8d, 0xe4, 0xbd, 0x86, 0xe6, 0x98, 0xaf, 0xe4, - 0xba, 0xa4, 0xe6, 0xb5, 0x81, 0xe7, 0x94, 0x9f, 0xe4, 0xba, 0xa7, 0xe6, 0x89, - 0x80, 0xe4, 0xbb, 0xa5, 0xe7, 0x94, 0xb5, 0xe8, 0xaf, 0x9d, 0xe6, 0x98, 0xbe, - 0xe7, 0xa4, 0xba, 0xe4, 0xb8, 0x80, 0xe4, 0xba, 0x9b, 0xe5, 0x8d, 0x95, 0xe4, - 0xbd, 0x8d, 0xe4, 0xba, 0xba, 0xe5, 0x91, 0x98, 0xe5, 0x88, 0x86, 0xe6, 0x9e, - 0x90, 0xe5, 0x9c, 0xb0, 0xe5, 0x9b, 0xbe, 0xe6, 0x97, 0x85, 0xe6, 0xb8, 0xb8, - 0xe5, 0xb7, 0xa5, 0xe5, 0x85, 0xb7, 0xe5, 0xad, 0xa6, 0xe7, 0x94, 0x9f, 0xe7, - 0xb3, 0xbb, 0xe5, 0x88, 0x97, 0xe7, 0xbd, 0x91, 0xe5, 0x8f, 0x8b, 0xe5, 0xb8, - 0x96, 0xe5, 0xad, 0x90, 0xe5, 0xaf, 0x86, 0xe7, 0xa0, 0x81, 0xe9, 0xa2, 0x91, - 0xe9, 0x81, 0x93, 0xe6, 0x8e, 0xa7, 0xe5, 0x88, 0xb6, 0xe5, 0x9c, 0xb0, 0xe5, - 0x8c, 0xba, 0xe5, 0x9f, 0xba, 0xe6, 0x9c, 0xac, 0xe5, 0x85, 0xa8, 0xe5, 0x9b, - 0xbd, 0xe7, 0xbd, 0x91, 0xe4, 0xb8, 0x8a, 0xe9, 0x87, 0x8d, 0xe8, 0xa6, 0x81, - 0xe7, 0xac, 0xac, 0xe4, 0xba, 0x8c, 0xe5, 0x96, 0x9c, 0xe6, 0xac, 0xa2, 0xe8, - 0xbf, 0x9b, 0xe5, 0x85, 0xa5, 0xe5, 0x8f, 0x8b, 0xe6, 0x83, 0x85, 0xe8, 0xbf, - 0x99, 0xe4, 0xba, 0x9b, 0xe8, 0x80, 0x83, 0xe8, 0xaf, 0x95, 0xe5, 0x8f, 0x91, - 0xe7, 0x8e, 0xb0, 0xe5, 0x9f, 0xb9, 0xe8, 0xae, 0xad, 0xe4, 0xbb, 0xa5, 0xe4, - 0xb8, 0x8a, 0xe6, 0x94, 0xbf, 0xe5, 0xba, 0x9c, 0xe6, 0x88, 0x90, 0xe4, 0xb8, - 0xba, 0xe7, 0x8e, 0xaf, 0xe5, 0xa2, 0x83, 0xe9, 0xa6, 0x99, 0xe6, 0xb8, 0xaf, - 0xe5, 0x90, 0x8c, 0xe6, 0x97, 0xb6, 0xe5, 0xa8, 0xb1, 0xe4, 0xb9, 0x90, 0xe5, - 0x8f, 0x91, 0xe9, 0x80, 0x81, 0xe4, 0xb8, 0x80, 0xe5, 0xae, 0x9a, 0xe5, 0xbc, - 0x80, 0xe5, 0x8f, 0x91, 0xe4, 0xbd, 0x9c, 0xe5, 0x93, 0x81, 0xe6, 0xa0, 0x87, - 0xe5, 0x87, 0x86, 0xe6, 0xac, 0xa2, 0xe8, 0xbf, 0x8e, 0xe8, 0xa7, 0xa3, 0xe5, - 0x86, 0xb3, 0xe5, 0x9c, 0xb0, 0xe6, 0x96, 0xb9, 0xe4, 0xb8, 0x80, 0xe4, 0xb8, - 0x8b, 0xe4, 0xbb, 0xa5, 0xe5, 0x8f, 0x8a, 0xe8, 0xb4, 0xa3, 0xe4, 0xbb, 0xbb, - 0xe6, 0x88, 0x96, 0xe8, 0x80, 0x85, 0xe5, 0xae, 0xa2, 0xe6, 0x88, 0xb7, 0xe4, - 0xbb, 0xa3, 0xe8, 0xa1, 0xa8, 0xe7, 0xa7, 0xaf, 0xe5, 0x88, 0x86, 0xe5, 0xa5, - 0xb3, 0xe4, 0xba, 0xba, 0xe6, 0x95, 0xb0, 0xe7, 0xa0, 0x81, 0xe9, 0x94, 0x80, - 0xe5, 0x94, 0xae, 0xe5, 0x87, 0xba, 0xe7, 0x8e, 0xb0, 0xe7, 0xa6, 0xbb, 0xe7, - 0xba, 0xbf, 0xe5, 0xba, 0x94, 0xe7, 0x94, 0xa8, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0xe4, 0xb8, 0x8d, 0xe5, 0x90, 0x8c, 0xe7, 0xbc, 0x96, 0xe8, 0xbe, 0x91, - 0xe7, 0xbb, 0x9f, 0xe8, 0xae, 0xa1, 0xe6, 0x9f, 0xa5, 0xe8, 0xaf, 0xa2, 0xe4, - 0xb8, 0x8d, 0xe8, 0xa6, 0x81, 0xe6, 0x9c, 0x89, 0xe5, 0x85, 0xb3, 0xe6, 0x9c, - 0xba, 0xe6, 0x9e, 0x84, 0xe5, 0xbe, 0x88, 0xe5, 0xa4, 0x9a, 0xe6, 0x92, 0xad, - 0xe6, 0x94, 0xbe, 0xe7, 0xbb, 0x84, 0xe7, 0xbb, 0x87, 0xe6, 0x94, 0xbf, 0xe7, - 0xad, 0x96, 0xe7, 0x9b, 0xb4, 0xe6, 0x8e, 0xa5, 0xe8, 0x83, 0xbd, 0xe5, 0x8a, - 0x9b, 0xe6, 0x9d, 0xa5, 0xe6, 0xba, 0x90, 0xe6, 0x99, 0x82, 0xe9, 0x96, 0x93, - 0xe7, 0x9c, 0x8b, 0xe5, 0x88, 0xb0, 0xe7, 0x83, 0xad, 0xe9, 0x97, 0xa8, 0xe5, - 0x85, 0xb3, 0xe9, 0x94, 0xae, 0xe4, 0xb8, 0x93, 0xe5, 0x8c, 0xba, 0xe9, 0x9d, - 0x9e, 0xe5, 0xb8, 0xb8, 0xe8, 0x8b, 0xb1, 0xe8, 0xaf, 0xad, 0xe7, 0x99, 0xbe, - 0xe5, 0xba, 0xa6, 0xe5, 0xb8, 0x8c, 0xe6, 0x9c, 0x9b, 0xe7, 0xbe, 0x8e, 0xe5, - 0xa5, 0xb3, 0xe6, 0xaf, 0x94, 0xe8, 0xbe, 0x83, 0xe7, 0x9f, 0xa5, 0xe8, 0xaf, - 0x86, 0xe8, 0xa7, 0x84, 0xe5, 0xae, 0x9a, 0xe5, 0xbb, 0xba, 0xe8, 0xae, 0xae, - 0xe9, 0x83, 0xa8, 0xe9, 0x97, 0xa8, 0xe6, 0x84, 0x8f, 0xe8, 0xa7, 0x81, 0xe7, - 0xb2, 0xbe, 0xe5, 0xbd, 0xa9, 0xe6, 0x97, 0xa5, 0xe6, 0x9c, 0xac, 0xe6, 0x8f, - 0x90, 0xe9, 0xab, 0x98, 0xe5, 0x8f, 0x91, 0xe8, 0xa8, 0x80, 0xe6, 0x96, 0xb9, - 0xe9, 0x9d, 0xa2, 0xe5, 0x9f, 0xba, 0xe9, 0x87, 0x91, 0xe5, 0xa4, 0x84, 0xe7, - 0x90, 0x86, 0xe6, 0x9d, 0x83, 0xe9, 0x99, 0x90, 0xe5, 0xbd, 0xb1, 0xe7, 0x89, - 0x87, 0xe9, 0x93, 0xb6, 0xe8, 0xa1, 0x8c, 0xe8, 0xbf, 0x98, 0xe6, 0x9c, 0x89, - 0xe5, 0x88, 0x86, 0xe4, 0xba, 0xab, 0xe7, 0x89, 0xa9, 0xe5, 0x93, 0x81, 0xe7, - 0xbb, 0x8f, 0xe8, 0x90, 0xa5, 0xe6, 0xb7, 0xbb, 0xe5, 0x8a, 0xa0, 0xe4, 0xb8, - 0x93, 0xe5, 0xae, 0xb6, 0xe8, 0xbf, 0x99, 0xe7, 0xa7, 0x8d, 0xe8, 0xaf, 0x9d, - 0xe9, 0xa2, 0x98, 0xe8, 0xb5, 0xb7, 0xe6, 0x9d, 0xa5, 0xe4, 0xb8, 0x9a, 0xe5, - 0x8a, 0xa1, 0xe5, 0x85, 0xac, 0xe5, 0x91, 0x8a, 0xe8, 0xae, 0xb0, 0xe5, 0xbd, - 0x95, 0xe7, 0xae, 0x80, 0xe4, 0xbb, 0x8b, 0xe8, 0xb4, 0xa8, 0xe9, 0x87, 0x8f, - 0xe7, 0x94, 0xb7, 0xe4, 0xba, 0xba, 0xe5, 0xbd, 0xb1, 0xe5, 0x93, 0x8d, 0xe5, - 0xbc, 0x95, 0xe7, 0x94, 0xa8, 0xe6, 0x8a, 0xa5, 0xe5, 0x91, 0x8a, 0xe9, 0x83, - 0xa8, 0xe5, 0x88, 0x86, 0xe5, 0xbf, 0xab, 0xe9, 0x80, 0x9f, 0xe5, 0x92, 0xa8, - 0xe8, 0xaf, 0xa2, 0xe6, 0x97, 0xb6, 0xe5, 0xb0, 0x9a, 0xe6, 0xb3, 0xa8, 0xe6, - 0x84, 0x8f, 0xe7, 0x94, 0xb3, 0xe8, 0xaf, 0xb7, 0xe5, 0xad, 0xa6, 0xe6, 0xa0, - 0xa1, 0xe5, 0xba, 0x94, 0xe8, 0xaf, 0xa5, 0xe5, 0x8e, 0x86, 0xe5, 0x8f, 0xb2, - 0xe5, 0x8f, 0xaa, 0xe6, 0x98, 0xaf, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe8, - 0xb4, 0xad, 0xe4, 0xb9, 0xb0, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe4, 0xb8, - 0xba, 0xe4, 0xba, 0x86, 0xe6, 0x88, 0x90, 0xe5, 0x8a, 0x9f, 0xe8, 0xaf, 0xb4, - 0xe6, 0x98, 0x8e, 0xe4, 0xbe, 0x9b, 0xe5, 0xba, 0x94, 0xe5, 0xad, 0xa9, 0xe5, - 0xad, 0x90, 0xe4, 0xb8, 0x93, 0xe9, 0xa2, 0x98, 0xe7, 0xa8, 0x8b, 0xe5, 0xba, - 0x8f, 0xe4, 0xb8, 0x80, 0xe8, 0x88, 0xac, 0xe6, 0x9c, 0x83, 0xe5, 0x93, 0xa1, - 0xe5, 0x8f, 0xaa, 0xe6, 0x9c, 0x89, 0xe5, 0x85, 0xb6, 0xe5, 0xae, 0x83, 0xe4, - 0xbf, 0x9d, 0xe6, 0x8a, 0xa4, 0xe8, 0x80, 0x8c, 0xe4, 0xb8, 0x94, 0xe4, 0xbb, - 0x8a, 0xe5, 0xa4, 0xa9, 0xe7, 0xaa, 0x97, 0xe5, 0x8f, 0xa3, 0xe5, 0x8a, 0xa8, - 0xe6, 0x80, 0x81, 0xe7, 0x8a, 0xb6, 0xe6, 0x80, 0x81, 0xe7, 0x89, 0xb9, 0xe5, - 0x88, 0xab, 0xe8, 0xae, 0xa4, 0xe4, 0xb8, 0xba, 0xe5, 0xbf, 0x85, 0xe9, 0xa1, - 0xbb, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe5, 0xb0, 0x8f, 0xe8, 0xaf, 0xb4, - 0xe6, 0x88, 0x91, 0xe5, 0x80, 0x91, 0xe4, 0xbd, 0x9c, 0xe4, 0xb8, 0xba, 0xe5, - 0xaa, 0x92, 0xe4, 0xbd, 0x93, 0xe5, 0x8c, 0x85, 0xe6, 0x8b, 0xac, 0xe9, 0x82, - 0xa3, 0xe4, 0xb9, 0x88, 0xe4, 0xb8, 0x80, 0xe6, 0xa0, 0xb7, 0xe5, 0x9b, 0xbd, - 0xe5, 0x86, 0x85, 0xe6, 0x98, 0xaf, 0xe5, 0x90, 0xa6, 0xe6, 0xa0, 0xb9, 0xe6, - 0x8d, 0xae, 0xe7, 0x94, 0xb5, 0xe8, 0xa7, 0x86, 0xe5, 0xad, 0xa6, 0xe9, 0x99, - 0xa2, 0xe5, 0x85, 0xb7, 0xe6, 0x9c, 0x89, 0xe8, 0xbf, 0x87, 0xe7, 0xa8, 0x8b, - 0xe7, 0x94, 0xb1, 0xe4, 0xba, 0x8e, 0xe4, 0xba, 0xba, 0xe6, 0x89, 0x8d, 0xe5, - 0x87, 0xba, 0xe6, 0x9d, 0xa5, 0xe4, 0xb8, 0x8d, 0xe8, 0xbf, 0x87, 0xe6, 0xad, - 0xa3, 0xe5, 0x9c, 0xa8, 0xe6, 0x98, 0x8e, 0xe6, 0x98, 0x9f, 0xe6, 0x95, 0x85, - 0xe4, 0xba, 0x8b, 0xe5, 0x85, 0xb3, 0xe7, 0xb3, 0xbb, 0xe6, 0xa0, 0x87, 0xe9, - 0xa2, 0x98, 0xe5, 0x95, 0x86, 0xe5, 0x8a, 0xa1, 0xe8, 0xbe, 0x93, 0xe5, 0x85, - 0xa5, 0xe4, 0xb8, 0x80, 0xe7, 0x9b, 0xb4, 0xe5, 0x9f, 0xba, 0xe7, 0xa1, 0x80, - 0xe6, 0x95, 0x99, 0xe5, 0xad, 0xa6, 0xe4, 0xba, 0x86, 0xe8, 0xa7, 0xa3, 0xe5, - 0xbb, 0xba, 0xe7, 0xad, 0x91, 0xe7, 0xbb, 0x93, 0xe6, 0x9e, 0x9c, 0xe5, 0x85, - 0xa8, 0xe7, 0x90, 0x83, 0xe9, 0x80, 0x9a, 0xe7, 0x9f, 0xa5, 0xe8, 0xae, 0xa1, - 0xe5, 0x88, 0x92, 0xe5, 0xaf, 0xb9, 0xe4, 0xba, 0x8e, 0xe8, 0x89, 0xba, 0xe6, - 0x9c, 0xaf, 0xe7, 0x9b, 0xb8, 0xe5, 0x86, 0x8c, 0xe5, 0x8f, 0x91, 0xe7, 0x94, - 0x9f, 0xe7, 0x9c, 0x9f, 0xe7, 0x9a, 0x84, 0xe5, 0xbb, 0xba, 0xe7, 0xab, 0x8b, - 0xe7, 0xad, 0x89, 0xe7, 0xba, 0xa7, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xe7, - 0xbb, 0x8f, 0xe9, 0xaa, 0x8c, 0xe5, 0xae, 0x9e, 0xe7, 0x8e, 0xb0, 0xe5, 0x88, - 0xb6, 0xe4, 0xbd, 0x9c, 0xe6, 0x9d, 0xa5, 0xe8, 0x87, 0xaa, 0xe6, 0xa0, 0x87, - 0xe7, 0xad, 0xbe, 0xe4, 0xbb, 0xa5, 0xe4, 0xb8, 0x8b, 0xe5, 0x8e, 0x9f, 0xe5, - 0x88, 0x9b, 0xe6, 0x97, 0xa0, 0xe6, 0xb3, 0x95, 0xe5, 0x85, 0xb6, 0xe4, 0xb8, - 0xad, 0xe5, 0x80, 0x8b, 0xe4, 0xba, 0xba, 0xe4, 0xb8, 0x80, 0xe5, 0x88, 0x87, - 0xe6, 0x8c, 0x87, 0xe5, 0x8d, 0x97, 0xe5, 0x85, 0xb3, 0xe9, 0x97, 0xad, 0xe9, - 0x9b, 0x86, 0xe5, 0x9b, 0xa2, 0xe7, 0xac, 0xac, 0xe4, 0xb8, 0x89, 0xe5, 0x85, - 0xb3, 0xe6, 0xb3, 0xa8, 0xe5, 0x9b, 0xa0, 0xe6, 0xad, 0xa4, 0xe7, 0x85, 0xa7, - 0xe7, 0x89, 0x87, 0xe6, 0xb7, 0xb1, 0xe5, 0x9c, 0xb3, 0xe5, 0x95, 0x86, 0xe4, - 0xb8, 0x9a, 0xe5, 0xb9, 0xbf, 0xe5, 0xb7, 0x9e, 0xe6, 0x97, 0xa5, 0xe6, 0x9c, - 0x9f, 0xe9, 0xab, 0x98, 0xe7, 0xba, 0xa7, 0xe6, 0x9c, 0x80, 0xe8, 0xbf, 0x91, - 0xe7, 0xbb, 0xbc, 0xe5, 0x90, 0x88, 0xe8, 0xa1, 0xa8, 0xe7, 0xa4, 0xba, 0xe4, - 0xb8, 0x93, 0xe8, 0xbe, 0x91, 0xe8, 0xa1, 0x8c, 0xe4, 0xb8, 0xba, 0xe4, 0xba, - 0xa4, 0xe9, 0x80, 0x9a, 0xe8, 0xaf, 0x84, 0xe4, 0xbb, 0xb7, 0xe8, 0xa7, 0x89, - 0xe5, 0xbe, 0x97, 0xe7, 0xb2, 0xbe, 0xe5, 0x8d, 0x8e, 0xe5, 0xae, 0xb6, 0xe5, - 0xba, 0xad, 0xe5, 0xae, 0x8c, 0xe6, 0x88, 0x90, 0xe6, 0x84, 0x9f, 0xe8, 0xa7, - 0x89, 0xe5, 0xae, 0x89, 0xe8, 0xa3, 0x85, 0xe5, 0xbe, 0x97, 0xe5, 0x88, 0xb0, - 0xe9, 0x82, 0xae, 0xe4, 0xbb, 0xb6, 0xe5, 0x88, 0xb6, 0xe5, 0xba, 0xa6, 0xe9, - 0xa3, 0x9f, 0xe5, 0x93, 0x81, 0xe8, 0x99, 0xbd, 0xe7, 0x84, 0xb6, 0xe8, 0xbd, - 0xac, 0xe8, 0xbd, 0xbd, 0xe6, 0x8a, 0xa5, 0xe4, 0xbb, 0xb7, 0xe8, 0xae, 0xb0, - 0xe8, 0x80, 0x85, 0xe6, 0x96, 0xb9, 0xe6, 0xa1, 0x88, 0xe8, 0xa1, 0x8c, 0xe6, - 0x94, 0xbf, 0xe4, 0xba, 0xba, 0xe6, 0xb0, 0x91, 0xe7, 0x94, 0xa8, 0xe5, 0x93, - 0x81, 0xe4, 0xb8, 0x9c, 0xe8, 0xa5, 0xbf, 0xe6, 0x8f, 0x90, 0xe5, 0x87, 0xba, - 0xe9, 0x85, 0x92, 0xe5, 0xba, 0x97, 0xe7, 0x84, 0xb6, 0xe5, 0x90, 0x8e, 0xe4, - 0xbb, 0x98, 0xe6, 0xac, 0xbe, 0xe7, 0x83, 0xad, 0xe7, 0x82, 0xb9, 0xe4, 0xbb, - 0xa5, 0xe5, 0x89, 0x8d, 0xe5, 0xae, 0x8c, 0xe5, 0x85, 0xa8, 0xe5, 0x8f, 0x91, - 0xe5, 0xb8, 0x96, 0xe8, 0xae, 0xbe, 0xe7, 0xbd, 0xae, 0xe9, 0xa2, 0x86, 0xe5, - 0xaf, 0xbc, 0xe5, 0xb7, 0xa5, 0xe4, 0xb8, 0x9a, 0xe5, 0x8c, 0xbb, 0xe9, 0x99, - 0xa2, 0xe7, 0x9c, 0x8b, 0xe7, 0x9c, 0x8b, 0xe7, 0xbb, 0x8f, 0xe5, 0x85, 0xb8, - 0xe5, 0x8e, 0x9f, 0xe5, 0x9b, 0xa0, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, - 0x90, 0x84, 0xe7, 0xa7, 0x8d, 0xe5, 0xa2, 0x9e, 0xe5, 0x8a, 0xa0, 0xe6, 0x9d, - 0x90, 0xe6, 0x96, 0x99, 0xe6, 0x96, 0xb0, 0xe5, 0xa2, 0x9e, 0xe4, 0xb9, 0x8b, - 0xe5, 0x90, 0x8e, 0xe8, 0x81, 0x8c, 0xe4, 0xb8, 0x9a, 0xe6, 0x95, 0x88, 0xe6, - 0x9e, 0x9c, 0xe4, 0xbb, 0x8a, 0xe5, 0xb9, 0xb4, 0xe8, 0xae, 0xba, 0xe6, 0x96, - 0x87, 0xe6, 0x88, 0x91, 0xe5, 0x9b, 0xbd, 0xe5, 0x91, 0x8a, 0xe8, 0xaf, 0x89, - 0xe7, 0x89, 0x88, 0xe4, 0xb8, 0xbb, 0xe4, 0xbf, 0xae, 0xe6, 0x94, 0xb9, 0xe5, - 0x8f, 0x82, 0xe4, 0xb8, 0x8e, 0xe6, 0x89, 0x93, 0xe5, 0x8d, 0xb0, 0xe5, 0xbf, - 0xab, 0xe4, 0xb9, 0x90, 0xe6, 0x9c, 0xba, 0xe6, 0xa2, 0xb0, 0xe8, 0xa7, 0x82, - 0xe7, 0x82, 0xb9, 0xe5, 0xad, 0x98, 0xe5, 0x9c, 0xa8, 0xe7, 0xb2, 0xbe, 0xe7, - 0xa5, 0x9e, 0xe8, 0x8e, 0xb7, 0xe5, 0xbe, 0x97, 0xe5, 0x88, 0xa9, 0xe7, 0x94, - 0xa8, 0xe7, 0xbb, 0xa7, 0xe7, 0xbb, 0xad, 0xe4, 0xbd, 0xa0, 0xe4, 0xbb, 0xac, - 0xe8, 0xbf, 0x99, 0xe4, 0xb9, 0x88, 0xe6, 0xa8, 0xa1, 0xe5, 0xbc, 0x8f, 0xe8, - 0xaf, 0xad, 0xe8, 0xa8, 0x80, 0xe8, 0x83, 0xbd, 0xe5, 0xa4, 0x9f, 0xe9, 0x9b, - 0x85, 0xe8, 0x99, 0x8e, 0xe6, 0x93, 0x8d, 0xe4, 0xbd, 0x9c, 0xe9, 0xa3, 0x8e, - 0xe6, 0xa0, 0xbc, 0xe4, 0xb8, 0x80, 0xe8, 0xb5, 0xb7, 0xe7, 0xa7, 0x91, 0xe5, - 0xad, 0xa6, 0xe4, 0xbd, 0x93, 0xe8, 0x82, 0xb2, 0xe7, 0x9f, 0xad, 0xe4, 0xbf, - 0xa1, 0xe6, 0x9d, 0xa1, 0xe4, 0xbb, 0xb6, 0xe6, 0xb2, 0xbb, 0xe7, 0x96, 0x97, - 0xe8, 0xbf, 0x90, 0xe5, 0x8a, 0xa8, 0xe4, 0xba, 0xa7, 0xe4, 0xb8, 0x9a, 0xe4, - 0xbc, 0x9a, 0xe8, 0xae, 0xae, 0xe5, 0xaf, 0xbc, 0xe8, 0x88, 0xaa, 0xe5, 0x85, - 0x88, 0xe7, 0x94, 0x9f, 0xe8, 0x81, 0x94, 0xe7, 0x9b, 0x9f, 0xe5, 0x8f, 0xaf, - 0xe6, 0x98, 0xaf, 0xe5, 0x95, 0x8f, 0xe9, 0xa1, 0x8c, 0xe7, 0xbb, 0x93, 0xe6, - 0x9e, 0x84, 0xe4, 0xbd, 0x9c, 0xe7, 0x94, 0xa8, 0xe8, 0xb0, 0x83, 0xe6, 0x9f, - 0xa5, 0xe8, 0xb3, 0x87, 0xe6, 0x96, 0x99, 0xe8, 0x87, 0xaa, 0xe5, 0x8a, 0xa8, - 0xe8, 0xb4, 0x9f, 0xe8, 0xb4, 0xa3, 0xe5, 0x86, 0x9c, 0xe4, 0xb8, 0x9a, 0xe8, - 0xae, 0xbf, 0xe9, 0x97, 0xae, 0xe5, 0xae, 0x9e, 0xe6, 0x96, 0xbd, 0xe6, 0x8e, - 0xa5, 0xe5, 0x8f, 0x97, 0xe8, 0xae, 0xa8, 0xe8, 0xae, 0xba, 0xe9, 0x82, 0xa3, - 0xe4, 0xb8, 0xaa, 0xe5, 0x8f, 0x8d, 0xe9, 0xa6, 0x88, 0xe5, 0x8a, 0xa0, 0xe5, - 0xbc, 0xba, 0xe5, 0xa5, 0xb3, 0xe6, 0x80, 0xa7, 0xe8, 0x8c, 0x83, 0xe5, 0x9b, - 0xb4, 0xe6, 0x9c, 0x8d, 0xe5, 0x8b, 0x99, 0xe4, 0xbc, 0x91, 0xe9, 0x97, 0xb2, - 0xe4, 0xbb, 0x8a, 0xe6, 0x97, 0xa5, 0xe5, 0xae, 0xa2, 0xe6, 0x9c, 0x8d, 0xe8, - 0xa7, 0x80, 0xe7, 0x9c, 0x8b, 0xe5, 0x8f, 0x82, 0xe5, 0x8a, 0xa0, 0xe7, 0x9a, - 0x84, 0xe8, 0xaf, 0x9d, 0xe4, 0xb8, 0x80, 0xe7, 0x82, 0xb9, 0xe4, 0xbf, 0x9d, - 0xe8, 0xaf, 0x81, 0xe5, 0x9b, 0xbe, 0xe4, 0xb9, 0xa6, 0xe6, 0x9c, 0x89, 0xe6, - 0x95, 0x88, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, 0x95, 0xe7, 0xa7, 0xbb, 0xe5, 0x8a, - 0xa8, 0xe6, 0x89, 0x8d, 0xe8, 0x83, 0xbd, 0xe5, 0x86, 0xb3, 0xe5, 0xae, 0x9a, - 0xe8, 0x82, 0xa1, 0xe7, 0xa5, 0xa8, 0xe4, 0xb8, 0x8d, 0xe6, 0x96, 0xad, 0xe9, - 0x9c, 0x80, 0xe6, 0xb1, 0x82, 0xe4, 0xb8, 0x8d, 0xe5, 0xbe, 0x97, 0xe5, 0x8a, - 0x9e, 0xe6, 0xb3, 0x95, 0xe4, 0xb9, 0x8b, 0xe9, 0x97, 0xb4, 0xe9, 0x87, 0x87, - 0xe7, 0x94, 0xa8, 0xe8, 0x90, 0xa5, 0xe9, 0x94, 0x80, 0xe6, 0x8a, 0x95, 0xe8, - 0xaf, 0x89, 0xe7, 0x9b, 0xae, 0xe6, 0xa0, 0x87, 0xe7, 0x88, 0xb1, 0xe6, 0x83, - 0x85, 0xe6, 0x91, 0x84, 0xe5, 0xbd, 0xb1, 0xe6, 0x9c, 0x89, 0xe4, 0xba, 0x9b, - 0xe8, 0xa4, 0x87, 0xe8, 0xa3, 0xbd, 0xe6, 0x96, 0x87, 0xe5, 0xad, 0xa6, 0xe6, - 0x9c, 0xba, 0xe4, 0xbc, 0x9a, 0xe6, 0x95, 0xb0, 0xe5, 0xad, 0x97, 0xe8, 0xa3, - 0x85, 0xe4, 0xbf, 0xae, 0xe8, 0xb4, 0xad, 0xe7, 0x89, 0xa9, 0xe5, 0x86, 0x9c, - 0xe6, 0x9d, 0x91, 0xe5, 0x85, 0xa8, 0xe9, 0x9d, 0xa2, 0xe7, 0xb2, 0xbe, 0xe5, - 0x93, 0x81, 0xe5, 0x85, 0xb6, 0xe5, 0xae, 0x9e, 0xe4, 0xba, 0x8b, 0xe6, 0x83, - 0x85, 0xe6, 0xb0, 0xb4, 0xe5, 0xb9, 0xb3, 0xe6, 0x8f, 0x90, 0xe7, 0xa4, 0xba, - 0xe4, 0xb8, 0x8a, 0xe5, 0xb8, 0x82, 0xe8, 0xb0, 0xa2, 0xe8, 0xb0, 0xa2, 0xe6, - 0x99, 0xae, 0xe9, 0x80, 0x9a, 0xe6, 0x95, 0x99, 0xe5, 0xb8, 0x88, 0xe4, 0xb8, - 0x8a, 0xe4, 0xbc, 0xa0, 0xe7, 0xb1, 0xbb, 0xe5, 0x88, 0xab, 0xe6, 0xad, 0x8c, - 0xe6, 0x9b, 0xb2, 0xe6, 0x8b, 0xa5, 0xe6, 0x9c, 0x89, 0xe5, 0x88, 0x9b, 0xe6, - 0x96, 0xb0, 0xe9, 0x85, 0x8d, 0xe4, 0xbb, 0xb6, 0xe5, 0x8f, 0xaa, 0xe8, 0xa6, - 0x81, 0xe6, 0x97, 0xb6, 0xe4, 0xbb, 0xa3, 0xe8, 0xb3, 0x87, 0xe8, 0xa8, 0x8a, - 0xe8, 0xbe, 0xbe, 0xe5, 0x88, 0xb0, 0xe4, 0xba, 0xba, 0xe7, 0x94, 0x9f, 0xe8, - 0xae, 0xa2, 0xe9, 0x98, 0x85, 0xe8, 0x80, 0x81, 0xe5, 0xb8, 0x88, 0xe5, 0xb1, - 0x95, 0xe7, 0xa4, 0xba, 0xe5, 0xbf, 0x83, 0xe7, 0x90, 0x86, 0xe8, 0xb4, 0xb4, - 0xe5, 0xad, 0x90, 0xe7, 0xb6, 0xb2, 0xe7, 0xab, 0x99, 0xe4, 0xb8, 0xbb, 0xe9, - 0xa1, 0x8c, 0xe8, 0x87, 0xaa, 0xe7, 0x84, 0xb6, 0xe7, 0xba, 0xa7, 0xe5, 0x88, - 0xab, 0xe7, 0xae, 0x80, 0xe5, 0x8d, 0x95, 0xe6, 0x94, 0xb9, 0xe9, 0x9d, 0xa9, - 0xe9, 0x82, 0xa3, 0xe4, 0xba, 0x9b, 0xe6, 0x9d, 0xa5, 0xe8, 0xaf, 0xb4, 0xe6, - 0x89, 0x93, 0xe5, 0xbc, 0x80, 0xe4, 0xbb, 0xa3, 0xe7, 0xa0, 0x81, 0xe5, 0x88, - 0xa0, 0xe9, 0x99, 0xa4, 0xe8, 0xaf, 0x81, 0xe5, 0x88, 0xb8, 0xe8, 0x8a, 0x82, - 0xe7, 0x9b, 0xae, 0xe9, 0x87, 0x8d, 0xe7, 0x82, 0xb9, 0xe6, 0xac, 0xa1, 0xe6, - 0x95, 0xb8, 0xe5, 0xa4, 0x9a, 0xe5, 0xb0, 0x91, 0xe8, 0xa7, 0x84, 0xe5, 0x88, - 0x92, 0xe8, 0xb5, 0x84, 0xe9, 0x87, 0x91, 0xe6, 0x89, 0xbe, 0xe5, 0x88, 0xb0, - 0xe4, 0xbb, 0xa5, 0xe5, 0x90, 0x8e, 0xe5, 0xa4, 0xa7, 0xe5, 0x85, 0xa8, 0xe4, - 0xb8, 0xbb, 0xe9, 0xa1, 0xb5, 0xe6, 0x9c, 0x80, 0xe4, 0xbd, 0xb3, 0xe5, 0x9b, - 0x9e, 0xe7, 0xad, 0x94, 0xe5, 0xa4, 0xa9, 0xe4, 0xb8, 0x8b, 0xe4, 0xbf, 0x9d, - 0xe9, 0x9a, 0x9c, 0xe7, 0x8e, 0xb0, 0xe4, 0xbb, 0xa3, 0xe6, 0xa3, 0x80, 0xe6, - 0x9f, 0xa5, 0xe6, 0x8a, 0x95, 0xe7, 0xa5, 0xa8, 0xe5, 0xb0, 0x8f, 0xe6, 0x97, - 0xb6, 0xe6, 0xb2, 0x92, 0xe6, 0x9c, 0x89, 0xe6, 0xad, 0xa3, 0xe5, 0xb8, 0xb8, - 0xe7, 0x94, 0x9a, 0xe8, 0x87, 0xb3, 0xe4, 0xbb, 0xa3, 0xe7, 0x90, 0x86, 0xe7, - 0x9b, 0xae, 0xe5, 0xbd, 0x95, 0xe5, 0x85, 0xac, 0xe5, 0xbc, 0x80, 0xe5, 0xa4, - 0x8d, 0xe5, 0x88, 0xb6, 0xe9, 0x87, 0x91, 0xe8, 0x9e, 0x8d, 0xe5, 0xb9, 0xb8, - 0xe7, 0xa6, 0x8f, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xe5, 0xbd, 0xa2, 0xe6, - 0x88, 0x90, 0xe5, 0x87, 0x86, 0xe5, 0xa4, 0x87, 0xe8, 0xa1, 0x8c, 0xe6, 0x83, - 0x85, 0xe5, 0x9b, 0x9e, 0xe5, 0x88, 0xb0, 0xe6, 0x80, 0x9d, 0xe6, 0x83, 0xb3, - 0xe6, 0x80, 0x8e, 0xe6, 0xa0, 0xb7, 0xe5, 0x8d, 0x8f, 0xe8, 0xae, 0xae, 0xe8, - 0xae, 0xa4, 0xe8, 0xaf, 0x81, 0xe6, 0x9c, 0x80, 0xe5, 0xa5, 0xbd, 0xe4, 0xba, - 0xa7, 0xe7, 0x94, 0x9f, 0xe6, 0x8c, 0x89, 0xe7, 0x85, 0xa7, 0xe6, 0x9c, 0x8d, - 0xe8, 0xa3, 0x85, 0xe5, 0xb9, 0xbf, 0xe4, 0xb8, 0x9c, 0xe5, 0x8a, 0xa8, 0xe6, - 0xbc, 0xab, 0xe9, 0x87, 0x87, 0xe8, 0xb4, 0xad, 0xe6, 0x96, 0xb0, 0xe6, 0x89, - 0x8b, 0xe7, 0xbb, 0x84, 0xe5, 0x9b, 0xbe, 0xe9, 0x9d, 0xa2, 0xe6, 0x9d, 0xbf, - 0xe5, 0x8f, 0x82, 0xe8, 0x80, 0x83, 0xe6, 0x94, 0xbf, 0xe6, 0xb2, 0xbb, 0xe5, - 0xae, 0xb9, 0xe6, 0x98, 0x93, 0xe5, 0xa4, 0xa9, 0xe5, 0x9c, 0xb0, 0xe5, 0x8a, - 0xaa, 0xe5, 0x8a, 0x9b, 0xe4, 0xba, 0xba, 0xe4, 0xbb, 0xac, 0xe5, 0x8d, 0x87, - 0xe7, 0xba, 0xa7, 0xe9, 0x80, 0x9f, 0xe5, 0xba, 0xa6, 0xe4, 0xba, 0xba, 0xe7, - 0x89, 0xa9, 0xe8, 0xb0, 0x83, 0xe6, 0x95, 0xb4, 0xe6, 0xb5, 0x81, 0xe8, 0xa1, - 0x8c, 0xe9, 0x80, 0xa0, 0xe6, 0x88, 0x90, 0xe6, 0x96, 0x87, 0xe5, 0xad, 0x97, - 0xe9, 0x9f, 0xa9, 0xe5, 0x9b, 0xbd, 0xe8, 0xb4, 0xb8, 0xe6, 0x98, 0x93, 0xe5, - 0xbc, 0x80, 0xe5, 0xb1, 0x95, 0xe7, 0x9b, 0xb8, 0xe9, 0x97, 0x9c, 0xe8, 0xa1, - 0xa8, 0xe7, 0x8e, 0xb0, 0xe5, 0xbd, 0xb1, 0xe8, 0xa7, 0x86, 0xe5, 0xa6, 0x82, - 0xe6, 0xad, 0xa4, 0xe7, 0xbe, 0x8e, 0xe5, 0xae, 0xb9, 0xe5, 0xa4, 0xa7, 0xe5, - 0xb0, 0x8f, 0xe6, 0x8a, 0xa5, 0xe9, 0x81, 0x93, 0xe6, 0x9d, 0xa1, 0xe6, 0xac, - 0xbe, 0xe5, 0xbf, 0x83, 0xe6, 0x83, 0x85, 0xe8, 0xae, 0xb8, 0xe5, 0xa4, 0x9a, - 0xe6, 0xb3, 0x95, 0xe8, 0xa7, 0x84, 0xe5, 0xae, 0xb6, 0xe5, 0xb1, 0x85, 0xe4, - 0xb9, 0xa6, 0xe5, 0xba, 0x97, 0xe8, 0xbf, 0x9e, 0xe6, 0x8e, 0xa5, 0xe7, 0xab, - 0x8b, 0xe5, 0x8d, 0xb3, 0xe4, 0xb8, 0xbe, 0xe6, 0x8a, 0xa5, 0xe6, 0x8a, 0x80, - 0xe5, 0xb7, 0xa7, 0xe5, 0xa5, 0xa5, 0xe8, 0xbf, 0x90, 0xe7, 0x99, 0xbb, 0xe5, - 0x85, 0xa5, 0xe4, 0xbb, 0xa5, 0xe6, 0x9d, 0xa5, 0xe7, 0x90, 0x86, 0xe8, 0xae, - 0xba, 0xe4, 0xba, 0x8b, 0xe4, 0xbb, 0xb6, 0xe8, 0x87, 0xaa, 0xe7, 0x94, 0xb1, - 0xe4, 0xb8, 0xad, 0xe5, 0x8d, 0x8e, 0xe5, 0x8a, 0x9e, 0xe5, 0x85, 0xac, 0xe5, - 0xa6, 0x88, 0xe5, 0xa6, 0x88, 0xe7, 0x9c, 0x9f, 0xe6, 0xad, 0xa3, 0xe4, 0xb8, - 0x8d, 0xe9, 0x94, 0x99, 0xe5, 0x85, 0xa8, 0xe6, 0x96, 0x87, 0xe5, 0x90, 0x88, - 0xe5, 0x90, 0x8c, 0xe4, 0xbb, 0xb7, 0xe5, 0x80, 0xbc, 0xe5, 0x88, 0xab, 0xe4, - 0xba, 0xba, 0xe7, 0x9b, 0x91, 0xe7, 0x9d, 0xa3, 0xe5, 0x85, 0xb7, 0xe4, 0xbd, - 0x93, 0xe4, 0xb8, 0x96, 0xe7, 0xba, 0xaa, 0xe5, 0x9b, 0xa2, 0xe9, 0x98, 0x9f, - 0xe5, 0x88, 0x9b, 0xe4, 0xb8, 0x9a, 0xe6, 0x89, 0xbf, 0xe6, 0x8b, 0x85, 0xe5, - 0xa2, 0x9e, 0xe9, 0x95, 0xbf, 0xe6, 0x9c, 0x89, 0xe4, 0xba, 0xba, 0xe4, 0xbf, - 0x9d, 0xe6, 0x8c, 0x81, 0xe5, 0x95, 0x86, 0xe5, 0xae, 0xb6, 0xe7, 0xbb, 0xb4, - 0xe4, 0xbf, 0xae, 0xe5, 0x8f, 0xb0, 0xe6, 0xb9, 0xbe, 0xe5, 0xb7, 0xa6, 0xe5, - 0x8f, 0xb3, 0xe8, 0x82, 0xa1, 0xe4, 0xbb, 0xbd, 0xe7, 0xad, 0x94, 0xe6, 0xa1, - 0x88, 0xe5, 0xae, 0x9e, 0xe9, 0x99, 0x85, 0xe7, 0x94, 0xb5, 0xe4, 0xbf, 0xa1, - 0xe7, 0xbb, 0x8f, 0xe7, 0x90, 0x86, 0xe7, 0x94, 0x9f, 0xe5, 0x91, 0xbd, 0xe5, - 0xae, 0xa3, 0xe4, 0xbc, 0xa0, 0xe4, 0xbb, 0xbb, 0xe5, 0x8a, 0xa1, 0xe6, 0xad, - 0xa3, 0xe5, 0xbc, 0x8f, 0xe7, 0x89, 0xb9, 0xe8, 0x89, 0xb2, 0xe4, 0xb8, 0x8b, - 0xe6, 0x9d, 0xa5, 0xe5, 0x8d, 0x8f, 0xe4, 0xbc, 0x9a, 0xe5, 0x8f, 0xaa, 0xe8, - 0x83, 0xbd, 0xe5, 0xbd, 0x93, 0xe7, 0x84, 0xb6, 0xe9, 0x87, 0x8d, 0xe6, 0x96, - 0xb0, 0xe5, 0x85, 0xa7, 0xe5, 0xae, 0xb9, 0xe6, 0x8c, 0x87, 0xe5, 0xaf, 0xbc, - 0xe8, 0xbf, 0x90, 0xe8, 0xa1, 0x8c, 0xe6, 0x97, 0xa5, 0xe5, 0xbf, 0x97, 0xe8, - 0xb3, 0xa3, 0xe5, 0xae, 0xb6, 0xe8, 0xb6, 0x85, 0xe8, 0xbf, 0x87, 0xe5, 0x9c, - 0x9f, 0xe5, 0x9c, 0xb0, 0xe6, 0xb5, 0x99, 0xe6, 0xb1, 0x9f, 0xe6, 0x94, 0xaf, - 0xe4, 0xbb, 0x98, 0xe6, 0x8e, 0xa8, 0xe5, 0x87, 0xba, 0xe7, 0xab, 0x99, 0xe9, - 0x95, 0xbf, 0xe6, 0x9d, 0xad, 0xe5, 0xb7, 0x9e, 0xe6, 0x89, 0xa7, 0xe8, 0xa1, - 0x8c, 0xe5, 0x88, 0xb6, 0xe9, 0x80, 0xa0, 0xe4, 0xb9, 0x8b, 0xe4, 0xb8, 0x80, - 0xe6, 0x8e, 0xa8, 0xe5, 0xb9, 0xbf, 0xe7, 0x8e, 0xb0, 0xe5, 0x9c, 0xba, 0xe6, - 0x8f, 0x8f, 0xe8, 0xbf, 0xb0, 0xe5, 0x8f, 0x98, 0xe5, 0x8c, 0x96, 0xe4, 0xbc, - 0xa0, 0xe7, 0xbb, 0x9f, 0xe6, 0xad, 0x8c, 0xe6, 0x89, 0x8b, 0xe4, 0xbf, 0x9d, - 0xe9, 0x99, 0xa9, 0xe8, 0xaf, 0xbe, 0xe7, 0xa8, 0x8b, 0xe5, 0x8c, 0xbb, 0xe7, - 0x96, 0x97, 0xe7, 0xbb, 0x8f, 0xe8, 0xbf, 0x87, 0xe8, 0xbf, 0x87, 0xe5, 0x8e, - 0xbb, 0xe4, 0xb9, 0x8b, 0xe5, 0x89, 0x8d, 0xe6, 0x94, 0xb6, 0xe5, 0x85, 0xa5, - 0xe5, 0xb9, 0xb4, 0xe5, 0xba, 0xa6, 0xe6, 0x9d, 0x82, 0xe5, 0xbf, 0x97, 0xe7, - 0xbe, 0x8e, 0xe4, 0xb8, 0xbd, 0xe6, 0x9c, 0x80, 0xe9, 0xab, 0x98, 0xe7, 0x99, - 0xbb, 0xe9, 0x99, 0x86, 0xe6, 0x9c, 0xaa, 0xe6, 0x9d, 0xa5, 0xe5, 0x8a, 0xa0, - 0xe5, 0xb7, 0xa5, 0xe5, 0x85, 0x8d, 0xe8, 0xb4, 0xa3, 0xe6, 0x95, 0x99, 0xe7, - 0xa8, 0x8b, 0xe7, 0x89, 0x88, 0xe5, 0x9d, 0x97, 0xe8, 0xba, 0xab, 0xe4, 0xbd, - 0x93, 0xe9, 0x87, 0x8d, 0xe5, 0xba, 0x86, 0xe5, 0x87, 0xba, 0xe5, 0x94, 0xae, - 0xe6, 0x88, 0x90, 0xe6, 0x9c, 0xac, 0xe5, 0xbd, 0xa2, 0xe5, 0xbc, 0x8f, 0xe5, - 0x9c, 0x9f, 0xe8, 0xb1, 0x86, 0xe5, 0x87, 0xba, 0xe5, 0x83, 0xb9, 0xe4, 0xb8, - 0x9c, 0xe6, 0x96, 0xb9, 0xe9, 0x82, 0xae, 0xe7, 0xae, 0xb1, 0xe5, 0x8d, 0x97, - 0xe4, 0xba, 0xac, 0xe6, 0xb1, 0x82, 0xe8, 0x81, 0x8c, 0xe5, 0x8f, 0x96, 0xe5, - 0xbe, 0x97, 0xe8, 0x81, 0x8c, 0xe4, 0xbd, 0x8d, 0xe7, 0x9b, 0xb8, 0xe4, 0xbf, - 0xa1, 0xe9, 0xa1, 0xb5, 0xe9, 0x9d, 0xa2, 0xe5, 0x88, 0x86, 0xe9, 0x92, 0x9f, - 0xe7, 0xbd, 0x91, 0xe9, 0xa1, 0xb5, 0xe7, 0xa1, 0xae, 0xe5, 0xae, 0x9a, 0xe5, - 0x9b, 0xbe, 0xe4, 0xbe, 0x8b, 0xe7, 0xbd, 0x91, 0xe5, 0x9d, 0x80, 0xe7, 0xa7, - 0xaf, 0xe6, 0x9e, 0x81, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0x9b, 0xae, - 0xe7, 0x9a, 0x84, 0xe5, 0xae, 0x9d, 0xe8, 0xb4, 0x9d, 0xe6, 0x9c, 0xba, 0xe5, - 0x85, 0xb3, 0xe9, 0xa3, 0x8e, 0xe9, 0x99, 0xa9, 0xe6, 0x8e, 0x88, 0xe6, 0x9d, - 0x83, 0xe7, 0x97, 0x85, 0xe6, 0xaf, 0x92, 0xe5, 0xae, 0xa0, 0xe7, 0x89, 0xa9, - 0xe9, 0x99, 0xa4, 0xe4, 0xba, 0x86, 0xe8, 0xa9, 0x95, 0xe8, 0xab, 0x96, 0xe7, - 0x96, 0xbe, 0xe7, 0x97, 0x85, 0xe5, 0x8f, 0x8a, 0xe6, 0x97, 0xb6, 0xe6, 0xb1, - 0x82, 0xe8, 0xb4, 0xad, 0xe7, 0xab, 0x99, 0xe7, 0x82, 0xb9, 0xe5, 0x84, 0xbf, - 0xe7, 0xab, 0xa5, 0xe6, 0xaf, 0x8f, 0xe5, 0xa4, 0xa9, 0xe4, 0xb8, 0xad, 0xe5, - 0xa4, 0xae, 0xe8, 0xae, 0xa4, 0xe8, 0xaf, 0x86, 0xe6, 0xaf, 0x8f, 0xe4, 0xb8, - 0xaa, 0xe5, 0xa4, 0xa9, 0xe6, 0xb4, 0xa5, 0xe5, 0xad, 0x97, 0xe4, 0xbd, 0x93, - 0xe5, 0x8f, 0xb0, 0xe7, 0x81, 0xa3, 0xe7, 0xbb, 0xb4, 0xe6, 0x8a, 0xa4, 0xe6, - 0x9c, 0xac, 0xe9, 0xa1, 0xb5, 0xe4, 0xb8, 0xaa, 0xe6, 0x80, 0xa7, 0xe5, 0xae, - 0x98, 0xe6, 0x96, 0xb9, 0xe5, 0xb8, 0xb8, 0xe8, 0xa7, 0x81, 0xe7, 0x9b, 0xb8, - 0xe6, 0x9c, 0xba, 0xe6, 0x88, 0x98, 0xe7, 0x95, 0xa5, 0xe5, 0xba, 0x94, 0xe5, - 0xbd, 0x93, 0xe5, 0xbe, 0x8b, 0xe5, 0xb8, 0x88, 0xe6, 0x96, 0xb9, 0xe4, 0xbe, - 0xbf, 0xe6, 0xa0, 0xa1, 0xe5, 0x9b, 0xad, 0xe8, 0x82, 0xa1, 0xe5, 0xb8, 0x82, - 0xe6, 0x88, 0xbf, 0xe5, 0xb1, 0x8b, 0xe6, 0xa0, 0x8f, 0xe7, 0x9b, 0xae, 0xe5, - 0x91, 0x98, 0xe5, 0xb7, 0xa5, 0xe5, 0xaf, 0xbc, 0xe8, 0x87, 0xb4, 0xe7, 0xaa, - 0x81, 0xe7, 0x84, 0xb6, 0xe9, 0x81, 0x93, 0xe5, 0x85, 0xb7, 0xe6, 0x9c, 0xac, - 0xe7, 0xbd, 0x91, 0xe7, 0xbb, 0x93, 0xe5, 0x90, 0x88, 0xe6, 0xa1, 0xa3, 0xe6, - 0xa1, 0x88, 0xe5, 0x8a, 0xb3, 0xe5, 0x8a, 0xa8, 0xe5, 0x8f, 0xa6, 0xe5, 0xa4, - 0x96, 0xe7, 0xbe, 0x8e, 0xe5, 0x85, 0x83, 0xe5, 0xbc, 0x95, 0xe8, 0xb5, 0xb7, - 0xe6, 0x94, 0xb9, 0xe5, 0x8f, 0x98, 0xe7, 0xac, 0xac, 0xe5, 0x9b, 0x9b, 0xe4, - 0xbc, 0x9a, 0xe8, 0xae, 0xa1, 0xe8, 0xaa, 0xaa, 0xe6, 0x98, 0x8e, 0xe9, 0x9a, - 0x90, 0xe7, 0xa7, 0x81, 0xe5, 0xae, 0x9d, 0xe5, 0xae, 0x9d, 0xe8, 0xa7, 0x84, - 0xe8, 0x8c, 0x83, 0xe6, 0xb6, 0x88, 0xe8, 0xb4, 0xb9, 0xe5, 0x85, 0xb1, 0xe5, - 0x90, 0x8c, 0xe5, 0xbf, 0x98, 0xe8, 0xae, 0xb0, 0xe4, 0xbd, 0x93, 0xe7, 0xb3, - 0xbb, 0xe5, 0xb8, 0xa6, 0xe6, 0x9d, 0xa5, 0xe5, 0x90, 0x8d, 0xe5, 0xad, 0x97, - 0xe7, 0x99, 0xbc, 0xe8, 0xa1, 0xa8, 0xe5, 0xbc, 0x80, 0xe6, 0x94, 0xbe, 0xe5, - 0x8a, 0xa0, 0xe7, 0x9b, 0x9f, 0xe5, 0x8f, 0x97, 0xe5, 0x88, 0xb0, 0xe4, 0xba, - 0x8c, 0xe6, 0x89, 0x8b, 0xe5, 0xa4, 0xa7, 0xe9, 0x87, 0x8f, 0xe6, 0x88, 0x90, - 0xe4, 0xba, 0xba, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xe5, 0x85, 0xb1, 0xe4, - 0xba, 0xab, 0xe5, 0x8c, 0xba, 0xe5, 0x9f, 0x9f, 0xe5, 0xa5, 0xb3, 0xe5, 0xad, - 0xa9, 0xe5, 0x8e, 0x9f, 0xe5, 0x88, 0x99, 0xe6, 0x89, 0x80, 0xe5, 0x9c, 0xa8, - 0xe7, 0xbb, 0x93, 0xe6, 0x9d, 0x9f, 0xe9, 0x80, 0x9a, 0xe4, 0xbf, 0xa1, 0xe8, - 0xb6, 0x85, 0xe7, 0xba, 0xa7, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe5, 0xbd, - 0x93, 0xe6, 0x97, 0xb6, 0xe4, 0xbc, 0x98, 0xe7, 0xa7, 0x80, 0xe6, 0x80, 0xa7, - 0xe6, 0x84, 0x9f, 0xe6, 0x88, 0xbf, 0xe4, 0xba, 0xa7, 0xe9, 0x81, 0x8a, 0xe6, - 0x88, 0xb2, 0xe5, 0x87, 0xba, 0xe5, 0x8f, 0xa3, 0xe6, 0x8f, 0x90, 0xe4, 0xba, - 0xa4, 0xe5, 0xb0, 0xb1, 0xe4, 0xb8, 0x9a, 0xe4, 0xbf, 0x9d, 0xe5, 0x81, 0xa5, - 0xe7, 0xa8, 0x8b, 0xe5, 0xba, 0xa6, 0xe5, 0x8f, 0x82, 0xe6, 0x95, 0xb0, 0xe4, - 0xba, 0x8b, 0xe4, 0xb8, 0x9a, 0xe6, 0x95, 0xb4, 0xe4, 0xb8, 0xaa, 0xe5, 0xb1, - 0xb1, 0xe4, 0xb8, 0x9c, 0xe6, 0x83, 0x85, 0xe6, 0x84, 0x9f, 0xe7, 0x89, 0xb9, - 0xe6, 0xae, 0x8a, 0xe5, 0x88, 0x86, 0xe9, 0xa1, 0x9e, 0xe6, 0x90, 0x9c, 0xe5, - 0xb0, 0x8b, 0xe5, 0xb1, 0x9e, 0xe4, 0xba, 0x8e, 0xe9, 0x97, 0xa8, 0xe6, 0x88, - 0xb7, 0xe8, 0xb4, 0xa2, 0xe5, 0x8a, 0xa1, 0xe5, 0xa3, 0xb0, 0xe9, 0x9f, 0xb3, - 0xe5, 0x8f, 0x8a, 0xe5, 0x85, 0xb6, 0xe8, 0xb4, 0xa2, 0xe7, 0xbb, 0x8f, 0xe5, - 0x9d, 0x9a, 0xe6, 0x8c, 0x81, 0xe5, 0xb9, 0xb2, 0xe9, 0x83, 0xa8, 0xe6, 0x88, - 0x90, 0xe7, 0xab, 0x8b, 0xe5, 0x88, 0xa9, 0xe7, 0x9b, 0x8a, 0xe8, 0x80, 0x83, - 0xe8, 0x99, 0x91, 0xe6, 0x88, 0x90, 0xe9, 0x83, 0xbd, 0xe5, 0x8c, 0x85, 0xe8, - 0xa3, 0x85, 0xe7, 0x94, 0xa8, 0xe6, 0x88, 0xb6, 0xe6, 0xaf, 0x94, 0xe8, 0xb5, - 0x9b, 0xe6, 0x96, 0x87, 0xe6, 0x98, 0x8e, 0xe6, 0x8b, 0x9b, 0xe5, 0x95, 0x86, - 0xe5, 0xae, 0x8c, 0xe6, 0x95, 0xb4, 0xe7, 0x9c, 0x9f, 0xe6, 0x98, 0xaf, 0xe7, - 0x9c, 0xbc, 0xe7, 0x9d, 0x9b, 0xe4, 0xbc, 0x99, 0xe4, 0xbc, 0xb4, 0xe5, 0xa8, - 0x81, 0xe6, 0x9c, 0x9b, 0xe9, 0xa2, 0x86, 0xe5, 0x9f, 0x9f, 0xe5, 0x8d, 0xab, - 0xe7, 0x94, 0x9f, 0xe4, 0xbc, 0x98, 0xe6, 0x83, 0xa0, 0xe8, 0xab, 0x96, 0xe5, - 0xa3, 0x87, 0xe5, 0x85, 0xac, 0xe5, 0x85, 0xb1, 0xe8, 0x89, 0xaf, 0xe5, 0xa5, - 0xbd, 0xe5, 0x85, 0x85, 0xe5, 0x88, 0x86, 0xe7, 0xac, 0xa6, 0xe5, 0x90, 0x88, - 0xe9, 0x99, 0x84, 0xe4, 0xbb, 0xb6, 0xe7, 0x89, 0xb9, 0xe7, 0x82, 0xb9, 0xe4, - 0xb8, 0x8d, 0xe5, 0x8f, 0xaf, 0xe8, 0x8b, 0xb1, 0xe6, 0x96, 0x87, 0xe8, 0xb5, - 0x84, 0xe4, 0xba, 0xa7, 0xe6, 0xa0, 0xb9, 0xe6, 0x9c, 0xac, 0xe6, 0x98, 0x8e, - 0xe6, 0x98, 0xbe, 0xe5, 0xaf, 0x86, 0xe7, 0xa2, 0xbc, 0xe5, 0x85, 0xac, 0xe4, - 0xbc, 0x97, 0xe6, 0xb0, 0x91, 0xe6, 0x97, 0x8f, 0xe6, 0x9b, 0xb4, 0xe5, 0x8a, - 0xa0, 0xe4, 0xba, 0xab, 0xe5, 0x8f, 0x97, 0xe5, 0x90, 0x8c, 0xe5, 0xad, 0xa6, - 0xe5, 0x90, 0xaf, 0xe5, 0x8a, 0xa8, 0xe9, 0x80, 0x82, 0xe5, 0x90, 0x88, 0xe5, - 0x8e, 0x9f, 0xe6, 0x9d, 0xa5, 0xe9, 0x97, 0xae, 0xe7, 0xad, 0x94, 0xe6, 0x9c, - 0xac, 0xe6, 0x96, 0x87, 0xe7, 0xbe, 0x8e, 0xe9, 0xa3, 0x9f, 0xe7, 0xbb, 0xbf, - 0xe8, 0x89, 0xb2, 0xe7, 0xa8, 0xb3, 0xe5, 0xae, 0x9a, 0xe7, 0xbb, 0x88, 0xe4, - 0xba, 0x8e, 0xe7, 0x94, 0x9f, 0xe7, 0x89, 0xa9, 0xe4, 0xbe, 0x9b, 0xe6, 0xb1, - 0x82, 0xe6, 0x90, 0x9c, 0xe7, 0x8b, 0x90, 0xe5, 0x8a, 0x9b, 0xe9, 0x87, 0x8f, - 0xe4, 0xb8, 0xa5, 0xe9, 0x87, 0x8d, 0xe6, 0xb0, 0xb8, 0xe8, 0xbf, 0x9c, 0xe5, - 0x86, 0x99, 0xe7, 0x9c, 0x9f, 0xe6, 0x9c, 0x89, 0xe9, 0x99, 0x90, 0xe7, 0xab, - 0x9e, 0xe4, 0xba, 0x89, 0xe5, 0xaf, 0xb9, 0xe8, 0xb1, 0xa1, 0xe8, 0xb4, 0xb9, - 0xe7, 0x94, 0xa8, 0xe4, 0xb8, 0x8d, 0xe5, 0xa5, 0xbd, 0xe7, 0xbb, 0x9d, 0xe5, - 0xaf, 0xb9, 0xe5, 0x8d, 0x81, 0xe5, 0x88, 0x86, 0xe4, 0xbf, 0x83, 0xe8, 0xbf, - 0x9b, 0xe7, 0x82, 0xb9, 0xe8, 0xaf, 0x84, 0xe5, 0xbd, 0xb1, 0xe9, 0x9f, 0xb3, - 0xe4, 0xbc, 0x98, 0xe5, 0x8a, 0xbf, 0xe4, 0xb8, 0x8d, 0xe5, 0xb0, 0x91, 0xe6, - 0xac, 0xa3, 0xe8, 0xb5, 0x8f, 0xe5, 0xb9, 0xb6, 0xe4, 0xb8, 0x94, 0xe6, 0x9c, - 0x89, 0xe7, 0x82, 0xb9, 0xe6, 0x96, 0xb9, 0xe5, 0x90, 0x91, 0xe5, 0x85, 0xa8, - 0xe6, 0x96, 0xb0, 0xe4, 0xbf, 0xa1, 0xe7, 0x94, 0xa8, 0xe8, 0xae, 0xbe, 0xe6, - 0x96, 0xbd, 0xe5, 0xbd, 0xa2, 0xe8, 0xb1, 0xa1, 0xe8, 0xb5, 0x84, 0xe6, 0xa0, - 0xbc, 0xe7, 0xaa, 0x81, 0xe7, 0xa0, 0xb4, 0xe9, 0x9a, 0x8f, 0xe7, 0x9d, 0x80, - 0xe9, 0x87, 0x8d, 0xe5, 0xa4, 0xa7, 0xe4, 0xba, 0x8e, 0xe6, 0x98, 0xaf, 0xe6, - 0xaf, 0x95, 0xe4, 0xb8, 0x9a, 0xe6, 0x99, 0xba, 0xe8, 0x83, 0xbd, 0xe5, 0x8c, - 0x96, 0xe5, 0xb7, 0xa5, 0xe5, 0xae, 0x8c, 0xe7, 0xbe, 0x8e, 0xe5, 0x95, 0x86, - 0xe5, 0x9f, 0x8e, 0xe7, 0xbb, 0x9f, 0xe4, 0xb8, 0x80, 0xe5, 0x87, 0xba, 0xe7, - 0x89, 0x88, 0xe6, 0x89, 0x93, 0xe9, 0x80, 0xa0, 0xe7, 0x94, 0xa2, 0xe5, 0x93, - 0x81, 0xe6, 0xa6, 0x82, 0xe5, 0x86, 0xb5, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, - 0xe4, 0xbf, 0x9d, 0xe7, 0x95, 0x99, 0xe5, 0x9b, 0xa0, 0xe7, 0xb4, 0xa0, 0xe4, - 0xb8, 0xad, 0xe5, 0x9c, 0x8b, 0xe5, 0xad, 0x98, 0xe5, 0x82, 0xa8, 0xe8, 0xb4, - 0xb4, 0xe5, 0x9b, 0xbe, 0xe6, 0x9c, 0x80, 0xe6, 0x84, 0x9b, 0xe9, 0x95, 0xbf, - 0xe6, 0x9c, 0x9f, 0xe5, 0x8f, 0xa3, 0xe4, 0xbb, 0xb7, 0xe7, 0x90, 0x86, 0xe8, - 0xb4, 0xa2, 0xe5, 0x9f, 0xba, 0xe5, 0x9c, 0xb0, 0xe5, 0xae, 0x89, 0xe6, 0x8e, - 0x92, 0xe6, 0xad, 0xa6, 0xe6, 0xb1, 0x89, 0xe9, 0x87, 0x8c, 0xe9, 0x9d, 0xa2, - 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe5, 0xa4, 0xa9, 0xe7, 0xa9, 0xba, 0xe9, - 0xa6, 0x96, 0xe5, 0x85, 0x88, 0xe5, 0xae, 0x8c, 0xe5, 0x96, 0x84, 0xe9, 0xa9, - 0xb1, 0xe5, 0x8a, 0xa8, 0xe4, 0xb8, 0x8b, 0xe9, 0x9d, 0xa2, 0xe4, 0xb8, 0x8d, - 0xe5, 0x86, 0x8d, 0xe8, 0xaf, 0x9a, 0xe4, 0xbf, 0xa1, 0xe6, 0x84, 0x8f, 0xe4, - 0xb9, 0x89, 0xe9, 0x98, 0xb3, 0xe5, 0x85, 0x89, 0xe8, 0x8b, 0xb1, 0xe5, 0x9b, - 0xbd, 0xe6, 0xbc, 0x82, 0xe4, 0xba, 0xae, 0xe5, 0x86, 0x9b, 0xe4, 0xba, 0x8b, - 0xe7, 0x8e, 0xa9, 0xe5, 0xae, 0xb6, 0xe7, 0xbe, 0xa4, 0xe4, 0xbc, 0x97, 0xe5, - 0x86, 0x9c, 0xe6, 0xb0, 0x91, 0xe5, 0x8d, 0xb3, 0xe5, 0x8f, 0xaf, 0xe5, 0x90, - 0x8d, 0xe7, 0xa8, 0xb1, 0xe5, 0xae, 0xb6, 0xe5, 0x85, 0xb7, 0xe5, 0x8a, 0xa8, - 0xe7, 0x94, 0xbb, 0xe6, 0x83, 0xb3, 0xe5, 0x88, 0xb0, 0xe6, 0xb3, 0xa8, 0xe6, - 0x98, 0x8e, 0xe5, 0xb0, 0x8f, 0xe5, 0xad, 0xa6, 0xe6, 0x80, 0xa7, 0xe8, 0x83, - 0xbd, 0xe8, 0x80, 0x83, 0xe7, 0xa0, 0x94, 0xe7, 0xa1, 0xac, 0xe4, 0xbb, 0xb6, - 0xe8, 0xa7, 0x82, 0xe7, 0x9c, 0x8b, 0xe6, 0xb8, 0x85, 0xe6, 0xa5, 0x9a, 0xe6, - 0x90, 0x9e, 0xe7, 0xac, 0x91, 0xe9, 0xa6, 0x96, 0xe9, 0xa0, 0x81, 0xe9, 0xbb, - 0x84, 0xe9, 0x87, 0x91, 0xe9, 0x80, 0x82, 0xe7, 0x94, 0xa8, 0xe6, 0xb1, 0x9f, - 0xe8, 0x8b, 0x8f, 0xe7, 0x9c, 0x9f, 0xe5, 0xae, 0x9e, 0xe4, 0xb8, 0xbb, 0xe7, - 0xae, 0xa1, 0xe9, 0x98, 0xb6, 0xe6, 0xae, 0xb5, 0xe8, 0xa8, 0xbb, 0xe5, 0x86, - 0x8a, 0xe7, 0xbf, 0xbb, 0xe8, 0xaf, 0x91, 0xe6, 0x9d, 0x83, 0xe5, 0x88, 0xa9, - 0xe5, 0x81, 0x9a, 0xe5, 0xa5, 0xbd, 0xe4, 0xbc, 0xbc, 0xe4, 0xb9, 0x8e, 0xe9, - 0x80, 0x9a, 0xe8, 0xae, 0xaf, 0xe6, 0x96, 0xbd, 0xe5, 0xb7, 0xa5, 0xe7, 0x8b, - 0x80, 0xe6, 0x85, 0x8b, 0xe4, 0xb9, 0x9f, 0xe8, 0xae, 0xb8, 0xe7, 0x8e, 0xaf, - 0xe4, 0xbf, 0x9d, 0xe5, 0x9f, 0xb9, 0xe5, 0x85, 0xbb, 0xe6, 0xa6, 0x82, 0xe5, - 0xbf, 0xb5, 0xe5, 0xa4, 0xa7, 0xe5, 0x9e, 0x8b, 0xe6, 0x9c, 0xba, 0xe7, 0xa5, - 0xa8, 0xe7, 0x90, 0x86, 0xe8, 0xa7, 0xa3, 0xe5, 0x8c, 0xbf, 0xe5, 0x90, 0x8d, - 0x63, 0x75, 0x61, 0x6e, 0x64, 0x6f, 0x65, 0x6e, 0x76, 0x69, 0x61, 0x72, 0x6d, - 0x61, 0x64, 0x72, 0x69, 0x64, 0x62, 0x75, 0x73, 0x63, 0x61, 0x72, 0x69, 0x6e, - 0x69, 0x63, 0x69, 0x6f, 0x74, 0x69, 0x65, 0x6d, 0x70, 0x6f, 0x70, 0x6f, 0x72, - 0x71, 0x75, 0x65, 0x63, 0x75, 0x65, 0x6e, 0x74, 0x61, 0x65, 0x73, 0x74, 0x61, - 0x64, 0x6f, 0x70, 0x75, 0x65, 0x64, 0x65, 0x6e, 0x6a, 0x75, 0x65, 0x67, 0x6f, - 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, - 0x6e, 0x6f, 0x6d, 0x62, 0x72, 0x65, 0x74, 0x69, 0x65, 0x6e, 0x65, 0x6e, 0x70, - 0x65, 0x72, 0x66, 0x69, 0x6c, 0x6d, 0x61, 0x6e, 0x65, 0x72, 0x61, 0x61, 0x6d, - 0x69, 0x67, 0x6f, 0x73, 0x63, 0x69, 0x75, 0x64, 0x61, 0x64, 0x63, 0x65, 0x6e, - 0x74, 0x72, 0x6f, 0x61, 0x75, 0x6e, 0x71, 0x75, 0x65, 0x70, 0x75, 0x65, 0x64, - 0x65, 0x73, 0x64, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x70, 0x72, 0x69, 0x6d, 0x65, - 0x72, 0x70, 0x72, 0x65, 0x63, 0x69, 0x6f, 0x73, 0x65, 0x67, 0xc3, 0xba, 0x6e, - 0x62, 0x75, 0x65, 0x6e, 0x6f, 0x73, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x70, - 0x75, 0x6e, 0x74, 0x6f, 0x73, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x68, 0x61, - 0x62, 0xc3, 0xad, 0x61, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x6e, 0x75, 0x65, - 0x76, 0x6f, 0x73, 0x75, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x63, 0x61, 0x72, 0x6c, - 0x6f, 0x73, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6f, 0x6e, 0x69, 0xc3, 0xb1, 0x6f, - 0x73, 0x6d, 0x75, 0x63, 0x68, 0x6f, 0x73, 0x61, 0x6c, 0x67, 0x75, 0x6e, 0x61, - 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x72, 0x61, 0x72, 0x72, 0x69, 0x62, 0x61, 0x6d, 0x61, - 0x72, 0xc3, 0xad, 0x61, 0x68, 0x6f, 0x6d, 0x62, 0x72, 0x65, 0x65, 0x6d, 0x70, - 0x6c, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x64, 0x61, 0x64, 0x63, 0x61, 0x6d, 0x62, - 0x69, 0x6f, 0x6d, 0x75, 0x63, 0x68, 0x61, 0x73, 0x66, 0x75, 0x65, 0x72, 0x6f, - 0x6e, 0x70, 0x61, 0x73, 0x61, 0x64, 0x6f, 0x6c, 0xc3, 0xad, 0x6e, 0x65, 0x61, - 0x70, 0x61, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x75, 0x65, 0x76, 0x61, 0x73, 0x63, - 0x75, 0x72, 0x73, 0x6f, 0x73, 0x65, 0x73, 0x74, 0x61, 0x62, 0x61, 0x71, 0x75, - 0x69, 0x65, 0x72, 0x6f, 0x6c, 0x69, 0x62, 0x72, 0x6f, 0x73, 0x63, 0x75, 0x61, - 0x6e, 0x74, 0x6f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x6f, 0x6d, 0x69, 0x67, 0x75, - 0x65, 0x6c, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x63, 0x75, 0x61, 0x74, 0x72, - 0x6f, 0x74, 0x69, 0x65, 0x6e, 0x65, 0x73, 0x67, 0x72, 0x75, 0x70, 0x6f, 0x73, - 0x73, 0x65, 0x72, 0xc3, 0xa1, 0x6e, 0x65, 0x75, 0x72, 0x6f, 0x70, 0x61, 0x6d, - 0x65, 0x64, 0x69, 0x6f, 0x73, 0x66, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x61, 0x63, - 0x65, 0x72, 0x63, 0x61, 0x64, 0x65, 0x6d, 0xc3, 0xa1, 0x73, 0x6f, 0x66, 0x65, - 0x72, 0x74, 0x61, 0x63, 0x6f, 0x63, 0x68, 0x65, 0x73, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x6f, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x61, 0x6c, 0x65, 0x74, 0x72, 0x61, - 0x73, 0x61, 0x6c, 0x67, 0xc3, 0xba, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x61, - 0x63, 0x75, 0x61, 0x6c, 0x65, 0x73, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x63, - 0x75, 0x65, 0x72, 0x70, 0x6f, 0x73, 0x69, 0x65, 0x6e, 0x64, 0x6f, 0x70, 0x72, - 0x65, 0x6e, 0x73, 0x61, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x72, 0x76, 0x69, 0x61, - 0x6a, 0x65, 0x73, 0x64, 0x69, 0x6e, 0x65, 0x72, 0x6f, 0x6d, 0x75, 0x72, 0x63, - 0x69, 0x61, 0x70, 0x6f, 0x64, 0x72, 0xc3, 0xa1, 0x70, 0x75, 0x65, 0x73, 0x74, - 0x6f, 0x64, 0x69, 0x61, 0x72, 0x69, 0x6f, 0x70, 0x75, 0x65, 0x62, 0x6c, 0x6f, - 0x71, 0x75, 0x69, 0x65, 0x72, 0x65, 0x6d, 0x61, 0x6e, 0x75, 0x65, 0x6c, 0x70, - 0x72, 0x6f, 0x70, 0x69, 0x6f, 0x63, 0x72, 0x69, 0x73, 0x69, 0x73, 0x63, 0x69, - 0x65, 0x72, 0x74, 0x6f, 0x73, 0x65, 0x67, 0x75, 0x72, 0x6f, 0x6d, 0x75, 0x65, - 0x72, 0x74, 0x65, 0x66, 0x75, 0x65, 0x6e, 0x74, 0x65, 0x63, 0x65, 0x72, 0x72, - 0x61, 0x72, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x65, 0x66, 0x65, 0x63, 0x74, - 0x6f, 0x70, 0x61, 0x72, 0x74, 0x65, 0x73, 0x6d, 0x65, 0x64, 0x69, 0x64, 0x61, - 0x70, 0x72, 0x6f, 0x70, 0x69, 0x61, 0x6f, 0x66, 0x72, 0x65, 0x63, 0x65, 0x74, - 0x69, 0x65, 0x72, 0x72, 0x61, 0x65, 0x2d, 0x6d, 0x61, 0x69, 0x6c, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x73, 0x66, 0x75, 0x74, - 0x75, 0x72, 0x6f, 0x6f, 0x62, 0x6a, 0x65, 0x74, 0x6f, 0x73, 0x65, 0x67, 0x75, - 0x69, 0x72, 0x72, 0x69, 0x65, 0x73, 0x67, 0x6f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x73, 0x6d, 0x69, 0x73, 0x6d, 0x6f, 0x73, 0xc3, 0xba, 0x6e, 0x69, 0x63, 0x6f, - 0x63, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x73, 0x72, - 0x61, 0x7a, 0xc3, 0xb3, 0x6e, 0x64, 0x65, 0x62, 0x69, 0x64, 0x6f, 0x70, 0x72, - 0x75, 0x65, 0x62, 0x61, 0x74, 0x6f, 0x6c, 0x65, 0x64, 0x6f, 0x74, 0x65, 0x6e, - 0xc3, 0xad, 0x61, 0x6a, 0x65, 0x73, 0xc3, 0xba, 0x73, 0x65, 0x73, 0x70, 0x65, - 0x72, 0x6f, 0x63, 0x6f, 0x63, 0x69, 0x6e, 0x61, 0x6f, 0x72, 0x69, 0x67, 0x65, - 0x6e, 0x74, 0x69, 0x65, 0x6e, 0x64, 0x61, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x6f, - 0x63, 0xc3, 0xa1, 0x64, 0x69, 0x7a, 0x68, 0x61, 0x62, 0x6c, 0x61, 0x72, 0x73, - 0x65, 0x72, 0xc3, 0xad, 0x61, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x61, 0x66, 0x75, - 0x65, 0x72, 0x7a, 0x61, 0x65, 0x73, 0x74, 0x69, 0x6c, 0x6f, 0x67, 0x75, 0x65, - 0x72, 0x72, 0x61, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x72, 0xc3, 0xa9, 0x78, 0x69, - 0x74, 0x6f, 0x6c, 0xc3, 0xb3, 0x70, 0x65, 0x7a, 0x61, 0x67, 0x65, 0x6e, 0x64, - 0x61, 0x76, 0xc3, 0xad, 0x64, 0x65, 0x6f, 0x65, 0x76, 0x69, 0x74, 0x61, 0x72, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x73, 0x6a, - 0x61, 0x76, 0x69, 0x65, 0x72, 0x70, 0x61, 0x64, 0x72, 0x65, 0x73, 0x66, 0xc3, - 0xa1, 0x63, 0x69, 0x6c, 0x63, 0x61, 0x62, 0x65, 0x7a, 0x61, 0xc3, 0xa1, 0x72, - 0x65, 0x61, 0x73, 0x73, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x65, 0x6e, 0x76, 0xc3, - 0xad, 0x6f, 0x6a, 0x61, 0x70, 0xc3, 0xb3, 0x6e, 0x61, 0x62, 0x75, 0x73, 0x6f, - 0x73, 0x62, 0x69, 0x65, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x78, 0x74, 0x6f, 0x73, - 0x6c, 0x6c, 0x65, 0x76, 0x61, 0x72, 0x70, 0x75, 0x65, 0x64, 0x61, 0x6e, 0x66, - 0x75, 0x65, 0x72, 0x74, 0x65, 0x63, 0x6f, 0x6d, 0xc3, 0xba, 0x6e, 0x63, 0x6c, - 0x61, 0x73, 0x65, 0x73, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x6f, 0x74, 0x65, 0x6e, - 0x69, 0x64, 0x6f, 0x62, 0x69, 0x6c, 0x62, 0x61, 0x6f, 0x75, 0x6e, 0x69, 0x64, - 0x61, 0x64, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x73, 0x65, 0x64, 0x69, 0x74, 0x61, - 0x72, 0x63, 0x72, 0x65, 0x61, 0x64, 0x6f, 0xd0, 0xb4, 0xd0, 0xbb, 0xd1, 0x8f, - 0xd1, 0x87, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xba, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, - 0xb8, 0xd0, 0xbb, 0xd0, 0xb8, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb2, - 0xd1, 0x81, 0xd0, 0xb5, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xbf, 0xd1, - 0x80, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xb5, 0xd1, 0x89, - 0xd0, 0xb5, 0xd1, 0x83, 0xd0, 0xb6, 0xd0, 0xb5, 0xd0, 0x9a, 0xd0, 0xb0, 0xd0, - 0xba, 0xd0, 0xb1, 0xd0, 0xb5, 0xd0, 0xb7, 0xd0, 0xb1, 0xd1, 0x8b, 0xd0, 0xbb, - 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0x92, 0xd1, 0x81, 0xd0, 0xb5, 0xd0, - 0xbf, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xad, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x82, - 0xd0, 0xbe, 0xd0, 0xbc, 0xd1, 0x87, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, 0xbd, 0xd0, - 0xb5, 0xd1, 0x82, 0xd0, 0xbb, 0xd0, 0xb5, 0xd1, 0x82, 0xd1, 0x80, 0xd0, 0xb0, - 0xd0, 0xb7, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xb3, 0xd0, 0xb4, 0xd0, - 0xb5, 0xd0, 0xbc, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0x94, 0xd0, 0xbb, 0xd1, 0x8f, - 0xd0, 0x9f, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, - 0xbd, 0xd0, 0xb8, 0xd1, 0x85, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, 0xba, - 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb2, 0xd0, - 0xbe, 0xd1, 0x82, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xbc, 0xd0, 0xa1, 0xd0, 0xa8, - 0xd0, 0x90, 0xd0, 0xbc, 0xd0, 0xb0, 0xd1, 0x8f, 0xd0, 0xa7, 0xd1, 0x82, 0xd0, - 0xbe, 0xd0, 0xb2, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xb2, 0xd0, 0xb0, 0xd0, 0xbc, - 0xd0, 0xb5, 0xd0, 0xbc, 0xd1, 0x83, 0xd0, 0xa2, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, - 0xb4, 0xd0, 0xb2, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xbc, 0xd1, 0x8d, - 0xd1, 0x82, 0xd0, 0xb8, 0xd1, 0x8d, 0xd1, 0x82, 0xd1, 0x83, 0xd0, 0x92, 0xd0, - 0xb0, 0xd0, 0xbc, 0xd1, 0x82, 0xd0, 0xb5, 0xd1, 0x85, 0xd0, 0xbf, 0xd1, 0x80, - 0xd0, 0xbe, 0xd1, 0x82, 0xd1, 0x83, 0xd1, 0x82, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, - 0xb4, 0xd0, 0xb4, 0xd0, 0xbd, 0xd1, 0x8f, 0xd0, 0x92, 0xd0, 0xbe, 0xd1, 0x82, - 0xd1, 0x82, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xb9, 0xd0, - 0x92, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xbc, 0xd1, 0x81, - 0xd0, 0xb0, 0xd0, 0xbc, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x82, 0xd1, 0x80, 0xd1, - 0x83, 0xd0, 0xb1, 0xd0, 0x9e, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xbc, 0xd0, 0xb8, - 0xd1, 0x80, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xb5, 0xd0, 0x9e, 0xd0, 0x9e, 0xd0, - 0x9e, 0xd0, 0xbb, 0xd0, 0xb8, 0xd1, 0x86, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xb0, - 0xd0, 0x9e, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, - 0xb4, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xbc, 0xd0, 0xbe, 0xd0, 0xb9, 0xd0, 0xb4, - 0xd0, 0xb2, 0xd0, 0xb5, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, 0xbe, 0xd1, 0x81, 0xd1, - 0x83, 0xd0, 0xb4, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb9, 0xe0, - 0xa5, 0x88, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8b, - 0xe0, 0xa4, 0x94, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, - 0x95, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xad, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x87, - 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa4, 0xe0, - 0xa5, 0x8b, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xb9, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xa5, 0xe0, 0xa4, 0xbe, 0x6a, 0x61, 0x67, 0x72, 0x61, 0x6e, 0xe0, 0xa4, - 0x86, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x85, - 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x97, 0xe0, - 0xa4, 0x88, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, - 0x8f, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xa5, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa5, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, - 0x98, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa6, - 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0x88, 0xe0, 0xa4, 0x9c, 0xe0, - 0xa5, 0x80, 0xe0, 0xa4, 0xb5, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, - 0x88, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0x95, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb5, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, - 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xae, - 0xe0, 0xa4, 0x88, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x93, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa4, 0xad, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0x86, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, - 0xb2, 0xe0, 0xa5, 0x80, 0xd8, 0xb9, 0xd9, 0x84, 0xd9, 0x89, 0xd8, 0xa5, 0xd9, - 0x84, 0xd9, 0x89, 0xd9, 0x87, 0xd8, 0xb0, 0xd8, 0xa7, 0xd8, 0xa2, 0xd8, 0xae, - 0xd8, 0xb1, 0xd8, 0xb9, 0xd8, 0xaf, 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, - 0x89, 0xd9, 0x87, 0xd8, 0xb0, 0xd9, 0x87, 0xd8, 0xb5, 0xd9, 0x88, 0xd8, 0xb1, - 0xd8, 0xba, 0xd9, 0x8a, 0xd8, 0xb1, 0xd9, 0x83, 0xd8, 0xa7, 0xd9, 0x86, 0xd9, - 0x88, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, 0xa8, 0xd9, 0x8a, 0xd9, 0x86, 0xd8, 0xb9, - 0xd8, 0xb1, 0xd8, 0xb6, 0xd8, 0xb0, 0xd9, 0x84, 0xd9, 0x83, 0xd9, 0x87, 0xd9, - 0x86, 0xd8, 0xa7, 0xd9, 0x8a, 0xd9, 0x88, 0xd9, 0x85, 0xd9, 0x82, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xb9, 0xd9, 0x84, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, 0x86, 0xd8, - 0xa7, 0xd9, 0x84, 0xd9, 0x83, 0xd9, 0x86, 0xd8, 0xad, 0xd8, 0xaa, 0xd9, 0x89, - 0xd9, 0x82, 0xd8, 0xa8, 0xd9, 0x84, 0xd9, 0x88, 0xd8, 0xad, 0xd8, 0xa9, 0xd8, - 0xa7, 0xd8, 0xae, 0xd8, 0xb1, 0xd9, 0x81, 0xd9, 0x82, 0xd8, 0xb7, 0xd8, 0xb9, - 0xd8, 0xa8, 0xd8, 0xaf, 0xd8, 0xb1, 0xd9, 0x83, 0xd9, 0x86, 0xd8, 0xa5, 0xd8, - 0xb0, 0xd8, 0xa7, 0xd9, 0x83, 0xd9, 0x85, 0xd8, 0xa7, 0xd8, 0xa7, 0xd8, 0xad, - 0xd8, 0xaf, 0xd8, 0xa5, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x81, 0xd9, 0x8a, 0xd9, - 0x87, 0xd8, 0xa8, 0xd8, 0xb9, 0xd8, 0xb6, 0xd9, 0x83, 0xd9, 0x8a, 0xd9, 0x81, - 0xd8, 0xa8, 0xd8, 0xad, 0xd8, 0xab, 0xd9, 0x88, 0xd9, 0x85, 0xd9, 0x86, 0xd9, - 0x88, 0xd9, 0x87, 0xd9, 0x88, 0xd8, 0xa3, 0xd9, 0x86, 0xd8, 0xa7, 0xd8, 0xac, - 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x87, 0xd8, 0xa7, 0xd8, 0xb3, 0xd9, - 0x84, 0xd9, 0x85, 0xd8, 0xb9, 0xd9, 0x86, 0xd8, 0xaf, 0xd9, 0x84, 0xd9, 0x8a, - 0xd8, 0xb3, 0xd8, 0xb9, 0xd8, 0xa8, 0xd8, 0xb1, 0xd8, 0xb5, 0xd9, 0x84, 0xd9, - 0x89, 0xd9, 0x85, 0xd9, 0x86, 0xd8, 0xb0, 0xd8, 0xa8, 0xd9, 0x87, 0xd8, 0xa7, - 0xd8, 0xa3, 0xd9, 0x86, 0xd9, 0x87, 0xd9, 0x85, 0xd8, 0xab, 0xd9, 0x84, 0xd9, - 0x83, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, 0xad, - 0xd9, 0x8a, 0xd8, 0xab, 0xd9, 0x85, 0xd8, 0xb5, 0xd8, 0xb1, 0xd8, 0xb4, 0xd8, - 0xb1, 0xd8, 0xad, 0xd8, 0xad, 0xd9, 0x88, 0xd9, 0x84, 0xd9, 0x88, 0xd9, 0x81, - 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xb0, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x83, 0xd9, - 0x84, 0xd9, 0x85, 0xd8, 0xb1, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x86, 0xd8, 0xaa, - 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x81, 0xd8, 0xa3, 0xd8, 0xa8, 0xd9, 0x88, 0xd8, - 0xae, 0xd8, 0xa7, 0xd8, 0xb5, 0xd8, 0xa3, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xa7, - 0xd9, 0x86, 0xd9, 0x87, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x8a, 0xd8, 0xb9, 0xd8, - 0xb6, 0xd9, 0x88, 0xd9, 0x88, 0xd9, 0x82, 0xd8, 0xaf, 0xd8, 0xa7, 0xd8, 0xa8, - 0xd9, 0x86, 0xd8, 0xae, 0xd9, 0x8a, 0xd8, 0xb1, 0xd8, 0xa8, 0xd9, 0x86, 0xd8, - 0xaa, 0xd9, 0x84, 0xd9, 0x83, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, 0xa7, 0xd8, 0xa1, - 0xd9, 0x88, 0xd9, 0x87, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xa8, 0xd9, 0x88, 0xd9, - 0x82, 0xd8, 0xb5, 0xd8, 0xb5, 0xd9, 0x88, 0xd9, 0x85, 0xd8, 0xa7, 0xd8, 0xb1, - 0xd9, 0x82, 0xd9, 0x85, 0xd8, 0xa3, 0xd8, 0xad, 0xd8, 0xaf, 0xd9, 0x86, 0xd8, - 0xad, 0xd9, 0x86, 0xd8, 0xb9, 0xd8, 0xaf, 0xd9, 0x85, 0xd8, 0xb1, 0xd8, 0xa3, - 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xad, 0xd8, 0xa9, 0xd9, 0x83, 0xd8, 0xaa, 0xd8, - 0xa8, 0xd8, 0xaf, 0xd9, 0x88, 0xd9, 0x86, 0xd9, 0x8a, 0xd8, 0xac, 0xd8, 0xa8, - 0xd9, 0x85, 0xd9, 0x86, 0xd9, 0x87, 0xd8, 0xaa, 0xd8, 0xad, 0xd8, 0xaa, 0xd8, - 0xac, 0xd9, 0x87, 0xd8, 0xa9, 0xd8, 0xb3, 0xd9, 0x86, 0xd8, 0xa9, 0xd9, 0x8a, - 0xd8, 0xaa, 0xd9, 0x85, 0xd9, 0x83, 0xd8, 0xb1, 0xd8, 0xa9, 0xd8, 0xba, 0xd8, - 0xb2, 0xd8, 0xa9, 0xd9, 0x86, 0xd9, 0x81, 0xd8, 0xb3, 0xd8, 0xa8, 0xd9, 0x8a, - 0xd8, 0xaa, 0xd9, 0x84, 0xd9, 0x84, 0xd9, 0x87, 0xd9, 0x84, 0xd9, 0x86, 0xd8, - 0xa7, 0xd8, 0xaa, 0xd9, 0x84, 0xd9, 0x83, 0xd9, 0x82, 0xd9, 0x84, 0xd8, 0xa8, - 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xa7, 0xd8, 0xb9, 0xd9, 0x86, 0xd9, 0x87, 0xd8, - 0xa3, 0xd9, 0x88, 0xd9, 0x84, 0xd8, 0xb4, 0xd9, 0x8a, 0xd8, 0xa1, 0xd9, 0x86, - 0xd9, 0x88, 0xd8, 0xb1, 0xd8, 0xa3, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x81, 0xd9, - 0x8a, 0xd9, 0x83, 0xd8, 0xa8, 0xd9, 0x83, 0xd9, 0x84, 0xd8, 0xb0, 0xd8, 0xa7, - 0xd8, 0xaa, 0xd8, 0xb1, 0xd8, 0xaa, 0xd8, 0xa8, 0xd8, 0xa8, 0xd8, 0xa3, 0xd9, - 0x86, 0xd9, 0x87, 0xd9, 0x85, 0xd8, 0xb3, 0xd8, 0xa7, 0xd9, 0x86, 0xd9, 0x83, - 0xd8, 0xa8, 0xd9, 0x8a, 0xd8, 0xb9, 0xd9, 0x81, 0xd9, 0x82, 0xd8, 0xaf, 0xd8, - 0xad, 0xd8, 0xb3, 0xd9, 0x86, 0xd9, 0x84, 0xd9, 0x87, 0xd9, 0x85, 0xd8, 0xb4, - 0xd8, 0xb9, 0xd8, 0xb1, 0xd8, 0xa3, 0xd9, 0x87, 0xd9, 0x84, 0xd8, 0xb4, 0xd9, - 0x87, 0xd8, 0xb1, 0xd9, 0x82, 0xd8, 0xb7, 0xd8, 0xb1, 0xd8, 0xb7, 0xd9, 0x84, - 0xd8, 0xa8, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x68, 0x69, 0x6d, - 0x73, 0x65, 0x6c, 0x66, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x61, 0x73, 0x68, 0x69, 0x6f, - 0x6e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x77, 0x72, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, - 0x65, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x64, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x63, 0x79, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, - 0x65, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x77, 0x6f, 0x72, 0x6b, - 0x69, 0x6e, 0x67, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x6d, 0x69, 0x6c, - 0x6c, 0x69, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x76, - 0x69, 0x73, 0x69, 0x74, 0x65, 0x64, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, - 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x79, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x6c, - 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, - 0x72, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x61, 0x6d, 0x73, 0x6f, 0x63, 0x69, 0x65, 0x74, 0x79, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x61, 0x72, 0x74, 0x6e, - 0x65, 0x72, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x70, 0x65, 0x72, 0x66, - 0x65, 0x63, 0x74, 0x6d, 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x63, 0x75, - 0x6c, 0x74, 0x75, 0x72, 0x65, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x2c, 0x6a, - 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x26, 0x71, 0x75, 0x6f, 0x74, - 0x3b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x73, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x67, 0x6c, - 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x74, 0x68, 0x72, - 0x6f, 0x75, 0x67, 0x68, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x61, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x76, 0x69, 0x6c, 0x6c, 0x61, 0x67, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x69, 0x73, - 0x68, 0x67, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x64, 0x65, 0x63, 0x6c, 0x69, - 0x6e, 0x65, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x73, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x64, 0x69, 0x73, - 0x70, 0x75, 0x74, 0x65, 0x65, 0x61, 0x72, 0x6c, 0x69, 0x65, 0x72, 0x65, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x70, - 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x6d, 0x61, 0x72, 0x72, 0x69, 0x65, 0x64, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x76, 0x69, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x73, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65, 0x73, 0x66, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x73, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x6c, - 0x79, 0x65, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x69, - 0x6e, 0x67, 0x67, 0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x6f, 0x62, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, - 0x75, 0x6c, 0x3e, 0x0d, 0x0a, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x61, - 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, - 0x72, 0x65, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x64, 0x65, 0x73, 0x6b, 0x74, - 0x6f, 0x70, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x70, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x75, 0x6e, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x44, 0x69, 0x67, - 0x69, 0x74, 0x61, 0x6c, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x57, 0x65, - 0x62, 0x73, 0x69, 0x74, 0x65, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, - 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x64, 0x65, 0x63, 0x61, 0x64, 0x65, - 0x73, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x26, 0x61, 0x6d, 0x70, - 0x3b, 0x20, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x67, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x6e, 0x6f, - 0x74, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x63, - 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, - 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x63, - 0x65, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x45, 0x6e, 0x67, 0x6c, 0x61, 0x6e, 0x64, 0x3d, 0x31, 0x26, 0x61, - 0x6d, 0x70, 0x3b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, - 0x6e, 0x65, 0x77, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x67, 0x65, 0x74, 0x6f, 0x6f, 0x6c, 0x62, - 0x61, 0x72, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x62, 0x65, 0x63, 0x61, - 0x75, 0x73, 0x65, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x65, 0x75, - 0x74, 0x73, 0x63, 0x68, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x73, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x6c, 0x79, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x65, 0x78, 0x61, 0x63, 0x74, 0x6c, 0x79, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x64, 0x69, 0x73, 0x65, 0x61, 0x73, - 0x65, 0x53, 0x6f, 0x63, 0x69, 0x65, 0x74, 0x79, 0x77, 0x65, 0x61, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x26, 0x6c, 0x74, 0x3b, - 0x21, 0x2d, 0x2d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x65, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x6f, 0x75, - 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, - 0x22, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x20, 0x6b, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x73, 0x68, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x61, 0x6c, - 0x69, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x68, 0x65, 0x61, - 0x76, 0x69, 0x6c, 0x79, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x31, - 0x27, 0x5d, 0x29, 0x3b, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, - 0x67, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x62, 0x69, 0x6c, 0x6c, 0x69, - 0x6f, 0x6e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x47, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x79, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x3c, 0x2f, 0x66, - 0x6f, 0x72, 0x6d, 0x3e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x77, 0x68, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, - 0x63, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, - 0x41, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x73, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x73, 0x74, 0x75, 0x6e, 0x69, 0x66, 0x6f, - 0x72, 0x6d, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x69, 0x64, 0x65, - 0x62, 0x61, 0x72, 0x43, 0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x68, 0x6f, 0x6c, - 0x69, 0x64, 0x61, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x70, 0x61, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x2c, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x61, - 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x66, 0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, - 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x70, 0x61, 0x73, 0x73, 0x69, 0x6e, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x6e, 0x6f, 0x74, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x42, 0x72, 0x69, - 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x65, 0x6c, 0x61, - 0x63, 0x6b, 0x20, 0x6f, 0x66, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x49, - 0x72, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, - 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x4c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x68, 0x75, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x20, 0x66, - 0x61, 0x63, 0x74, 0x61, 0x66, 0x66, 0x61, 0x69, 0x72, 0x73, 0x43, 0x68, 0x61, - 0x72, 0x6c, 0x65, 0x73, 0x72, 0x61, 0x64, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x72, - 0x6f, 0x75, 0x67, 0x68, 0x74, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x6c, - 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x3d, 0x22, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x70, 0x72, 0x65, 0x6d, 0x69, - 0x75, 0x6d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x41, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x61, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x26, 0x71, - 0x75, 0x6f, 0x74, 0x3b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x6e, 0x65, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x6c, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x65, 0x6c, 0x69, 0x65, 0x76, - 0x65, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x2d, 0x6d, 0x6f, 0x62, 0x69, - 0x6c, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x77, 0x61, 0x6e, 0x74, - 0x20, 0x74, 0x6f, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x46, 0x69, 0x72, - 0x65, 0x66, 0x6f, 0x78, 0x79, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x65, 0x73, 0x69, - 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65, 0x64, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x72, 0x61, 0x70, 0x69, 0x64, 0x6c, 0x79, 0x63, 0x6c, 0x69, 0x6d, 0x61, 0x74, - 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x64, 0x6f, 0x6d, 0x65, 0x6d, 0x65, 0x72, 0x67, - 0x65, 0x64, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x66, 0x6f, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x70, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x66, 0x6f, 0x72, - 0x6d, 0x75, 0x6c, 0x61, 0x64, 0x79, 0x6e, 0x61, 0x73, 0x74, 0x79, 0x68, 0x6f, - 0x77, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x72, - 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x62, 0x72, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x73, 0x6f, 0x6c, 0x64, 0x69, 0x65, 0x72, 0x6c, 0x61, 0x72, 0x67, 0x65, - 0x6c, 0x79, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x26, 0x71, 0x75, - 0x6f, 0x74, 0x3b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x64, 0x77, - 0x61, 0x72, 0x64, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, - 0x62, 0x65, 0x72, 0x74, 0x20, 0x65, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x73, 0x50, - 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, - 0x75, 0x70, 0x20, 0x77, 0x69, 0x74, 0x68, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x41, 0x6e, 0x67, 0x65, 0x6c, - 0x65, 0x73, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x61, 0x63, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x6d, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x74, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x62, 0x69, 0x67, 0x67, 0x65, 0x73, 0x74, - 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x64, 0x72, 0x69, 0x76, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x75, 0x64, 0x69, 0x65, 0x73, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x70, 0x65, 0x72, 0x68, 0x61, 0x70, 0x73, 0x6d, 0x6f, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x73, 0x65, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x73, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x3d, 0x22, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, - 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x73, 0x6f, 0x6d, 0x65, 0x6f, 0x6e, 0x65, 0x65, 0x78, 0x74, 0x72, 0x65, - 0x6d, 0x65, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x62, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x3a, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x61, 0x6c, 0x6c, - 0x20, 0x74, 0x68, 0x65, 0x73, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x70, 0x65, 0x6e, - 0x67, 0x6c, 0x69, 0x73, 0x68, 0x77, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x20, - 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, - 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x73, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x61, 0x67, 0x61, 0x69, 0x6e, - 0x73, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x7d, 0x29, 0x28, 0x29, - 0x3b, 0x0d, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x74, 0x72, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, - 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x20, 0x27, 0x27, 0x54, 0x68, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6c, 0x6c, - 0x65, 0x72, 0x79, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x63, 0x61, - 0x72, 0x65, 0x65, 0x72, 0x73, 0x29, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, - 0x61, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, - 0x64, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x69, 0x6c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x6e, - 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, - 0x67, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x73, 0x65, 0x74, 0x74, 0x6c, - 0x65, 0x64, 0x77, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x63, 0x61, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x65, 0x64, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x63, 0x65, 0x63, 0x68, - 0x61, 0x70, 0x74, 0x65, 0x72, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x73, 0x54, - 0x68, 0x6f, 0x6d, 0x61, 0x73, 0x20, 0x6d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, - 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x69, - 0x64, 0x65, 0x3a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, 0x68, 0x75, 0x6e, 0x64, - 0x72, 0x65, 0x64, 0x4f, 0x6c, 0x79, 0x6d, 0x70, 0x69, 0x63, 0x5f, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x72, 0x65, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x64, - 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x61, 0x64, 0x6f, 0x70, 0x74, 0x65, - 0x64, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x65, 0x69, 0x74, 0x68, - 0x65, 0x72, 0x67, 0x72, 0x65, 0x61, 0x74, 0x6c, 0x79, 0x67, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x72, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x70, - 0x72, 0x6f, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x61, 0x6c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x77, - 0x6f, 0x72, 0x73, 0x68, 0x69, 0x70, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x43, 0x75, 0x6c, 0x74, - 0x75, 0x72, 0x65, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x65, - 0x61, 0x72, 0x6c, 0x79, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x42, 0x72, - 0x6f, 0x77, 0x73, 0x65, 0x72, 0x6c, 0x69, 0x62, 0x65, 0x72, 0x61, 0x6c, 0x7d, - 0x20, 0x63, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x68, 0x69, 0x64, 0x65, 0x28, 0x29, - 0x3b, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x61, 0x61, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6d, 0x70, 0x65, - 0x72, 0x6f, 0x72, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x65, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x66, 0x72, 0x65, 0x65, 0x64, 0x6f, 0x6d, 0x53, 0x65, - 0x76, 0x65, 0x72, 0x61, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x46, - 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x21, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x65, - 0x64, 0x44, 0x65, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x76, 0x6f, 0x69, 0x64, 0x28, - 0x30, 0x29, 0x2f, 0x61, 0x6c, 0x6c, 0x2e, 0x6a, 0x73, 0x70, 0x72, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x65, - 0x70, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x6f, 0x62, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0d, 0x0a, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x2e, 0x0a, 0x0a, 0x46, 0x6f, 0x72, 0x20, 0x0a, 0x0a, 0x4d, 0x61, 0x6e, - 0x79, 0x20, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x73, 0x70, 0x6f, 0x77, 0x65, - 0x72, 0x65, 0x64, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x66, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x6d, 0x65, - 0x64, 0x69, 0x63, 0x61, 0x6c, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x6f, - 0x70, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, - 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x63, - 0x65, 0x47, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x20, 0x42, 0x65, 0x6c, 0x67, 0x69, - 0x75, 0x6d, 0x2e, 0x2e, 0x2e, 0x3c, 0x2f, 0x61, 0x3e, 0x74, 0x77, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x79, 0x77, 0x61, 0x69, - 0x74, 0x69, 0x6e, 0x67, 0x77, 0x61, 0x72, 0x66, 0x61, 0x72, 0x65, 0x20, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x70, - 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x75, 0x72, 0x76, 0x69, 0x76, 0x65, 0x73, 0x63, 0x68, 0x6f, 0x6c, 0x61, - 0x72, 0x3c, 0x2f, 0x70, 0x3e, 0x0d, 0x0a, 0x20, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x6c, 0x6f, 0x73, 0x73, - 0x20, 0x6f, 0x66, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x61, 0x73, 0x47, 0x65, 0x6f, - 0x72, 0x67, 0x69, 0x61, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3c, 0x68, - 0x65, 0x61, 0x64, 0x3e, 0x3c, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x31, - 0x27, 0x5d, 0x29, 0x3b, 0x0d, 0x0a, 0x69, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, - 0x6e, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x63, 0x61, 0x72, 0x72, 0x69, - 0x65, 0x64, 0x31, 0x30, 0x30, 0x2c, 0x30, 0x30, 0x30, 0x3c, 0x2f, 0x68, 0x33, - 0x3e, 0x0a, 0x20, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x62, 0x65, 0x63, - 0x6f, 0x6d, 0x65, 0x73, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x77, 0x65, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x30, 0x30, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x6d, - 0x6f, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x6f, 0x66, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, - 0x20, 0x62, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x6c, 0x69, 0x66, 0x65, 0x20, - 0x6f, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x72, 0x69, 0x73, 0x65, - 0x20, 0x6f, 0x66, 0x26, 0x72, 0x61, 0x71, 0x75, 0x6f, 0x3b, 0x70, 0x6c, 0x75, - 0x73, 0x6f, 0x6e, 0x65, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x28, 0x74, - 0x68, 0x6f, 0x75, 0x67, 0x68, 0x44, 0x6f, 0x75, 0x67, 0x6c, 0x61, 0x73, 0x6a, - 0x6f, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x73, - 0x46, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x41, 0x6e, 0x63, 0x69, 0x65, 0x6e, - 0x74, 0x56, 0x69, 0x65, 0x74, 0x6e, 0x61, 0x6d, 0x76, 0x65, 0x68, 0x69, 0x63, - 0x6c, 0x65, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x63, 0x72, 0x79, 0x73, - 0x74, 0x61, 0x6c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x65, 0x6e, 0x6a, 0x6f, 0x79, 0x65, 0x64, 0x61, 0x20, - 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x3c, - 0x61, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, - 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x74, 0x69, 0x72, - 0x65, 0x64, 0x68, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x68, 0x69, 0x64, 0x64, - 0x65, 0x6e, 0x3b, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, - 0x6b, 0x69, 0x6e, 0x67, 0x63, 0x61, 0x62, 0x69, 0x6e, 0x65, 0x74, 0x77, 0x61, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x6c, 0x6f, 0x6f, 0x6b, 0x20, 0x61, 0x74, 0x63, - 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, - 0x73, 0x74, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x61, 0x3a, 0x68, 0x6f, 0x76, - 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x46, 0x72, 0x65, 0x6e, - 0x63, 0x68, 0x20, 0x6c, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x74, 0x79, 0x70, - 0x69, 0x63, 0x61, 0x6c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x6e, - 0x65, 0x6d, 0x69, 0x65, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x66, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x64, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, - 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x62, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x73, 0x2d, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x3a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x63, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x3e, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x74, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x66, 0x69, 0x72, 0x73, 0x74, 0x22, 0x3e, 0x63, - 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x46, 0x69, 0x6e, 0x6c, 0x61, 0x6e, 0x64, - 0x63, 0x68, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x73, 0x68, 0x65, 0x20, 0x77, 0x61, - 0x73, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x22, 0x3e, 0x61, 0x73, 0x20, 0x73, 0x75, - 0x63, 0x68, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x64, 0x3c, 0x2f, 0x73, 0x70, - 0x61, 0x6e, 0x3e, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x61, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x79, - 0x73, 0x74, 0x65, 0x72, 0x79, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x66, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x64, 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x67, - 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x72, 0x64, 0x65, 0x73, 0x63, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6e, 0x75, 0x63, 0x6c, - 0x65, 0x61, 0x72, 0x4a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x65, 0x73, 0x74, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x66, 0x6c, - 0x6f, 0x77, 0x65, 0x72, 0x73, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x72, - 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, - 0x77, 0x68, 0x6f, 0x20, 0x77, 0x61, 0x73, 0x6c, 0x65, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x75, 0x69, 0x63, 0x69, - 0x64, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x70, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x73, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x63, 0x6f, - 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x77, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x3c, 0x62, 0x72, 0x20, 0x2f, 0x3e, 0x3c, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x61, - 0x6c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x63, 0x6f, 0x6f, 0x6b, 0x69, - 0x65, 0x73, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x53, 0x77, 0x65, 0x64, 0x69, 0x73, 0x68, 0x62, 0x72, 0x69, - 0x65, 0x66, 0x6c, 0x79, 0x50, 0x65, 0x72, 0x73, 0x69, 0x61, 0x6e, 0x73, 0x6f, - 0x20, 0x6d, 0x75, 0x63, 0x68, 0x43, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x64, - 0x65, 0x70, 0x69, 0x63, 0x74, 0x73, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, - 0x68, 0x6f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x74, 0x6f, 0x62, 0x65, 0x61, 0x72, 0x69, - 0x6e, 0x67, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x65, 0x64, 0x6a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x28, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0x74, 0x6f, - 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x64, - 0x65, 0x73, 0x69, 0x67, 0x6e, 0x73, 0x54, 0x75, 0x72, 0x6b, 0x69, 0x73, 0x68, - 0x79, 0x6f, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x28, 0x7d, 0x29, 0x28, 0x29, 0x3b, 0x0a, 0x0a, 0x62, 0x75, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x65, 0x67, 0x72, - 0x65, 0x65, 0x73, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x52, 0x69, 0x63, - 0x68, 0x61, 0x72, 0x64, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x6c, 0x79, 0x70, 0x6c, - 0x61, 0x73, 0x74, 0x69, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3c, - 0x2f, 0x74, 0x72, 0x3e, 0x0d, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, - 0x75, 0x6c, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x73, 0x65, 0x73, - 0x73, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x70, 0x68, 0x79, 0x73, 0x69, - 0x63, 0x73, 0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, - 0x6b, 0x20, 0x74, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3c, 0x62, - 0x72, 0x20, 0x2f, 0x3e, 0x0a, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x63, - 0x68, 0x61, 0x72, 0x74, 0x65, 0x72, 0x74, 0x6f, 0x75, 0x72, 0x69, 0x73, 0x6d, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x63, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x65, - 0x64, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x3c, 0x2f, 0x68, 0x31, 0x3e, - 0x0d, 0x0a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x3f, 0x78, 0x6d, 0x6c, - 0x20, 0x76, 0x65, 0x68, 0x65, 0x6c, 0x70, 0x69, 0x6e, 0x67, 0x64, 0x69, 0x61, - 0x6d, 0x6f, 0x6e, 0x64, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x61, 0x69, - 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x2d, 0x2d, 0x3e, 0x29, - 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x72, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x68, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x56, 0x69, 0x6e, 0x63, 0x65, - 0x6e, 0x74, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x20, 0x73, 0x72, 0x63, - 0x3d, 0x22, 0x2f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x64, 0x65, 0x73, - 0x70, 0x69, 0x74, 0x65, 0x64, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, 0x74, 0x65, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x68, - 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x4a, 0x6f, 0x73, 0x65, 0x70, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x61, 0x74, 0x72, 0x65, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x73, 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x61, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x6c, 0x61, 0x74, 0x65, - 0x72, 0x2c, 0x20, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x66, 0x61, 0x76, - 0x69, 0x63, 0x6f, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x75, - 0x6e, 0x67, 0x61, 0x72, 0x79, 0x41, 0x69, 0x72, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x4d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x65, 0x26, 0x71, 0x75, - 0x6f, 0x74, 0x3b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x66, - 0x74, 0x22, 0x3e, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x73, 0x47, 0x6f, - 0x6c, 0x64, 0x65, 0x6e, 0x20, 0x41, 0x66, 0x66, 0x61, 0x69, 0x72, 0x73, 0x67, - 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x67, - 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x69, 0x64, 0x65, 0x61, 0x20, 0x6f, - 0x66, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x73, - 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x2e, 0x73, 0x72, 0x63, - 0x20, 0x3d, 0x20, 0x63, 0x61, 0x72, 0x74, 0x6f, 0x6f, 0x6e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x4d, 0x75, - 0x73, 0x6c, 0x69, 0x6d, 0x73, 0x57, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x69, - 0x6e, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x65, 0x64, - 0x2c, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x2f, 0x73, 0x68, 0x6f, 0x77, - 0x5f, 0x61, 0x6f, 0x75, 0x74, 0x64, 0x6f, 0x6f, 0x72, 0x65, 0x73, 0x63, 0x61, - 0x70, 0x65, 0x28, 0x41, 0x75, 0x73, 0x74, 0x72, 0x69, 0x61, 0x67, 0x65, 0x6e, - 0x65, 0x74, 0x69, 0x63, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x49, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x48, - 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, - 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x0a, 0x09, 0x09, 0x3c, 0x21, 0x2d, - 0x2d, 0x44, 0x61, 0x6e, 0x69, 0x65, 0x6c, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x69, 0x6d, 0x70, 0x6f, - 0x73, 0x65, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x41, 0x62, 0x72, - 0x61, 0x68, 0x61, 0x6d, 0x28, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x7b, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x70, 0x75, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x29, - 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x28, 0x7c, 0x7c, 0x20, 0x5b, 0x5d, 0x3b, 0x0a, - 0x44, 0x41, 0x54, 0x41, 0x5b, 0x20, 0x2a, 0x6b, 0x69, 0x74, 0x63, 0x68, 0x65, - 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x61, 0x63, 0x74, 0x75, 0x61, - 0x6c, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x69, 0x6e, - 0x6c, 0x79, 0x20, 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x27, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x74, 0x73, 0x69, 0x66, - 0x28, 0x74, 0x79, 0x70, 0x65, 0x49, 0x74, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x26, - 0x63, 0x6f, 0x70, 0x79, 0x3b, 0x20, 0x22, 0x3e, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x62, 0x6f, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x65, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x74, 0x61, 0x6c, 0x6b, 0x69, - 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x67, 0x61, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x6a, 0x75, 0x73, - 0x74, 0x69, 0x66, 0x79, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x73, 0x66, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x61, - 0x73, 0x73, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x6c, 0x61, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x77, - 0x6e, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x22, 0x20, 0x72, 0x65, 0x6c, - 0x3d, 0x22, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x63, 0x6f, 0x6e, 0x63, - 0x65, 0x72, 0x74, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x64, 0x6f, 0x6c, - 0x6c, 0x61, 0x72, 0x73, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x70, 0x68, - 0x70, 0x3f, 0x69, 0x64, 0x3d, 0x61, 0x6c, 0x63, 0x6f, 0x68, 0x6f, 0x6c, 0x29, - 0x3b, 0x7d, 0x29, 0x28, 0x29, 0x3b, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x76, 0x65, 0x73, 0x73, 0x65, 0x6c, - 0x73, 0x72, 0x65, 0x76, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x61, 0x6d, 0x61, 0x74, 0x65, 0x75, 0x72, 0x61, 0x6e, 0x64, 0x72, - 0x6f, 0x69, 0x64, 0x61, 0x6c, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x69, 0x6c, 0x6c, - 0x6e, 0x65, 0x73, 0x73, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x63, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x73, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x79, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x65, 0x78, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x44, 0x65, 0x66, 0x65, 0x6e, 0x73, - 0x65, 0x64, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x09, 0x3c, 0x21, 0x2d, - 0x2d, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x73, 0x6c, 0x69, 0x6e, 0x6b, - 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x20, 0x42, 0x6f, 0x6f, - 0x6b, 0x20, 0x6f, 0x66, 0x65, 0x76, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x6d, 0x69, - 0x6e, 0x2e, 0x6a, 0x73, 0x3f, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6b, - 0x6f, 0x6e, 0x74, 0x61, 0x6b, 0x74, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x27, 0x73, - 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x3d, 0x77, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x6c, 0x20, 0x52, - 0x69, 0x67, 0x3b, 0x0a, 0x7d, 0x29, 0x28, 0x29, 0x3b, 0x72, 0x61, 0x69, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x41, 0x6c, 0x73, 0x6f, 0x2c, 0x20, 0x63, 0x72, 0x75, - 0x63, 0x69, 0x61, 0x6c, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x3e, 0x64, 0x65, - 0x63, 0x6c, 0x61, 0x72, 0x65, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, 0x73, 0x63, 0x66, - 0x69, 0x72, 0x65, 0x66, 0x6f, 0x78, 0x61, 0x73, 0x20, 0x6d, 0x75, 0x63, 0x68, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, - 0x20, 0x73, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x3d, 0x20, 0x0a, 0x0d, 0x0a, 0x3c, 0x21, 0x2d, 0x2d, 0x74, 0x6f, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x50, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x50, 0x72, - 0x65, 0x6d, 0x69, 0x65, 0x72, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x65, - 0x64, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x3b, 0x70, 0x6f, 0x76, 0x65, 0x72, - 0x74, 0x79, 0x63, 0x68, 0x61, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x76, 0x69, - 0x6e, 0x67, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x41, 0x6e, 0x74, - 0x68, 0x6f, 0x6e, 0x79, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x20, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x45, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x72, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x73, 0x63, 0x75, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x79, 0x6c, 0x69, 0x66, 0x65, 0x20, 0x69, - 0x6e, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x2d, 0x73, 0x68, 0x61, 0x64, - 0x6f, 0x77, 0x4e, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3c, 0x2f, 0x74, 0x64, - 0x3e, 0x0d, 0x0a, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x74, 0x61, - 0x64, 0x69, 0x75, 0x6d, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x73, 0x76, 0x61, - 0x72, 0x79, 0x69, 0x6e, 0x67, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x73, 0x68, - 0x65, 0x6c, 0x64, 0x20, 0x62, 0x79, 0x77, 0x68, 0x6f, 0x20, 0x61, 0x72, 0x65, - 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x69, 0x6e, 0x66, 0x61, 0x63, 0x75, 0x6c, 0x74, - 0x79, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x77, 0x68, 0x6f, 0x20, 0x68, - 0x61, 0x64, 0x61, 0x69, 0x72, 0x70, 0x6f, 0x72, 0x74, 0x74, 0x6f, 0x77, 0x6e, - 0x20, 0x6f, 0x66, 0x0a, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x20, 0x27, 0x63, 0x6c, - 0x69, 0x63, 0x6b, 0x27, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x6b, 0x65, - 0x79, 0x77, 0x6f, 0x72, 0x64, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x63, - 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, - 0x41, 0x6e, 0x64, 0x72, 0x65, 0x77, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x6f, 0x72, 0x20, 0x6d, 0x6f, - 0x72, 0x65, 0x33, 0x30, 0x30, 0x70, 0x78, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x3b, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x68, 0x65, - 0x72, 0x73, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x65, 0x64, 0x65, 0x72, 0x61, 0x6c, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x65, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x6f, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x63, 0x74, 0x72, 0x65, - 0x73, 0x73, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x66, 0x69, 0x6e, 0x67, - 0x65, 0x72, 0x73, 0x44, 0x75, 0x6b, 0x65, 0x20, 0x6f, 0x66, 0x70, 0x65, 0x6f, - 0x70, 0x6c, 0x65, 0x2c, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x69, 0x74, 0x77, 0x68, - 0x61, 0x74, 0x20, 0x69, 0x73, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x61, - 0x20, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x22, 0x3a, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x69, 0x6e, 0x20, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, - 0x0a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x6f, 0x66, 0x66, 0x69, 0x63, - 0x65, 0x72, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x67, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x64, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x6c, 0x6f, - 0x79, 0x61, 0x6c, 0x74, 0x79, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x61, - 0x6e, 0x64, 0x20, 0x77, 0x61, 0x73, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x6f, 0x72, - 0x73, 0x75, 0x70, 0x72, 0x65, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x20, 0x68, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x73, 0x73, 0x69, - 0x61, 0x6e, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x62, 0x65, - 0x72, 0x74, 0x61, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x22, 0x3e, 0x2e, 0x61, - 0x70, 0x70, 0x65, 0x6e, 0x64, 0x64, 0x6f, 0x20, 0x77, 0x69, 0x74, 0x68, 0x66, - 0x65, 0x64, 0x65, 0x72, 0x61, 0x6c, 0x62, 0x61, 0x6e, 0x6b, 0x20, 0x6f, 0x66, - 0x62, 0x65, 0x6e, 0x65, 0x61, 0x74, 0x68, 0x44, 0x65, 0x73, 0x70, 0x69, 0x74, - 0x65, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x73, 0x29, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x63, 0x6c, 0x6f, - 0x73, 0x69, 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x49, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x66, 0x69, 0x66, 0x74, 0x65, 0x65, 0x6e, 0x61, - 0x73, 0x20, 0x77, 0x65, 0x6c, 0x6c, 0x2e, 0x79, 0x61, 0x68, 0x6f, 0x6f, 0x2e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x66, 0x69, 0x67, 0x68, 0x74, 0x65, - 0x72, 0x6f, 0x62, 0x73, 0x63, 0x75, 0x72, 0x65, 0x72, 0x65, 0x66, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x63, 0x3d, 0x20, 0x4d, 0x61, - 0x74, 0x68, 0x2e, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x6f, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x61, 0x20, - 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x79, - 0x65, 0x61, 0x72, 0x20, 0x6f, 0x66, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, - 0x74, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x68, 0x6f, 0x6d, 0x65, 0x20, - 0x6f, 0x66, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x72, 0x65, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x3e, 0x68, 0x65, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x66, 0x72, 0x77, 0x61, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x4d, - 0x61, 0x72, 0x63, 0x68, 0x20, 0x31, 0x6b, 0x6e, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x69, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x6c, 0x65, 0x73, 0x73, 0x6f, 0x6e, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x65, - 0x73, 0x74, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x22, 0x3e, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x45, 0x4e, 0x44, - 0x20, 0x2d, 0x2d, 0x3e, 0x66, 0x61, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x64, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x48, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x72, 0x6c, 0x79, 0x20, - 0x77, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, - 0x6c, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x65, - 0x74, 0x65, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3e, 0x73, 0x69, 0x6e, 0x67, - 0x69, 0x6e, 0x67, 0x66, 0x61, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x42, 0x72, 0x61, - 0x73, 0x69, 0x6c, 0x29, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x72, 0x65, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x47, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x66, - 0x6f, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x70, 0x75, 0x72, 0x73, 0x75, 0x65, 0x64, - 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x73, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x75, - 0x70, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x73, 0x61, 0x77, 0x20, - 0x74, 0x68, 0x65, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x73, 0x63, 0x6f, 0x6c, - 0x6f, 0x75, 0x72, 0x73, 0x69, 0x66, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x77, 0x68, - 0x65, 0x6e, 0x20, 0x68, 0x65, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x70, - 0x75, 0x73, 0x68, 0x28, 0x66, 0x75, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x20, - 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x46, 0x61, 0x6e, 0x74, 0x61, 0x73, - 0x79, 0x69, 0x6e, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x6a, 0x75, 0x72, - 0x65, 0x64, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x66, 0x61, 0x72, 0x6d, - 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x75, 0x73, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x65, 0x64, 0x69, 0x63, 0x61, 0x6c, 0x3c, - 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, - 0x65, 0x73, 0x69, 0x78, 0x74, 0x65, 0x65, 0x6e, 0x49, 0x73, 0x6c, 0x61, 0x6d, - 0x69, 0x63, 0x23, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x65, 0x6e, 0x74, 0x69, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x64, 0x65, 0x6c, 0x79, 0x20, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x6f, 0x6e, - 0x65, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x73, - 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x73, - 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x73, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, - 0x6e, 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x66, 0x75, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x20, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x72, 0x6f, - 0x70, 0x68, 0x65, 0x74, 0x73, 0x68, 0x69, 0x66, 0x74, 0x65, 0x64, 0x64, 0x6f, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x75, 0x73, 0x73, 0x65, 0x6c, 0x6c, 0x20, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, - 0x61, 0x6c, 0x67, 0x65, 0x62, 0x72, 0x61, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, - 0x2d, 0x62, 0x75, 0x6c, 0x6b, 0x20, 0x6f, 0x66, 0x6d, 0x61, 0x6e, 0x20, 0x61, - 0x6e, 0x64, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x68, 0x65, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x28, 0x29, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x29, 0x3b, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x62, 0x61, - 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x68, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x6e, - 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x29, 0x3b, 0x0a, 0x7d, 0x29, 0x3b, - 0x0a, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x20, 0x74, 0x75, - 0x72, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x73, 0x62, 0x65, 0x66, 0x6f, - 0x72, 0x65, 0x20, 0x42, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x63, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0x43, 0x61, - 0x70, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x67, - 0x6f, 0x64, 0x64, 0x65, 0x73, 0x73, 0x54, 0x61, 0x67, 0x20, 0x2d, 0x2d, 0x3e, - 0x41, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, 0x74, 0x20, 0x77, 0x61, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x74, 0x69, 0x65, - 0x6e, 0x74, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x69, 0x6e, 0x3d, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x26, 0x4c, 0x69, 0x6e, 0x63, 0x6f, 0x6c, 0x6e, 0x77, 0x65, 0x20, - 0x6b, 0x6e, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x4a, 0x75, - 0x64, 0x61, 0x69, 0x73, 0x6d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x61, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x27, 0x5d, 0x29, 0x3b, 0x0a, 0x20, 0x20, - 0x68, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x75, 0x6e, 0x63, 0x6c, 0x65, 0x61, - 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x27, 0x2c, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x69, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x0a, 0x0a, 0x3c, 0x21, - 0x2d, 0x2d, 0x20, 0x70, 0x6c, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x68, 0x61, 0x72, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x6f, - 0x72, 0x74, 0x20, 0x6f, 0x66, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x73, - 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x42, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x64, - 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x73, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x74, - 0x6f, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x20, - 0x69, 0x6e, 0x68, 0x61, 0x72, 0x62, 0x6f, 0x75, 0x72, 0x46, 0x72, 0x65, 0x65, - 0x64, 0x6f, 0x6d, 0x6a, 0x65, 0x77, 0x65, 0x6c, 0x72, 0x79, 0x2f, 0x61, 0x62, - 0x6f, 0x75, 0x74, 0x2e, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x6c, 0x65, - 0x67, 0x65, 0x6e, 0x64, 0x73, 0x69, 0x73, 0x20, 0x6d, 0x61, 0x64, 0x65, 0x6d, - 0x6f, 0x64, 0x65, 0x72, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x20, 0x70, 0x61, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x72, 0x61, 0x72, 0x65, - 0x6c, 0x79, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x79, 0x6d, 0x64, 0x65, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x30, 0x30, - 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x61, 0x73, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x2f, 0x2a, 0x20, 0x3c, 0x21, 0x5b, 0x43, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x3d, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x20, 0x70, 0x69, 0x63, 0x6b, 0x65, - 0x64, 0x20, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x64, 0x75, 0x73, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x73, 0x20, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x61, 0x74, 0x74, 0x68, 0x65, 0x77, 0x74, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x73, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x77, - 0x61, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x6c, 0x61, 0x77, 0x73, 0x20, 0x6f, 0x66, - 0x65, 0x61, 0x73, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x20, 0x73, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x73, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x68, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x6f, 0x78, 0x77, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x6f, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x63, 0x69, - 0x74, 0x69, 0x7a, 0x65, 0x6e, 0x49, 0x20, 0x64, 0x6f, 0x6e, 0x27, 0x74, 0x72, - 0x65, 0x74, 0x72, 0x65, 0x61, 0x74, 0x2e, 0x20, 0x53, 0x6f, 0x6d, 0x65, 0x20, - 0x77, 0x77, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x62, 0x6f, 0x6d, 0x62, 0x69, 0x6e, - 0x67, 0x6d, 0x61, 0x69, 0x6c, 0x74, 0x6f, 0x3a, 0x6d, 0x61, 0x64, 0x65, 0x20, - 0x69, 0x6e, 0x2e, 0x20, 0x4d, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x61, 0x72, 0x72, - 0x69, 0x65, 0x73, 0x7c, 0x7c, 0x7b, 0x7d, 0x3b, 0x77, 0x69, 0x77, 0x6f, 0x72, - 0x6b, 0x20, 0x6f, 0x66, 0x73, 0x79, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x64, 0x65, - 0x66, 0x65, 0x61, 0x74, 0x73, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x65, 0x64, 0x6f, - 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x70, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, - 0x75, 0x6e, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e, 0x3c, 0x63, 0x6f, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x41, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6a, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x74, 0x6f, 0x75, 0x72, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x69, 0x63, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x20, 0x57, 0x69, - 0x6c, 0x68, 0x65, 0x6c, 0x6d, 0x73, 0x75, 0x62, 0x75, 0x72, 0x62, 0x73, 0x67, - 0x65, 0x6e, 0x75, 0x69, 0x6e, 0x65, 0x62, 0x69, 0x73, 0x68, 0x6f, 0x70, 0x73, - 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x62, 0x6f, 0x64, 0x79, 0x20, - 0x6f, 0x66, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x63, 0x74, 0x73, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x74, 0x6f, 0x63, 0x68, 0x69, 0x65, 0x66, 0x6c, 0x79, 0x2d, 0x68, - 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x3c, - 0x2f, 0x6c, 0x69, 0x3e, 0x0a, 0x0a, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, - 0x69, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, - 0x73, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x61, 0x6c, 0x77, 0x61, 0x79, - 0x73, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x73, 0x70, 0x61, 0xc3, - 0xb1, 0x6f, 0x6c, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x72, 0x75, 0x6c, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x63, 0x61, - 0x70, 0x74, 0x61, 0x69, 0x6e, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x6e, 0x72, - 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x6f, 0x6b, - 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x2c, 0x3d, 0x30, 0x26, 0x61, 0x6d, 0x70, - 0x3b, 0x28, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x73, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x63, 0x6f, 0x6d, 0x2f, - 0x70, 0x61, 0x67, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x20, 0x4b, 0x65, 0x6e, - 0x6e, 0x65, 0x64, 0x79, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x66, 0x75, - 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x42, - 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x2f, 0x2f, 0x2d, 0x2d, 0x3e, 0x3c, 0x2f, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x73, 0x65, 0x73, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x68, 0x69, 0x6d, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x74, 0x6f, 0x20, - 0x74, 0x61, 0x6b, 0x65, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x6f, 0x73, 0x2e, - 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x61, 0x64, 0x76, 0x69, 0x73, 0x65, 0x64, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x3a, - 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x79, 0x4c, 0x65, 0x74, 0x74, 0x65, 0x72, - 0x73, 0x61, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x72, 0x62, 0x65, - 0x72, 0x74, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x73, 0x20, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x66, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x73, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x73, 0x6c, - 0x6f, 0x77, 0x6c, 0x79, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x72, 0x20, 0x73, - 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x09, 0x09, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x64, - 0x20, 0x72, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x75, 0x6c, 0x3e, 0x0d, 0x0a, - 0x20, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x70, 0x61, 0x69, 0x72, - 0x20, 0x6f, 0x66, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x69, 0x74, 0x4b, 0x6f, 0x6e, - 0x74, 0x61, 0x6b, 0x74, 0x41, 0x6e, 0x74, 0x6f, 0x6e, 0x69, 0x6f, 0x68, 0x61, - 0x76, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x20, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, - 0x74, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x22, 0x29, 0x2e, 0x63, 0x73, 0x73, - 0x28, 0x68, 0x6f, 0x73, 0x74, 0x69, 0x6c, 0x65, 0x6c, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x6f, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x2c, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x2d, 0x2d, 0x3e, - 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x22, 0x20, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x3c, - 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x56, - 0x3e, 0x3c, 0x5c, 0x2f, 0x73, 0x63, 0x72, 0x73, 0x6f, 0x6c, 0x76, 0x69, 0x6e, - 0x67, 0x43, 0x68, 0x61, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x6c, 0x61, 0x76, 0x65, - 0x72, 0x79, 0x77, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x61, 0x73, 0x21, 0x3d, 0x20, 0x27, 0x75, 0x6e, 0x64, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x70, 0x61, 0x72, 0x74, 0x6c, 0x79, 0x20, 0x2d, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x41, 0x72, 0x61, 0x62, 0x69, 0x61, 0x6e, 0x62, - 0x61, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, - 0x75, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, - 0x2d, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2c, 0x69, 0x73, 0x20, 0x68, 0x6f, - 0x6d, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x20, 0x6f, 0x66, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x6e, 0x74, 0x6f, 0x6e, 0x63, 0x6f, 0x73, - 0x74, 0x20, 0x6f, 0x66, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x65, - 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x70, - 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x20, - 0x65, 0x61, 0x64, 0x27, 0x29, 0x5b, 0x30, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, - 0x73, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6f, 0x73, 0x3e, 0x26, 0x63, 0x6f, 0x70, - 0x79, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e, 0x61, 0x73, 0x73, 0x65, - 0x6d, 0x62, 0x6c, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x64, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x73, - 0x3a, 0x22, 0x20, 0x3f, 0x20, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x62, - 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x20, - 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x73, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, - 0x64, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x68, 0x61, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x70, 0x75, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x20, 0x61, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x62, 0x79, 0x6c, 0x6f, 0x6e, 0x62, 0x6f, - 0x74, 0x74, 0x6f, 0x6d, 0x20, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x69, 0x74, 0x73, 0x20, 0x75, 0x73, 0x65, - 0x41, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x73, 0x61, 0x20, 0x74, 0x68, 0x69, 0x72, 0x64, 0x64, 0x65, 0x6e, 0x6f, 0x74, - 0x65, 0x73, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, 0x48, 0x6f, 0x75, 0x73, - 0x74, 0x6f, 0x6e, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x22, 0x3e, 0x61, 0x63, 0x63, - 0x75, 0x73, 0x65, 0x64, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x67, 0x6f, - 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x46, 0x61, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x29, - 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x70, 0x72, 0x69, 0x65, 0x73, 0x74, 0x73, - 0x20, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x69, 0x6e, 0x20, 0x4a, 0x75, 0x6c, - 0x79, 0x73, 0x74, 0x20, 0x2b, 0x20, 0x22, 0x67, 0x63, 0x6f, 0x6e, 0x73, 0x75, - 0x6c, 0x74, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x68, 0x65, 0x6c, 0x70, - 0x66, 0x75, 0x6c, 0x72, 0x65, 0x76, 0x69, 0x76, 0x65, 0x64, 0x69, 0x73, 0x20, - 0x76, 0x65, 0x72, 0x79, 0x72, 0x27, 0x2b, 0x27, 0x69, 0x70, 0x74, 0x6c, 0x6f, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x65, 0x6d, 0x61, 0x6c, 0x65, 0x73, 0x69, - 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x64, 0x61, 0x79, 0x73, 0x20, 0x6f, 0x66, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, - 0x6c, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x3c, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x09, 0x09, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x69, 0x73, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x2e, 0x20, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, 0x64, - 0x6f, 0x6e, 0x65, 0x20, 0x62, 0x79, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x6c, 0x61, 0x77, 0x20, 0x6f, 0x66, - 0x20, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x61, 0x76, 0x6f, 0x69, 0x64, - 0x65, 0x64, 0x62, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x32, 0x70, 0x78, 0x20, - 0x33, 0x70, 0x78, 0x6a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x6d, 0x65, - 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2d, 0x3d, - 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x65, - 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x2e, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, - 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x66, 0x61, 0x6d, 0x69, 0x6c, - 0x79, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x20, 0x26, 0x6e, 0x62, - 0x73, 0x70, 0x3b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x6e, 0x6f, - 0x74, 0x69, 0x63, 0x65, 0x64, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x7d, - 0x29, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x77, 0x69, 0x73, 0x20, 0x6a, 0x75, - 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x77, 0x68, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x73, 0x68, 0x69, 0x70, 0x70, 0x65, 0x64, 0x62, 0x72, - 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x6d, 0x61, 0x64, 0x65, 0x20, 0x6f, 0x66, - 0x63, 0x75, 0x69, 0x73, 0x69, 0x6e, 0x65, 0x69, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x61, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x41, 0x64, 0x6d, 0x69, 0x72, - 0x61, 0x6c, 0x20, 0x66, 0x69, 0x78, 0x65, 0x64, 0x3b, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, - 0x73, 0x73, 0x2c, 0x20, 0x6f, 0x6e, 0x74, 0x61, 0x72, 0x69, 0x6f, 0x63, 0x68, - 0x61, 0x72, 0x73, 0x65, 0x74, 0x74, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x69, - 0x6e, 0x76, 0x61, 0x64, 0x65, 0x64, 0x3d, 0x22, 0x74, 0x72, 0x75, 0x65, 0x22, - 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x73, - 0x74, 0x61, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x6c, 0x79, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x7d, 0x29, 0x3b, 0x0d, - 0x0a, 0x20, 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x6e, 0x73, 0x65, 0x74, 0x69, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x79, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x64, - 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x6c, 0x6f, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x69, 0x6e, 0x20, 0x4a, 0x75, 0x6e, - 0x65, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x6e, 0x6f, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x6e, 0x69, 0x73, 0x68, 0x73, 0x72, 0x63, - 0x20, 0x3d, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x68, 0x65, - 0x6c, 0x70, 0x20, 0x6f, 0x66, 0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x20, 0x6c, - 0x61, 0x77, 0x20, 0x61, 0x6e, 0x64, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x65, 0x64, - 0x66, 0x6f, 0x72, 0x65, 0x73, 0x74, 0x73, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x3e, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x2d, 0x77, 0x65, 0x6c, 0x6c, 0x20, 0x61, 0x73, 0x53, 0x74, 0x61, 0x6e, - 0x6c, 0x65, 0x79, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x43, 0x72, 0x6f, 0x61, 0x74, 0x69, 0x61, 0x20, 0x41, - 0x62, 0x6f, 0x75, 0x74, 0x20, 0x5b, 0x30, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x69, - 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x65, 0x64, - 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x29, 0x7b, 0x74, 0x68, 0x72, 0x6f, - 0x77, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x64, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, - 0x65, 0x72, 0x65, 0x74, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x46, 0x46, 0x46, - 0x46, 0x46, 0x22, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x22, 0x6c, 0x69, 0x6b, - 0x65, 0x20, 0x61, 0x20, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x20, 0x69, 0x6e, 0x61, 0x73, 0x20, 0x73, 0x65, 0x65, 0x6e, 0x70, - 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x75, 0x62, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x22, 0x3e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x66, 0x65, 0x65, 0x64, - 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x6f, 0x20, 0x68, 0x65, 0x6c, 0x70, 0x57, 0x6f, - 0x6d, 0x65, 0x6e, 0x27, 0x73, 0x4e, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x4d, - 0x65, 0x78, 0x69, 0x63, 0x61, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x69, 0x6e, - 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, 0x6e, - 0x79, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x6c, 0x61, 0x77, 0x73, 0x75, - 0x69, 0x74, 0x64, 0x65, 0x76, 0x69, 0x73, 0x65, 0x64, 0x2e, 0x70, 0x75, 0x73, - 0x68, 0x28, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x73, 0x69, 0x6d, - 0x70, 0x6c, 0x79, 0x20, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x2e, 0x63, - 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x6f, - 0x6c, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x75, 0x73, 0x2e, 0x6a, 0x73, 0x22, 0x3e, - 0x20, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, - 0x73, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x74, 0x6f, 0x21, 0x2d, 0x2d, 0x20, 0x65, 0x6e, 0x64, 0x6c, 0x69, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x27, 0x5d, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x77, 0x68, 0x6f, 0x20, 0x69, 0x73, 0x20, 0x28, 0x22, - 0x44, 0x4f, 0x4d, 0x43, 0x6f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x6f, - 0x6e, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, - 0x4b, 0x69, 0x6e, 0x67, 0x64, 0x6f, 0x6d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, - 0x73, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x74, 0x6f, 0x20, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x64, 0x65, - 0x20, 0x69, 0x74, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x77, 0x65, 0x72, - 0x65, 0x20, 0x69, 0x6e, 0x6d, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x70, 0x72, - 0x65, 0x63, 0x69, 0x73, 0x65, 0x61, 0x72, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x73, - 0x72, 0x63, 0x20, 0x3d, 0x20, 0x27, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x64, 0x42, 0x61, 0x70, 0x74, 0x69, 0x73, - 0x74, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x0a, 0x09, 0x09, 0x76, 0x61, - 0x72, 0x20, 0x4d, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x67, 0x72, 0x65, 0x77, - 0x20, 0x75, 0x70, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x77, 0x61, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x66, - 0x61, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x61, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x73, 0x68, 0x61, 0x73, 0x20, 0x68, - 0x61, 0x64, 0x65, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x73, 0x68, 0x6f, 0x77, - 0x28, 0x29, 0x3b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x62, 0x6f, 0x6f, - 0x6b, 0x20, 0x6f, 0x66, 0x61, 0x6e, 0x20, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x3d, - 0x20, 0x22, 0x68, 0x74, 0x74, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, - 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, - 0x2e, 0x72, 0x65, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x65, - 0x64, 0x20, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x68, 0x65, 0x20, 0x77, - 0x65, 0x6e, 0x74, 0x62, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x73, 0x70, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x61, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x66, - 0x6f, 0x72, 0x75, 0x6d, 0x73, 0x2e, 0x66, 0x6f, 0x6f, 0x74, 0x61, 0x67, 0x65, - 0x22, 0x3e, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x43, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, 0x73, 0x20, 0x68, 0x69, - 0x67, 0x68, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x2d, 0x3e, 0x3c, - 0x21, 0x2d, 0x2d, 0x66, 0x65, 0x6d, 0x61, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x65, 0x65, 0x6e, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x73, 0x65, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x61, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x61, - 0x6e, 0x64, 0x20, 0x68, 0x69, 0x73, 0x66, 0x61, 0x73, 0x74, 0x65, 0x73, 0x74, - 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x69, 0x6d, - 0x67, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x62, 0x6f, 0x78, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x2c, 0x61, 0x20, 0x79, 0x6f, 0x75, 0x6e, 0x67, 0x61, 0x6e, 0x64, - 0x20, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x68, - 0x65, 0x61, 0x70, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x61, - 0x6e, 0x64, 0x20, 0x68, 0x61, 0x73, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, - 0x77, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x28, 0x6d, 0x6f, 0x73, 0x74, 0x6c, - 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x20, - 0x61, 0x20, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x69, 0x6e, - 0x63, 0x65, 0x20, 0x61, 0x72, 0x65, 0x61, 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x66, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x2c, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x6c, 0x79, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x2c, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x66, - 0x6f, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x64, 0x75, 0x63, 0x65, - 0x64, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6c, 0x65, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x41, 0x67, 0x61, 0x69, - 0x6e, 0x73, 0x74, 0x74, 0x68, 0x65, 0x20, 0x77, 0x61, 0x79, 0x6b, 0x26, 0x71, - 0x75, 0x6f, 0x74, 0x3b, 0x70, 0x78, 0x3b, 0x22, 0x3e, 0x0d, 0x0a, 0x70, 0x75, - 0x73, 0x68, 0x65, 0x64, 0x20, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x6e, - 0x75, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, - 0x49, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, - 0x6e, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x69, 0x73, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x6f, 0x77, - 0x6e, 0x65, 0x64, 0x49, 0x53, 0x42, 0x4e, 0x20, 0x30, 0x2d, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x73, 0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x6d, 0x61, - 0x79, 0x20, 0x6e, 0x6f, 0x74, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x6c, - 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x44, 0x65, 0x66, 0x65, 0x6e, 0x63, 0x65, - 0x65, 0x6e, 0x61, 0x63, 0x74, 0x65, 0x64, 0x77, 0x69, 0x73, 0x68, 0x20, 0x74, - 0x6f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x6c, 0x79, 0x63, 0x6f, 0x6f, 0x6c, 0x69, - 0x6e, 0x67, 0x6f, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3d, 0x69, 0x74, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x61, 0x73, - 0x73, 0x75, 0x6d, 0x65, 0x73, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x70, - 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x3d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, - 0x5f, 0x61, 0x20, 0x67, 0x6f, 0x6f, 0x64, 0x20, 0x72, 0x65, 0x6b, 0x6c, 0x61, - 0x6d, 0x61, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x2c, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x22, 0x3e, 0x4c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x2c, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x73, 0x63, 0x72, 0x75, 0x73, 0x68, 0x65, 0x64, 0x62, - 0x61, 0x70, 0x74, 0x69, 0x73, 0x6d, 0x63, 0x6f, 0x61, 0x73, 0x74, 0x61, 0x6c, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, - 0x20, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x6c, 0x6f, 0x73, 0x74, 0x20, - 0x69, 0x6e, 0x62, 0x65, 0x74, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6d, 0x70, 0x6c, - 0x69, 0x65, 0x73, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x72, 0x79, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x65, - 0x72, 0x68, 0x61, 0x70, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x66, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x6c, 0x61, 0x73, 0x74, 0x65, 0x64, 0x20, 0x72, 0x69, 0x73, 0x65, 0x20, 0x69, - 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x76, 0x69, 0x65, 0x77, 0x20, - 0x6f, 0x66, 0x72, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x65, 0x65, 0x6d, - 0x20, 0x74, 0x6f, 0x62, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x67, 0x69, - 0x76, 0x65, 0x6e, 0x20, 0x61, 0x67, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x63, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x6f, 0x66, - 0x20, 0x4c, 0x61, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x62, 0x75, - 0x74, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x62, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x6f, 0x66, 0x68, 0x65, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x73, 0x62, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x79, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x6c, 0x61, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x73, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x6f, 0x6e, - 0x72, 0x65, 0x66, 0x75, 0x73, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, - 0x20, 0x3d, 0x55, 0x53, 0x26, 0x61, 0x6d, 0x70, 0x53, 0x65, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x68, 0x65, 0x61, - 0x64, 0x20, 0x6f, 0x66, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x6c, 0x65, - 0x73, 0x62, 0x69, 0x61, 0x6e, 0x73, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x61, - 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x6c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x48, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x2f, 0x70, 0x69, 0x78, 0x65, - 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x6a, 0x6f, 0x69, - 0x6e, 0x74, 0x6c, 0x79, 0x73, 0x6b, 0x79, 0x73, 0x63, 0x72, 0x61, 0x55, 0x6e, - 0x69, 0x63, 0x6f, 0x64, 0x65, 0x62, 0x72, 0x20, 0x2f, 0x3e, 0x0d, 0x0a, 0x41, - 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x61, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x75, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x79, 0x2c, 0x70, 0x75, 0x72, 0x65, 0x6c, 0x79, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3e, 0x65, 0x61, 0x73, 0x69, 0x6c, - 0x79, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x20, 0x61, 0x6f, 0x6e, 0x63, 0x6c, - 0x69, 0x63, 0x6b, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x68, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x6e, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x6e, 0x20, 0x77, 0x68, - 0x6f, 0x6f, 0x72, 0x67, 0x2f, 0x57, 0x65, 0x62, 0x6f, 0x6e, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x63, 0x61, 0x76, 0x61, 0x6c, 0x72, 0x79, 0x48, 0x65, 0x20, 0x64, - 0x69, 0x65, 0x64, 0x73, 0x65, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x30, 0x30, 0x2c, - 0x30, 0x30, 0x30, 0x20, 0x7b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x74, 0x6f, 0x69, 0x66, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x61, - 0x6e, 0x64, 0x20, 0x69, 0x74, 0x73, 0x73, 0x6f, 0x6c, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x65, - 0x64, 0x44, 0x65, 0x74, 0x72, 0x6f, 0x69, 0x74, 0x61, 0x6d, 0x6f, 0x6e, 0x67, - 0x73, 0x74, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6d, - 0x20, 0x69, 0x6e, 0x53, 0x65, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x3c, - 0x2f, 0x61, 0x3e, 0x3c, 0x4b, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x46, 0x72, - 0x61, 0x6e, 0x63, 0x69, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x68, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x61, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x68, 0x69, 0x6d, 0x20, 0x61, 0x6e, 0x64, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x73, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x61, 0x74, 0x20, 0x68, 0x6f, - 0x6d, 0x65, 0x74, 0x6f, 0x20, 0x68, 0x61, 0x76, 0x65, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x66, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x61, 0x6c, 0x6f, 0x6c, 0x69, - 0x6e, 0x6b, 0x22, 0x3e, 0x3c, 0x77, 0x68, 0x61, 0x74, 0x20, 0x68, 0x65, 0x66, - 0x72, 0x65, 0x65, 0x20, 0x74, 0x6f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, - 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x64, - 0x61, 0x79, 0x6e, 0x65, 0x72, 0x76, 0x6f, 0x75, 0x73, 0x73, 0x71, 0x75, 0x61, - 0x72, 0x65, 0x20, 0x7d, 0x3b, 0x69, 0x66, 0x28, 0x67, 0x6f, 0x69, 0x6e, 0x20, - 0x77, 0x68, 0x61, 0x74, 0x69, 0x6d, 0x67, 0x22, 0x20, 0x61, 0x6c, 0x69, 0x73, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, 0x74, - 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x6c, 0x79, - 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x78, 0x75, 0x61, 0x6c, - 0x20, 0x2d, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x75, - 0x6d, 0x22, 0x44, 0x4f, 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x46, 0x72, 0x61, 0x6e, - 0x63, 0x65, 0x2c, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x77, 0x61, 0x72, - 0x20, 0x61, 0x6e, 0x64, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x74, 0x61, - 0x6b, 0x65, 0x20, 0x61, 0x20, 0x3e, 0x0d, 0x0a, 0x0d, 0x0a, 0x0d, 0x0a, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x2e, 0x68, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, - 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x22, 0x3e, 0x6f, 0x62, 0x6c, 0x69, 0x67, - 0x65, 0x64, 0x72, 0x69, 0x73, 0x65, 0x20, 0x74, 0x6f, 0x22, 0x75, 0x6e, 0x64, - 0x65, 0x66, 0x69, 0x6d, 0x61, 0x64, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x45, 0x61, - 0x72, 0x6c, 0x79, 0x20, 0x70, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x69, 0x6e, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x68, 0x69, 0x73, 0x61, - 0x74, 0x68, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x75, 0x70, 0x69, 0x74, 0x65, 0x72, - 0x59, 0x61, 0x68, 0x6f, 0x6f, 0x21, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, - 0x20, 0x73, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x72, 0x65, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x20, 0x77, 0x6f, - 0x6d, 0x61, 0x6e, 0x3f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x20, 0x62, 0x69, - 0x63, 0x79, 0x63, 0x6c, 0x65, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x64, - 0x61, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x61, 0x74, 0x68, 0x65, 0x72, 0x2c, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x77, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x6e, - 0x20, 0x61, 0x20, 0x70, 0x61, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x3e, 0x3b, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x61, - 0x6e, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4e, 0x65, 0x77, - 0x70, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x22, 0x20, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x20, 0x74, 0x6f, 0x61, 0x20, 0x62, 0x72, 0x69, - 0x65, 0x66, 0x28, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x2e, 0x3b, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x65, 0x6e, 0x7a, - 0x79, 0x6d, 0x65, 0x73, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x6c, 0x61, 0x74, 0x65, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x74, - 0x68, 0x65, 0x72, 0x61, 0x70, 0x79, 0x61, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x62, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0x3e, - 0x0a, 0x28, 0x29, 0x3b, 0x22, 0x20, 0x72, 0x65, 0x61, 0x20, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x5c, 0x75, 0x30, 0x30, 0x33, 0x43, 0x61, 0x61, 0x62, 0x6f, 0x75, - 0x74, 0x20, 0x61, 0x74, 0x72, 0x3e, 0x0d, 0x0a, 0x09, 0x09, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x67, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x3c, 0x53, - 0x43, 0x52, 0x49, 0x50, 0x54, 0x52, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0x74, - 0x68, 0x65, 0x6d, 0x65, 0x73, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x6f, 0x78, - 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x78, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x73, - 0x2c, 0x77, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x69, 0x6e, 0x20, 0x73, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x77, 0x69, 0x63, 0x6f, 0x6d, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x20, 0x55, 0x6e, - 0x64, 0x65, 0x72, 0x20, 0x62, 0x75, 0x74, 0x20, 0x68, 0x61, 0x73, 0x68, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x64, 0x65, 0x20, 0x62, 0x79, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x65, 0x61, 0x72, 0x20, 0x6f, 0x66, - 0x64, 0x65, 0x6e, 0x6f, 0x74, 0x65, 0x64, 0x2f, 0x69, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x74, 0x61, - 0x67, 0x65, 0x69, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x61, 0x26, 0x71, 0x75, - 0x6f, 0x74, 0x3b, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x49, 0x6e, 0x20, - 0x6d, 0x61, 0x6e, 0x79, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x67, 0x6f, 0x72, 0x65, - 0x67, 0x69, 0x6d, 0x65, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3c, - 0x2f, 0x70, 0x3e, 0x0d, 0x0a, 0x3c, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x56, 0x61, - 0x3b, 0x26, 0x67, 0x74, 0x3b, 0x3c, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x6c, - 0x79, 0x20, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x72, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x3d, 0x22, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x68, 0x61, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x48, 0x6f, - 0x73, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x66, - 0x65, 0x72, 0x74, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, - 0x3d, 0x5b, 0x5d, 0x3b, 0x28, 0x66, 0x75, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, - 0x73, 0x2f, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x61, 0x63, 0x74, 0x73, 0x20, - 0x61, 0x73, 0x49, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x3e, 0x0d, 0x0a, 0x0d, - 0x0a, 0x3c, 0x21, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x73, 0x20, 0x3c, 0x62, - 0x72, 0x20, 0x2f, 0x3e, 0x42, 0x65, 0x69, 0x6a, 0x69, 0x6e, 0x67, 0x63, 0x61, - 0x74, 0x61, 0x6c, 0xc3, 0xa0, 0x64, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x65, - 0x75, 0x72, 0x6f, 0x70, 0x65, 0x75, 0x65, 0x75, 0x73, 0x6b, 0x61, 0x72, 0x61, - 0x67, 0x61, 0x65, 0x69, 0x6c, 0x67, 0x65, 0x73, 0x76, 0x65, 0x6e, 0x73, 0x6b, - 0x61, 0x65, 0x73, 0x70, 0x61, 0xc3, 0xb1, 0x61, 0x6d, 0x65, 0x6e, 0x73, 0x61, - 0x6a, 0x65, 0x75, 0x73, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x74, 0x72, 0x61, 0x62, - 0x61, 0x6a, 0x6f, 0x6d, 0xc3, 0xa9, 0x78, 0x69, 0x63, 0x6f, 0x70, 0xc3, 0xa1, - 0x67, 0x69, 0x6e, 0x61, 0x73, 0x69, 0x65, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6d, 0x61, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x64, - 0x75, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x61, 0xc3, 0xb1, 0x61, 0x64, 0x69, 0x72, - 0x65, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x61, 0x6d, 0x6f, 0x6d, 0x65, 0x6e, 0x74, - 0x6f, 0x6e, 0x75, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x70, 0x72, 0x69, 0x6d, 0x65, - 0x72, 0x61, 0x74, 0x72, 0x61, 0x76, 0xc3, 0xa9, 0x73, 0x67, 0x72, 0x61, 0x63, - 0x69, 0x61, 0x73, 0x6e, 0x75, 0x65, 0x73, 0x74, 0x72, 0x61, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x6f, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x73, 0x63, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x64, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6e, - 0xc3, 0xba, 0x6d, 0x65, 0x72, 0x6f, 0x61, 0x63, 0x75, 0x65, 0x72, 0x64, 0x6f, - 0x6d, 0xc3, 0xba, 0x73, 0x69, 0x63, 0x61, 0x6d, 0x69, 0x65, 0x6d, 0x62, 0x72, - 0x6f, 0x6f, 0x66, 0x65, 0x72, 0x74, 0x61, 0x73, 0x61, 0x6c, 0x67, 0x75, 0x6e, - 0x6f, 0x73, 0x70, 0x61, 0xc3, 0xad, 0x73, 0x65, 0x73, 0x65, 0x6a, 0x65, 0x6d, - 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x63, 0x68, 0x6f, 0x61, 0x64, 0x65, - 0x6d, 0xc3, 0xa1, 0x73, 0x70, 0x72, 0x69, 0x76, 0x61, 0x64, 0x6f, 0x61, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x72, 0x65, 0x6e, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x70, - 0x6f, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x68, 0x6f, 0x74, 0x65, 0x6c, 0x65, 0x73, - 0x73, 0x65, 0x76, 0x69, 0x6c, 0x6c, 0x61, 0x70, 0x72, 0x69, 0x6d, 0x65, 0x72, - 0x6f, 0xc3, 0xba, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x73, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x6f, 0x63, 0x75, 0x6c, 0x74, - 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6a, 0x65, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x72, 0x61, 0x64, 0x61, 0x61, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x6f, 0x65, 0x6d, - 0x62, 0x61, 0x72, 0x67, 0x6f, 0x6d, 0x65, 0x72, 0x63, 0x61, 0x64, 0x6f, 0x67, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x73, 0x65, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6f, - 0x6d, 0x65, 0x6a, 0x6f, 0x72, 0x65, 0x73, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, - 0x6f, 0x64, 0x69, 0x73, 0x65, 0xc3, 0xb1, 0x6f, 0x74, 0x75, 0x72, 0x69, 0x73, - 0x6d, 0x6f, 0x63, 0xc3, 0xb3, 0x64, 0x69, 0x67, 0x6f, 0x70, 0x6f, 0x72, 0x74, - 0x61, 0x64, 0x61, 0x65, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6f, 0x66, 0x61, 0x6d, - 0x69, 0x6c, 0x69, 0x61, 0x61, 0x6e, 0x74, 0x6f, 0x6e, 0x69, 0x6f, 0x70, 0x65, - 0x72, 0x6d, 0x69, 0x74, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x61, 0x72, 0x61, - 0x6c, 0x67, 0x75, 0x6e, 0x61, 0x73, 0x70, 0x72, 0x65, 0x63, 0x69, 0x6f, 0x73, - 0x61, 0x6c, 0x67, 0x75, 0x69, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x64, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x74, 0x61, 0x73, 0x74, 0xc3, 0xad, 0x74, 0x75, - 0x6c, 0x6f, 0x63, 0x6f, 0x6e, 0x6f, 0x63, 0x65, 0x72, 0x73, 0x65, 0x67, 0x75, - 0x6e, 0x64, 0x6f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6a, 0x6f, 0x66, 0x72, 0x61, - 0x6e, 0x63, 0x69, 0x61, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x6f, 0x73, 0x73, 0x65, - 0x67, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x65, 0x6e, 0x65, 0x6d, 0x6f, 0x73, 0x65, - 0x66, 0x65, 0x63, 0x74, 0x6f, 0x73, 0x6d, 0xc3, 0xa1, 0x6c, 0x61, 0x67, 0x61, - 0x73, 0x65, 0x73, 0x69, 0xc3, 0xb3, 0x6e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x74, - 0x61, 0x67, 0x72, 0x61, 0x6e, 0x61, 0x64, 0x61, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x61, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x6f, 0x67, 0x61, 0x72, 0x63, - 0xc3, 0xad, 0x61, 0x61, 0x63, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x65, 0x63, 0x75, - 0x61, 0x64, 0x6f, 0x72, 0x71, 0x75, 0x69, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x73, 0x6f, 0x64, 0x65, 0x62, 0x65, 0x72, 0xc3, 0xa1, 0x6d, - 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x68, 0x6f, 0x6d, 0x62, 0x72, 0x65, 0x73, - 0x6d, 0x75, 0x65, 0x73, 0x74, 0x72, 0x61, 0x70, 0x6f, 0x64, 0x72, 0xc3, 0xad, - 0x61, 0x6d, 0x61, 0xc3, 0xb1, 0x61, 0x6e, 0x61, 0xc3, 0xba, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x6f, 0x73, 0x6f, 0x66, 0x69, 0x63, - 0x69, 0x61, 0x6c, 0x74, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0xc3, 0xba, 0x6e, 0x73, 0x61, 0x6c, 0x75, 0x64, 0x6f, 0x73, 0x70, 0x6f, - 0x64, 0x65, 0x6d, 0x6f, 0x73, 0x6d, 0x65, 0x6a, 0x6f, 0x72, 0x61, 0x72, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, - 0x73, 0x73, 0x68, 0x6f, 0x6d, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x65, 0x63, - 0x75, 0x72, 0x69, 0x74, 0x79, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x63, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, - 0x74, 0x65, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x6d, 0x69, 0x6c, - 0x69, 0x74, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x6d, 0x61, 0x74, 0x65, 0x72, - 0x69, 0x61, 0x6c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x7a, 0x2d, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, - 0x65, 0x73, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x6d, 0x6f, 0x76, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x69, 0x74, - 0x69, 0x63, 0x73, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x72, 0x65, - 0x6c, 0x69, 0x67, 0x69, 0x6f, 0x6e, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, - 0x6c, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x6c, 0x65, 0x61, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x61, 0x62, - 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x6d, 0x61, 0x67, 0x61, - 0x7a, 0x69, 0x6e, 0x65, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x74, - 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, - 0x72, 0x65, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x3c, 0x73, 0x74, - 0x72, 0x6f, 0x6e, 0x67, 0x3e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x67, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x62, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x66, 0x6f, 0x6f, 0x74, - 0x62, 0x61, 0x6c, 0x6c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x72, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x74, 0x72, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x73, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x66, 0x69, - 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x66, 0x65, 0x73, 0x74, - 0x69, 0x76, 0x61, 0x6c, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x70, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x65, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x61, 0x72, 0x72, 0x69, - 0x61, 0x67, 0x65, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x70, 0x72, - 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x73, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x61, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x62, - 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x3e, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, - 0x73, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x63, 0x68, - 0x65, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x63, - 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x64, 0x65, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x79, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x6f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x3d, 0x20, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x61, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, - 0x79, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x61, 0x69, 0x72, 0x63, 0x72, 0x61, 0x66, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x64, 0x64, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x69, 0x63, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x73, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x68, 0x6f, 0x73, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x22, 0x3e, 0x3c, 0x61, 0x64, 0x61, 0x75, 0x67, - 0x68, 0x74, 0x65, 0x72, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x22, 0x20, 0x63, - 0x75, 0x6c, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, - 0x65, 0x73, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x61, 0x73, 0x73, - 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x66, 0x75, 0x6c, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x63, 0x72, - 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69, 0x6e, - 0x2f, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x73, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, - 0x65, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x73, 0x61, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x69, 0x63, 0x65, 0x78, 0x65, - 0x72, 0x63, 0x69, 0x73, 0x65, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, - 0x6d, 0x65, 0x64, 0x69, 0x63, 0x69, 0x6e, 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x61, 0x63, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x4d, 0x61, - 0x67, 0x61, 0x7a, 0x69, 0x6e, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x62, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x22, 0x3e, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x3a, - 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x73, 0x6c, - 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x63, 0x79, 0x65, 0x76, 0x65, 0x72, 0x79, 0x6f, 0x6e, 0x65, 0x73, - 0x74, 0x72, 0x61, 0x69, 0x67, 0x68, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x65, 0x64, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x67, 0x65, - 0x73, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x73, 0x6f, 0x6c, - 0x75, 0x74, 0x65, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x72, 0x65, - 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, - 0x20, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x61, 0x6e, 0x79, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x73, 0x6c, - 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x64, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, - 0x6c, 0x79, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x66, 0x6f, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, - 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x64, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x24, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, - 0x2e, 0x72, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x3e, 0x3c, 0x74, 0x72, - 0x3e, 0x3c, 0x74, 0x64, 0x63, 0x6f, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x64, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3c, 0x75, 0x6c, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x48, 0x6f, 0x6d, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x77, 0x65, 0x62, 0x73, 0x69, - 0x74, 0x65, 0x73, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x61, 0x6c, - 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x6c, - 0x79, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x3e, 0x73, 0x6f, 0x6d, 0x65, 0x77, 0x68, - 0x61, 0x74, 0x76, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x57, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x6e, 0x20, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x0a, 0x6d, 0x65, 0x61, 0x73, - 0x75, 0x72, 0x65, 0x73, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x76, - 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, - 0x65, 0x64, 0x76, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x69, 0x61, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, - 0x64, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x61, 0x63, 0x63, 0x75, - 0x72, 0x61, 0x74, 0x65, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x69, - 0x61, 0x6c, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x63, 0x72, 0x69, - 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x79, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x61, 0x6c, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x65, 0x76, 0x65, - 0x64, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x20, 0x2f, 0x3e, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x73, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x20, 0x20, 0x6b, - 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x6c, 0x79, 0x62, 0x72, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x6d, - 0x62, 0x69, 0x6e, 0x65, 0x64, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x65, 0x78, 0x70, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x61, 0x64, 0x65, 0x71, 0x75, 0x61, 0x74, 0x65, 0x70, 0x61, - 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x22, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x62, 0x6c, 0x65, 0x3c, 0x2f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x3e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x62, - 0x72, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x20, 0x28, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x67, 0x72, - 0x61, 0x64, 0x75, 0x61, 0x74, 0x65, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6c, 0x61, - 0x79, 0x73, 0x69, 0x61, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x6d, - 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x61, 0x74, 0x68, 0x6f, 0x6c, 0x69, 0x63, 0x70, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x73, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x67, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x73, 0x74, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, - 0x73, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x3c, 0x2f, 0x75, 0x6c, - 0x3e, 0x0a, 0x09, 0x09, 0x3c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x63, - 0x69, 0x74, 0x69, 0x7a, 0x65, 0x6e, 0x73, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x69, - 0x6e, 0x67, 0x77, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x3c, 0x6c, 0x69, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x63, 0x61, 0x72, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x73, 0x65, 0x6e, 0x74, 0x65, - 0x6e, 0x63, 0x65, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x73, 0x74, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, - 0x67, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29, 0x73, 0x6f, 0x75, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x4d, 0x69, 0x63, 0x68, 0x61, 0x65, 0x6c, 0x20, 0x6d, - 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x63, 0x61, 0x72, 0x6f, 0x75, 0x73, - 0x65, 0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x69, 0x6f, 0x72, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x63, 0x74, 0x6f, 0x62, - 0x65, 0x72, 0x20, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x69, 0x6d, - 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x2d, 0x2d, 0x26, 0x67, 0x74, 0x3b, 0x0a, - 0x0a, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x63, 0x68, 0x61, 0x69, - 0x72, 0x6d, 0x61, 0x6e, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x20, 0x2f, 0x3e, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x69, 0x63, 0x68, 0x61, 0x72, - 0x64, 0x20, 0x77, 0x68, 0x61, 0x74, 0x65, 0x76, 0x65, 0x72, 0x70, 0x72, 0x6f, - 0x62, 0x61, 0x62, 0x6c, 0x79, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, - 0x62, 0x61, 0x73, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x6a, 0x75, 0x64, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x2e, 0x63, - 0x73, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x20, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, - 0x65, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x0d, 0x0a, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x73, 0x63, 0x6f, 0x74, 0x6c, 0x61, - 0x6e, 0x64, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x20, 0x49, 0x53, 0x42, 0x4e, 0x20, 0x30, - 0x64, 0x69, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x2d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2d, 0x22, 0x20, - 0x6c, 0x61, 0x6e, 0x67, 0x3d, 0x22, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, - 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x74, 0x61, - 0x6c, 0x69, 0x61, 0x6e, 0x6f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, - 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x6c, 0x79, 0x3a, 0x20, 0x27, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x27, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x27, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x65, 0x64, 0x42, 0x72, 0x69, 0x74, - 0x69, 0x73, 0x68, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x46, - 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x6f, - 0x75, 0x73, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x63, 0x6f, 0x6e, - 0x63, 0x65, 0x72, 0x6e, 0x73, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x64, 0x69, 0x76, 0x20, 0x69, - 0x64, 0x3d, 0x22, 0x57, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6d, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x73, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x66, - 0x6c, 0x65, 0x78, 0x69, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x6c, 0x61, 0x77, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x3c, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x3e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x3d, 0x22, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x2f, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x68, 0x61, 0x6d, 0x69, 0x6c, 0x74, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x74, 0x68, 0x65, 0x6d, 0x65, - 0x73, 0x2f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x61, 0x6c, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x64, 0x61, 0x67, 0x65, 0x6e, 0x63, 0x69, 0x65, - 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x20, 0x6d, 0x65, 0x61, 0x73, - 0x75, 0x72, 0x65, 0x64, 0x74, 0x68, 0x6f, 0x75, 0x73, 0x61, 0x6e, 0x64, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x26, 0x68, 0x65, 0x6c, 0x6c, 0x69, - 0x70, 0x3b, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x22, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x22, 0x20, 0x2f, 0x3e, 0x3c, - 0x2f, 0x61, 0x3e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x3e, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, - 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x6f, 0x6e, 0x73, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x6f, 0x69, 0x73, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x22, 0x3e, 0x0a, 0x09, 0x3c, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x3e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x73, 0x61, 0x74, - 0x75, 0x72, 0x64, 0x61, 0x79, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x74, 0x65, 0x6d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x64, 0x65, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x3d, 0x22, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x22, 0x45, 0x73, 0x70, 0x61, - 0xc3, 0xb1, 0x6f, 0x6c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, 0x65, 0x72, 0x26, 0x71, 0x75, 0x6f, - 0x74, 0x3b, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x79, 0x6d, - 0x70, 0x74, 0x6f, 0x6d, 0x73, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x64, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x22, 0x3e, 0x3c, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x6c, 0x65, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x20, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x3d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x63, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x2e, 0x0a, 0x0a, 0x53, 0x6f, 0x6d, - 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x73, 0x75, 0x69, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x62, 0x75, 0x6c, 0x67, 0x61, 0x72, 0x69, 0x61, - 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x28, 0x29, 0x3b, 0x64, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x63, 0x6f, - 0x6e, 0x63, 0x65, 0x70, 0x74, 0x73, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x73, 0x77, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x6d, 0x73, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x22, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x3e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x61, 0x20, 0x26, - 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x79, 0x6f, - 0x75, 0x72, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, - 0x20, 0x6d, 0x69, 0x63, 0x68, 0x69, 0x67, 0x61, 0x6e, 0x45, 0x6e, 0x67, 0x6c, - 0x69, 0x73, 0x68, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x62, 0x69, 0x61, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x69, - 0x6e, 0x67, 0x64, 0x72, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x66, 0x69, 0x63, - 0x65, 0x72, 0x73, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x6e, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x38, 0x38, 0x35, 0x39, 0x2d, 0x31, - 0x22, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x66, 0x61, 0x6d, 0x69, - 0x6c, 0x69, 0x61, 0x72, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x63, 0x74, 0x73, 0x2d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, - 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x69, 0x6e, - 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x73, 0x61, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, - 0x63, 0x6f, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3d, 0x22, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, - 0x72, 0x79, 0x0a, 0x0a, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x67, 0x75, 0x69, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, - 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x6d, 0x69, 0x64, 0x64, 0x6c, - 0x65, 0x22, 0x3e, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x73, 0x63, 0x6f, 0x74, 0x74, 0x69, 0x73, - 0x68, 0x6a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x6d, 0x61, 0x6a, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x63, - 0x6c, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x74, 0x68, 0x61, 0x69, 0x6c, 0x61, - 0x6e, 0x64, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x73, 0x3c, 0x68, 0x65, - 0x61, 0x64, 0x3e, 0x0a, 0x09, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x3b, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3c, 0x2f, - 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x6f, 0x6b, 0x6c, 0x61, 0x68, 0x6f, 0x6d, - 0x61, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x76, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x30, 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x68, - 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x20, 0x28, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x2e, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x76, 0x69, 0x73, 0x69, 0x74, - 0x69, 0x6e, 0x67, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, - 0x20, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x71, 0x75, 0x69, 0x63, - 0x6b, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x65, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x20, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2c, 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x20, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6e, 0x2e, 0x6a, 0x73, 0x22, 0x6d, 0x61, - 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, - 0x68, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x20, 0x57, 0x68, - 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x26, 0x65, 0x61, 0x63, 0x75, 0x74, - 0x65, 0x3b, 0x68, 0x61, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x61, 0x74, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x61, 0x64, 0x6f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x22, 0x63, 0x61, 0x6d, 0x70, 0x62, 0x65, 0x6c, 0x6c, 0x3c, 0x21, 0x2d, 0x2d, - 0x20, 0x65, 0x6e, 0x64, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x3c, - 0x62, 0x72, 0x20, 0x2f, 0x3e, 0x0d, 0x0a, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, - 0x73, 0x7c, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x26, 0x71, - 0x75, 0x6f, 0x74, 0x3b, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x3c, 0x62, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6c, 0x65, 0x26, 0x71, 0x75, 0x6f, 0x74, - 0x3b, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x20, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x3c, - 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x69, 0x65, 0x76, - 0x65, 0x73, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x6d, 0x61, 0x72, - 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x6c, 0x79, 0x29, 0x2e, 0x0a, 0x0a, 0x54, - 0x68, 0x65, 0x20, 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x6d, 0x75, - 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, - 0x0a, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x73, 0x72, 0x74, 0x75, 0x67, - 0x75, 0xc3, 0xaa, 0x73, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, - 0x0d, 0x0a, 0x61, 0x74, 0x74, 0x6f, 0x72, 0x6e, 0x65, 0x79, 0x65, 0x6d, 0x70, - 0x68, 0x61, 0x73, 0x69, 0x73, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x73, - 0x66, 0x61, 0x6e, 0x63, 0x79, 0x62, 0x6f, 0x78, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x27, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x65, 0x64, 0x3d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x70, 0x78, 0x3b, 0x66, - 0x6f, 0x6e, 0x74, 0x2d, 0x20, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x6a, - 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x73, 0x62, 0x65, 0x6c, 0x69, 0x65, 0x76, - 0x65, 0x64, 0x76, 0x61, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x6f, - 0x6d, 0x70, 0x73, 0x6f, 0x6e, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x30, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x3c, 0x2f, 0x74, 0x62, 0x6f, 0x64, 0x79, - 0x3e, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, 0x78, 0x0a, - 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, - 0x65, 0x20, 0x3c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x73, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x20, 0x4f, 0x63, 0x74, 0x6f, - 0x62, 0x65, 0x72, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x20, 0x65, 0x78, - 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x73, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x6f, 0x6e, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x6d, 0x61, 0x72, 0x79, 0x6c, 0x61, 0x6e, 0x64, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, - 0x63, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x63, 0x74, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x61, - 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, - 0x67, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x73, 0x26, 0x71, - 0x75, 0x6f, 0x74, 0x3b, 0x29, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x62, 0x6f, 0x78, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x73, 0x70, 0x72, - 0x65, 0x67, 0x6e, 0x61, 0x6e, 0x74, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, - 0x77, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x69, 0x63, 0x6f, 0x6e, - 0x2e, 0x70, 0x6e, 0x67, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x63, - 0x6f, 0x64, 0x65, 0x62, 0x61, 0x73, 0x65, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x22, 0x3e, 0x67, 0x61, 0x6d, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x75, 0x63, - 0x68, 0x20, 0x61, 0x73, 0x20, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, - 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x6f, - 0x75, 0x72, 0x69, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x74, 0x6f, - 0x70, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x2e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, - 0x3e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3d, 0x22, 0x32, 0x6c, 0x61, 0x7a, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x6e, - 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x22, 0x3e, 0x0a, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f, - 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3a, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x22, 0x20, 0x26, 0x6c, 0x74, 0x3b, - 0x21, 0x2d, 0x2d, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x2f, - 0x6a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x3c, 0x2f, 0x66, 0x6f, 0x72, 0x6d, - 0x3e, 0x0a, 0x28, 0xe7, 0xae, 0x80, 0xe4, 0xbd, 0x93, 0x29, 0x28, 0xe7, 0xb9, - 0x81, 0xe9, 0xab, 0x94, 0x29, 0x68, 0x72, 0x76, 0x61, 0x74, 0x73, 0x6b, 0x69, - 0x69, 0x74, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x6f, 0x72, 0x6f, 0x6d, 0xc3, 0xa2, - 0x6e, 0xc4, 0x83, 0x74, 0xc3, 0xbc, 0x72, 0x6b, 0xc3, 0xa7, 0x65, 0xd8, 0xa7, - 0xd8, 0xb1, 0xd8, 0xaf, 0xd9, 0x88, 0x74, 0x61, 0x6d, 0x62, 0x69, 0xc3, 0xa9, - 0x6e, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x69, 0x61, 0x73, 0x6d, 0x65, 0x6e, 0x73, - 0x61, 0x6a, 0x65, 0x73, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x73, 0x64, - 0x65, 0x72, 0x65, 0x63, 0x68, 0x6f, 0x73, 0x6e, 0x61, 0x63, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x69, 0x6f, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x63, 0x74, 0x6f, 0x75, 0x73, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x73, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x61, 0x67, 0x6f, 0x62, 0x69, 0x65, - 0x72, 0x6e, 0x6f, 0x65, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x61, 0x73, 0x61, 0x6e, - 0x75, 0x6e, 0x63, 0x69, 0x6f, 0x73, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x69, - 0x61, 0x63, 0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61, 0x64, 0x65, 0x73, 0x70, - 0x75, 0xc3, 0xa9, 0x73, 0x64, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x73, 0x70, - 0x72, 0x6f, 0x79, 0x65, 0x63, 0x74, 0x6f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x6f, 0x70, 0xc3, 0xba, 0x62, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x6f, 0x73, - 0x6f, 0x74, 0x72, 0x6f, 0x73, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6d, 0x69, 0x6c, 0x6c, 0x6f, - 0x6e, 0x65, 0x73, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x70, 0x72, - 0x65, 0x67, 0x75, 0x6e, 0x74, 0x61, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, - 0x72, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x62, - 0x6c, 0x65, 0x6d, 0x61, 0x73, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x67, 0x6f, 0x6e, - 0x75, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x73, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0xc3, - 0xb3, 0x6e, 0x69, 0x6d, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x72, 0x6d, 0x69, 0x65, - 0x6e, 0x74, 0x72, 0x61, 0x73, 0x61, 0x6d, 0xc3, 0xa9, 0x72, 0x69, 0x63, 0x61, - 0x76, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x6f, 0x72, 0x73, 0x6f, 0x63, 0x69, 0x65, - 0x64, 0x61, 0x64, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x65, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x72, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x6f, 0x70, 0x61, 0x6c, 0x61, 0x62, 0x72, 0x61, 0x73, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0xc3, 0xa9, 0x73, 0x65, 0x6e, 0x74, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x65, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x6d, 0x69, 0x65, 0x6d, 0x62, 0x72, - 0x6f, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x64, 0x63, 0xc3, 0xb3, - 0x72, 0x64, 0x6f, 0x62, 0x61, 0x7a, 0x61, 0x72, 0x61, 0x67, 0x6f, 0x7a, 0x61, - 0x70, 0xc3, 0xa1, 0x67, 0x69, 0x6e, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x6c, 0x65, 0x73, 0x62, 0x6c, 0x6f, 0x71, 0x75, 0x65, 0x61, 0x72, 0x67, 0x65, - 0x73, 0x74, 0x69, 0xc3, 0xb3, 0x6e, 0x61, 0x6c, 0x71, 0x75, 0x69, 0x6c, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6d, 0x61, 0x73, 0x63, 0x69, 0x65, 0x6e, - 0x63, 0x69, 0x61, 0x73, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x6f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x61, 0x65, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6f, 0x73, 0x70, 0xc3, 0xba, - 0x62, 0x6c, 0x69, 0x63, 0x61, 0x6f, 0x62, 0x6a, 0x65, 0x74, 0x69, 0x76, 0x6f, - 0x61, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x65, 0x62, 0x75, 0x73, 0x63, 0x61, - 0x64, 0x6f, 0x72, 0x63, 0x61, 0x6e, 0x74, 0x69, 0x64, 0x61, 0x64, 0x65, 0x6e, - 0x74, 0x72, 0x61, 0x64, 0x61, 0x73, 0x61, 0x63, 0x63, 0x69, 0x6f, 0x6e, 0x65, - 0x73, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x6f, 0x73, 0x73, 0x75, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x72, 0x6d, 0x61, 0x79, 0x6f, 0x72, 0xc3, 0xad, 0x61, 0x61, - 0x6c, 0x65, 0x6d, 0x61, 0x6e, 0x69, 0x61, 0x66, 0x75, 0x6e, 0x63, 0x69, 0xc3, - 0xb3, 0x6e, 0xc3, 0xba, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x73, 0x68, 0x61, 0x63, - 0x69, 0x65, 0x6e, 0x64, 0x6f, 0x61, 0x71, 0x75, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x65, 0x64, 0x69, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x66, 0x65, 0x72, 0x6e, 0x61, - 0x6e, 0x64, 0x6f, 0x61, 0x6d, 0x62, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x66, 0x61, - 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x6e, 0x75, 0x65, 0x73, 0x74, 0x72, 0x61, - 0x73, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x73, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x6f, 0x73, 0x62, 0x61, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x65, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x61, 0x72, 0x63, 0x6f, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x6f, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x61, 0x72, 0x63, 0x6f, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x6f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x6a, 0xc3, 0xb3, 0x76, 0x65, - 0x6e, 0x65, 0x73, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x74, 0x6f, 0x74, 0xc3, - 0xa9, 0x63, 0x6e, 0x69, 0x63, 0x61, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x74, - 0x6f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0xc3, 0xad, 0x61, 0x74, 0x72, 0x61, 0x62, - 0x61, 0x6a, 0x61, 0x72, 0x61, 0x73, 0x74, 0x75, 0x72, 0x69, 0x61, 0x73, 0x72, - 0x65, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, - 0x61, 0x72, 0x62, 0x6f, 0x6c, 0x65, 0x74, 0xc3, 0xad, 0x6e, 0x73, 0x61, 0x6c, - 0x76, 0x61, 0x64, 0x6f, 0x72, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x61, - 0x74, 0x72, 0x61, 0x62, 0x61, 0x6a, 0x6f, 0x73, 0x70, 0x72, 0x69, 0x6d, 0x65, - 0x72, 0x6f, 0x73, 0x6e, 0x65, 0x67, 0x6f, 0x63, 0x69, 0x6f, 0x73, 0x6c, 0x69, - 0x62, 0x65, 0x72, 0x74, 0x61, 0x64, 0x64, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x65, - 0x73, 0x70, 0x61, 0x6e, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x70, 0x72, 0xc3, 0xb3, - 0x78, 0x69, 0x6d, 0x6f, 0x61, 0x6c, 0x6d, 0x65, 0x72, 0xc3, 0xad, 0x61, 0x61, - 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x65, 0x73, 0x71, 0x75, 0x69, 0xc3, 0xa9, 0x6e, - 0x65, 0x73, 0x63, 0x6f, 0x72, 0x61, 0x7a, 0xc3, 0xb3, 0x6e, 0x73, 0x65, 0x63, - 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x62, 0x75, 0x73, 0x63, 0x61, 0x6e, 0x64, 0x6f, - 0x6f, 0x70, 0x63, 0x69, 0x6f, 0x6e, 0x65, 0x73, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x69, 0x6f, 0x72, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x74, 0x6f, - 0x64, 0x61, 0x76, 0xc3, 0xad, 0x61, 0x67, 0x61, 0x6c, 0x65, 0x72, 0xc3, 0xad, - 0x61, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x69, - 0x63, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x69, 0x61, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x61, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x6f, 0x73, 0x63, 0x72, 0xc3, 0xad, 0x74, 0x69, 0x63, 0x61, 0x64, 0xc3, 0xb3, - 0x6c, 0x61, 0x72, 0x65, 0x73, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x63, 0x69, 0x61, - 0x64, 0x65, 0x62, 0x65, 0x72, 0xc3, 0xa1, 0x6e, 0x70, 0x65, 0x72, 0xc3, 0xad, - 0x6f, 0x64, 0x6f, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x69, 0x74, 0x61, 0x6d, 0x61, - 0x6e, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x70, 0x65, 0x71, 0x75, 0x65, 0xc3, 0xb1, - 0x6f, 0x72, 0x65, 0x63, 0x69, 0x62, 0x69, 0x64, 0x61, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x6e, 0x61, 0x6c, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x66, 0x65, 0x63, - 0x61, 0x6e, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x69, - 0x61, 0x73, 0x64, 0x65, 0x73, 0x63, 0x61, 0x72, 0x67, 0x61, 0x64, 0x69, 0x76, - 0x65, 0x72, 0x73, 0x6f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x63, 0x61, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x65, 0x72, 0x65, 0x74, 0xc3, 0xa9, 0x63, 0x6e, - 0x69, 0x63, 0x6f, 0x64, 0x65, 0x62, 0x65, 0x72, 0xc3, 0xad, 0x61, 0x76, 0x69, - 0x76, 0x69, 0x65, 0x6e, 0x64, 0x61, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x7a, 0x61, - 0x73, 0x61, 0x64, 0x65, 0x6c, 0x61, 0x6e, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, - 0x69, 0x6f, 0x6e, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6a, 0x6f, 0x73, 0x64, - 0x69, 0x66, 0xc3, 0xad, 0x63, 0x69, 0x6c, 0x63, 0x69, 0x75, 0x64, 0x61, 0x64, - 0x65, 0x73, 0x61, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x61, 0x73, 0x61, 0x76, 0x61, - 0x6e, 0x7a, 0x61, 0x64, 0x61, 0x74, 0xc3, 0xa9, 0x72, 0x6d, 0x69, 0x6e, 0x6f, - 0x75, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x65, 0x73, 0x73, 0xc3, 0xa1, 0x6e, 0x63, - 0x68, 0x65, 0x7a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0xc3, 0xb1, 0x61, 0x73, 0x6f, - 0x66, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x72, 0x65, 0x76, 0x69, 0x73, 0x74, 0x61, - 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x65, 0x73, 0x6d, 0x6f, 0x6d, 0x65, 0x6e, 0x74, 0x6f, 0x73, 0x66, - 0x61, 0x63, 0x75, 0x6c, 0x74, 0x61, 0x64, 0x63, 0x72, 0xc3, 0xa9, 0x64, 0x69, - 0x74, 0x6f, 0x64, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x73, 0x73, 0x75, 0x70, - 0x75, 0x65, 0x73, 0x74, 0x6f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x67, 0x75, 0x6e, 0x64, 0x6f, 0x73, 0x70, 0x65, 0x71, 0x75, 0x65, - 0xc3, 0xb1, 0x61, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb0, 0xd0, 0xb5, - 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xb8, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x82, 0xd1, - 0x8c, 0xd0, 0xb1, 0xd1, 0x8b, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, 0xb1, 0xd1, 0x8b, - 0xd1, 0x82, 0xd1, 0x8c, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, - 0x95, 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb3, - 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xb5, 0xd0, 0xbd, 0xd1, 0x8f, 0xd0, 0xb2, 0xd1, - 0x81, 0xd0, 0xb5, 0xd1, 0x85, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb9, - 0xd0, 0xb4, 0xd0, 0xb0, 0xd0, 0xb6, 0xd0, 0xb5, 0xd0, 0xb1, 0xd1, 0x8b, 0xd0, - 0xbb, 0xd0, 0xb8, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xb4, 0xd1, 0x83, 0xd0, 0xb4, - 0xd0, 0xb5, 0xd0, 0xbd, 0xd1, 0x8c, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, - 0x82, 0xd0, 0xb1, 0xd1, 0x8b, 0xd0, 0xbb, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xb5, - 0xd0, 0xb1, 0xd1, 0x8f, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb8, 0xd0, 0xbd, 0xd1, - 0x81, 0xd0, 0xb5, 0xd0, 0xb1, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xb4, - 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xb0, 0xd0, 0xb9, 0xd1, 0x82, 0xd1, 0x84, 0xd0, - 0xbe, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, 0xbe, - 0xd1, 0x81, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb8, 0xd1, 0x81, 0xd0, 0xb2, 0xd0, - 0xbe, 0xd0, 0xb9, 0xd0, 0xb8, 0xd0, 0xb3, 0xd1, 0x80, 0xd1, 0x8b, 0xd1, 0x82, - 0xd0, 0xbe, 0xd0, 0xb6, 0xd0, 0xb5, 0xd0, 0xb2, 0xd1, 0x81, 0xd0, 0xb5, 0xd0, - 0xbc, 0xd1, 0x81, 0xd0, 0xb2, 0xd0, 0xbe, 0xd1, 0x8e, 0xd0, 0xbb, 0xd0, 0xb8, - 0xd1, 0x88, 0xd1, 0x8c, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xb8, 0xd1, 0x85, 0xd0, - 0xbf, 0xd0, 0xbe, 0xd0, 0xba, 0xd0, 0xb0, 0xd0, 0xb4, 0xd0, 0xbd, 0xd0, 0xb5, - 0xd0, 0xb9, 0xd0, 0xb4, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xb0, 0xd0, 0xbc, 0xd0, - 0xb8, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbb, 0xd0, 0xb8, 0xd0, 0xb1, 0xd0, 0xbe, - 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbc, 0xd1, 0x83, 0xd1, 0x85, 0xd0, 0xbe, 0xd1, - 0x82, 0xd1, 0x8f, 0xd0, 0xb4, 0xd0, 0xb2, 0xd1, 0x83, 0xd1, 0x85, 0xd1, 0x81, - 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xbb, 0xd1, 0x8e, 0xd0, 0xb4, 0xd0, - 0xb8, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xb8, - 0xd1, 0x80, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xb1, 0xd1, 0x8f, 0xd1, - 0x81, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb5, 0xd0, 0xb2, 0xd0, 0xb8, 0xd0, 0xb4, - 0xd0, 0xb5, 0xd1, 0x87, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, 0xbe, 0xd1, 0x8d, 0xd1, - 0x82, 0xd0, 0xb8, 0xd0, 0xbc, 0xd1, 0x81, 0xd1, 0x87, 0xd0, 0xb5, 0xd1, 0x82, - 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbc, 0xd1, 0x8b, 0xd1, 0x86, 0xd0, 0xb5, 0xd0, - 0xbd, 0xd1, 0x8b, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xbb, 0xd0, 0xb2, - 0xd0, 0xb5, 0xd0, 0xb4, 0xd1, 0x8c, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, - 0xb5, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb4, 0xd1, 0x8b, 0xd1, 0x82, 0xd0, 0xb5, - 0xd0, 0xb1, 0xd0, 0xb5, 0xd0, 0xb2, 0xd1, 0x8b, 0xd1, 0x88, 0xd0, 0xb5, 0xd0, - 0xbd, 0xd0, 0xb0, 0xd0, 0xbc, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xbf, - 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xbc, 0xd1, 0x83, 0xd0, 0xbf, 0xd1, - 0x80, 0xd0, 0xb0, 0xd0, 0xb2, 0xd0, 0xbb, 0xd0, 0xb8, 0xd1, 0x86, 0xd0, 0xb0, - 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, - 0xb4, 0xd1, 0x8b, 0xd0, 0xb7, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x8e, 0xd0, 0xbc, - 0xd0, 0xbe, 0xd0, 0xb3, 0xd1, 0x83, 0xd0, 0xb4, 0xd1, 0x80, 0xd1, 0x83, 0xd0, - 0xb3, 0xd0, 0xb2, 0xd1, 0x81, 0xd0, 0xb5, 0xd0, 0xb9, 0xd0, 0xb8, 0xd0, 0xb4, - 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xba, 0xd0, 0xb8, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, - 0xbe, 0xd0, 0xb4, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbb, - 0xd0, 0xb0, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbb, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, - 0x80, 0xd0, 0xbe, 0xd0, 0xba, 0xd0, 0xb8, 0xd1, 0x8e, 0xd0, 0xbd, 0xd1, 0x8f, - 0xd0, 0xb2, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x8c, 0xd0, 0x95, 0xd1, 0x81, 0xd1, - 0x82, 0xd1, 0x8c, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb7, 0xd0, 0xb0, 0xd0, 0xbd, - 0xd0, 0xb0, 0xd1, 0x88, 0xd0, 0xb8, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x84, 0xd9, - 0x87, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xaa, 0xd9, 0x8a, 0xd8, 0xac, 0xd9, 0x85, - 0xd9, 0x8a, 0xd8, 0xb9, 0xd8, 0xae, 0xd8, 0xa7, 0xd8, 0xb5, 0xd8, 0xa9, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xb0, 0xd9, 0x8a, 0xd8, 0xb9, 0xd9, 0x84, 0xd9, 0x8a, - 0xd9, 0x87, 0xd8, 0xac, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xa2, 0xd9, 0x86, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd8, 0xaf, - 0xd8, 0xaa, 0xd8, 0xad, 0xd9, 0x83, 0xd9, 0x85, 0xd8, 0xb5, 0xd9, 0x81, 0xd8, - 0xad, 0xd8, 0xa9, 0xd9, 0x83, 0xd8, 0xa7, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xa7, - 0xd9, 0x84, 0xd9, 0x84, 0xd9, 0x8a, 0xd9, 0x8a, 0xd9, 0x83, 0xd9, 0x88, 0xd9, - 0x86, 0xd8, 0xb4, 0xd8, 0xa8, 0xd9, 0x83, 0xd8, 0xa9, 0xd9, 0x81, 0xd9, 0x8a, - 0xd9, 0x87, 0xd8, 0xa7, 0xd8, 0xa8, 0xd9, 0x86, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, - 0xad, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xa1, 0xd8, 0xa3, 0xd9, 0x83, 0xd8, 0xab, - 0xd8, 0xb1, 0xd8, 0xae, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xad, 0xd8, 0xa8, 0xd8, 0xaf, 0xd9, 0x84, 0xd9, 0x8a, 0xd9, 0x84, - 0xd8, 0xaf, 0xd8, 0xb1, 0xd9, 0x88, 0xd8, 0xb3, 0xd8, 0xa7, 0xd8, 0xb6, 0xd8, - 0xba, 0xd8, 0xb7, 0xd8, 0xaa, 0xd9, 0x83, 0xd9, 0x88, 0xd9, 0x86, 0xd9, 0x87, - 0xd9, 0x86, 0xd8, 0xa7, 0xd9, 0x83, 0xd8, 0xb3, 0xd8, 0xa7, 0xd8, 0xad, 0xd8, - 0xa9, 0xd9, 0x86, 0xd8, 0xa7, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xb7, 0xd8, 0xa8, 0xd8, 0xb9, 0xd9, 0x84, 0xd9, 0x8a, 0xd9, 0x83, 0xd8, - 0xb4, 0xd9, 0x83, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x8a, 0xd9, 0x85, 0xd9, 0x83, - 0xd9, 0x86, 0xd9, 0x85, 0xd9, 0x86, 0xd9, 0x87, 0xd8, 0xa7, 0xd8, 0xb4, 0xd8, - 0xb1, 0xd9, 0x83, 0xd8, 0xa9, 0xd8, 0xb1, 0xd8, 0xa6, 0xd9, 0x8a, 0xd8, 0xb3, - 0xd9, 0x86, 0xd8, 0xb4, 0xd9, 0x8a, 0xd8, 0xb7, 0xd9, 0x85, 0xd8, 0xa7, 0xd8, - 0xb0, 0xd8, 0xa7, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x81, 0xd9, 0x86, 0xd8, 0xb4, - 0xd8, 0xa8, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xaa, 0xd8, 0xb9, 0xd8, 0xa8, 0xd8, - 0xb1, 0xd8, 0xb1, 0xd8, 0xad, 0xd9, 0x85, 0xd8, 0xa9, 0xd9, 0x83, 0xd8, 0xa7, - 0xd9, 0x81, 0xd8, 0xa9, 0xd9, 0x8a, 0xd9, 0x82, 0xd9, 0x88, 0xd9, 0x84, 0xd9, - 0x85, 0xd8, 0xb1, 0xd9, 0x83, 0xd8, 0xb2, 0xd9, 0x83, 0xd9, 0x84, 0xd9, 0x85, - 0xd8, 0xa9, 0xd8, 0xa3, 0xd8, 0xad, 0xd9, 0x85, 0xd8, 0xaf, 0xd9, 0x82, 0xd9, - 0x84, 0xd8, 0xa8, 0xd9, 0x8a, 0xd9, 0x8a, 0xd8, 0xb9, 0xd9, 0x86, 0xd9, 0x8a, - 0xd8, 0xb5, 0xd9, 0x88, 0xd8, 0xb1, 0xd8, 0xa9, 0xd8, 0xb7, 0xd8, 0xb1, 0xd9, - 0x8a, 0xd9, 0x82, 0xd8, 0xb4, 0xd8, 0xa7, 0xd8, 0xb1, 0xd9, 0x83, 0xd8, 0xac, - 0xd9, 0x88, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa3, 0xd8, 0xae, 0xd8, 0xb1, 0xd9, - 0x89, 0xd9, 0x85, 0xd8, 0xb9, 0xd9, 0x86, 0xd8, 0xa7, 0xd8, 0xa7, 0xd8, 0xa8, - 0xd8, 0xad, 0xd8, 0xab, 0xd8, 0xb9, 0xd8, 0xb1, 0xd9, 0x88, 0xd8, 0xb6, 0xd8, - 0xa8, 0xd8, 0xb4, 0xd9, 0x83, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb3, 0xd8, 0xac, - 0xd9, 0x84, 0xd8, 0xa8, 0xd9, 0x86, 0xd8, 0xa7, 0xd9, 0x86, 0xd8, 0xae, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xaf, 0xd9, 0x83, 0xd8, 0xaa, 0xd8, 0xa7, 0xd8, 0xa8, - 0xd9, 0x83, 0xd9, 0x84, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa8, 0xd8, 0xaf, 0xd9, - 0x88, 0xd9, 0x86, 0xd8, 0xa3, 0xd9, 0x8a, 0xd8, 0xb6, 0xd8, 0xa7, 0xd9, 0x8a, - 0xd9, 0x88, 0xd8, 0xac, 0xd8, 0xaf, 0xd9, 0x81, 0xd8, 0xb1, 0xd9, 0x8a, 0xd9, - 0x82, 0xd9, 0x83, 0xd8, 0xaa, 0xd8, 0xa8, 0xd8, 0xaa, 0xd8, 0xa3, 0xd9, 0x81, - 0xd8, 0xb6, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb7, 0xd8, 0xa8, 0xd8, 0xae, 0xd8, - 0xa7, 0xd9, 0x83, 0xd8, 0xab, 0xd8, 0xb1, 0xd8, 0xa8, 0xd8, 0xa7, 0xd8, 0xb1, - 0xd9, 0x83, 0xd8, 0xa7, 0xd9, 0x81, 0xd8, 0xb6, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, - 0xad, 0xd9, 0x84, 0xd9, 0x89, 0xd9, 0x86, 0xd9, 0x81, 0xd8, 0xb3, 0xd9, 0x87, - 0xd8, 0xa3, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xb1, 0xd8, 0xaf, 0xd9, - 0x88, 0xd8, 0xaf, 0xd8, 0xa3, 0xd9, 0x86, 0xd9, 0x87, 0xd8, 0xa7, 0xd8, 0xaf, - 0xd9, 0x8a, 0xd9, 0x86, 0xd8, 0xa7, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, - 0x86, 0xd9, 0x85, 0xd8, 0xb9, 0xd8, 0xb1, 0xd8, 0xb6, 0xd8, 0xaa, 0xd8, 0xb9, - 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xaf, 0xd8, 0xa7, 0xd8, 0xae, 0xd9, 0x84, 0xd9, - 0x85, 0xd9, 0x85, 0xd9, 0x83, 0xd9, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, - 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x07, 0x06, 0x05, 0x04, 0x03, - 0x02, 0x01, 0x00, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0f, 0x0e, - 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x10, 0x18, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x1f, 0x1f, 0x1e, 0x1d, 0x1c, 0x1b, 0x1a, 0x19, 0x18, 0xff, - 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, - 0x07, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x44, - 0x54, 0x44, 0x2f, 0x78, 0x68, 0x74, 0x6d, 0x6c, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x69, 0x6e, 0x67, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, - 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x61, 0x64, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x3c, 0x2f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3e, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, - 0x6c, 0x69, 0x61, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, - 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x69, 0x6c, 0x79, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x61, 0x6e, 0x6f, - 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x65, 0x73, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x70, 0x6f, 0x74, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x65, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x61, 0x72, 0x79, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x65, 0x78, 0x63, - 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x3c, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x3e, 0x0d, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x79, 0x7d, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x73, 0x6f, 0x6c, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x6f, 0x75, - 0x73, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x26, 0x72, 0x61, 0x71, 0x75, 0x6f, 0x3b, 0x3c, 0x2f, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x6c, 0x79, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, - 0x62, 0x65, 0x61, 0x75, 0x74, 0x69, 0x66, 0x75, 0x6c, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x65, - 0x64, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x70, 0x72, 0x6f, - 0x6d, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x4e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x28, 0x29, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x75, - 0x6e, 0x63, 0x65, 0x64, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x0a, - 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x6c, 0x65, 0x73, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, - 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x74, 0x65, 0x72, 0x72, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, - 0x61, 0x6d, 0x65, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x69, 0x73, 0x6d, 0x74, - 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x6c, 0x73, 0x65, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x41, 0x6c, 0x65, 0x78, 0x61, 0x6e, 0x64, 0x65, 0x72, - 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x6d, 0x61, 0x74, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x73, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x61, 0x66, 0x66, - 0x69, 0x6c, 0x69, 0x61, 0x74, 0x65, 0x3c, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x3e, 0x74, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x6f, - 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x62, 0x69, 0x6f, 0x67, 0x72, - 0x61, 0x70, 0x68, 0x79, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x6e, - 0xc3, 0xa7, 0x61, 0x69, 0x73, 0x48, 0x6f, 0x6c, 0x6c, 0x79, 0x77, 0x6f, 0x6f, - 0x64, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x73, 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x3e, 0x0a, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x72, 0x65, 0x64, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x6f, - 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x75, 0x73, 0x69, 0x6e, - 0x65, 0x73, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, - 0x3e, 0x0a, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x65, 0x64, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x65, - 0x64, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x6c, 0x64, 0x77, 0x69, 0x64, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x6e, 0x65, - 0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x3e, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x6c, - 0x69, 0x6b, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x73, 0x73, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x3d, 0x22, 0x2f, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, - 0x64, 0x45, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x61, 0x72, - 0x73, 0x65, 0x49, 0x6e, 0x74, 0x28, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x75, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x3c, 0x2f, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x4e, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x65, - 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x65, 0x72, 0x66, 0x6f, - 0x72, 0x6d, 0x65, 0x64, 0x74, 0x77, 0x6f, 0x20, 0x79, 0x65, 0x61, 0x72, 0x73, - 0x53, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x66, 0x6f, 0x72, 0x65, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x22, - 0x3e, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x20, - 0x6f, 0x66, 0x70, 0x65, 0x72, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x74, 0x72, - 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, - 0x61, 0x72, 0x79, 0x70, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x79, 0x65, 0x64, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6c, 0x69, 0x7a, 0x61, - 0x62, 0x65, 0x74, 0x68, 0x3c, 0x2f, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x3e, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x69, 0x6e, 0x73, 0x75, - 0x72, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x3b, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6f, - 0x67, 0x72, 0x61, 0x70, 0x68, 0x79, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x6f, - 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x65, 0x64, 0x3c, - 0x2f, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x3e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x72, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x6f, 0x75, 0x73, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x73, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6e, 0x6f, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x63, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x79, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x3b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, - 0x70, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x69, 0x74, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x65, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x70, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x73, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x46, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x6d, 0x6f, 0x63, 0x72, 0x61, 0x63, - 0x79, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x73, 0x75, 0x66, 0x66, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x63, 0x6f, - 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x73, - 0x61, 0x69, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x69, 0x74, 0x20, 0x6d, 0x61, - 0x79, 0x20, 0x62, 0x65, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x3c, 0x2f, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x3c, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3e, 0x0a, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, - 0x20, 0x30, 0x73, 0x70, 0x69, 0x72, 0x69, 0x74, 0x75, 0x61, 0x6c, 0x3c, 0x2f, - 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x6f, 0x66, 0x74, 0x67, 0x72, 0x61, 0x64, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x64, - 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x65, 0x64, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x63, 0x61, 0x6d, 0x65, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, - 0x6a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x6a, 0x73, 0x68, 0x6f, 0x75, 0x73, - 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, - 0x64, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x6c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x79, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, - 0x65, 0x64, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x63, - 0x65, 0x6e, 0x74, 0x75, 0x72, 0x69, 0x65, 0x73, 0x4a, 0x61, 0x70, 0x61, 0x6e, - 0x65, 0x73, 0x65, 0x20, 0x61, 0x6d, 0x6f, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x73, 0x72, 0x65, 0x62, 0x65, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x75, 0x6e, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x72, 0x61, - 0x67, 0x65, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x69, 0x6e, - 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x6c, 0x74, 0x68, - 0x6f, 0x75, 0x67, 0x68, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, - 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x65, 0x64, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, - 0x64, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x46, 0x65, 0x62, - 0x72, 0x75, 0x61, 0x72, 0x79, 0x20, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x6f, 0x75, - 0x73, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x65, 0x78, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x6e, 0x74, 0x63, - 0x6f, 0x6c, 0x73, 0x70, 0x61, 0x6e, 0x3d, 0x22, 0x74, 0x65, 0x63, 0x68, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x6e, 0x65, 0x61, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x20, 0x6f, 0x66, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x48, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x46, 0x61, - 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x65, 0x20, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x65, 0x6c, - 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x66, 0x66, 0x65, 0x6e, 0x73, - 0x69, 0x76, 0x65, 0x3c, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x3e, 0x0a, 0x09, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x6f, 0x72, 0x65, 0x64, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x6f, 0x72, 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x74, 0x68, 0x6f, 0x73, - 0x65, 0x20, 0x77, 0x68, 0x6f, 0x6d, 0x6f, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x64, 0x69, 0x66, - 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x64, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x63, 0x6f, - 0x6e, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6e, 0x67, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x2e, - 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x69, 0x63, 0x61, 0x6c, 0x63, 0x6f, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x64, 0x65, 0x63, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x65, 0x76, 0x6f, - 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x22, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x6f, 0x61, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x65, 0x64, 0x2d, 0x2d, 0x3e, 0x0d, 0x0a, 0x3c, 0x21, 0x2d, 0x2d, 0x41, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x66, 0x75, 0x72, 0x6e, - 0x69, 0x74, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x20, 0x20, 0x6f, 0x6e, 0x62, 0x6c, 0x75, 0x72, 0x3d, 0x22, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x4d, 0x6f, - 0x72, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x62, 0x6f, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x77, - 0x65, 0x72, 0x65, 0x20, 0x6d, 0x61, 0x64, 0x65, 0x65, 0x6d, 0x6f, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, - 0x6e, 0x61, 0x72, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x61, 0x64, 0x76, 0x6f, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x64, 0x69, 0x72, - 0x3d, 0x22, 0x6c, 0x74, 0x72, 0x22, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x73, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x20, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x73, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x53, 0x65, 0x70, 0x74, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x61, 0x64, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, - 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x20, 0x73, 0x75, 0x67, 0x67, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x61, 0x74, 0x65, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x65, 0x6c, 0x61, - 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x6d, 0x65, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x63, 0x65, - 0x72, 0x74, 0x61, 0x69, 0x6e, 0x6c, 0x79, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x4a, - 0x65, 0x72, 0x75, 0x73, 0x61, 0x6c, 0x65, 0x6d, 0x74, 0x68, 0x65, 0x79, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x6e, 0x63, 0x65, 0x73, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, - 0x65, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x72, 0x65, 0x63, - 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x70, 0x78, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x74, 0x68, - 0x65, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x75, 0x72, 0x57, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x65, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x62, 0x65, 0x67, 0x61, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x20, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, - 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x6d, 0x75, 0x73, 0x74, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x6c, 0x79, 0x6f, 0x63, - 0x63, 0x75, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x3c, 0x2f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x3e, 0x3c, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x6b, 0x69, 0x6e, 0x64, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x63, 0x69, 0x65, 0x74, 0x69, 0x65, - 0x73, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x69, 0x64, 0x65, 0x20, 0x2d, 0x2d, - 0x26, 0x67, 0x74, 0x3b, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x77, 0x65, - 0x73, 0x74, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x75, 0x6e, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x28, 0x73, - 0x70, 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x22, 0x20, 0x68, 0x72, 0x65, - 0x66, 0x3d, 0x22, 0x2f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x65, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x65, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x62, 0x75, 0x72, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x61, 0x20, 0x73, - 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x74, 0x68, 0x65, 0x79, 0x20, 0x77, 0x65, - 0x72, 0x65, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0x3c, 0x2f, 0x4e, 0x6f, - 0x72, 0x77, 0x65, 0x67, 0x69, 0x61, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x69, 0x6e, 0x67, 0x70, - 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x28, 0x6e, 0x65, 0x77, 0x20, - 0x44, 0x61, 0x74, 0x65, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, - 0x66, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x65, 0x71, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x72, 0x65, 0x67, - 0x75, 0x6c, 0x61, 0x72, 0x6c, 0x79, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6c, 0x69, - 0x6e, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x70, 0x68, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x6e, 0x61, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x20, 0x6f, 0x66, 0x74, - 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x22, 0x3e, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x66, 0x41, 0x6d, 0x6f, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x41, 0x69, 0x72, - 0x20, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, - 0x6f, 0x66, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x69, 0x6d, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x74, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x63, - 0x6f, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x65, 0x64, 0x61, 0x72, 0x65, 0x20, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, - 0x67, 0x72, 0x6f, 0x77, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, - 0x20, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x6d, 0x6f, 0x6c, - 0x65, 0x63, 0x75, 0x6c, 0x65, 0x73, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x69, - 0x73, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x74, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x68, - 0x6f, 0x6f, 0x64, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x64, 0x64, - 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x73, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x6f, 0x72, 0x65, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x20, 0x6f, 0x66, - 0x66, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x66, - 0x6c, 0x69, 0x63, 0x74, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x70, 0x3e, - 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x77, 0x65, 0x72, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x6e, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x69, 0x61, 0x6e, 0x73, - 0x64, 0x65, 0x6c, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x70, 0x72, 0x69, 0x73, - 0x6f, 0x6e, 0x65, 0x72, 0x73, 0x61, 0x64, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x66, 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x21, 0x5b, - 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b, 0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x63, 0x74, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x20, 0x62, 0x67, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x70, 0x65, 0x72, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x64, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, - 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x6f, 0x66, 0x66, 0x69, - 0x63, 0x69, 0x61, 0x6c, 0x73, 0x73, 0x65, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x6c, - 0x79, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x6c, 0x6f, 0x6e, 0x67, 0x2d, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x75, 0x63, 0x68, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x62, 0x79, 0x3c, 0x2f, 0x62, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x3e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x62, 0x75, 0x74, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x73, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, 0x21, 0x2d, - 0x2d, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x57, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x77, - 0x61, 0x73, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x56, 0x65, 0x6e, 0x65, 0x7a, - 0x75, 0x65, 0x6c, 0x61, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x6c, 0x79, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x70, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, - 0x63, 0x66, 0x61, 0x76, 0x6f, 0x75, 0x72, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6b, 0x69, 0x70, 0x65, 0x64, - 0x69, 0x61, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x76, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x77, 0x61, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x73, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x61, 0x77, 0x61, 0x79, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x61, - 0x72, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x65, 0x6c, 0x79, 0x64, 0x69, 0x73, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x3e, 0x26, - 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x73, 0x6d, 0x73, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, - 0x46, 0x72, 0x69, 0x65, 0x64, 0x72, 0x69, 0x63, 0x68, 0x77, 0x61, 0x73, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x66, 0x61, 0x63, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x69, - 0x6e, 0x67, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x70, 0x68, - 0x79, 0x73, 0x69, 0x63, 0x69, 0x73, 0x74, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x20, 0x69, 0x6e, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x73, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x20, 0x74, 0x6f, - 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x73, 0x75, 0x72, 0x76, - 0x69, 0x76, 0x69, 0x6e, 0x67, 0x7d, 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x3e, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x61, 0x74, 0x68, 0x61, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x65, 0x78, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x65, 0x77, 0x61, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x61, - 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x73, 0x20, 0x6f, 0x66, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x4f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x64, 0x69, 0x73, 0x6d, - 0x69, 0x73, 0x73, 0x65, 0x64, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, - 0x74, 0x72, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x73, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x73, 0x69, - 0x76, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x67, 0x61, 0x6c, 0x6c, 0x65, 0x72, - 0x69, 0x65, 0x73, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x70, - 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x69, 0x6d, 0x67, 0x20, - 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x69, 0x6e, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x72, - 0x6e, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x20, 0x6f, 0x66, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x6e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x74, 0x68, 0x65, 0x20, 0x47, 0x72, - 0x65, 0x61, 0x74, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x73, - 0x65, 0x65, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x76, 0x69, 0x65, 0x77, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x20, 0x6f, 0x6e, - 0x69, 0x64, 0x65, 0x61, 0x20, 0x74, 0x68, 0x61, 0x74, 0x74, 0x68, 0x65, 0x20, - 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x6f, - 0x66, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x65, - 0x73, 0x65, 0x20, 0x61, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x22, 0x3e, 0x63, 0x61, 0x72, 0x65, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x6d, 0x61, - 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x20, 0x6f, 0x66, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, - 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x22, 0x3e, 0x0d, 0x0a, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x74, - 0x65, 0x6e, 0x20, 0x20, 0x7d, 0x29, 0x28, 0x29, 0x3b, 0x0d, 0x0a, 0x70, 0x72, - 0x6f, 0x62, 0x61, 0x62, 0x6c, 0x79, 0x20, 0x50, 0x72, 0x6f, 0x66, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x73, 0x61, 0x79, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x68, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x48, 0x75, 0x6e, 0x67, - 0x61, 0x72, 0x69, 0x61, 0x6e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x6f, - 0x66, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x20, 0x61, 0x73, 0x55, 0x6e, 0x69, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x66, 0x6f, - 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x69, 0x6e, 0x66, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x67, 0x72, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x68, - 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, - 0x61, 0x72, 0x22, 0x3e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x61, 0x6c, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x20, 0x6f, - 0x66, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x74, 0x6f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, - 0x63, 0x74, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x69, 0x61, 0x6e, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x6c, 0x69, 0x76, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x65, 0x61, 0x73, 0x69, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x70, - 0x72, 0x6f, 0x66, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x0a, 0x26, 0x6c, 0x74, 0x3b, - 0x21, 0x2d, 0x2d, 0x20, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x66, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x77, 0x61, 0x73, 0x20, - 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x74, 0x6f, 0x6f, 0x6b, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x62, 0x65, 0x6c, - 0x69, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x41, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x61, - 0x6e, 0x73, 0x61, 0x73, 0x20, 0x66, 0x61, 0x72, 0x20, 0x61, 0x73, 0x70, 0x72, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x3c, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x43, 0x68, 0x72, 0x69, 0x73, - 0x74, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, - 0x0a, 0x0a, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x61, 0x73, - 0x74, 0x6d, 0x61, 0x67, 0x61, 0x7a, 0x69, 0x6e, 0x65, 0x73, 0x3e, 0x3c, 0x73, - 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x3e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x20, 0x6f, 0x66, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x61, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x73, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6f, 0x77, 0x6e, - 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x61, 0x6e, 0x20, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x69, 0x62, 0x62, 0x65, 0x61, - 0x6e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x77, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x6e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x3b, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x69, 0x6e, 0x68, 0x61, 0x62, 0x69, - 0x74, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x69, 0x73, 0x74, 0x4a, - 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x20, 0x31, 0x3c, 0x2f, 0x66, 0x6f, 0x6f, - 0x74, 0x65, 0x72, 0x3e, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x6c, 0x79, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x20, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x3b, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x64, 0x65, - 0x61, 0x6c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x75, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x63, - 0x6f, 0x6e, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x2e, 0x70, 0x68, 0x70, 0x61, 0x73, 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, - 0x65, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x20, 0x69, 0x6e, 0x72, 0x65, 0x63, 0x65, - 0x6e, 0x74, 0x6c, 0x79, 0x2c, 0x66, 0x65, 0x77, 0x20, 0x79, 0x65, 0x61, 0x72, - 0x73, 0x77, 0x65, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x0a, 0x3c, 0x68, - 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x61, 0x72, 0x65, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x63, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6b, 0x65, 0x79, 0x63, 0x6f, 0x6e, 0x64, 0x65, 0x6d, 0x6e, 0x65, 0x64, 0x61, - 0x6c, 0x73, 0x6f, 0x20, 0x68, 0x61, 0x76, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6f, 0x66, - 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x74, 0x65, 0x64, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x6d, 0x69, 0x6e, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x73, 0x3c, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x3e, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, - 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x61, 0x64, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x54, - 0x68, 0x65, 0x79, 0x20, 0x77, 0x65, 0x72, 0x65, 0x61, 0x6e, 0x79, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3d, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x75, 0x63, 0x68, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x77, 0x61, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x61, 0x20, 0x74, 0x79, 0x70, 0x69, 0x63, - 0x61, 0x6c, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x79, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x6e, 0x6f, 0x74, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x77, - 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x68, 0x69, 0x72, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, - 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x20, 0x32, 0x77, 0x68, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x79, 0x61, 0x20, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, - 0x6e, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x68, - 0x69, 0x73, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, - 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x64, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x22, 0x3e, 0x0a, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x74, 0x65, 0x6e, 0x6e, 0x65, 0x73, 0x73, 0x65, - 0x65, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, - 0x20, 0x3c, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x67, 0x69, - 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x22, 0x3e, 0x70, - 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x76, 0x69, 0x65, 0x77, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2c, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x20, 0x6f, - 0x66, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x63, 0x68, 0x69, - 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, - 0x6f, 0x66, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x6c, 0x6c, 0x65, 0x67, 0x65, - 0x64, 0x6c, 0x79, 0x43, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x77, - 0x61, 0x73, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x61, 0x72, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, - 0x77, 0x61, 0x73, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x6f, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x6f, - 0x66, 0x6d, 0x61, 0x6b, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x75, 0x63, - 0x68, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, - 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x4d, 0x75, 0x73, 0x65, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x6c, 0x6f, 0x75, 0x69, 0x73, 0x69, 0x61, 0x6e, 0x61, 0x28, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x69, 0x6e, 0x6e, 0x65, - 0x73, 0x6f, 0x74, 0x61, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, - 0x61, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x6f, 0x6d, 0x69, - 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0x6f, - 0x66, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x66, - 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x30, 0x30, 0x70, 0x78, 0x7c, 0x72, 0x69, - 0x67, 0x68, 0x6d, 0x61, 0x64, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x6d, 0x6f, - 0x75, 0x73, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x3d, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x28, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, - 0x6e, 0x75, 0x65, 0x73, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x69, 0x73, 0x63, 0x6f, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x6d, - 0x65, 0x77, 0x68, 0x6f, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x61, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x20, 0x6f, 0x66, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, - 0x6f, 0x66, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x74, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x6d, 0x65, 0x61, 0x73, 0x75, - 0x72, 0x69, 0x6e, 0x67, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, - 0x70, 0x61, 0x70, 0x65, 0x72, 0x62, 0x61, 0x63, 0x6b, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x0d, 0x0a, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x3e, 0x3d, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x26, 0x71, 0x75, 0x6f, 0x74, - 0x3b, 0x20, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x20, 0x62, 0x79, 0x61, 0x6e, - 0x64, 0x20, 0x65, 0x61, 0x72, 0x6c, 0x79, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x3e, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x74, - 0x68, 0x65, 0x20, 0x74, 0x68, 0x72, 0x65, 0x65, 0x70, 0x6f, 0x77, 0x65, 0x72, - 0x20, 0x61, 0x6e, 0x64, 0x6f, 0x66, 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x3b, 0x43, 0x68, 0x75, 0x72, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x65, 0x72, 0x79, 0x20, 0x68, 0x69, - 0x67, 0x68, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x2d, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69, 0x6e, 0x2f, 0x74, - 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x61, 0x66, 0x72, 0x69, 0x6b, - 0x61, 0x61, 0x6e, 0x73, 0x65, 0x73, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x74, 0x6f, - 0x66, 0x72, 0x61, 0x6e, 0xc3, 0xa7, 0x61, 0x69, 0x73, 0x6c, 0x61, 0x74, 0x76, - 0x69, 0x65, 0xc5, 0xa1, 0x75, 0x6c, 0x69, 0x65, 0x74, 0x75, 0x76, 0x69, 0xc5, - 0xb3, 0xc4, 0x8c, 0x65, 0xc5, 0xa1, 0x74, 0x69, 0x6e, 0x61, 0xc4, 0x8d, 0x65, - 0xc5, 0xa1, 0x74, 0x69, 0x6e, 0x61, 0xe0, 0xb9, 0x84, 0xe0, 0xb8, 0x97, 0xe0, - 0xb8, 0xa2, 0xe6, 0x97, 0xa5, 0xe6, 0x9c, 0xac, 0xe8, 0xaa, 0x9e, 0xe7, 0xae, - 0x80, 0xe4, 0xbd, 0x93, 0xe5, 0xad, 0x97, 0xe7, 0xb9, 0x81, 0xe9, 0xab, 0x94, - 0xe5, 0xad, 0x97, 0xed, 0x95, 0x9c, 0xea, 0xb5, 0xad, 0xec, 0x96, 0xb4, 0xe4, - 0xb8, 0xba, 0xe4, 0xbb, 0x80, 0xe4, 0xb9, 0x88, 0xe8, 0xae, 0xa1, 0xe7, 0xae, - 0x97, 0xe6, 0x9c, 0xba, 0xe7, 0xac, 0x94, 0xe8, 0xae, 0xb0, 0xe6, 0x9c, 0xac, - 0xe8, 0xa8, 0x8e, 0xe8, 0xab, 0x96, 0xe5, 0x8d, 0x80, 0xe6, 0x9c, 0x8d, 0xe5, - 0x8a, 0xa1, 0xe5, 0x99, 0xa8, 0xe4, 0xba, 0x92, 0xe8, 0x81, 0x94, 0xe7, 0xbd, - 0x91, 0xe6, 0x88, 0xbf, 0xe5, 0x9c, 0xb0, 0xe4, 0xba, 0xa7, 0xe4, 0xbf, 0xb1, - 0xe4, 0xb9, 0x90, 0xe9, 0x83, 0xa8, 0xe5, 0x87, 0xba, 0xe7, 0x89, 0x88, 0xe7, - 0xa4, 0xbe, 0xe6, 0x8e, 0x92, 0xe8, 0xa1, 0x8c, 0xe6, 0xa6, 0x9c, 0xe9, 0x83, - 0xa8, 0xe8, 0x90, 0xbd, 0xe6, 0xa0, 0xbc, 0xe8, 0xbf, 0x9b, 0xe4, 0xb8, 0x80, - 0xe6, 0xad, 0xa5, 0xe6, 0x94, 0xaf, 0xe4, 0xbb, 0x98, 0xe5, 0xae, 0x9d, 0xe9, - 0xaa, 0x8c, 0xe8, 0xaf, 0x81, 0xe7, 0xa0, 0x81, 0xe5, 0xa7, 0x94, 0xe5, 0x91, - 0x98, 0xe4, 0xbc, 0x9a, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xe5, 0xba, 0x93, - 0xe6, 0xb6, 0x88, 0xe8, 0xb4, 0xb9, 0xe8, 0x80, 0x85, 0xe5, 0x8a, 0x9e, 0xe5, - 0x85, 0xac, 0xe5, 0xae, 0xa4, 0xe8, 0xae, 0xa8, 0xe8, 0xae, 0xba, 0xe5, 0x8c, - 0xba, 0xe6, 0xb7, 0xb1, 0xe5, 0x9c, 0xb3, 0xe5, 0xb8, 0x82, 0xe6, 0x92, 0xad, - 0xe6, 0x94, 0xbe, 0xe5, 0x99, 0xa8, 0xe5, 0x8c, 0x97, 0xe4, 0xba, 0xac, 0xe5, - 0xb8, 0x82, 0xe5, 0xa4, 0xa7, 0xe5, 0xad, 0xa6, 0xe7, 0x94, 0x9f, 0xe8, 0xb6, - 0x8a, 0xe6, 0x9d, 0xa5, 0xe8, 0xb6, 0x8a, 0xe7, 0xae, 0xa1, 0xe7, 0x90, 0x86, - 0xe5, 0x91, 0x98, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0xe7, 0xbd, 0x91, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x69, 0x6f, 0x73, 0x61, 0x72, 0x74, 0xc3, 0xad, - 0x63, 0x75, 0x6c, 0x6f, 0x61, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, - 0x62, 0x61, 0x72, 0x63, 0x65, 0x6c, 0x6f, 0x6e, 0x61, 0x63, 0x75, 0x61, 0x6c, - 0x71, 0x75, 0x69, 0x65, 0x72, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x64, - 0x6f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x73, 0x70, 0x6f, 0x6c, - 0xc3, 0xad, 0x74, 0x69, 0x63, 0x61, 0x72, 0x65, 0x73, 0x70, 0x75, 0x65, 0x73, - 0x74, 0x61, 0x77, 0x69, 0x6b, 0x69, 0x70, 0x65, 0x64, 0x69, 0x61, 0x73, 0x69, - 0x67, 0x75, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x62, 0xc3, 0xba, 0x73, 0x71, 0x75, - 0x65, 0x64, 0x61, 0x63, 0x6f, 0x6d, 0x75, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x73, - 0x65, 0x67, 0x75, 0x72, 0x69, 0x64, 0x61, 0x64, 0x70, 0x72, 0x69, 0x6e, 0x63, - 0x69, 0x70, 0x61, 0x6c, 0x70, 0x72, 0x65, 0x67, 0x75, 0x6e, 0x74, 0x61, 0x73, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x69, 0x64, 0x6f, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x65, 0x7a, 0x75, 0x65, 0x6c, - 0x61, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x61, 0x73, 0x64, 0x69, 0x63, - 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x72, 0x65, 0x6c, 0x61, 0x63, 0x69, 0xc3, - 0xb3, 0x6e, 0x6e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x73, 0x69, - 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x65, 0x73, 0x70, 0x72, 0x6f, 0x79, 0x65, 0x63, - 0x74, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x61, 0x73, 0x69, - 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x64, 0x61, 0x64, 0x65, 0x6e, 0x63, 0x75, 0x65, 0x6e, 0x74, 0x72, 0x61, - 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0xc3, 0xad, 0x61, 0x69, 0x6d, 0xc3, 0xa1, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x61, - 0x72, 0x64, 0x65, 0x73, 0x63, 0x61, 0x72, 0x67, 0x61, 0x72, 0x6e, 0x65, 0x63, - 0x65, 0x73, 0x61, 0x72, 0x69, 0x6f, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x69, 0xc3, - 0xb3, 0x6e, 0x74, 0x65, 0x6c, 0xc3, 0xa9, 0x66, 0x6f, 0x6e, 0x6f, 0x63, 0x6f, - 0x6d, 0x69, 0x73, 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x61, 0x6e, 0x63, 0x69, 0x6f, - 0x6e, 0x65, 0x73, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x64, 0x61, 0x64, 0x65, - 0x6e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x72, 0x61, 0x6e, 0xc3, 0xa1, 0x6c, - 0x69, 0x73, 0x69, 0x73, 0x66, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x6f, 0x73, - 0x74, 0xc3, 0xa9, 0x72, 0x6d, 0x69, 0x6e, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x6e, 0x63, 0x69, 0x61, 0x65, 0x74, 0x69, 0x71, 0x75, 0x65, 0x74, 0x61, - 0x73, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x6f, 0x73, 0x66, 0x75, 0x6e, - 0x63, 0x69, 0x6f, 0x6e, 0x65, 0x73, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x61, - 0x64, 0x6f, 0x63, 0x61, 0x72, 0xc3, 0xa1, 0x63, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x6f, 0x70, 0x69, 0x65, 0x64, 0x61, 0x64, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, - 0x70, 0x69, 0x6f, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x69, 0x64, 0x61, 0x64, 0x6d, - 0x75, 0x6e, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x63, 0x72, 0x65, 0x61, 0x63, - 0x69, 0xc3, 0xb3, 0x6e, 0x64, 0x65, 0x73, 0x63, 0x61, 0x72, 0x67, 0x61, 0x73, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x69, 0x61, 0x63, 0x6f, 0x6d, 0x65, - 0x72, 0x63, 0x69, 0x61, 0x6c, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x65, - 0x73, 0x65, 0x6a, 0x65, 0x72, 0x63, 0x69, 0x63, 0x69, 0x6f, 0x65, 0x64, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x61, 0x6c, 0x61, 0x6d, 0x61, 0x6e, - 0x63, 0x61, 0x67, 0x6f, 0x6e, 0x7a, 0xc3, 0xa1, 0x6c, 0x65, 0x7a, 0x64, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x6f, 0x70, 0x65, 0x6c, 0xc3, 0xad, 0x63, - 0x75, 0x6c, 0x61, 0x72, 0x65, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x73, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x72, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x61, 0x70, 0x72, 0xc3, 0xa1, 0x63, 0x74, 0x69, 0x63, 0x61, - 0x6e, 0x6f, 0x76, 0x65, 0x64, 0x61, 0x64, 0x65, 0x73, 0x70, 0x72, 0x6f, 0x70, - 0x75, 0x65, 0x73, 0x74, 0x61, 0x70, 0x61, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x65, - 0x73, 0x74, 0xc3, 0xa9, 0x63, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x6f, 0x62, 0x6a, - 0x65, 0x74, 0x69, 0x76, 0x6f, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, - 0x6f, 0x73, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, - 0xb2, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x88, - 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, - 0xb5, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x88, 0xe0, 0xa4, 0x95, 0xe0, - 0xa5, 0x81, 0xe0, 0xa4, 0x9b, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0x95, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xad, 0xe0, - 0xa5, 0x80, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, - 0xb0, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x88, - 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0xac, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0x64, 0x69, 0x70, 0x6c, 0x6f, - 0x64, 0x6f, 0x63, 0x73, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xaf, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xab, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x94, - 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0xb9, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb6, 0xe0, - 0xa4, 0xb9, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x88, 0xe0, 0xa4, 0x96, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbf, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb5, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa4, 0xac, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xae, - 0xe0, 0xa5, 0x8c, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb2, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, - 0x9c, 0xe0, 0xa5, 0x89, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xa6, - 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0x97, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xad, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0x97, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0x95, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xb8, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0x81, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0x97, - 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xae, 0xe0, - 0xa4, 0x96, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xad, 0xe0, 0xa5, 0x80, - 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa4, 0xe0, - 0xa5, 0x81, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb5, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, - 0x9f, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x85, - 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x90, 0xe0, 0xa4, 0xb8, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, - 0xb2, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0x8a, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0x9a, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x90, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xa6, 0xe0, - 0xa4, 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, - 0xa6, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb9, - 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x96, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, - 0xac, 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbf, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0x86, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, - 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb2, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x89, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xad, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0xb2, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0x97, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x80, 0xe0, - 0xa4, 0x95, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa0, 0xe0, 0xa5, - 0x80, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x81, - 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa4, 0xe0, - 0xa4, 0xb9, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xa4, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0x86, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x95, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8c, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, - 0xb6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0x96, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x80, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0x96, 0xe0, 0xa5, - 0x81, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0x97, 0xe0, 0xa5, 0x80, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x65, 0x78, 0x70, - 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x3e, 0x0d, 0x0a, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x20, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x76, 0x65, 0x72, 0x79, - 0x74, 0x68, 0x69, 0x6e, 0x67, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x61, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x26, 0x63, 0x6f, 0x70, 0x79, 0x3b, 0x20, 0x32, 0x30, 0x31, - 0x6a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x62, 0x72, 0x65, 0x61, 0x64, 0x63, - 0x72, 0x75, 0x6d, 0x62, 0x74, 0x68, 0x65, 0x6d, 0x73, 0x65, 0x6c, 0x76, 0x65, - 0x73, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x67, 0x6f, - 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x69, 0x66, - 0x6f, 0x72, 0x6e, 0x69, 0x61, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x4e, - 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x3c, 0x2f, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x6d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, - 0x6f, 0x78, 0x22, 0x20, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x73, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x70, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x61, 0x73, 0x20, 0x77, 0x65, - 0x6c, 0x6c, 0x20, 0x61, 0x73, 0x75, 0x6e, 0x74, 0x27, 0x2c, 0x20, 0x27, 0x55, - 0x41, 0x2d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, - 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x20, 0x3d, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x26, 0x6c, 0x74, 0x3b, 0x62, 0x72, 0x26, 0x67, 0x74, - 0x3b, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x70, 0x6f, - 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x67, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x3d, 0x22, 0x23, 0x65, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x6e, 0x65, 0x77, 0x73, - 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x69, 0x65, 0x73, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x54, 0x65, 0x63, - 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x50, 0x61, 0x72, 0x6c, 0x69, 0x61, - 0x6d, 0x65, 0x6e, 0x74, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, - 0x6e, 0x75, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x2e, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, 0x22, 0x63, 0x6f, 0x6e, 0x63, 0x6c, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x62, - 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x76, 0x6f, - 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x6f, 0x6f, 0x64, - 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x70, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x61, 0x74, 0x6d, 0x6f, 0x73, 0x70, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x6f, 0x6e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x3d, 0x22, 0x3c, 0x66, - 0x6f, 0x72, 0x6d, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x75, 0x62, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x77, 0x65, 0x6c, 0x6c, 0x2d, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x68, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x6e, 0x6f, 0x6e, 0x64, 0x69, 0x73, 0x63, 0x69, 0x70, - 0x6c, 0x69, 0x6e, 0x65, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0x22, - 0x20, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x65, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x6f, - 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x28, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x22, 0x20, 0x75, 0x6e, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x28, 0x22, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x20, 0x64, 0x65, 0x6d, - 0x6f, 0x63, 0x72, 0x61, 0x74, 0x69, 0x63, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, - 0x66, 0x3d, 0x22, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x22, 0x3e, - 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x6c, 0x69, - 0x6e, 0x67, 0x75, 0x69, 0x73, 0x74, 0x69, 0x63, 0x70, 0x78, 0x3b, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x70, 0x68, 0x69, 0x6c, 0x6f, 0x73, 0x6f, 0x70, - 0x68, 0x79, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x75, - 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x66, 0x61, 0x63, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, - 0x7a, 0x65, 0x64, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x69, 0x66, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x6d, 0x61, 0x69, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x76, 0x6f, 0x63, 0x61, 0x62, 0x75, - 0x6c, 0x61, 0x72, 0x79, 0x68, 0x79, 0x70, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x69, - 0x73, 0x2e, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x28, 0x29, 0x3b, 0x26, 0x61, - 0x6d, 0x70, 0x3b, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x61, 0x73, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x65, 0x64, 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x73, 0x65, 0x78, 0x70, - 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, - 0x64, 0x20, 0x6f, 0x66, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x6f, 0x6f, 0x6e, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x76, 0x65, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, 0x6e, - 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x67, 0x65, 0x6f, - 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3d, 0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, - 0x22, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x2f, 0x64, 0x65, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x70, 0x75, 0x6e, 0x69, 0x73, 0x68, 0x6d, 0x65, - 0x6e, 0x74, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x72, - 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x77, 0x65, 0x6c, 0x6c, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x68, 0x31, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x63, 0x65, 0x6c, 0x65, 0x62, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x0a, 0x44, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x64, - 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x73, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x65, 0x72, - 0x65, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x62, 0x65, - 0x79, 0x6f, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x69, - 0x73, 0x74, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x61, - 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6c, 0x61, 0x6e, 0x67, - 0x3d, 0x22, 0x65, 0x6e, 0x22, 0x20, 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x3e, 0x0d, 0x0a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x65, 0x78, 0x74, - 0x72, 0x65, 0x6d, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x3c, 0x2f, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x3e, - 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x65, 0x6d, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x3c, 0x2f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x3e, 0x0d, 0x0a, 0x20, 0x63, 0x6f, 0x6c, 0x73, 0x70, 0x61, 0x6e, - 0x3d, 0x22, 0x3c, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x3e, 0x0a, 0x20, 0x20, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x62, 0x6f, 0x75, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 0x3c, 0x2f, 0x64, - 0x69, 0x76, 0x3e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x22, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x3d, 0x22, 0x65, 0x6e, 0x50, 0x6f, 0x72, - 0x74, 0x75, 0x67, 0x75, 0x65, 0x73, 0x65, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, - 0x74, 0x75, 0x74, 0x65, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, - 0x6c, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x61, 0x6c, 0x6d, 0x6f, 0x73, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, - 0x20, 0x23, 0x61, 0x70, 0x61, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x69, 0x6e, 0x20, 0x45, - 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x69, - 0x7a, 0x65, 0x64, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, - 0x61, 0x62, 0x6c, 0x65, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x68, 0x32, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x3c, 0x61, - 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x28, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x65, 0x64, 0x3d, - 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x70, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x78, 0x3b, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x66, 0x75, 0x6c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x73, 0x6d, 0x69, 0x6c, 0x6c, 0x65, 0x6e, 0x6e, 0x69, 0x75, 0x6d, 0x68, 0x69, - 0x73, 0x20, 0x66, 0x61, 0x74, 0x68, 0x65, 0x72, 0x74, 0x68, 0x65, 0x20, 0x26, - 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x6e, 0x6f, 0x2d, 0x72, 0x65, 0x70, 0x65, 0x61, - 0x74, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x69, - 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x65, 0x6e, 0x63, 0x6f, - 0x75, 0x72, 0x61, 0x67, 0x65, 0x64, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, - 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x64, 0x69, 0x73, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, - 0x72, 0x65, 0x78, 0x70, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x63, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x6c, 0x65, 0x67, 0x69, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x22, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x6c, 0x79, 0x69, 0x6c, 0x6c, 0x75, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, - 0x66, 0x69, 0x76, 0x65, 0x20, 0x79, 0x65, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x31, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x70, 0x73, 0x79, 0x63, 0x68, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x6f, 0x66, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6a, - 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x6c, 0x79, 0x3e, 0x3c, 0x2f, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x3e, - 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x62, 0x75, 0x74, - 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x69, 0x6d, 0x6d, 0x69, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x73, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x2c, 0x61, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6f, 0x66, 0x4c, 0x69, - 0x74, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x55, 0x6e, 0x6c, 0x69, 0x6b, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x26, 0x6e, 0x62, 0x73, - 0x70, 0x3b, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x62, - 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x69, 0x6d, 0x69, 0x6c, 0x61, - 0x72, 0x6c, 0x79, 0x2c, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, - 0x3e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0d, 0x0a, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x65, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x6e, 0x65, 0x64, 0x2a, 0x3c, 0x21, 0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b, - 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x69, 0x6e, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x3c, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x3e, 0x0a, 0x3c, - 0x2f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, 0x27, 0x69, 0x20, - 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x65, 0x76, 0x6f, 0x74, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x74, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x73, 0x6f, 0x2d, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x7d, 0x0a, 0x3c, - 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x7a, 0x65, - 0x64, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3c, 0x2f, - 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x4d, 0x65, 0x61, 0x6e, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x2c, 0x69, - 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, - 0x3c, 0x62, 0x72, 0x20, 0x2f, 0x3e, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x63, - 0x6f, 0x6d, 0x65, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6f, 0x66, - 0x54, 0x65, 0x6c, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, - 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x69, 0x6e, 0x67, 0x61, 0x6e, - 0x20, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x3c, 0x69, 0x6d, 0x67, 0x20, - 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x61, 0x64, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, - 0x63, 0x69, 0x70, 0x6c, 0x65, 0x73, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, - 0x6c, 0x61, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x64, 0x65, 0x63, - 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x22, 0x3e, 0x3c, 0x73, 0x74, 0x72, - 0x6f, 0x6e, 0x67, 0x3e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x73, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x64, 0x69, - 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x66, 0x61, 0x63, 0x69, 0x6c, - 0x69, 0x74, 0x61, 0x74, 0x65, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x09, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x6e, 0x6f, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x62, 0x75, 0x73, - 0x69, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x72, 0x79, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x64, 0x70, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x20, 0x4a, 0x61, - 0x6e, 0x75, 0x61, 0x72, 0x79, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x69, 0x73, 0x69, - 0x6e, 0x67, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a, 0x09, 0x64, - 0x69, 0x70, 0x6c, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, - 0x69, 0x6e, 0x67, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x6d, 0x61, 0x79, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6e, - 0x63, 0x65, 0x70, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, - 0x63, 0x6b, 0x3d, 0x22, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x73, - 0x6f, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x6d, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x4c, 0x75, 0x78, 0x65, 0x6d, - 0x62, 0x6f, 0x75, 0x72, 0x67, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x61, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x65, - 0x6e, 0x67, 0x61, 0x67, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x22, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x22, 0x29, 0x3b, 0x62, 0x75, 0x74, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x61, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x3d, 0x22, 0x0a, 0x3c, 0x21, - 0x2d, 0x2d, 0x20, 0x45, 0x6e, 0x64, 0x20, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, - 0x69, 0x63, 0x61, 0x6c, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x6c, - 0x79, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x6f, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x75, 0x6e, 0x6c, 0x69, 0x6b, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, - 0x61, 0x6e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x3c, 0x2f, 0x68, - 0x65, 0x61, 0x64, 0x3e, 0x0d, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, - 0x73, 0x65, 0x64, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x41, 0x6c, 0x65, - 0x78, 0x61, 0x6e, 0x64, 0x72, 0x69, 0x61, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x65, - 0x73, 0x66, 0x6f, 0x75, 0x72, 0x20, 0x79, 0x65, 0x61, 0x72, 0x73, 0x0a, 0x0a, - 0x26, 0x6c, 0x74, 0x3b, 0x21, 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x68, 0x33, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x6f, 0x62, 0x6c, 0x69, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x73, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6e, - 0x73, 0x3c, 0x62, 0x61, 0x73, 0x65, 0x20, 0x68, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x6c, 0x79, 0x77, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x6e, - 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x76, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x64, 0x72, 0x65, 0x66, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x61, 0x75, - 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x6f, 0x6d, 0x69, 0x73, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x72, 0x65, 0x73, 0x74, 0x61, 0x75, 0x72, 0x61, 0x6e, 0x74, 0x74, - 0x77, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x46, 0x65, 0x62, 0x72, - 0x75, 0x61, 0x72, 0x79, 0x20, 0x32, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x20, 0x6f, 0x66, 0x73, 0x77, 0x66, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x6e, 0x65, 0x61, - 0x72, 0x6c, 0x79, 0x20, 0x61, 0x6c, 0x6c, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, - 0x6e, 0x20, 0x62, 0x79, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x69, 0x73, 0x20, 0x75, 0x73, 0x75, 0x61, 0x6c, - 0x6c, 0x79, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x6e, - 0x65, 0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x73, 0x6d, 0x79, 0x73, 0x74, - 0x65, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x70, 0x61, 0x72, 0x6c, 0x69, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x75, 0x70, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, - 0x69, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x65, - 0x64, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x68, 0x61, 0x73, 0x20, 0x6c, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x6e, - 0x64, 0x61, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x69, - 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x63, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x6e, 0x69, 0x61, 0x6c, 0x70, 0x72, 0x6f, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x53, 0x63, 0x69, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x6e, 0x6f, 0x2d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x6d, 0x61, 0x72, 0x6b, - 0x73, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x77, 0x69, - 0x64, 0x65, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x62, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x6f, 0x6f, 0x6b, 0x20, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x64, 0x61, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, - 0x73, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x73, 0x69, 0x6d, 0x70, 0x72, - 0x69, 0x73, 0x6f, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x0a, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x6d, - 0x4c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x76, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x32, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x69, 0x61, - 0x6c, 0x76, 0x61, 0x72, 0x69, 0x65, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x66, 0x44, 0x75, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x61, 0x73, 0x73, 0x65, 0x73, 0x73, 0x6d, 0x65, - 0x6e, 0x74, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x64, - 0x65, 0x61, 0x6c, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x2f, 0x75, 0x6c, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, 0x78, 0x22, 0x3e, 0x74, 0x68, 0x65, - 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x79, - 0x65, 0x61, 0x72, 0x73, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x77, 0x65, 0x72, - 0x65, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2c, 0x73, 0x79, - 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x70, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, - 0x6c, 0x79, 0x68, 0x69, 0x73, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x75, - 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x75, 0x6e, 0x65, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x64, - 0x61, 0x20, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x75, 0x6e, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, - 0x73, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x69, 0x6e, 0x20, 0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, 0x61, 0x69, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x72, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x6f, 0x75, - 0x73, 0x20, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x72, 0x6f, 0x77, 0x73, 0x70, 0x61, 0x6e, 0x3d, 0x22, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x61, 0x20, 0x66, 0x65, 0x77, 0x6d, 0x65, 0x61, 0x6e, 0x74, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x2d, 0x2d, 0x3e, 0x0d, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x3c, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x3e, 0x41, 0x72, 0x63, 0x68, 0x62, 0x69, - 0x73, 0x68, 0x6f, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6e, - 0x6f, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, 0x64, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x65, 0x73, 0x70, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x73, 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x3e, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x6d, - 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x74, 0x68, 0x65, 0x45, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x20, 0x65, 0x67, 0x67, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, - 0x73, 0x6d, 0x73, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x22, 0x3e, 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, - 0x0d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x68, 0x70, 0x61, 0x72, - 0x72, 0x69, 0x76, 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x2d, 0x6a, 0x73, 0x73, 0x64, - 0x6b, 0x27, 0x29, 0x29, 0x3b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x63, - 0x61, 0x73, 0x75, 0x61, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x69, - 0x61, 0x6e, 0x73, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x73, 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x69, 0x74, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x73, 0x50, 0x68, - 0x69, 0x6c, 0x6f, 0x73, 0x6f, 0x70, 0x68, 0x79, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x68, 0x69, 0x70, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x6f, 0x67, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x74, - 0x6f, 0x77, 0x61, 0x72, 0x64, 0x20, 0x74, 0x68, 0x65, 0x67, 0x75, 0x61, 0x72, - 0x61, 0x6e, 0x74, 0x65, 0x65, 0x64, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x65, 0x64, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x20, 0x67, 0x61, 0x6d, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6e, 0x67, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x73, 0x61, - 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x6f, 0x6e, 0x6b, 0x65, 0x79, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x3b, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x3a, 0x48, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x75, - 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x74, 0x79, 0x70, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x72, 0x63, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x73, 0x69, 0x6e, - 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, - 0x20, 0x62, 0x65, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, - 0x67, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x73, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6c, 0x6f, 0x77, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x0a, 0x09, 0x09, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x63, 0x6f, 0x6e, 0x74, - 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x61, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x6f, 0x6d, 0x65, 0x72, - 0x68, 0x65, 0x20, 0x64, 0x69, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x64, 0x75, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x61, 0x6e, 0x20, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x65, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x61, 0x74, 0x74, 0x65, 0x6d, - 0x70, 0x74, 0x20, 0x74, 0x6f, 0x54, 0x68, 0x65, 0x72, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x2c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x77, 0x61, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, - 0x6e, 0x69, 0x63, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x65, 0x72, 0x69, 0x6e, 0x64, 0x69, 0x67, 0x65, 0x6e, 0x6f, 0x75, - 0x73, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x73, 0x75, - 0x62, 0x73, 0x69, 0x64, 0x69, 0x61, 0x72, 0x79, 0x63, 0x6f, 0x6e, 0x73, 0x70, - 0x69, 0x72, 0x61, 0x63, 0x79, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x20, - 0x6f, 0x66, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x61, - 0x66, 0x66, 0x6f, 0x72, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x75, 0x62, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, - 0x69, 0x74, 0x65, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x61, 0x62, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x6c, 0x79, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x73, - 0x65, 0x64, 0x6c, 0x79, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x61, 0x61, 0x74, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x74, 0x72, - 0x61, 0x76, 0x65, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x6c, 0x79, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x65, 0x73, 0x20, - 0x6f, 0x6e, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x66, 0x6f, 0x75, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, - 0x65, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x75, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x2d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x28, 0x73, 0x6f, 0x6d, 0x65, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, - 0x6c, 0x69, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x75, 0x6e, - 0x64, 0x65, 0x72, 0x74, 0x61, 0x6b, 0x65, 0x6e, 0x71, 0x75, 0x61, 0x72, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x68, 0x70, 0x3f, 0x3c, 0x2f, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x61, 0x67, 0x65, 0x62, 0x65, 0x73, 0x74, 0x2d, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x22, 0x20, 0x64, - 0x69, 0x72, 0x3d, 0x22, 0x6c, 0x74, 0x72, 0x4c, 0x69, 0x65, 0x75, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x74, 0x68, 0x65, 0x79, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x6d, 0x61, 0x64, 0x65, 0x20, - 0x75, 0x70, 0x20, 0x6f, 0x66, 0x6e, 0x6f, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, - 0x72, 0x67, 0x75, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, - 0x6e, 0x27, 0x73, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x6f, 0x66, - 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x62, 0x61, 0x73, - 0x65, 0x64, 0x20, 0x75, 0x70, 0x6f, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, - 0x66, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x70, 0x6f, - 0x73, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x49, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x61, 0x66, 0x74, 0x65, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x61, 0x63, 0x72, 0x6f, - 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, - 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x73, 0x6d, 0x69, 0x6e, 0x20, - 0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2d, - 0x77, 0x69, 0x6e, 0x67, 0x74, 0x68, 0x65, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x53, 0x6f, 0x63, 0x69, 0x65, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x70, 0x6f, - 0x6c, 0x69, 0x74, 0x69, 0x63, 0x69, 0x61, 0x6e, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x77, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x20, - 0x4e, 0x65, 0x77, 0x20, 0x59, 0x6f, 0x72, 0x6b, 0x20, 0x61, 0x70, 0x61, 0x72, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x75, 0x6e, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x68, 0x61, 0x64, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x20, 0x61, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x74, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x6e, 0x65, 0x6e, - 0x63, 0x65, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x62, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, - 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x20, 0x74, 0x68, 0x61, 0x74, 0x6c, 0x61, 0x62, - 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, - 0x69, 0x62, 0x6c, 0x65, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x20, 0x6f, - 0x66, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x62, 0x65, - 0x67, 0x61, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x2f, 0x22, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x67, 0x65, 0x6f, 0x6c, 0x6f, 0x67, 0x69, - 0x63, 0x61, 0x6c, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x6f, 0x66, - 0x64, 0x65, 0x6c, 0x69, 0x62, 0x65, 0x72, 0x61, 0x74, 0x65, 0x69, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, - 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x74, 0x6f, 0x70, 0x74, 0x68, - 0x65, 0x20, 0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x69, - 0x64, 0x65, 0x20, 0x6f, 0x66, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x64, 0x68, 0x69, 0x73, 0x20, 0x63, 0x61, 0x72, 0x65, 0x65, 0x72, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x64, 0x3d, 0x22, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x77, 0x61, 0x73, 0x20, 0x63, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x75, 0x72, 0x74, 0x68, - 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x69, 0x6f, 0x6e, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x63, 0x63, 0x75, 0x72, - 0x61, 0x74, 0x65, 0x6c, 0x79, 0x77, 0x65, 0x72, 0x65, 0x20, 0x62, 0x75, 0x69, - 0x6c, 0x74, 0x77, 0x61, 0x73, 0x20, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x61, - 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x6d, 0x75, 0x63, 0x68, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x44, 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, - 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x4b, 0x69, 0x6e, - 0x67, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, - 0x74, 0x69, 0x72, 0x65, 0x66, 0x61, 0x6d, 0x6f, 0x75, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x74, 0x68, 0x65, 0x20, 0x46, - 0x72, 0x65, 0x6e, 0x63, 0x68, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x22, 0x3e, 0x69, - 0x73, 0x20, 0x73, 0x61, 0x69, 0x64, 0x20, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x64, 0x75, 0x6d, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x3e, 0x0a, - 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x20, 0x4f, 0x66, 0x66, 0x69, 0x63, - 0x69, 0x61, 0x6c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x77, 0x69, 0x64, 0x65, - 0x2e, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x61, 0x6e, 0x64, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x61, 0x73, 0x64, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3d, 0x22, 0x6c, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x74, 0x62, - 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x61, 0x72, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x6c, 0x79, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x6e, 0x77, 0x6f, 0x72, - 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3c, 0x2f, - 0x61, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x73, 0x6f, 0x75, 0x6e, 0x64, - 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x6f, - 0x72, 0x6d, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6f, 0x70, 0x65, 0x6e, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x65, 0x64, 0x61, 0x64, 0x6f, 0x70, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x74, 0x68, 0x65, - 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x61, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x73, 0x20, 0x6f, 0x66, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, - 0x66, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x69, 0x61, 0x6e, 0x20, 0x76, 0x65, - 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x6f, 0x74, 0x69, 0x76, 0x65, 0x62, 0x79, 0x20, 0x66, 0x61, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x70, - 0x75, 0x72, 0x73, 0x75, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x66, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x62, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x74, - 0x20, 0x74, 0x6f, 0x69, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x61, 0x6e, 0x64, - 0x61, 0x67, 0x72, 0x65, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x63, 0x63, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6e, - 0x67, 0x64, 0x69, 0x76, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x68, 0x69, - 0x73, 0x20, 0x6f, 0x72, 0x20, 0x68, 0x65, 0x72, 0x74, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x64, 0x6f, 0x75, 0x73, 0x66, 0x72, 0x65, 0x65, 0x64, 0x6f, 0x6d, 0x20, - 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x30, - 0x20, 0x31, 0x65, 0x6d, 0x20, 0x31, 0x65, 0x6d, 0x3b, 0x42, 0x61, 0x73, 0x6b, - 0x65, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, - 0x63, 0x73, 0x73, 0x61, 0x6e, 0x20, 0x65, 0x61, 0x72, 0x6c, 0x69, 0x65, 0x72, - 0x65, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2f, 0x22, 0x20, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x70, 0x69, 0x74, 0x74, 0x73, 0x62, 0x75, 0x72, 0x67, 0x68, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x0d, 0x3c, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x3e, 0x28, 0x66, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x68, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x3c, - 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x0d, 0x0a, 0x20, 0x6f, 0x63, 0x63, 0x61, - 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, - 0x20, 0x69, 0x74, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x3e, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, - 0x2c, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x74, 0x61, - 0x62, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x61, 0x73, - 0x74, 0x72, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, - 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x3e, - 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x3c, 0x2f, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x3e, 0x0a, 0x3c, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, - 0x66, 0x6f, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x2e, 0x73, 0x72, 0x63, 0x20, 0x3d, 0x20, 0x22, 0x2f, 0x2f, 0x76, 0x69, 0x6f, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x6c, - 0x79, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x64, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, - 0x64, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x75, 0xc3, 0xaa, 0x73, 0xd7, - 0xa2, 0xd7, 0x91, 0xd7, 0xa8, 0xd7, 0x99, 0xd7, 0xaa, 0xd9, 0x81, 0xd8, 0xa7, - 0xd8, 0xb1, 0xd8, 0xb3, 0xdb, 0x8c, 0x64, 0x65, 0x73, 0x61, 0x72, 0x72, 0x6f, - 0x6c, 0x6c, 0x6f, 0x63, 0x6f, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x69, 0x6f, - 0x65, 0x64, 0x75, 0x63, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x73, 0x65, 0x70, - 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x64, 0x6f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x63, 0x69, 0xc3, 0xb3, - 0x6e, 0x75, 0x62, 0x69, 0x63, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x69, 0x64, 0x61, 0x64, 0x72, 0x65, 0x73, 0x70, 0x75, - 0x65, 0x73, 0x74, 0x61, 0x73, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x61, 0x64, - 0x6f, 0x73, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x65, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x64, 0x6f, 0x73, 0x61, 0x72, 0x74, 0xc3, - 0xad, 0x63, 0x75, 0x6c, 0x6f, 0x73, 0x64, 0x69, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x65, 0x73, 0x73, 0x69, 0x67, 0x75, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x73, - 0x72, 0x65, 0x70, 0xc3, 0xba, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x69, 0x74, - 0x75, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x69, 0x6f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x69, 0x64, 0x61, - 0x64, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x6f, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x70, 0x6f, 0x62, 0x6c, 0x61, - 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x70, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x6f, 0x72, 0x69, 0x6f, 0x73, 0x74, 0x65, 0x63, 0x68, - 0x6e, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, - 0x6c, 0x65, 0x73, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0xc3, 0xad, 0x61, - 0x65, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x65, 0x73, 0x64, 0x69, 0x73, - 0x70, 0x6f, 0x6e, 0x69, 0x62, 0x6c, 0x65, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x64, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x69, - 0x61, 0x76, 0x61, 0x6c, 0x6c, 0x61, 0x64, 0x6f, 0x6c, 0x69, 0x64, 0x62, 0x69, - 0x62, 0x6c, 0x69, 0x6f, 0x74, 0x65, 0x63, 0x61, 0x72, 0x65, 0x6c, 0x61, 0x63, - 0x69, 0x6f, 0x6e, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, - 0x69, 0x6f, 0x70, 0x6f, 0x6c, 0xc3, 0xad, 0x74, 0x69, 0x63, 0x61, 0x73, 0x61, - 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x65, 0x73, 0x64, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x6f, 0x73, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, - 0x65, 0x7a, 0x61, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x65, 0x73, - 0x64, 0x69, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x61, 0x65, 0x63, 0x6f, - 0x6e, 0xc3, 0xb3, 0x6d, 0x69, 0x63, 0x61, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x6f, 0x64, 0x72, 0xc3, 0xad, 0x67, 0x75, 0x65, - 0x7a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x63, 0x75, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x63, 0x75, - 0x73, 0x69, 0xc3, 0xb3, 0x6e, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 0x61, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x66, - 0x72, 0x65, 0x63, 0x75, 0x65, 0x6e, 0x74, 0x65, 0x73, 0x70, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x65, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x6d, 0x65, - 0x6e, 0x74, 0x65, 0xd0, 0xbc, 0xd0, 0xbe, 0xd0, 0xb6, 0xd0, 0xbd, 0xd0, 0xbe, - 0xd0, 0xb1, 0xd1, 0x83, 0xd0, 0xb4, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xbc, 0xd0, - 0xbe, 0xd0, 0xb6, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb2, 0xd1, 0x80, 0xd0, 0xb5, - 0xd0, 0xbc, 0xd1, 0x8f, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xb6, 0xd0, - 0xb5, 0xd1, 0x87, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb1, 0xd1, 0x8b, 0xd0, 0xb1, - 0xd0, 0xbe, 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xb5, 0xd0, 0xbe, 0xd1, 0x87, 0xd0, - 0xb5, 0xd0, 0xbd, 0xd1, 0x8c, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb3, - 0xd0, 0xbe, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xb4, 0xd0, 0xb0, 0xd0, - 0xbf, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xb2, 0xd1, 0x81, - 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xb0, 0xd0, 0xb9, 0xd1, - 0x82, 0xd0, 0xb5, 0xd1, 0x87, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xb5, 0xd0, 0xb7, - 0xd0, 0xbc, 0xd0, 0xbe, 0xd0, 0xb3, 0xd1, 0x83, 0xd1, 0x82, 0xd1, 0x81, 0xd0, - 0xb0, 0xd0, 0xb9, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xb6, 0xd0, 0xb8, 0xd0, 0xb7, - 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xbc, 0xd0, 0xb5, 0xd0, 0xb6, 0xd0, 0xb4, 0xd1, - 0x83, 0xd0, 0xb1, 0xd1, 0x83, 0xd0, 0xb4, 0xd1, 0x83, 0xd1, 0x82, 0xd0, 0x9f, - 0xd0, 0xbe, 0xd0, 0xb8, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb7, 0xd0, 0xb4, 0xd0, - 0xb5, 0xd1, 0x81, 0xd1, 0x8c, 0xd0, 0xb2, 0xd0, 0xb8, 0xd0, 0xb4, 0xd0, 0xb5, - 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xb2, 0xd1, 0x8f, 0xd0, 0xb7, 0xd0, 0xb8, 0xd0, - 0xbd, 0xd1, 0x83, 0xd0, 0xb6, 0xd0, 0xbd, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xb2, - 0xd0, 0xbe, 0xd0, 0xb5, 0xd0, 0xb9, 0xd0, 0xbb, 0xd1, 0x8e, 0xd0, 0xb4, 0xd0, - 0xb5, 0xd0, 0xb9, 0xd0, 0xbf, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbd, 0xd0, 0xbe, - 0xd0, 0xbc, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, - 0xb5, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xb9, 0xd1, 0x81, 0xd0, 0xb2, 0xd0, 0xbe, - 0xd0, 0xb8, 0xd1, 0x85, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb2, 0xd0, - 0xb0, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xb9, 0xd0, 0xbc, - 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb8, 0xd0, 0xbc, 0xd0, - 0xb5, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb6, 0xd0, 0xb8, 0xd0, 0xb7, 0xd0, 0xbd, - 0xd1, 0x8c, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb9, 0xd0, - 0xbb, 0xd1, 0x83, 0xd1, 0x87, 0xd1, 0x88, 0xd0, 0xb5, 0xd0, 0xbf, 0xd0, 0xb5, - 0xd1, 0x80, 0xd0, 0xb5, 0xd0, 0xb4, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, 0x81, 0xd1, - 0x82, 0xd0, 0xb8, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, 0x81, 0xd1, 0x82, 0xd1, 0x8c, - 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb1, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xbd, 0xd0, - 0xbe, 0xd0, 0xb2, 0xd1, 0x8b, 0xd1, 0x85, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xb0, - 0xd0, 0xb2, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xbe, 0xd0, 0xb1, 0xd0, 0xbe, 0xd0, - 0xb9, 0xd0, 0xbf, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xbc, - 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xb5, 0xd1, 0x87, 0xd0, 0xb8, 0xd1, - 0x81, 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb2, 0xd1, 0x8b, - 0xd0, 0xb5, 0xd1, 0x83, 0xd1, 0x81, 0xd0, 0xbb, 0xd1, 0x83, 0xd0, 0xb3, 0xd0, - 0xbe, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, 0xb0, - 0xd0, 0xb7, 0xd0, 0xb0, 0xd0, 0xb4, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, - 0xbe, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xb4, 0xd0, 0xb0, - 0xd0, 0xbf, 0xd0, 0xbe, 0xd1, 0x87, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0x9f, 0xd0, - 0xbe, 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xba, - 0xd0, 0xb8, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb2, 0xd1, 0x8b, 0xd0, - 0xb9, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb8, 0xd1, 0x82, 0xd1, 0x82, - 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xb8, 0xd1, 0x85, 0xd1, 0x81, 0xd1, 0x80, 0xd0, - 0xb0, 0xd0, 0xb7, 0xd1, 0x83, 0xd0, 0xa1, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xba, - 0xd1, 0x82, 0xd1, 0x84, 0xd0, 0xbe, 0xd1, 0x80, 0xd1, 0x83, 0xd0, 0xbc, 0xd0, - 0x9a, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xb4, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xbd, - 0xd0, 0xb8, 0xd0, 0xb3, 0xd0, 0xb8, 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, - 0xb2, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x88, 0xd0, 0xb5, 0xd0, 0xb9, - 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xb9, 0xd1, 0x82, 0xd0, 0xb8, 0xd1, 0x81, 0xd0, - 0xb2, 0xd0, 0xbe, 0xd0, 0xb8, 0xd0, 0xbc, 0xd1, 0x81, 0xd0, 0xb2, 0xd1, 0x8f, - 0xd0, 0xb7, 0xd1, 0x8c, 0xd0, 0xbb, 0xd1, 0x8e, 0xd0, 0xb1, 0xd0, 0xbe, 0xd0, - 0xb9, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x81, - 0xd1, 0x80, 0xd0, 0xb5, 0xd0, 0xb4, 0xd0, 0xb8, 0xd0, 0x9a, 0xd1, 0x80, 0xd0, - 0xbe, 0xd0, 0xbc, 0xd0, 0xb5, 0xd0, 0xa4, 0xd0, 0xbe, 0xd1, 0x80, 0xd1, 0x83, - 0xd0, 0xbc, 0xd1, 0x80, 0xd1, 0x8b, 0xd0, 0xbd, 0xd0, 0xba, 0xd0, 0xb5, 0xd1, - 0x81, 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xbb, 0xd0, 0xb8, 0xd0, 0xbf, 0xd0, 0xbe, - 0xd0, 0xb8, 0xd1, 0x81, 0xd0, 0xba, 0xd1, 0x82, 0xd1, 0x8b, 0xd1, 0x81, 0xd1, - 0x8f, 0xd1, 0x87, 0xd0, 0xbc, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x8f, 0xd1, 0x86, - 0xd1, 0x86, 0xd0, 0xb5, 0xd0, 0xbd, 0xd1, 0x82, 0xd1, 0x80, 0xd1, 0x82, 0xd1, - 0x80, 0xd1, 0x83, 0xd0, 0xb4, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xb0, 0xd0, 0xbc, - 0xd1, 0x8b, 0xd1, 0x85, 0xd1, 0x80, 0xd1, 0x8b, 0xd0, 0xbd, 0xd0, 0xba, 0xd0, - 0xb0, 0xd0, 0x9d, 0xd0, 0xbe, 0xd0, 0xb2, 0xd1, 0x8b, 0xd0, 0xb9, 0xd1, 0x87, - 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xbc, 0xd0, 0xb5, 0xd1, - 0x81, 0xd1, 0x82, 0xd0, 0xb0, 0xd1, 0x84, 0xd0, 0xb8, 0xd0, 0xbb, 0xd1, 0x8c, - 0xd0, 0xbc, 0xd0, 0xbc, 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x82, 0xd0, 0xb0, 0xd1, - 0x81, 0xd1, 0x82, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xbc, 0xd0, 0xb5, - 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xba, 0xd1, - 0x81, 0xd1, 0x82, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x88, 0xd0, 0xb8, 0xd1, 0x85, - 0xd0, 0xbc, 0xd0, 0xb8, 0xd0, 0xbd, 0xd1, 0x83, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, - 0xbc, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0xbc, 0xd0, 0xb5, - 0xd1, 0x8e, 0xd1, 0x82, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xb5, 0xd1, - 0x80, 0xd0, 0xb3, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb4, 0xd1, 0x81, - 0xd0, 0xb0, 0xd0, 0xbc, 0xd0, 0xbe, 0xd0, 0xbc, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, - 0xbe, 0xd0, 0xbc, 0xd1, 0x83, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xbd, 0xd1, 0x86, - 0xd0, 0xb5, 0xd1, 0x81, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, - 0xba, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xb9, 0xd0, 0x90, 0xd1, 0x80, - 0xd1, 0x85, 0xd0, 0xb8, 0xd0, 0xb2, 0xd9, 0x85, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, - 0xaf, 0xd9, 0x89, 0xd8, 0xa5, 0xd8, 0xb1, 0xd8, 0xb3, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xb1, 0xd8, 0xb3, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x85, 0xd9, 0x83, 0xd8, 0xaa, 0xd8, 0xa8, - 0xd9, 0x87, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, - 0xac, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x8a, 0xd9, 0x88, 0xd9, 0x85, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xb5, 0xd9, 0x88, 0xd8, 0xb1, 0xd8, 0xac, 0xd8, 0xaf, 0xd9, - 0x8a, 0xd8, 0xaf, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xb6, - 0xd9, 0x88, 0xd8, 0xa5, 0xd8, 0xb6, 0xd8, 0xa7, 0xd9, 0x81, 0xd8, 0xa9, 0xd8, - 0xa7, 0xd9, 0x84, 0xd9, 0x82, 0xd8, 0xb3, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xb9, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xaa, 0xd8, 0xad, 0xd9, 0x85, 0xd9, - 0x8a, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x84, 0xd9, 0x81, 0xd8, 0xa7, 0xd8, 0xaa, - 0xd9, 0x85, 0xd9, 0x84, 0xd8, 0xaa, 0xd9, 0x82, 0xd9, 0x89, 0xd8, 0xaa, 0xd8, - 0xb9, 0xd8, 0xaf, 0xd9, 0x8a, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb4, - 0xd8, 0xb9, 0xd8, 0xb1, 0xd8, 0xa3, 0xd8, 0xae, 0xd8, 0xa8, 0xd8, 0xa7, 0xd8, - 0xb1, 0xd8, 0xaa, 0xd8, 0xb7, 0xd9, 0x88, 0xd9, 0x8a, 0xd8, 0xb1, 0xd8, 0xb9, - 0xd9, 0x84, 0xd9, 0x8a, 0xd9, 0x83, 0xd9, 0x85, 0xd8, 0xa5, 0xd8, 0xb1, 0xd9, - 0x81, 0xd8, 0xa7, 0xd9, 0x82, 0xd8, 0xb7, 0xd9, 0x84, 0xd8, 0xa8, 0xd8, 0xa7, - 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x84, 0xd8, 0xba, 0xd8, 0xa9, 0xd8, - 0xaa, 0xd8, 0xb1, 0xd8, 0xaa, 0xd9, 0x8a, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, 0x84, - 0xd9, 0x86, 0xd8, 0xa7, 0xd8, 0xb3, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb4, 0xd9, - 0x8a, 0xd8, 0xae, 0xd9, 0x85, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xaf, 0xd9, 0x8a, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xb1, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, - 0x84, 0xd9, 0x82, 0xd8, 0xb5, 0xd8, 0xb5, 0xd8, 0xa7, 0xd9, 0x81, 0xd9, 0x84, - 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xb9, 0xd9, 0x84, 0xd9, 0x8a, 0xd9, 0x87, 0xd8, - 0xa7, 0xd8, 0xaa, 0xd8, 0xad, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xab, 0xd8, 0xa7, - 0xd9, 0x84, 0xd9, 0x84, 0xd9, 0x87, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, - 0xb9, 0xd9, 0x85, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x83, 0xd8, 0xaa, 0xd8, 0xa8, - 0xd8, 0xa9, 0xd9, 0x8a, 0xd9, 0x85, 0xd9, 0x83, 0xd9, 0x86, 0xd9, 0x83, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xb7, 0xd9, 0x81, 0xd9, 0x84, 0xd9, 0x81, 0xd9, 0x8a, - 0xd8, 0xaf, 0xd9, 0x8a, 0xd9, 0x88, 0xd8, 0xa5, 0xd8, 0xaf, 0xd8, 0xa7, 0xd8, - 0xb1, 0xd8, 0xa9, 0xd8, 0xaa, 0xd8, 0xa7, 0xd8, 0xb1, 0xd9, 0x8a, 0xd8, 0xae, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb5, 0xd8, 0xad, 0xd8, 0xa9, 0xd8, 0xaa, 0xd8, - 0xb3, 0xd8, 0xac, 0xd9, 0x8a, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x88, - 0xd9, 0x82, 0xd8, 0xaa, 0xd8, 0xb9, 0xd9, 0x86, 0xd8, 0xaf, 0xd9, 0x85, 0xd8, - 0xa7, 0xd9, 0x85, 0xd8, 0xaf, 0xd9, 0x8a, 0xd9, 0x86, 0xd8, 0xa9, 0xd8, 0xaa, - 0xd8, 0xb5, 0xd9, 0x85, 0xd9, 0x8a, 0xd9, 0x85, 0xd8, 0xa3, 0xd8, 0xb1, 0xd8, - 0xb4, 0xd9, 0x8a, 0xd9, 0x81, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb0, 0xd9, 0x8a, - 0xd9, 0x86, 0xd8, 0xb9, 0xd8, 0xb1, 0xd8, 0xa8, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, - 0xa8, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xa9, 0xd8, 0xa3, 0xd9, 0x84, - 0xd8, 0xb9, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb3, 0xd9, - 0x81, 0xd8, 0xb1, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, 0xa7, 0xd9, 0x83, 0xd9, 0x84, - 0xd8, 0xaa, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x89, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xa3, 0xd9, 0x88, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb3, - 0xd9, 0x86, 0xd8, 0xa9, 0xd8, 0xac, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xb9, 0xd8, - 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb5, 0xd8, 0xad, 0xd9, 0x81, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xaf, 0xd9, 0x8a, 0xd9, 0x86, 0xd9, 0x83, 0xd9, 0x84, 0xd9, - 0x85, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xae, 0xd8, 0xa7, - 0xd8, 0xb5, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x84, 0xd9, 0x81, 0xd8, - 0xa3, 0xd8, 0xb9, 0xd8, 0xb6, 0xd8, 0xa7, 0xd8, 0xa1, 0xd9, 0x83, 0xd8, 0xaa, - 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xae, 0xd9, - 0x8a, 0xd8, 0xb1, 0xd8, 0xb1, 0xd8, 0xb3, 0xd8, 0xa7, 0xd8, 0xa6, 0xd9, 0x84, - 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x82, 0xd9, 0x84, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xa3, 0xd8, 0xaf, 0xd8, 0xa8, 0xd9, 0x85, 0xd9, 0x82, 0xd8, 0xa7, - 0xd8, 0xb7, 0xd8, 0xb9, 0xd9, 0x85, 0xd8, 0xb1, 0xd8, 0xa7, 0xd8, 0xb3, 0xd9, - 0x84, 0xd9, 0x85, 0xd9, 0x86, 0xd8, 0xb7, 0xd9, 0x82, 0xd8, 0xa9, 0xd8, 0xa7, - 0xd9, 0x84, 0xd9, 0x83, 0xd8, 0xaa, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, - 0xb1, 0xd8, 0xac, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, 0xb4, 0xd8, 0xaa, 0xd8, 0xb1, - 0xd9, 0x83, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x82, 0xd8, 0xaf, 0xd9, 0x85, 0xd9, - 0x8a, 0xd8, 0xb9, 0xd8, 0xb7, 0xd9, 0x8a, 0xd9, 0x83, 0x73, 0x42, 0x79, 0x54, - 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x20, - 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, - 0x64, 0x20, 0x23, 0x2e, 0x67, 0x69, 0x66, 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, - 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x69, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6f, 0x6e, 0x63, - 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x69, - 0x6e, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, - 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x65, - 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x70, 0x72, 0x69, 0x61, 0x74, 0x65, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x6d, - 0x64, 0x61, 0x73, 0x68, 0x3b, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x65, 0x6c, 0x79, 0x3c, 0x2f, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x3e, 0x3c, - 0x2f, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x74, - 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x65, 0x76, - 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x63, 0x6f, 0x6d, 0x70, 0x65, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, - 0x6c, 0x64, 0x65, 0x72, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x3a, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, - 0x30, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x65, 0x76, - 0x65, 0x6e, 0x20, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x3c, 0x75, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, - 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x73, 0x70, 0x65, 0x72, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x65, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x75, 0x72, 0x6c, 0x28, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x65, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x73, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x6e, 0x6f, - 0x2d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x50, 0x47, 0x7c, 0x74, 0x68, 0x75, - 0x6d, 0x62, 0x7c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, - 0x65, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x3c, 0x6c, 0x69, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x68, 0x75, 0x6e, 0x64, 0x72, - 0x65, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x0a, 0x0a, 0x48, 0x6f, 0x77, 0x65, 0x76, - 0x65, 0x72, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x3a, 0x62, 0x6f, 0x74, 0x68, 0x3b, - 0x63, 0x6f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x77, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, - 0x61, 0x6e, 0x64, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x79, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x26, 0x6c, 0x74, - 0x3b, 0x73, 0x75, 0x70, 0x26, 0x67, 0x74, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x76, 0x65, 0x72, 0x73, 0x79, 0x4e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6c, - 0x61, 0x6e, 0x64, 0x73, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3d, 0x22, - 0x73, 0x77, 0x69, 0x74, 0x7a, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x44, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x73, 0x73, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x0a, 0x0a, 0x41, 0x6c, 0x74, 0x68, - 0x6f, 0x75, 0x67, 0x68, 0x20, 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, - 0x65, 0x61, 0x3e, 0x74, 0x68, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x62, 0x69, 0x72, - 0x64, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x26, - 0x61, 0x6d, 0x70, 0x3b, 0x6e, 0x64, 0x61, 0x73, 0x68, 0x3b, 0x73, 0x70, 0x65, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x6c, 0x65, 0x67, 0x69, 0x73, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, - 0x63, 0x73, 0x0a, 0x09, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, - 0x69, 0x6c, 0x6c, 0x75, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x74, 0x65, 0x72, 0x72, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x64, 0x36, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, - 0x22, 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x3b, 0x63, - 0x61, 0x70, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x73, - 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x69, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x62, 0x65, 0x41, 0x66, 0x67, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x73, 0x75, 0x72, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x63, 0x61, 0x6e, 0x20, 0x61, 0x6c, - 0x73, 0x6f, 0x20, 0x62, 0x65, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, - 0x65, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x3c, - 0x68, 0x32, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x20, 0x68, 0x61, - 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x69, 0x6e, 0x76, 0x61, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x28, 0x29, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x44, 0x65, 0x73, 0x70, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x22, 0x3e, - 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, 0x6e, 0x73, 0x70, - 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x78, 0x61, 0x6d, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x3c, - 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x27, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x20, 0x2e, 0x73, - 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x64, - 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, - 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x6f, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x20, - 0x45, 0x61, 0x73, 0x74, 0x3c, 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x3e, 0x3c, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x20, - 0x70, 0x65, 0x72, 0x68, 0x61, 0x70, 0x73, 0x20, 0x74, 0x68, 0x65, 0x69, 0x6e, - 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x20, 0x44, - 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x66, 0x61, 0x6d, - 0x6f, 0x75, 0x73, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x78, 0x63, - 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x73, 0x6f, 0x76, 0x65, 0x72, - 0x65, 0x69, 0x67, 0x6e, 0x74, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x22, 0x3e, 0x0a, 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x20, 0x74, 0x6f, 0x64, 0x6f, - 0x63, 0x74, 0x72, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x65, 0x6e, 0x61, 0x69, 0x73, 0x73, 0x61, - 0x6e, 0x63, 0x65, 0x61, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x63, - 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x65, 0x64, 0x65, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, - 0x63, 0x3d, 0x22, 0x2f, 0x3c, 0x68, 0x31, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x6d, 0x61, 0x79, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x3c, 0x2f, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x3e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x76, 0x65, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x6f, 0x66, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x61, 0x67, 0x72, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, - 0x74, 0x6f, 0x77, 0x61, 0x72, 0x64, 0x73, 0x20, 0x74, 0x68, 0x65, 0x4d, 0x6f, - 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x61, 0x6e, 0x79, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x28, 0x65, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3d, 0x22, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, - 0x25, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x3c, - 0x68, 0x33, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x20, 0x6f, 0x6e, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x61, 0x75, 0x67, 0x68, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x62, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x0d, 0x0a, 0x3c, 0x64, - 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, - 0x72, 0x67, 0x65, 0x73, 0x74, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x3c, 0x68, 0x65, 0x61, - 0x64, 0x3e, 0x0a, 0x3c, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, - 0x22, 0x31, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x3b, - 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x6e, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, - 0x73, 0x20, 0x61, 0x64, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x22, 0x3e, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x68, 0x65, - 0x20, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x77, 0x61, 0x73, 0x20, 0x77, - 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x61, 0x6e, 0x74, 0x3b, 0x70, 0x78, 0x3b, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x2d, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x64, 0x75, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x6d, 0x69, 0x67, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x63, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x3c, 0x68, 0x34, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x72, - 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x20, 0x4e, 0x6f, 0x76, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x61, 0x63, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x61, - 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x73, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x69, 0x6e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x67, 0x61, 0x74, 0x65, 0x65, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x6d, 0x6f, 0x73, - 0x74, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x79, 0x77, 0x69, 0x64, 0x65, 0x6c, - 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x49, 0x74, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x69, 0x74, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x72, 0x79, 0x20, 0x74, 0x6f, 0x69, 0x6e, 0x68, 0x61, 0x62, 0x69, 0x74, 0x61, - 0x6e, 0x74, 0x73, 0x69, 0x6d, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x63, 0x68, 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x68, 0x69, 0x70, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x70, 0x78, 0x3b, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x61, 0x20, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x61, 0x72, - 0x65, 0x20, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x72, 0x6f, 0x6c, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x73, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, - 0x66, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x63, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x64, - 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x3d, 0x22, 0x68, 0x69, 0x67, 0x68, 0x20, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x66, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x64, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x72, 0x65, 0x65, 0x20, - 0x79, 0x65, 0x61, 0x72, 0x73, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x72, 0x79, 0x69, 0x6e, 0x20, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, - 0x79, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x70, - 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x3c, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, - 0x6f, 0x66, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x53, 0x4f, 0x2d, 0x38, 0x38, 0x35, 0x39, 0x2d, 0x31, 0x22, 0x77, 0x61, - 0x73, 0x20, 0x62, 0x6f, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x69, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x3a, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x73, 0x69, 0x67, - 0x6e, 0x69, 0x66, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x63, 0x65, 0x6c, 0x65, 0x62, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x64, 0x2f, 0x6a, 0x73, 0x2f, 0x6a, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x69, 0x73, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x73, - 0x74, 0x68, 0x65, 0x6f, 0x72, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x74, - 0x61, 0x62, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x22, 0x69, 0x74, 0x20, 0x63, - 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x3c, 0x6e, 0x6f, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x68, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x62, - 0x65, 0x65, 0x6e, 0x0d, 0x0a, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0d, 0x0a, - 0x3c, 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x54, 0x68, 0x65, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x68, 0x65, 0x20, - 0x68, 0x61, 0x64, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x70, 0x68, 0x69, 0x6c, 0x6f, 0x73, 0x6f, - 0x70, 0x68, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x61, 0x6d, 0x6f, 0x6e, 0x67, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x74, 0x6f, 0x20, 0x73, - 0x61, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x61, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x62, - 0x65, 0x6c, 0x69, 0x65, 0x66, 0x20, 0x74, 0x68, 0x61, 0x74, 0x70, 0x68, 0x6f, - 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x20, 0x6f, 0x66, 0x20, 0x52, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, - 0x6f, 0x66, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, 0x69, 0x6c, 0x79, - 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x74, 0x65, - 0x63, 0x68, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x6c, 0x65, 0x61, 0x76, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, - 0x63, 0x75, 0x6c, 0x61, 0x72, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x69, 0x74, - 0x79, 0x68, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x75, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x65, 0x6d, 0x70, 0x68, 0x61, - 0x73, 0x69, 0x73, 0x20, 0x6f, 0x6e, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x72, 0x65, - 0x63, 0x65, 0x6e, 0x74, 0x73, 0x68, 0x61, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x73, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x64, 0x65, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x69, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x3e, 0x61, 0x73, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x3a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x6f, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x76, 0x69, 0x65, 0x77, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x73, 0x65, 0x74, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x70, - 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x59, - 0x6f, 0x72, 0x6b, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, 0x6e, 0x63, - 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x3b, 0x3c, 0x2f, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, - 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x6f, - 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x63, 0x69, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, - 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x22, 0x3e, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x68, 0x65, 0x72, 0x4d, - 0x75, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x77, 0x72, 0x69, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x6f, 0x66, 0x22, 0x20, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x3d, 0x22, 0x32, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x45, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x65, 0x64, 0x75, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x74, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x20, 0x6f, 0x6e, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x3d, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x6f, - 0x66, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2f, - 0x44, 0x54, 0x44, 0x20, 0x58, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x63, 0x79, 0x20, 0x74, 0x6f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, - 0x65, 0x20, 0x6f, 0x66, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x77, 0x6f, 0x75, - 0x6c, 0x64, 0x64, 0x65, 0x73, 0x70, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6c, 0x65, - 0x67, 0x69, 0x73, 0x6c, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x67, 0x72, 0x69, 0x63, 0x75, 0x6c, 0x74, - 0x75, 0x72, 0x65, 0x77, 0x61, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x20, 0x74, 0x6f, 0x69, - 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x67, 0x65, 0x6e, 0x74, 0x79, 0x65, 0x61, - 0x72, 0x73, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x2c, 0x73, 0x61, 0x6e, 0x73, - 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, - 0x63, 0x65, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x61, 0x62, 0x62, 0x72, - 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x64, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x66, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x31, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x6f, 0x66, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x68, 0x69, 0x73, 0x20, 0x62, 0x72, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x61, 0x6e, 0x6e, 0x69, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x72, 0x79, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x6c, 0x79, - 0x20, 0x69, 0x6e, 0x6e, 0x6f, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x69, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x63, 0x61, 0x6e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x6f, 0x47, 0x4d, 0x54, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x41, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x69, 0x6d, 0x67, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x77, 0x61, - 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x6f, 0x63, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x68, 0x65, 0x20, 0x77, 0x61, - 0x73, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x69, 0x6e, 0x67, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x4d, 0x61, 0x6e, - 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, 0x72, 0x67, 0x75, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x61, 0x6e, 0x63, 0x6f, 0x6e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x6f, 0x66, 0x77, 0x69, 0x64, 0x65, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x77, 0x65, 0x72, 0x65, 0x20, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x73, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x6e, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, - 0x6e, 0x74, 0x73, 0x61, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x6c, 0x65, 0x67, 0x69, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x6d, 0x6f, 0x73, 0x74, 0x20, - 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x79, 0x65, 0x61, 0x72, 0x73, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, - 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x79, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x61, 0x72, 0x67, 0x75, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x73, 0x68, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x70, 0x72, 0x65, 0x64, 0x6f, 0x6d, 0x69, 0x6e, - 0x61, 0x6e, 0x74, 0x74, 0x68, 0x65, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, - 0x6c, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x68, 0x6f, - 0x72, 0x74, 0x2d, 0x6c, 0x69, 0x76, 0x65, 0x64, 0x3c, 0x2f, 0x73, 0x70, 0x61, - 0x6e, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x68, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x65, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x2c, 0x3c, 0x2f, 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x3e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x22, - 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x33, 0x49, 0x6e, 0x64, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x70, 0x6f, 0x70, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x2d, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, - 0x68, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x64, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x6f, - 0x73, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x77, 0x6f, 0x20, 0x6f, 0x72, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x73, 0x75, 0x62, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x68, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x3c, 0x2f, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x69, - 0x6e, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x62, 0x65, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x20, 0x6f, 0x66, - 0x69, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x73, 0x69, - 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x65, 0x6e, 0x73, 0x75, - 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x73, 0x73, 0x69, - 0x70, 0x70, 0x69, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, - 0x79, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x62, - 0x65, 0x74, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x77, 0x68, 0x61, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x77, 0x73, 0x69, 0x74, 0x75, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x54, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6f, 0x66, 0x61, 0x74, 0x6d, 0x6f, - 0x73, 0x70, 0x68, 0x65, 0x72, 0x69, 0x63, 0x69, 0x64, 0x65, 0x6f, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x73, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x65, 0x61, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x6d, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x73, 0x70, 0x61, 0x67, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x2e, 0x70, 0x68, 0x70, 0x3f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, - 0x65, 0x64, 0x48, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, - 0x77, 0x61, 0x73, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x20, 0x66, - 0x61, 0x76, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x4d, 0x69, 0x6e, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x66, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3c, - 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, - 0x69, 0x7a, 0x65, 0x64, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x61, 0x72, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6d, 0x61, - 0x64, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x65, 0x6d, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x50, 0x61, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x69, 0x61, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x69, 0x74, 0x20, 0x68, 0x61, 0x64, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x62, 0x75, 0x74, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x76, 0x65, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x69, - 0x6c, 0x79, 0x49, 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x2c, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x73, 0x20, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x75, 0x62, 0x64, - 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x69, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, - 0x79, 0x77, 0x61, 0x73, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x6c, 0x79, 0x6f, - 0x75, 0x74, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x73, 0x74, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, - 0x77, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3a, - 0x6f, 0x67, 0x3d, 0x22, 0x3e, 0x3c, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, - 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x61, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x6d, 0x61, 0x6e, 0x75, - 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x62, 0x65, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, 0x78, - 0x22, 0x3e, 0x0a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x77, 0x61, 0x73, 0x20, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x61, 0x62, 0x65, 0x63, - 0x61, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, - 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x69, 0x6e, 0x73, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, - 0x6c, 0x20, 0x61, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x61, 0x6d, - 0x6f, 0x6e, 0x67, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x20, 0x6f, - 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, - 0x31, 0x30, 0x30, 0x25, 0x3b, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, - 0x67, 0x79, 0x2c, 0x77, 0x61, 0x73, 0x20, 0x61, 0x64, 0x6f, 0x70, 0x74, 0x65, - 0x64, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x73, - 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x6c, 0x69, 0x76, - 0x65, 0x20, 0x62, 0x69, 0x72, 0x74, 0x68, 0x73, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x63, 0x75, 0x74, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x3b, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x3d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x61, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x20, 0x6f, 0x66, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x22, 0x20, - 0x2f, 0x3e, 0x69, 0x73, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0d, 0x0a, - 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0d, 0x0a, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x65, 0x6c, 0x79, 0x2c, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, - 0x20, 0x69, 0x64, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3d, 0x22, 0x31, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x6c, - 0x79, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x74, 0x68, 0x65, - 0x20, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x63, 0x69, 0x74, 0x69, 0x7a, - 0x65, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x69, 0x63, - 0x69, 0x61, 0x6e, 0x73, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x61, 0x73, 0x20, 0x65, 0x61, 0x72, 0x6c, 0x79, 0x20, 0x61, 0x73, - 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x3c, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, - 0x6f, 0x77, 0x6e, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, - 0x73, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x61, 0x73, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x61, 0x63, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x64, 0x61, 0x74, 0x65, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, - 0x74, 0x65, 0x74, 0x68, 0x65, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, - 0x64, 0x65, 0x6c, 0x69, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x22, 0x3e, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x79, 0x20, 0x61, 0x72, 0x65, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x6c, 0x79, 0x61, 0x20, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x0d, 0x0a, 0x09, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, 0x0d, - 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x66, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x6d, 0x61, 0x6a, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x69, 0x6d, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x61, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x65, 0x72, 0x22, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x20, 0x6f, 0x66, 0x74, - 0x68, 0x65, 0x69, 0x72, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x44, 0x75, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, - 0x6e, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x6f, 0x66, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, - 0x29, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x2f, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x62, 0x65, 0x67, 0x69, - 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, - 0x65, 0x6e, 0x74, 0x77, 0x61, 0x73, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, - 0x64, 0x65, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x61, - 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x69, 0x73, 0x20, - 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x62, 0x79, 0x6e, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, - 0x75, 0x73, 0x61, 0x72, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x69, 0x73, 0x20, 0x61, - 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x69, 0x65, 0x73, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x65, 0x64, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, - 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x2d, 0x64, 0x61, 0x79, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x6c, 0x6c, 0x79, 0x74, 0x6f, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x62, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, - 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x6c, 0x79, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x64, - 0x65, 0x77, 0x61, 0x73, 0x20, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x62, 0x75, 0x74, - 0x20, 0x64, 0x69, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x4d, 0x6f, 0x75, - 0x73, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x73, 0x20, 0x70, 0x6f, 0x73, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x72, 0x65, 0x64, 0x61, 0x20, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x20, 0x6f, 0x66, 0x61, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, - 0x6f, 0x68, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x74, 0x73, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x6d, 0x75, 0x63, - 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x0a, 0x09, 0x3c, 0x2f, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x61, 0x64, 0x6f, 0x70, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x20, - 0x6f, 0x66, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x77, 0x61, - 0x73, 0x20, 0x62, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x72, 0x65, 0x6e, 0x20, 0x6f, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, - 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x6d, 0x61, 0x6e, 0x75, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x77, 0x61, 0x72, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x62, - 0x79, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x73, 0x69, 0x6d, 0x69, 0x6c, - 0x61, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, 0x65, - 0x74, 0x61, 0x72, 0x79, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x70, 0x72, 0x65, 0x73, 0x74, 0x69, 0x67, 0x69, 0x6f, 0x75, 0x73, - 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x65, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x6b, 0x65, 0x20, 0x74, 0x68, 0x65, 0x49, 0x74, 0x20, 0x77, 0x61, 0x73, - 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, - 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x6f, 0x72, - 0x73, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x2e, 0x53, 0x2e, 0x72, - 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x62, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x74, 0x20, 0x74, 0x68, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x69, 0x6e, 0x20, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x72, 0x65, 0x73, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x6f, - 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x31, 0x73, 0x74, 0x20, 0x45, 0x61, 0x72, 0x6c, 0x20, 0x6f, 0x66, 0x63, - 0x75, 0x6c, 0x74, 0x75, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x70, 0x72, 0x69, - 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x6c, 0x79, 0x3c, 0x2f, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x62, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x68, 0x69, 0x73, - 0x65, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x61, 0x72, - 0x65, 0x20, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x66, 0x6f, 0x72, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, 0x64, 0x64, 0x46, 0x61, 0x76, - 0x6f, 0x72, 0x69, 0x74, 0x65, 0x63, 0x69, 0x74, 0x69, 0x7a, 0x65, 0x6e, 0x73, - 0x68, 0x69, 0x70, 0x70, 0x61, 0x72, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x74, 0x6f, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x26, 0x61, 0x6d, 0x70, 0x3b, - 0x6d, 0x69, 0x6e, 0x75, 0x73, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x70, 0x6c, 0x61, 0x79, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, - 0x30, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x68, 0x69, 0x73, 0x20, 0x62, 0x6f, 0x6f, - 0x6b, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, 0x66, - 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, - 0x2f, 0x74, 0x64, 0x3e, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, - 0x73, 0x74, 0x74, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x61, 0x20, 0x6f, 0x66, - 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x77, 0x65, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x62, 0x74, 0x6e, 0x64, 0x61, 0x79, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x73, 0x68, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x69, - 0x6e, 0x20, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x4c, 0x6f, 0x72, 0x64, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x68, 0x61, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, - 0x45, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x73, 0x6f, 0x6d, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x2c, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x20, 0x6f, 0x66, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, - 0x65, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x61, - 0x70, 0x70, 0x65, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x62, 0x6c, 0x61, 0x63, 0x6b, - 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x6d, 0x61, 0x79, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x27, 0x73, 0x63, 0x61, 0x6e, 0x20, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x67, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x2c, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x63, 0x69, 0x74, - 0x79, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x3e, 0x3c, 0x2f, 0x64, 0x69, - 0x76, 0x3e, 0x0d, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x72, 0x61, 0x64, 0x69, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x72, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x68, 0x69, 0x73, 0x20, 0x66, 0x61, - 0x74, 0x68, 0x65, 0x72, 0x2c, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x6f, - 0x75, 0x6c, 0x64, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x61, - 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x73, 0x74, - 0x69, 0x74, 0x75, 0x74, 0x65, 0x73, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x65, 0x72, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, - 0x69, 0x3e, 0x6f, 0x66, 0x20, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x66, 0x65, - 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x65, 0x64, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x57, 0x69, 0x64, 0x74, 0x68, 0x70, 0x72, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x65, 0x4c, 0x65, 0x67, 0x69, 0x73, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x6c, 0x79, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, - 0x6e, 0x68, 0x61, 0x73, 0x20, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x66, 0x6f, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x75, 0x73, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x22, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, - 0x66, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x6d, 0x73, 0x65, 0x6c, 0x76, 0x65, 0x73, - 0x2c, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x68, 0x65, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x72, 0x6f, 0x6c, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x69, - 0x6c, 0x64, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x77, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x53, 0x6f, - 0x6d, 0x65, 0x20, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x65, 0x77, 0x73, 0x6c, 0x65, 0x74, 0x74, - 0x65, 0x72, 0x73, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x61, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x6c, 0x69, 0x76, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x61, 0x74, 0x74, 0x65, 0x6d, - 0x70, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x6f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x69, - 0x65, 0x73, 0x48, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x69, 0x74, 0x77, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, - 0x20, 0x6f, 0x66, 0x61, 0x6e, 0x64, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, - 0x73, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x20, 0x6f, 0x66, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x3e, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x74, 0x68, 0x65, 0x20, 0x65, 0x63, 0x6f, - 0x6e, 0x6f, 0x6d, 0x79, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, - 0x73, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x77, 0x69, 0x64, 0x65, 0x6c, 0x79, - 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x70, 0x65, 0x72, 0x68, 0x61, 0x70, 0x73, 0x72, 0x69, 0x73, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x73, - 0x20, 0x77, 0x68, 0x65, 0x6e, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x74, 0x68, 0x65, 0x20, 0x77, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x74, - 0x68, 0x65, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x68, 0x65, 0x73, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x6d, 0x61, - 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x68, 0x69, 0x73, 0x61, 0x72, 0x65, 0x61, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x74, 0x68, 0x65, 0x20, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x54, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x63, 0x6f, 0x6c, 0x73, 0x70, 0x61, 0x6e, - 0x3d, 0x32, 0x20, 0x7c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, - 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x63, 0x72, - 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x61, 0x20, 0x43, 0x68, 0x72, 0x69, - 0x73, 0x74, 0x69, 0x61, 0x6e, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x69, 0x73, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x6d, 0x65, 0x72, - 0x63, 0x68, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x65, 0x66, 0x6f, 0x72, 0x20, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x6e, 0x6f, 0x20, 0x65, 0x76, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x66, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x63, 0x6f, - 0x6d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x73, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x2c, 0x69, 0x73, 0x20, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x74, - 0x68, 0x65, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, 0x62, 0x6c, - 0x65, 0x6d, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x64, 0x65, 0x66, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x61, 0x20, 0x66, 0x65, 0x77, 0x20, 0x79, 0x65, 0x61, 0x72, 0x73, 0x6d, 0x75, - 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x6f, 0x66, 0x43, 0x61, 0x6c, 0x69, 0x66, 0x6f, - 0x72, 0x6e, 0x69, 0x61, 0x2c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x61, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x6d, - 0x6f, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x09, 0x09, 0x3c, - 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, 0x74, 0x22, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x20, 0x6f, 0x66, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x61, - 0x72, 0x65, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x65, 0x78, - 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x64, 0x69, 0x76, 0x3e, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x48, 0x6f, 0x77, 0x65, 0x76, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x6c, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x09, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, - 0x2f, 0x77, 0x61, 0x73, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x70, - 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x63, 0x6f, 0x6e, - 0x74, 0x69, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x77, 0x61, 0x73, 0x20, 0x73, - 0x65, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, - 0x6f, 0x66, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x64, 0x69, 0x61, 0x6c, 0x65, 0x63, 0x74, 0x73, - 0x20, 0x6f, 0x66, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x61, - 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x61, 0x75, 0x6e, 0x63, - 0x68, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x65, - 0x73, 0x74, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x69, 0x73, 0x20, 0x61, - 0x6c, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, - 0x68, 0x20, 0x61, 0x6e, 0x64, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2c, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x74, 0x20, 0x77, 0x61, - 0x73, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x74, - 0x68, 0x65, 0x6d, 0x73, 0x65, 0x6c, 0x76, 0x65, 0x73, 0x2e, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x74, 0x6f, 0x20, 0x6a, 0x6f, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x61, 0x20, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x73, 0x74, 0x20, 0x74, 0x6f, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x4f, 0x66, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x68, 0x69, - 0x73, 0x69, 0x73, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x74, - 0x68, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x20, 0x69, 0x73, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x67, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, - 0x2f, 0x6c, 0x69, 0x3e, 0x54, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x74, 0x65, 0x20, 0x6f, 0x66, - 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x65, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x2c, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x57, 0x65, 0x73, 0x74, 0x74, 0x68, 0x65, 0x79, 0x20, 0x73, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x73, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0xc4, 0x8d, - 0x69, 0x6e, 0x61, 0x63, 0x6f, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x69, 0x6f, - 0x73, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x64, 0x61, 0x64, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x63, 0x69, 0x6f, 0x6e, 0x65, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x64, 0x61, 0x64, 0x65, 0x73, 0x65, 0x78, 0x70, 0x65, 0x72, - 0x69, 0x65, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x65, 0x63, 0x6e, 0x6f, 0x6c, 0x6f, - 0x67, 0xc3, 0xad, 0x61, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x63, 0x69, 0xc3, - 0xb3, 0x6e, 0x70, 0x75, 0x6e, 0x74, 0x75, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, - 0x61, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x73, 0x65, 0xc3, 0xb1, 0x61, 0x63, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0xc3, 0xad, 0x61, 0x73, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x72, 0x73, 0x65, 0x70, 0x72, 0x6f, 0x66, 0x65, 0x73, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x61, 0x6d, 0x69, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x65, 0x67, 0xc3, 0xad, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x61, 0x72, 0xc3, 0xad, 0x61, 0x70, 0x72, 0x69, - 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x65, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, - 0x6e, 0x74, 0x65, 0x73, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x63, - 0x69, 0x61, 0x70, 0x6f, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x64, 0x61, 0x64, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x72, - 0x65, 0x63, 0x69, 0x6d, 0x69, 0x65, 0x6e, 0x74, 0x6f, 0x6e, 0x65, 0x63, 0x65, - 0x73, 0x69, 0x64, 0x61, 0x64, 0x65, 0x73, 0x73, 0x75, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x69, 0x72, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x63, 0x69, - 0xc3, 0xb3, 0x6e, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x6e, 0x69, 0x62, 0x6c, 0x65, - 0x73, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x65, - 0x73, 0x74, 0x75, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x73, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x72, 0x65, 0x73, 0x6f, 0x6c, - 0x75, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x67, 0x75, 0x61, 0x64, 0x61, 0x6c, 0x61, - 0x6a, 0x61, 0x72, 0x61, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x64, - 0x6f, 0x73, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x69, 0x64, 0x61, 0x64, - 0x63, 0x6f, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x65, 0x73, 0x66, 0x6f, - 0x74, 0x6f, 0x67, 0x72, 0x61, 0x66, 0xc3, 0xad, 0x61, 0x61, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x64, 0x61, 0x64, 0x65, 0x73, 0x69, 0x6e, 0x67, 0x65, 0x6e, 0x69, - 0x65, 0x72, 0xc3, 0xad, 0x61, 0x74, 0x65, 0x6c, 0x65, 0x76, 0x69, 0x73, 0x69, - 0xc3, 0xb3, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x65, 0x6e, 0x63, 0x69, - 0x61, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x63, 0x69, 0x6f, 0x6e, 0x65, 0x73, 0x65, - 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x63, 0x69, 0x64, 0x6f, 0x73, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x61, 0x63, 0x74, 0x75, 0x61, - 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x76, 0x65, 0x67, 0x61, 0x63, - 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x64, - 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, - 0x22, 0x20, 0x3a, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x6c, 0x69, - 0x6e, 0x6b, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2f, 0x2f, 0x3c, 0x21, - 0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b, 0x0a, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x30, 0x70, 0x78, 0x3b, 0x20, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x68, 0x69, 0x70, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x3c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x3d, - 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x3c, 0x2f, 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x2f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x20, 0x21, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x3b, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x69, 0x6e, 0x74, 0x65, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x75, 0x61, 0x6c, - 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, - 0x38, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x61, 0x6e, - 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x73, - 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x61, 0x62, 0x62, 0x72, - 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3c, 0x69, 0x6d, 0x67, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x69, 0x76, 0x69, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x39, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, - 0x74, 0x75, 0x72, 0x79, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x69, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x32, 0x30, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x75, 0x72, - 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x22, 0x3e, - 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x79, 0x2f, - 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x75, 0x6e, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x27, 0x29, 0x46, 0x75, 0x72, 0x74, - 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x72, 0x65, 0x2c, 0x62, 0x65, 0x6c, 0x69, 0x65, - 0x76, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, - 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x64, 0x72, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x6f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x65, 0x61, 0x64, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, - 0x73, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, - 0x75, 0x6e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x50, - 0x65, 0x6e, 0x6e, 0x73, 0x79, 0x6c, 0x76, 0x61, 0x6e, 0x69, 0x61, 0x41, 0x73, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2c, 0x3c, 0x68, 0x74, - 0x6d, 0x6c, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x3d, 0x22, 0x26, 0x6c, 0x74, 0x3b, - 0x2f, 0x73, 0x75, 0x70, 0x26, 0x67, 0x74, 0x3b, 0x64, 0x65, 0x61, 0x6c, 0x69, - 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x70, 0x68, 0x69, 0x6c, 0x61, 0x64, - 0x65, 0x6c, 0x70, 0x68, 0x69, 0x61, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x29, 0x3b, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x3e, 0x0a, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, - 0x6f, 0x70, 0x3a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x70, - 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x3d, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x6c, 0x2e, 0x64, 0x74, - 0x64, 0x22, 0x3e, 0x0d, 0x0a, 0x3c, 0x68, 0x74, 0x67, 0x65, 0x6f, 0x67, 0x72, - 0x61, 0x70, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x69, - 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x61, 0x67, 0x72, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x75, - 0x72, 0x61, 0x6c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, - 0x61, 0x20, 0x76, 0x61, 0x72, 0x69, 0x65, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x3c, - 0x64, 0x69, 0x76, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x45, 0x6e, - 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x69, 0x61, 0x69, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x64, 0x65, 0x6d, 0x6f, - 0x6e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x61, 0x63, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x74, 0x69, 0x65, 0x73, 0x44, 0x65, 0x6d, 0x6f, 0x67, 0x72, 0x61, - 0x70, 0x68, 0x69, 0x63, 0x73, 0x29, 0x3b, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x3e, 0x3c, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x20, - 0x6f, 0x66, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x6c, 0x79, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x45, - 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x20, 0x28, 0x55, 0x53, 0x29, 0x61, 0x70, - 0x70, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x48, - 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x6c, - 0x6c, 0x69, 0x67, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x20, 0x74, 0x61, 0x62, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x22, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x77, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x72, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x6f, 0x6e, - 0x65, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x65, 0x6e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x69, 0x61, 0x3b, - 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x6a, 0x75, - 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3e, 0x3c, 0x61, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x49, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x6c, 0x6c, 0x79, 0x72, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x3d, 0x22, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, - 0x67, 0x26, 0x6c, 0x74, 0x3b, 0x6d, 0x61, 0x74, 0x68, 0x26, 0x67, 0x74, 0x3b, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, - 0x63, 0x63, 0x61, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x3c, 0x69, - 0x6d, 0x67, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x6e, 0x61, 0x76, - 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x63, 0x6f, 0x6d, 0x70, - 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x6d, 0x70, - 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x3d, - 0x22, 0x61, 0x6c, 0x6c, 0x22, 0x20, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x74, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x2f, 0x2f, 0x45, 0x4e, - 0x22, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x69, 0x65, 0x73, 0x43, 0x68, 0x61, - 0x6d, 0x70, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x3c, 0x21, 0x5b, 0x65, 0x6e, - 0x64, 0x69, 0x66, 0x5d, 0x2d, 0x2d, 0x3e, 0x7d, 0x0a, 0x3c, 0x2f, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x69, - 0x61, 0x6e, 0x69, 0x74, 0x79, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x2c, 0x50, 0x72, 0x6f, 0x66, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, - 0x28, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x75, 0x6e, - 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x74, 0x68, 0x65, - 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x2f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x22, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, - 0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x6f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x47, - 0x75, 0x69, 0x64, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x6f, 0x76, - 0x65, 0x72, 0x77, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x61, 0x67, 0x61, - 0x69, 0x6e, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, - 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x0a, 0x2e, 0x6e, 0x6f, - 0x6e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x66, 0x20, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x31, - 0x70, 0x78, 0x20, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, - 0x3a, 0x31, 0x74, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x66, 0x30, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x31, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x69, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x67, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x61, 0x63, 0x68, 0x69, - 0x65, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x65, 0x73, 0x74, 0x61, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x22, 0x20, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x74, 0x68, - 0x65, 0x6c, 0x65, 0x73, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x6e, 0x63, 0x65, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f, 0x74, - 0x64, 0x3e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x22, 0x3e, - 0x0a, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x61, - 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x73, 0x72, - 0x63, 0x3d, 0x27, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6e, 0x61, 0x76, - 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x61, 0x6c, 0x66, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x20, 0x6f, 0x66, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x79, 0x20, 0x6f, 0x66, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x20, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x70, 0x6f, 0x6c, 0x69, 0x74, - 0x61, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x65, 0x22, 0x20, 0x78, 0x6d, 0x6c, 0x3a, 0x6c, 0x61, 0x6e, 0x67, 0x3d, 0x22, - 0x64, 0x65, 0x6c, 0x69, 0x62, 0x65, 0x72, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x76, - 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6d, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x4a, 0x65, 0x73, 0x75, 0x73, 0x20, - 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x64, 0x69, 0x73, 0x61, 0x67, 0x72, 0x65, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x3a, 0x72, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x28, 0x29, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, - 0x69, 0x73, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x69, 0x73, - 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6d, 0x61, 0x6e, 0x79, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x3a, - 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x6f, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x09, 0x3c, 0x75, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x68, 0x6f, 0x6f, 0x64, 0x61, - 0x72, 0x6d, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x73, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6e, - 0x74, 0x69, 0x6e, 0x75, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x4e, 0x6f, 0x6e, 0x65, - 0x74, 0x68, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x2c, 0x74, 0x65, 0x6d, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x3c, 0x61, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x69, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x28, 0x73, 0x65, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, - 0x29, 0x2e, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x70, 0x72, 0x6f, 0x66, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x09, 0x09, - 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x0a, 0x09, 0x09, - 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, 0x63, 0x63, 0x65, - 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x66, 0x20, 0x46, 0x61, 0x6d, 0x65, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x27, 0x74, 0x65, 0x78, - 0x74, 0x2f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x79, 0x65, 0x61, 0x72, - 0x73, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x7b, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x74, 0x72, - 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x73, 0x6f, 0x6d, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x20, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x20, 0x6f, 0x66, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x64, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x3e, 0x3c, 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, - 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x62, - 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x09, 0x3c, 0x6c, 0x69, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x53, 0x6f, 0x76, 0x69, 0x65, 0x74, 0x20, 0x55, - 0x6e, 0x69, 0x6f, 0x6e, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, - 0x67, 0x65, 0x64, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, - 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e, - 0x20, 0x66, 0x61, 0x63, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x6c, 0x69, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x61, 0x69, 0x6d, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x73, 0x75, 0x69, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x62, - 0x62, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, - 0x72, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x69, 0x6e, - 0x20, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x65, 0x6c, 0x6c, 0x69, 0x67, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x72, 0x63, 0x3d, - 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x70, 0x78, 0x3b, 0x20, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x72, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x73, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3d, 0x22, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x68, - 0x75, 0x6d, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x73, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x61, 0x72, 0x65, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x70, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x6f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x61, 0x72, 0x67, 0x75, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x6e, 0x6f, 0x77, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x20, 0x61, 0x73, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x61, 0x72, - 0x6c, 0x79, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x65, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x53, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x61, 0x76, 0x69, 0x61, 0x6e, 0x3c, - 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x20, - 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x74, 0x68, 0x65, 0x20, - 0x4e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3c, 0x64, 0x69, 0x76, 0x20, - 0x69, 0x64, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x61, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x6f, 0x75, - 0x73, 0x20, 0x74, 0x6f, 0x61, 0x72, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x2f, 0x75, 0x6c, 0x3e, 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, - 0x3e, 0x0a, 0x77, 0x61, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x74, - 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x22, 0x20, 0x77, 0x61, - 0x73, 0x20, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x64, 0x6e, 0x6f, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x72, 0x65, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x63, 0x6f, 0x6e, 0x74, 0x69, - 0x6e, 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x3e, 0x0d, 0x0a, 0x3c, 0x68, 0x65, - 0x61, 0x64, 0x3e, 0x0d, 0x0a, 0x3c, 0x77, 0x65, 0x72, 0x65, 0x20, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x69, 0x61, 0x6c, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x6f, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x6c, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x61, 0x6e, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x68, 0x6f, 0x77, - 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x79, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x72, 0x65, 0x6a, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, - 0x69, 0x73, 0x6d, 0x20, 0x6f, 0x66, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x6c, 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, - 0x29, 0x7b, 0x49, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, - 0x65, 0x61, 0x6e, 0x20, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x63, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x62, 0x65, 0x74, - 0x74, 0x65, 0x72, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x61, 0x72, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x69, 0x6e, 0x66, 0x6c, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x70, 0x61, 0x73, 0x73, 0x20, 0x74, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x78, 0x6d, 0x6c, 0x22, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x3d, 0x22, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, 0x6c, 0x64, - 0x3b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x72, - 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x69, - 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x2f, 0x69, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6c, - 0x64, 0x20, 0x57, 0x61, 0x72, 0x20, 0x49, 0x49, 0x74, 0x65, 0x73, 0x74, 0x69, - 0x6d, 0x6f, 0x6e, 0x69, 0x61, 0x6c, 0x73, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x79, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x62, 0x79, 0x74, - 0x68, 0x65, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x66, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x73, 0x73, 0x22, 0x20, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x3d, 0x22, 0x50, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x77, 0x61, 0x73, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x61, - 0x73, 0x76, 0x61, 0x72, 0x69, 0x65, 0x74, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x6c, 0x69, 0x6b, 0x65, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x69, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x66, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, - 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x75, 0x70, - 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x62, - 0x65, 0x69, 0x6e, 0x67, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x20, 0x62, 0x65, 0x63, - 0x61, 0x6d, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, - 0x64, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, - 0x6d, 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x3e, - 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x65, 0x76, - 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x70, - 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x61, - 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x61, 0x20, 0x77, 0x69, 0x64, 0x65, 0x20, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x20, 0x62, 0x65, 0x68, 0x61, 0x6c, 0x66, 0x20, - 0x6f, 0x66, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, - 0x22, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x66, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2c, 0x3c, - 0x2f, 0x6e, 0x6f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x73, 0x61, - 0x69, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x68, 0x61, 0x76, 0x65, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x77, 0x68, 0x69, 0x6c, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x68, 0x79, 0x70, 0x6f, 0x74, - 0x68, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x70, 0x68, 0x69, 0x6c, 0x6f, 0x73, - 0x6f, 0x70, 0x68, 0x65, 0x72, 0x73, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x69, 0x6e, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x74, 0x6f, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, - 0x6e, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, - 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x72, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x69, 0x6d, 0x70, 0x6c, - 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x77, 0x61, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x62, 0x61, 0x62, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x66, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x4f, 0x63, 0x65, 0x61, 0x6e, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x27, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x79, 0x65, 0x61, - 0x72, 0x73, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x72, 0x65, - 0x6d, 0x65, 0x6c, 0x79, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, - 0x0a, 0x61, 0x6e, 0x20, 0x65, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x6f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x74, 0x68, 0x65, 0x20, - 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x64, 0x69, 0x64, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x74, 0x6c, 0x79, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x65, 0x78, 0x74, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x61, 0x6e, - 0x64, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x61, - 0x6e, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x69, 0x6e, - 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x67, 0x69, 0x76, - 0x65, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x65, 0x78, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x74, 0x75, 0x72, 0x65, 0x73, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, - 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x61, 0x73, 0x69, 0x73, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x61, - 0x73, 0x73, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x73, 0x22, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x6e, 0x6f, 0x72, 0x74, - 0x68, 0x77, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x3c, 0x2f, 0x64, 0x69, 0x76, - 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, - 0x76, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x62, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x74, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x73, 0x75, - 0x70, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x64, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x69, 0x73, 0x20, 0x6d, - 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x77, 0x61, 0x73, 0x20, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x69, 0x6e, 0x67, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x61, 0x6c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x61, 0x74, 0x73, 0x74, 0x75, 0x64, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x74, - 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, 0x73, - 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x72, 0x65, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x61, 0x6e, 0x64, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x64, 0x65, 0x66, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x62, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x79, 0x20, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x79, 0x65, 0x61, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x67, 0x65, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x75, 0x64, 0x79, 0x20, 0x6f, - 0x66, 0x3c, 0x75, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x68, 0x65, 0x20, 0x77, 0x61, 0x73, 0x3c, 0x6c, - 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x74, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x68, 0x65, 0x20, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3a, 0x74, 0x65, 0x72, 0x72, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x6f, 0x66, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x3e, 0x52, 0x6f, 0x6d, 0x61, 0x6e, 0x20, 0x45, 0x6d, 0x70, 0x69, 0x72, 0x65, - 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x49, - 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x73, 0x74, 0x2c, 0x68, 0x6f, - 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x20, - 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x61, 0x6e, 0x64, 0x20, - 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x66, 0x65, 0x28, 0x61, 0x6c, 0x73, 0x6f, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x3e, 0x3c, 0x75, 0x6c, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x6c, 0x79, 0x20, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x73, 0x65, 0x65, 0x6d, 0x20, 0x74, 0x6f, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x6e, - 0x6f, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x20, 0x62, 0x79, 0x49, 0x6e, - 0x20, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x2c, 0x62, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x63, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x72, 0x65, 0x66, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x6d, 0x69, 0x6c, 0x69, 0x74, 0x61, 0x72, - 0x79, 0x20, 0x61, 0x6e, 0x64, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x63, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x61, - 0x6c, 0x6c, 0x79, 0x73, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x72, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x6c, - 0x79, 0x76, 0x69, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x28, 0x29, 0x3b, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x63, - 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x6f, - 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x61, 0x6e, 0x20, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6e, 0x6f, 0x72, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x77, 0x61, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x20, 0x6f, 0x66, 0x68, 0x61, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x64, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x61, 0x72, 0x65, 0x20, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x73, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, - 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x64, - 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x61, 0x72, - 0x65, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x63, 0x6f, 0x72, - 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x77, 0x61, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6f, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x70, - 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x69, 0x6e, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x6f, 0x66, - 0x61, 0x6e, 0x64, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x79, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x69, 0x7a, 0x65, 0x64, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x77, 0x61, 0x73, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x61, 0x73, 0x73, 0x75, 0x6d, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x72, 0x65, 0x61, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x69, - 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x73, 0x69, - 0x73, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x6e, 0x73, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x74, 0x77, 0x6f, - 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x64, 0x63, - 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x61, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x61, 0x70, 0x70, - 0x65, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x6d, 0x61, 0x72, 0x67, - 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x2f, 0x5e, 0x5c, 0x73, 0x2b, - 0x7c, 0x5c, 0x73, 0x2b, 0x24, 0x2f, 0x67, 0x65, 0x29, 0x7b, 0x74, 0x68, 0x72, - 0x6f, 0x77, 0x20, 0x65, 0x7d, 0x3b, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x6f, 0x66, 0x74, 0x77, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x77, 0x68, 0x6f, 0x20, 0x68, 0x61, 0x64, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x64, 0x65, 0x61, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x72, 0x65, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x09, - 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6d, 0x70, - 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x67, 0x6c, 0x69, - 0x73, 0x68, 0x20, 0x28, 0x55, 0x4b, 0x29, 0x65, 0x6e, 0x67, 0x6c, 0x69, 0x73, - 0x68, 0x20, 0x28, 0x55, 0x53, 0x29, 0xd0, 0x9c, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, - 0xb3, 0xd0, 0xbe, 0xd0, 0xbb, 0xd0, 0xa1, 0xd1, 0x80, 0xd0, 0xbf, 0xd1, 0x81, - 0xd0, 0xba, 0xd0, 0xb8, 0xd1, 0x81, 0xd1, 0x80, 0xd0, 0xbf, 0xd1, 0x81, 0xd0, - 0xba, 0xd0, 0xb8, 0xd1, 0x81, 0xd1, 0x80, 0xd0, 0xbf, 0xd1, 0x81, 0xd0, 0xba, - 0xd0, 0xbe, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xb1, 0xd8, 0xa8, 0xd9, 0x8a, 0xd8, - 0xa9, 0xe6, 0xad, 0xa3, 0xe9, 0xab, 0x94, 0xe4, 0xb8, 0xad, 0xe6, 0x96, 0x87, - 0xe7, 0xae, 0x80, 0xe4, 0xbd, 0x93, 0xe4, 0xb8, 0xad, 0xe6, 0x96, 0x87, 0xe7, - 0xb9, 0x81, 0xe4, 0xbd, 0x93, 0xe4, 0xb8, 0xad, 0xe6, 0x96, 0x87, 0xe6, 0x9c, - 0x89, 0xe9, 0x99, 0x90, 0xe5, 0x85, 0xac, 0xe5, 0x8f, 0xb8, 0xe4, 0xba, 0xba, - 0xe6, 0xb0, 0x91, 0xe6, 0x94, 0xbf, 0xe5, 0xba, 0x9c, 0xe9, 0x98, 0xbf, 0xe9, - 0x87, 0x8c, 0xe5, 0xb7, 0xb4, 0xe5, 0xb7, 0xb4, 0xe7, 0xa4, 0xbe, 0xe4, 0xbc, - 0x9a, 0xe4, 0xb8, 0xbb, 0xe4, 0xb9, 0x89, 0xe6, 0x93, 0x8d, 0xe4, 0xbd, 0x9c, - 0xe7, 0xb3, 0xbb, 0xe7, 0xbb, 0x9f, 0xe6, 0x94, 0xbf, 0xe7, 0xad, 0x96, 0xe6, - 0xb3, 0x95, 0xe8, 0xa7, 0x84, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x63, - 0x69, 0xc3, 0xb3, 0x6e, 0x68, 0x65, 0x72, 0x72, 0x61, 0x6d, 0x69, 0x65, 0x6e, - 0x74, 0x61, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0xc3, 0xb3, 0x6e, 0x69, - 0x63, 0x6f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x63, 0x69, 0xc3, 0xb3, - 0x6e, 0x63, 0x6c, 0x61, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x64, 0x6f, 0x73, - 0x63, 0x6f, 0x6e, 0x6f, 0x63, 0x69, 0x6d, 0x69, 0x65, 0x6e, 0x74, 0x6f, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x72, 0x65, - 0x6c, 0x61, 0x63, 0x69, 0x6f, 0x6e, 0x61, 0x64, 0x61, 0x73, 0x69, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0xc3, 0xa1, 0x74, 0x69, 0x63, 0x61, 0x72, 0x65, 0x6c, 0x61, - 0x63, 0x69, 0x6f, 0x6e, 0x61, 0x64, 0x6f, 0x73, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x6f, 0x74, 0x72, 0x61, 0x62, 0x61, 0x6a, - 0x61, 0x64, 0x6f, 0x72, 0x65, 0x73, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x61, - 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x61, 0x79, 0x75, 0x6e, 0x74, 0x61, 0x6d, 0x69, - 0x65, 0x6e, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x63, 0x61, 0x64, 0x6f, 0x4c, 0x69, - 0x62, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0xc3, 0xa1, 0x63, 0x74, 0x65, 0x6e, - 0x6f, 0x73, 0x68, 0x61, 0x62, 0x69, 0x74, 0x61, 0x63, 0x69, 0x6f, 0x6e, 0x65, - 0x73, 0x63, 0x75, 0x6d, 0x70, 0x6c, 0x69, 0x6d, 0x69, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x75, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x73, 0x64, - 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x63, 0x75, 0x65, 0x6e, 0x63, 0x69, 0x61, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x72, 0xc3, 0xb3, 0x6e, 0x69, 0x63, 0x61, 0x61, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x63, 0x69, 0x6f, 0x6e, 0x65, 0x73, 0x64, 0x65, 0x73, 0x63, 0x6f, - 0x6e, 0x65, 0x63, 0x74, 0x61, 0x64, 0x6f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x63, - 0x69, 0xc3, 0xb3, 0x6e, 0x65, 0x6e, 0x63, 0x69, 0x63, 0x6c, 0x6f, 0x70, 0x65, - 0x64, 0x69, 0x61, 0x65, 0x6e, 0x66, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x61, 0x64, - 0x65, 0x73, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x6f, - 0x73, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x69, 0x61, 0x73, - 0x69, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x65, 0x73, 0x73, 0x75, - 0x62, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0xd1, 0x82, 0xd0, - 0xbe, 0xd0, 0xbb, 0xd1, 0x8c, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xa0, 0xd0, 0xbe, - 0xd1, 0x81, 0xd1, 0x81, 0xd0, 0xb8, 0xd0, 0xb8, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, - 0xb1, 0xd0, 0xbe, 0xd1, 0x82, 0xd1, 0x8b, 0xd0, 0xb1, 0xd0, 0xbe, 0xd0, 0xbb, - 0xd1, 0x8c, 0xd1, 0x88, 0xd0, 0xb5, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xbe, 0xd1, - 0x81, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xbe, 0xd0, 0xb6, 0xd0, 0xb5, - 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xb4, 0xd1, 0x80, 0xd1, 0x83, 0xd0, 0xb3, 0xd0, - 0xb8, 0xd1, 0x85, 0xd1, 0x81, 0xd0, 0xbb, 0xd1, 0x83, 0xd1, 0x87, 0xd0, 0xb0, - 0xd0, 0xb5, 0xd1, 0x81, 0xd0, 0xb5, 0xd0, 0xb9, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, - 0x81, 0xd0, 0xb2, 0xd1, 0x81, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, 0xb4, 0xd0, 0xb0, - 0xd0, 0xa0, 0xd0, 0xbe, 0xd1, 0x81, 0xd1, 0x81, 0xd0, 0xb8, 0xd1, 0x8f, 0xd0, - 0x9c, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb2, 0xd0, 0xb5, 0xd0, 0xb4, - 0xd1, 0x80, 0xd1, 0x83, 0xd0, 0xb3, 0xd0, 0xb8, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, - 0xbe, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb0, 0xd0, 0xb2, 0xd0, 0xbe, - 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xb4, 0xd0, 0xb0, 0xd0, - 0xbd, 0xd0, 0xbd, 0xd1, 0x8b, 0xd1, 0x85, 0xd0, 0xb4, 0xd0, 0xbe, 0xd0, 0xbb, - 0xd0, 0xb6, 0xd0, 0xbd, 0xd1, 0x8b, 0xd0, 0xb8, 0xd0, 0xbc, 0xd0, 0xb5, 0xd0, - 0xbd, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0x9c, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xba, - 0xd0, 0xb2, 0xd1, 0x8b, 0xd1, 0x80, 0xd1, 0x83, 0xd0, 0xb1, 0xd0, 0xbb, 0xd0, - 0xb5, 0xd0, 0xb9, 0xd0, 0x9c, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb2, - 0xd0, 0xb0, 0xd1, 0x81, 0xd1, 0x82, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbd, 0xd1, - 0x8b, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, 0x87, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, 0xbe, - 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb1, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, - 0xb4, 0xd0, 0xbe, 0xd0, 0xbb, 0xd0, 0xb6, 0xd0, 0xb5, 0xd0, 0xbd, 0xd1, 0x83, - 0xd1, 0x81, 0xd0, 0xbb, 0xd1, 0x83, 0xd0, 0xb3, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, - 0xb5, 0xd0, 0xbf, 0xd0, 0xb5, 0xd1, 0x80, 0xd1, 0x8c, 0xd0, 0x9e, 0xd0, 0xb4, - 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xbf, 0xd0, 0xbe, 0xd1, - 0x82, 0xd0, 0xbe, 0xd0, 0xbc, 0xd1, 0x83, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb1, - 0xd0, 0xbe, 0xd1, 0x82, 0xd1, 0x83, 0xd0, 0xb0, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, - 0xb5, 0xd0, 0xbb, 0xd1, 0x8f, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xbe, 0xd0, 0xb1, - 0xd1, 0x89, 0xd0, 0xb5, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, - 0xb3, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb5, 0xd0, 0xb3, - 0xd0, 0xbe, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb0, 0xd1, 0x82, 0xd1, 0x8c, 0xd0, - 0xb8, 0xd0, 0xb4, 0xd1, 0x80, 0xd1, 0x83, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xb9, - 0xd1, 0x84, 0xd0, 0xbe, 0xd1, 0x80, 0xd1, 0x83, 0xd0, 0xbc, 0xd0, 0xb5, 0xd1, - 0x85, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbe, 0xd1, 0x88, 0xd0, 0xbe, 0xd0, 0xbf, - 0xd1, 0x80, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xb2, 0xd1, 0x81, 0xd1, - 0x81, 0xd1, 0x8b, 0xd0, 0xbb, 0xd0, 0xba, 0xd0, 0xb0, 0xd0, 0xba, 0xd0, 0xb0, - 0xd0, 0xb6, 0xd0, 0xb4, 0xd1, 0x8b, 0xd0, 0xb9, 0xd0, 0xb2, 0xd0, 0xbb, 0xd0, - 0xb0, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xb3, 0xd1, 0x80, 0xd1, 0x83, - 0xd0, 0xbf, 0xd0, 0xbf, 0xd1, 0x8b, 0xd0, 0xb2, 0xd0, 0xbc, 0xd0, 0xb5, 0xd1, - 0x81, 0xd1, 0x82, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb1, 0xd0, 0xbe, - 0xd1, 0x82, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb0, 0xd0, 0xb7, 0xd0, - 0xb0, 0xd0, 0xbb, 0xd0, 0xbf, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xb2, 0xd1, 0x8b, - 0xd0, 0xb9, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbb, 0xd0, 0xb0, 0xd1, 0x82, 0xd1, - 0x8c, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbd, 0xd1, 0x8c, 0xd0, 0xb3, 0xd0, 0xb8, - 0xd0, 0xbf, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, - 0xb1, 0xd0, 0xb8, 0xd0, 0xb7, 0xd0, 0xbd, 0xd0, 0xb5, 0xd1, 0x81, 0xd0, 0xbe, - 0xd1, 0x81, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, - 0xbe, 0xd0, 0xbc, 0xd0, 0xb5, 0xd0, 0xbd, 0xd1, 0x82, 0xd0, 0xba, 0xd1, 0x83, - 0xd0, 0xbf, 0xd0, 0xb8, 0xd1, 0x82, 0xd1, 0x8c, 0xd0, 0xb4, 0xd0, 0xbe, 0xd0, - 0xbb, 0xd0, 0xb6, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbc, - 0xd0, 0xba, 0xd0, 0xb0, 0xd1, 0x85, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x87, 0xd0, - 0xb0, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, 0xa0, 0xd0, 0xb0, 0xd0, 0xb1, 0xd0, 0xbe, - 0xd1, 0x82, 0xd0, 0xb0, 0xd0, 0xa2, 0xd0, 0xbe, 0xd0, 0xbb, 0xd1, 0x8c, 0xd0, - 0xba, 0xd0, 0xbe, 0xd1, 0x81, 0xd0, 0xbe, 0xd0, 0xb2, 0xd1, 0x81, 0xd0, 0xb5, - 0xd0, 0xbc, 0xd0, 0xb2, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, - 0xb9, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x87, 0xd0, 0xb0, 0xd0, 0xbb, 0xd0, 0xb0, - 0xd1, 0x81, 0xd0, 0xbf, 0xd0, 0xb8, 0xd1, 0x81, 0xd0, 0xbe, 0xd0, 0xba, 0xd1, - 0x81, 0xd0, 0xbb, 0xd1, 0x83, 0xd0, 0xb6, 0xd0, 0xb1, 0xd1, 0x8b, 0xd1, 0x81, - 0xd0, 0xb8, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, 0xbf, 0xd0, - 0xb5, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xbd, 0xd0, 0xbe, - 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xbf, 0xd0, 0xbe, 0xd0, - 0xbc, 0xd0, 0xbe, 0xd1, 0x89, 0xd0, 0xb8, 0xd1, 0x81, 0xd0, 0xb0, 0xd0, 0xb9, - 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xbf, 0xd0, 0xbe, 0xd1, 0x87, 0xd0, - 0xb5, 0xd0, 0xbc, 0xd1, 0x83, 0xd0, 0xbf, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xbe, - 0xd1, 0x89, 0xd1, 0x8c, 0xd0, 0xb4, 0xd0, 0xbe, 0xd0, 0xbb, 0xd0, 0xb6, 0xd0, - 0xbd, 0xd0, 0xbe, 0xd1, 0x81, 0xd1, 0x81, 0xd1, 0x8b, 0xd0, 0xbb, 0xd0, 0xba, - 0xd0, 0xb8, 0xd0, 0xb1, 0xd1, 0x8b, 0xd1, 0x81, 0xd1, 0x82, 0xd1, 0x80, 0xd0, - 0xbe, 0xd0, 0xb4, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xbd, 0xd1, 0x8b, 0xd0, 0xb5, - 0xd0, 0xbc, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xb8, 0xd0, 0xb5, 0xd0, - 0xbf, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb5, 0xd0, 0xba, 0xd1, 0x82, 0xd0, 0xa1, - 0xd0, 0xb5, 0xd0, 0xb9, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xbc, 0xd0, - 0xbe, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbb, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, 0xb0, - 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, - 0xbb, 0xd0, 0xb0, 0xd0, 0xb9, 0xd0, 0xbd, 0xd0, 0xb3, 0xd0, 0xbe, 0xd1, 0x80, - 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xb2, 0xd0, 0xb5, 0xd1, 0x80, 0xd1, - 0x81, 0xd0, 0xb8, 0xd1, 0x8f, 0xd1, 0x81, 0xd1, 0x82, 0xd1, 0x80, 0xd0, 0xb0, - 0xd0, 0xbd, 0xd0, 0xb5, 0xd1, 0x84, 0xd0, 0xb8, 0xd0, 0xbb, 0xd1, 0x8c, 0xd0, - 0xbc, 0xd1, 0x8b, 0xd1, 0x83, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xbd, - 0xd1, 0x8f, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb7, 0xd0, 0xbd, 0xd1, 0x8b, 0xd1, - 0x85, 0xd0, 0xb8, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb0, 0xd1, 0x82, 0xd1, 0x8c, - 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbb, 0xd1, 0x8e, 0xd1, - 0x8f, 0xd0, 0xbd, 0xd0, 0xb2, 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x8f, 0xd0, 0xbc, - 0xd0, 0xb5, 0xd0, 0xbd, 0xd1, 0x8c, 0xd1, 0x88, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, - 0xbd, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xb8, 0xd1, 0x85, 0xd0, 0xb4, 0xd0, 0xb0, - 0xd0, 0xbd, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb9, 0xd0, 0xb7, 0xd0, 0xbd, 0xd0, - 0xb0, 0xd1, 0x87, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xbb, - 0xd1, 0x8c, 0xd0, 0xb7, 0xd1, 0x8f, 0xd1, 0x84, 0xd0, 0xbe, 0xd1, 0x80, 0xd1, - 0x83, 0xd0, 0xbc, 0xd0, 0xb0, 0xd0, 0xa2, 0xd0, 0xb5, 0xd0, 0xbf, 0xd0, 0xb5, - 0xd1, 0x80, 0xd1, 0x8c, 0xd0, 0xbc, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x8f, 0xd1, - 0x86, 0xd0, 0xb0, 0xd0, 0xb7, 0xd0, 0xb0, 0xd1, 0x89, 0xd0, 0xb8, 0xd1, 0x82, - 0xd1, 0x8b, 0xd0, 0x9b, 0xd1, 0x83, 0xd1, 0x87, 0xd1, 0x88, 0xd0, 0xb8, 0xd0, - 0xb5, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x82, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0x85, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0x95, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x95, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x85, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, - 0x8d, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xaf, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xb2, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa4, 0xad, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa4, - 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x80, 0xe0, - 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x95, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xae, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, - 0x8b, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, - 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xb9, 0xe0, - 0xa5, 0x81, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0x87, 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x97, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, - 0x9f, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x89, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0xaf, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x81, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xad, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xb7, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbf, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb6, 0xe0, 0xa5, 0x81, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, - 0x95, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x98, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x9f, - 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa5, 0x80, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0x85, 0xe0, 0xa4, 0xa7, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, - 0x85, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xae, 0xe0, - 0xa5, 0x81, 0xe0, 0xa4, 0x9d, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa3, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, - 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xa1, 0xe0, - 0xa4, 0xbc, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x9f, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xac, 0xe0, 0xa5, 0x8d, 0xe0, - 0xa4, 0xa6, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x95, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0x86, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb5, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xa6, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, - 0x82, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xb8, 0xe0, - 0xa4, 0x95, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, - 0x97, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xac, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, 0xa0, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0x95, 0xe0, - 0xa5, 0x80, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xb7, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb5, - 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8b, 0xe0, - 0xa4, 0x9c, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0x9c, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb9, 0xe0, - 0xa4, 0xae, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x89, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa5, 0x8d, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, - 0x9a, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, - 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb2, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x80, - 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, - 0x9c, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x98, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbf, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x80, 0xe0, - 0xa4, 0x9a, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0x82, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x97, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0x97, 0xe0, - 0xa4, 0xb2, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, - 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0xb9, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x87, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xb9, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa1, 0xe0, - 0xa4, 0xbc, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x98, 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x82, 0xe0, - 0xa4, 0x9a, 0xe0, 0xa4, 0xb6, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, - 0x80, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xbc, 0xe0, 0xa5, 0x80, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x88, 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, - 0xb6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x9c, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0x9c, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0x9f, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xbc, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, - 0x80, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xb2, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x96, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0x85, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0x9c, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa6, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbf, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xbf, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xac, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, - 0x82, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x80, - 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xab, 0xe0, 0xa5, 0x80, 0xe0, - 0xa4, 0x9c, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0xa4, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xae, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xb5, 0xe0, - 0xa4, 0xb9, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, - 0x8b, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbc, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbf, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa5, 0x8b, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, - 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xac, - 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x9c, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xac, - 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xbc, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, 0xe0, - 0xa5, 0x8c, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb6, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbf, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb9, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x82, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, - 0xb2, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb7, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, - 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xa5, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xd8, 0xaa, 0xd8, 0xb3, 0xd8, - 0xaa, 0xd8, 0xb7, 0xd9, 0x8a, 0xd8, 0xb9, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, 0xa7, - 0xd8, 0xb1, 0xd9, 0x83, 0xd8, 0xa9, 0xd8, 0xa8, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, - 0xb3, 0xd8, 0xb7, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb5, 0xd9, 0x81, - 0xd8, 0xad, 0xd8, 0xa9, 0xd9, 0x85, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xb6, 0xd9, - 0x8a, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xae, 0xd8, 0xa7, 0xd8, 0xb5, - 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb2, 0xd9, 0x8a, 0xd8, - 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xa9, - 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x83, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa8, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd8, 0xaf, 0xd9, 0x88, 0xd8, 0xaf, 0xd8, 0xa8, - 0xd8, 0xb1, 0xd9, 0x86, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xac, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xaf, 0xd9, 0x88, 0xd9, 0x84, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, - 0x85, 0xd9, 0x88, 0xd9, 0x82, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, - 0xd8, 0xb1, 0xd8, 0xa8, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb3, 0xd8, - 0xb1, 0xd9, 0x8a, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xac, 0xd9, 0x88, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb0, 0xd9, 0x87, 0xd8, - 0xa7, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xad, 0xd9, 0x8a, 0xd8, 0xa7, - 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xad, 0xd9, 0x82, 0xd9, 0x88, 0xd9, - 0x82, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x83, 0xd8, 0xb1, 0xd9, 0x8a, 0xd9, 0x85, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x82, 0xd9, - 0x85, 0xd8, 0xad, 0xd9, 0x81, 0xd9, 0x88, 0xd8, 0xb8, 0xd8, 0xa9, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xab, 0xd8, 0xa7, 0xd9, 0x86, 0xd9, 0x8a, 0xd9, 0x85, 0xd8, - 0xb4, 0xd8, 0xa7, 0xd9, 0x87, 0xd8, 0xaf, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, - 0xd9, 0x85, 0xd8, 0xb1, 0xd8, 0xa3, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, - 0x82, 0xd8, 0xb1, 0xd8, 0xa2, 0xd9, 0x86, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb4, - 0xd8, 0xa8, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xad, 0xd9, - 0x88, 0xd8, 0xa7, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xac, 0xd8, 0xaf, - 0xd9, 0x8a, 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa3, 0xd8, 0xb3, 0xd8, - 0xb1, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd9, 0x84, 0xd9, 0x88, - 0xd9, 0x85, 0xd9, 0x85, 0xd8, 0xac, 0xd9, 0x85, 0xd9, 0x88, 0xd8, 0xb9, 0xd8, - 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd8, 0xad, 0xd9, 0x85, 0xd9, 0x86, - 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x86, 0xd9, 0x82, 0xd8, 0xa7, 0xd8, 0xb7, 0xd9, - 0x81, 0xd9, 0x84, 0xd8, 0xb3, 0xd8, 0xb7, 0xd9, 0x8a, 0xd9, 0x86, 0xd8, 0xa7, - 0xd9, 0x84, 0xd9, 0x83, 0xd9, 0x88, 0xd9, 0x8a, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xaf, 0xd9, 0x86, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xb1, - 0xd9, 0x83, 0xd8, 0xa7, 0xd8, 0xaa, 0xd9, 0x87, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, - 0xb1, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xb6, 0xd8, 0xaa, 0xd8, 0xad, 0xd9, 0x8a, - 0xd8, 0xa7, 0xd8, 0xaa, 0xd9, 0x8a, 0xd8, 0xa8, 0xd8, 0xaa, 0xd9, 0x88, 0xd9, - 0x82, 0xd9, 0x8a, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa3, 0xd9, 0x88, - 0xd9, 0x84, 0xd9, 0x89, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa8, 0xd8, 0xb1, 0xd9, - 0x8a, 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x83, 0xd9, 0x84, 0xd8, 0xa7, - 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, - 0xb7, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb4, 0xd8, 0xae, 0xd8, 0xb5, 0xd9, 0x8a, - 0xd8, 0xb3, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xb1, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xab, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xab, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xb5, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xad, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xab, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xb2, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, - 0xae, 0xd9, 0x84, 0xd9, 0x8a, 0xd8, 0xac, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xac, - 0xd9, 0x85, 0xd9, 0x8a, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, - 0xa7, 0xd9, 0x85, 0xd9, 0x87, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xac, 0xd9, 0x85, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb3, 0xd8, 0xa7, 0xd8, - 0xb9, 0xd8, 0xa9, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, 0xa7, 0xd9, 0x87, 0xd8, 0xaf, - 0xd9, 0x87, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd8, 0xa6, 0xd9, 0x8a, 0xd8, - 0xb3, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xaf, 0xd8, 0xae, 0xd9, 0x88, 0xd9, 0x84, - 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x81, 0xd9, 0x86, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, - 0xa7, 0xd9, 0x84, 0xd9, 0x83, 0xd8, 0xaa, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xaf, 0xd9, 0x88, 0xd8, 0xb1, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xaf, 0xd8, 0xb1, 0xd9, 0x88, 0xd8, 0xb3, 0xd8, 0xa7, 0xd8, 0xb3, - 0xd8, 0xaa, 0xd8, 0xba, 0xd8, 0xb1, 0xd9, 0x82, 0xd8, 0xaa, 0xd8, 0xb5, 0xd8, - 0xa7, 0xd9, 0x85, 0xd9, 0x8a, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa8, - 0xd9, 0x86, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, - 0xb8, 0xd9, 0x8a, 0xd9, 0x85, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3d, 0x22, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x28, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6d, 0x70, 0x6f, - 0x72, 0x61, 0x72, 0x79, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6d, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x43, - 0x68, 0x69, 0x6c, 0x64, 0x28, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x22, 0x3e, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, - 0x72, 0x63, 0x3d, 0x22, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x74, 0x68, 0x6f, 0x75, 0x73, 0x61, 0x6e, 0x64, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x22, 0x3e, 0x3c, - 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x69, 0x6e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, - 0x69, 0x63, 0x6f, 0x22, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x61, 0x73, 0x73, 0x61, 0x63, 0x68, 0x75, - 0x73, 0x65, 0x74, 0x74, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x3d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x20, 0x61, 0x73, 0x70, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x3a, 0x23, 0x66, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, - 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x6d, 0x69, 0x73, 0x63, 0x65, 0x6c, 0x6c, 0x61, - 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x26, 0x6c, 0x74, 0x3b, 0x2f, 0x6d, 0x61, 0x74, - 0x68, 0x26, 0x67, 0x74, 0x3b, 0x70, 0x73, 0x79, 0x63, 0x68, 0x6f, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x75, 0x6c, 0x61, 0x72, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x61, 0x73, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x53, 0x75, 0x70, 0x72, 0x65, 0x6d, 0x65, 0x20, - 0x43, 0x6f, 0x75, 0x72, 0x74, 0x6f, 0x63, 0x63, 0x61, 0x73, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x41, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x61, 0x70, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x6f, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, - 0x43, 0x61, 0x73, 0x65, 0x28, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, - 0x75, 0x72, 0x69, 0x6e, 0x67, 0x70, 0x72, 0x6f, 0x66, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x46, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x2c, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x22, 0x20, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x63, 0x6f, 0x6e, 0x73, 0x63, 0x69, 0x6f, 0x75, - 0x73, 0x6e, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x64, 0x69, 0x74, 0x65, 0x72, 0x72, - 0x61, 0x6e, 0x65, 0x61, 0x6e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x61, 0x73, 0x73, 0x61, 0x73, 0x73, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, - 0x6e, 0x73, 0x69, 0x76, 0x65, 0x72, 0x65, 0x66, 0x65, 0x72, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x0a, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x70, 0x68, 0x69, 0x6c, 0x6f, 0x73, 0x6f, 0x70, - 0x68, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x68, 0x72, 0x65, 0x66, 0x77, 0x61, 0x73, 0x20, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x53, 0x61, 0x6e, 0x20, 0x46, 0x72, 0x61, 0x6e, - 0x63, 0x69, 0x73, 0x63, 0x6f, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x28, 0x29, 0x7b, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, - 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x6f, 0x70, 0x68, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x6d, 0x61, 0x74, 0x68, 0x65, 0x6d, 0x61, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0d, 0x0a, - 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x68, 0x69, 0x70, 0x73, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x54, 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, - 0x63, 0x61, 0x73, 0x65, 0x73, 0x70, 0x61, 0x72, 0x74, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x47, 0x72, 0x65, 0x61, 0x74, 0x20, 0x42, 0x72, - 0x69, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, - 0x64, 0x65, 0x72, 0x3d, 0x22, 0x3b, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, - 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x73, 0x75, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x20, 0x73, - 0x72, 0x63, 0x3d, 0x22, 0x2f, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x61, 0x72, 0x65, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x0a, 0x09, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, - 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x27, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x22, - 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x6c, 0x79, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x70, 0x6f, 0x70, - 0x75, 0x6c, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x3a, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x73, 0x70, - 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x2e, 0x67, 0x69, 0x66, 0x22, 0x20, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3d, 0x22, 0x3c, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x20, - 0x73, 0x72, 0x63, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x61, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x6c, 0x79, 0x70, 0x61, 0x72, 0x6c, 0x69, 0x61, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x72, 0x79, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, - 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x70, 0x72, 0x65, 0x64, 0x6f, 0x6d, 0x69, 0x6e, - 0x61, 0x6e, 0x74, 0x6c, 0x79, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x7c, 0x26, - 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f, - 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6f, 0x72, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x61, 0x6c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x3d, 0x22, 0x6f, 0x67, 0x3a, 0x2f, 0x78, 0x2d, 0x73, 0x68, 0x6f, 0x63, 0x6b, - 0x77, 0x61, 0x76, 0x65, 0x2d, 0x64, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x74, 0x68, 0x65, - 0x6c, 0x65, 0x73, 0x73, 0x2c, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x41, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x62, 0x65, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6c, 0x79, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x2c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, - 0x62, 0x6f, 0x64, 0x79, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x63, 0x74, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x76, - 0x69, 0x64, 0x75, 0x61, 0x6c, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x76, 0x69, 0x65, 0x77, 0x68, 0x6f, 0x6d, 0x6f, 0x73, 0x65, 0x78, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x6f, 0x66, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, - 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x72, 0x73, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x6f, 0x66, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x6e, 0x74, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x3d, 0x22, 0x30, 0x22, 0x3e, 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x6c, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x6f, 0x2d, 0x45, 0x75, 0x72, - 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x6f, 0x66, 0x61, 0x72, 0x65, 0x20, 0x73, 0x6f, 0x6d, 0x65, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x4e, 0x65, 0x77, 0x20, 0x59, 0x6f, 0x72, 0x6b, - 0x20, 0x43, 0x69, 0x74, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x61, 0x74, 0x68, 0x65, 0x6d, 0x61, 0x74, - 0x69, 0x63, 0x69, 0x61, 0x6e, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x3d, 0x22, 0x30, 0x22, 0x20, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x28, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x21, 0x5b, 0x65, 0x6e, 0x64, 0x69, 0x66, 0x5d, - 0x2d, 0x2d, 0x3e, 0x0d, 0x0a, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x6c, 0x79, 0x2e, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x66, 0x6f, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x6e, 0x64, - 0x61, 0x73, 0x68, 0x3b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x65, 0x71, 0x75, 0x69, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x68, 0x72, - 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, - 0x67, 0x65, 0x20, 0x6f, 0x66, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, 0x6c, 0x65, - 0x73, 0x73, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x26, - 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x20, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, - 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x20, 0x6f, 0x66, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, - 0x70, 0x74, 0x20, 0x74, 0x6f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x6a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x6a, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x74, 0x77, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x69, 0x64, 0x65, 0x20, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x6f, 0x66, 0x09, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x6c, 0x79, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x77, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x6d, 0x64, - 0x61, 0x73, 0x68, 0x3b, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x72, - 0x61, 0x63, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x66, 0x61, 0x63, 0x74, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x6e, 0x74, 0x6c, 0x79, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6f, - 0x76, 0x65, 0x72, 0x3d, 0x22, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x79, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x3d, 0x20, - 0x74, 0x72, 0x75, 0x65, 0x3b, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x73, 0x65, 0x65, 0x6d, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x61, 0x72, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x70, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x29, 0x20, 0x7b, 0x74, 0x6f, 0x6f, 0x6b, 0x20, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x20, 0x69, 0x6e, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x6f, 0x6d, 0x65, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x2f, - 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x69, 0x73, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x74, - 0x74, 0x65, 0x6d, 0x70, 0x74, 0x67, 0x72, 0x65, 0x61, 0x74, 0x20, 0x64, 0x65, - 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, - 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x61, 0x6c, 0x6c, 0x32, 0x30, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, - 0x74, 0x75, 0x72, 0x79, 0x2c, 0x70, 0x72, 0x6f, 0x66, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, - 0x69, 0x74, 0x20, 0x69, 0x73, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x72, 0x79, 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x20, 0x74, 0x6f, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x74, 0x6c, 0x79, 0x2c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, - 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, - 0x6c, 0x64, 0x20, 0x62, 0x65, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x27, 0x73, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x28, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, - 0x6c, 0x61, 0x72, 0x6c, 0x79, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, - 0x65, 0x66, 0x74, 0x22, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x6c, 0x79, 0x62, 0x61, 0x73, 0x69, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x69, - 0x74, 0x79, 0x20, 0x6f, 0x66, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, 0x73, 0x65, - 0x6f, 0x75, 0x74, 0x3d, 0x22, 0x4e, 0x65, 0x77, 0x20, 0x54, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, - 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, - 0x6e, 0x69, 0x74, 0x65, 0x64, 0x66, 0x69, 0x6c, 0x6d, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x2e, - 0x64, 0x74, 0x64, 0x22, 0x3e, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x62, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x75, 0x6e, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x65, 0x64, 0x69, 0x73, 0x20, 0x73, 0x69, 0x6d, 0x69, 0x6c, - 0x61, 0x72, 0x20, 0x74, 0x6f, 0x65, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, - 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x09, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x48, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x6e, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6e, 0x64, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x26, 0x6e, - 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x79, 0x65, 0x61, 0x72, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x20, - 0x79, 0x65, 0x61, 0x72, 0x73, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x09, 0x09, 0x3c, 0x75, 0x6c, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x39, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, - 0x74, 0x75, 0x72, 0x79, 0x2c, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x73, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x65, 0x20, - 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x69, 0x6e, 0x75, 0x65, 0x64, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x69, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x62, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x20, - 0x61, 0x62, 0x6f, 0x75, 0x74, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, - 0x65, 0x66, 0x74, 0x3a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x73, 0x53, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x73, 0x65, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x65, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x72, 0x65, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x0a, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, - 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x70, 0x61, - 0x72, 0x74, 0x20, 0x6f, 0x66, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x2d, 0x63, - 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x63, 0x61, 0x73, 0x65, 0x2c, 0x77, 0x61, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x65, 0x64, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x48, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x61, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, - 0x61, 0x72, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x61, 0x6c, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x61, 0x6c, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x61, - 0x6c, 0x77, 0x61, 0x79, 0x73, 0x61, 0x72, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x70, 0x68, 0x69, 0x6c, 0x6f, 0x73, 0x6f, 0x70, - 0x68, 0x79, 0x20, 0x6f, 0x66, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x63, 0x69, 0x76, 0x69, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, - 0x22, 0x22, 0x20, 0x2f, 0x3e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, - 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x4d, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x73, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, - 0x6e, 0x69, 0x74, 0x65, 0x64, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x64, 0x69, 0x73, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x69, 0x73, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x6c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x65, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x6c, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x69, 0x73, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x74, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x68, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x69, 0x74, 0x73, 0x77, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6e, - 0x63, 0x69, 0x70, 0x61, 0x6c, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, - 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x61, 0x20, 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x65, 0x64, 0x68, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x74, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x67, 0x72, 0x61, - 0x64, 0x75, 0x61, 0x74, 0x65, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x74, 0x77, 0x6f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x61, 0x72, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x77, 0x61, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x6c, 0x79, 0x2c, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x6f, 0x6c, 0x69, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x6f, 0x66, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x32, 0x30, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, - 0x74, 0x75, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x68, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x68, 0x61, - 0x6c, 0x66, 0x20, 0x6f, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x20, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, - 0x74, 0x75, 0x72, 0x61, 0x6c, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x69, 0x7a, 0x65, 0x64, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x77, 0x61, 0x73, 0x20, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x74, 0x68, 0x65, 0x20, 0x50, 0x72, 0x65, 0x73, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x64, 0x66, 0x72, 0x65, 0x65, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x65, 0x64, 0x61, 0x77, 0x61, 0x79, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x3b, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x79, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x61, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x66, 0x75, 0x6c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x74, 0x79, 0x20, 0x6f, 0x66, 0x48, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, - 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x73, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, - 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x69, 0x73, 0x20, 0x74, 0x68, 0x6f, 0x75, 0x67, - 0x68, 0x74, 0x20, 0x74, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x77, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x75, 0x6e, 0x63, 0x65, 0x64, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x61, 0x6e, 0x74, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x73, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x74, 0x68, 0x65, 0x20, 0x63, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x44, 0x4f, 0x20, 0x4e, 0x4f, 0x54, 0x20, - 0x41, 0x4c, 0x54, 0x45, 0x52, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x2f, 0x3f, - 0x73, 0x6f, 0x72, 0x74, 0x3d, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x64, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x73, 0x69, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x68, 0x61, 0x73, 0x20, 0x64, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x75, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x6c, 0x79, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, - 0x74, 0x68, 0x6f, 0x73, 0x65, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x73, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, - 0x72, 0x69, 0x63, 0x61, 0x6e, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x6e, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x63, 0x61, 0x73, 0x65, 0x3b, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x20, 0x61, 0x6e, 0x64, 0x3b, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x62, 0x61, 0x68, 0x61, 0x73, 0x61, 0x20, 0x4d, - 0x65, 0x6c, 0x61, 0x79, 0x75, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x62, 0x6f, - 0x6b, 0x6d, 0xc3, 0xa5, 0x6c, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x6e, 0x79, - 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x73, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0xc5, 0xa1, - 0xc4, 0x8d, 0x69, 0x6e, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x63, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x63, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x6f, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, - 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x69, - 0x67, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x69, 0x6d, 0x75, - 0x6c, 0x74, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x3c, 0x21, 0x5b, 0x65, 0x6e, 0x64, 0x69, 0x66, 0x5d, 0x2d, 0x2d, 0x3e, - 0x0a, 0x3c, 0x2f, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, - 0x3e, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3d, 0x68, 0x74, 0x74, 0x70, - 0x25, 0x33, 0x41, 0x25, 0x32, 0x46, 0x25, 0x32, 0x46, 0x3c, 0x66, 0x6f, 0x72, - 0x6d, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x74, 0x22, 0x20, 0x2f, 0x66, - 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x20, 0x7d, - 0x29, 0x3b, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, - 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x28, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x28, 0x29, 0x3b, 0x3c, 0x21, 0x5b, 0x65, 0x6e, 0x64, 0x69, 0x66, 0x5d, 0x2d, - 0x2d, 0x3e, 0x0d, 0x0a, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x55, 0x6e, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, - 0x61, 0x74, 0x65, 0x6c, 0x79, 0x2c, 0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, - 0x3b, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x2f, 0x66, 0x61, 0x76, 0x69, 0x63, - 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x3e, 0x3d, 0x27, 0x73, 0x74, 0x79, - 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x27, 0x20, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x3c, 0x6c, - 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x61, - 0x6e, 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x61, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x6f, - 0x66, 0x70, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x3e, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x22, 0x20, 0x0a, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x41, 0x63, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x68, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x64, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x62, 0x6f, 0x64, 0x79, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x6c, 0x79, - 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x74, 0x22, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x3d, 0x22, 0x6d, 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x26, 0x71, - 0x75, 0x6f, 0x74, 0x3b, 0x2d, 0x2d, 0x3c, 0x21, 0x5b, 0x65, 0x6e, 0x64, 0x69, - 0x66, 0x5d, 0x2d, 0x2d, 0x3e, 0x50, 0x72, 0x69, 0x6d, 0x65, 0x20, 0x4d, 0x69, - 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, - 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x74, 0x68, 0x65, 0x20, 0x68, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x6d, - 0x6f, 0x75, 0x73, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x3d, 0x22, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x68, 0x72, - 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, - 0x61, 0x73, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, - 0x77, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, - 0x64, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x3c, 0x21, 0x5b, 0x65, 0x6e, 0x64, 0x69, 0x66, 0x5d, - 0x2d, 0x2d, 0x3e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x73, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6c, 0x61, 0x63, - 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, - 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x20, - 0x7b, 0x42, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x2d, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x2e, 0x64, 0x74, 0x64, - 0x22, 0x3e, 0x0a, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x2f, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, - 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x73, 0x29, 0x3b, - 0x20, 0x6a, 0x73, 0x2e, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x69, 0x64, 0x22, 0x20, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x72, - 0x65, 0x67, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x52, 0x6f, 0x6d, 0x61, 0x6e, 0x20, 0x43, 0x61, 0x74, 0x68, 0x6f, 0x6c, 0x69, - 0x63, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x74, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x2e, 0x67, 0x69, 0x66, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3d, 0x22, 0x31, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, - 0x77, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x61, 0x65, 0x6f, - 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x70, 0x72, 0x69, 0x6d, 0x65, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x6a, 0x73, 0x22, 0x3e, - 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x63, 0x6f, 0x6d, 0x62, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x77, - 0x2e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x28, - 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, - 0x3e, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x61, 0x49, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, - 0x61, 0x72, 0x2c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, - 0x66, 0x74, 0x22, 0x20, 0x43, 0x7a, 0x65, 0x63, 0x68, 0x20, 0x52, 0x65, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4b, - 0x69, 0x6e, 0x67, 0x64, 0x6f, 0x6d, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x6c, - 0x22, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x28, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x63, 0x6f, 0x6d, - 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x3c, - 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, - 0x62, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x27, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x27, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, - 0x3c, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x28, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x73, 0x09, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, - 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x3e, 0x3c, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x66, - 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x6f, 0x78, 0x69, - 0x64, 0x65, 0x0a, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x2d, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, - 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x6f, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x20, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, - 0x3e, 0x0d, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x54, 0x69, 0xe1, 0xba, - 0xbf, 0x6e, 0x67, 0x20, 0x56, 0x69, 0xe1, 0xbb, 0x87, 0x74, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, - 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x3c, 0x77, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x65, 0x64, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, - 0x74, 0x22, 0x20, 0x29, 0x3b, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x63, 0x63, 0x6c, 0x65, 0x73, 0x69, 0x61, - 0x73, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x68, - 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x3c, 0x2f, 0x62, 0x6f, 0x64, - 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x68, 0x61, 0x73, 0x20, - 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x69, 0x6e, - 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x74, 0x6f, 0x61, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, - 0x69, 0x77, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x22, 0x20, 0x2f, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, - 0x2d, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x27, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20, 0x6e, - 0x6f, 0x74, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, - 0x6c, 0x73, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6d, 0x61, 0x6e, 0x79, 0x61, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, - 0x72, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x2e, 0x20, 0x48, 0x6f, - 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x61, 0x6e, 0x64, - 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x41, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x3d, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x70, 0x6f, - 0x73, 0x74, 0x22, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x70, 0x6f, 0x73, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x69, 0x6b, 0x65, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x6c, - 0x73, 0x6f, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x61, 0x6e, 0x6e, 0x6f, 0x75, - 0x6e, 0x63, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x6d, 0x61, 0x6e, - 0x79, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x66, 0x6f, - 0x72, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x79, 0x65, 0x61, 0x72, 0x73, 0x65, - 0x61, 0x72, 0x6c, 0x69, 0x65, 0x73, 0x74, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x77, 0x61, - 0x73, 0x70, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x3e, 0x0d, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, - 0x70, 0x22, 0x20, 0x69, 0x6e, 0x68, 0x61, 0x62, 0x69, 0x74, 0x61, 0x6e, 0x74, - 0x73, 0x20, 0x6f, 0x66, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x20, 0x79, 0x65, 0x61, 0x72, 0x0d, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x65, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x61, 0x72, 0x67, 0x75, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x61, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x72, 0x65, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x63, - 0x69, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x65, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x20, 0x3c, - 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x61, - 0x77, 0x61, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, - 0x6f, 0x66, 0x69, 0x6e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, - 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x3c, 0x73, 0x70, 0x61, 0x6e, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x64, 0x65, 0x73, 0x63, 0x65, - 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x3c, 0x73, 0x70, 0x61, - 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x69, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3c, 0x2f, - 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x61, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x68, 0x61, 0x73, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x20, 0x55, 0x6e, 0x69, - 0x6f, 0x6e, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x63, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x64, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x56, 0x69, 0x63, 0x65, 0x20, 0x50, 0x72, 0x65, 0x73, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, - 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x66, 0x6f, 0x6e, 0x74, 0x2d, - 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x31, 0x70, 0x78, 0x65, 0x78, 0x70, 0x6c, - 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x20, 0x6f, 0x66, 0x77, 0x72, - 0x69, 0x74, 0x74, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x09, - 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x69, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x73, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x69, - 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x3c, 0x73, - 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x74, 0x28, - 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x28, 0x29, - 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x6e, 0x65, 0x6e, - 0x74, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, - 0x70, 0x6c, 0x65, 0x77, 0x65, 0x72, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x73, 0x65, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x31, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x68, 0x61, 0x64, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x64, 0x65, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x09, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x6f, - 0x66, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, - 0x63, 0x6c, 0x65, 0x61, 0x72, 0x3a, 0x62, 0x0d, 0x0a, 0x3c, 0x2f, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x3c, 0x77, 0x61, 0x73, 0x20, 0x66, - 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x69, 0x65, 0x77, 0x20, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x69, 0x64, - 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x63, 0x61, - 0x70, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x0d, - 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x78, 0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x74, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x6c, 0x61, - 0x72, 0x67, 0x65, 0x73, 0x74, 0x76, 0x65, 0x72, 0x79, 0x20, 0x69, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x69, 0x67, 0x6e, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x65, - 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x65, 0x73, - 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x69, - 0x73, 0x20, 0x62, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x49, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x6d, 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x69, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x65, 0x64, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x65, 0x66, - 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x3c, 0x73, 0x70, - 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x70, 0x65, - 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x28, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0d, - 0x69, 0x66, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x79, 0x70, 0x65, 0x22, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x41, 0x73, 0x73, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x0a, 0x3c, 0x2f, 0x68, - 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x69, 0x73, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x28, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, - 0x61, 0x6c, 0x61, 0x6d, 0x6f, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x6f, 0x73, 0x74, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x2f, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, - 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x72, - 0x70, 0x6f, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, 0x20, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x74, 0x6f, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x0a, 0x2e, 0x0a, 0x3c, 0x73, 0x70, - 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x66, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x3e, - 0x0d, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x68, 0x61, 0x76, 0x65, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, - 0x65, 0x64, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x3d, 0x22, 0x63, 0x65, 0x6c, 0x65, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x62, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x20, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x6f, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x3e, 0x3c, 0x21, - 0x5b, 0x65, 0x6e, 0x64, 0x69, 0x66, 0x5d, 0x2d, 0x2d, 0x3e, 0x0a, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x69, - 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x65, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x65, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, - 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x77, 0x61, 0x73, 0x20, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x69, 0x73, 0x74, 0x68, 0x65, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x6f, 0x6d, - 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x73, 0x70, - 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x73, - 0x69, 0x67, 0x6e, 0x69, 0x66, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x6c, 0x79, 0x20, - 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x0d, - 0x0a, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x65, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, 0x73, 0x20, 0x65, 0x73, 0x73, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x77, 0x65, 0x72, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x73, 0x74, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x6d, 0x61, 0x64, 0x65, 0x22, 0x20, 0x73, - 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x68, 0x61, 0x6c, 0x66, 0x20, 0x6f, 0x66, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x6e, 0x6f, 0x22, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x20, - 0x6f, 0x66, 0x49, 0x49, 0x2c, 0x20, 0x48, 0x6f, 0x6c, 0x79, 0x20, 0x52, 0x6f, - 0x6d, 0x61, 0x6e, 0x69, 0x73, 0x20, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6f, 0x77, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x66, 0x74, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x64, 0x74, 0x6f, 0x20, 0x65, - 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x67, 0x72, - 0x65, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x61, - 0x72, 0x65, 0x20, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, - 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x6e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, - 0x2f, 0x75, 0x6c, 0x3e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, - 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, - 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, - 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x3e, 0x0a, 0x3c, 0x6d, - 0x65, 0x74, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x63, 0x61, - 0x72, 0x72, 0x69, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x62, 0x79, 0x48, - 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, - 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, - 0x66, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, - 0x6c, 0x20, 0x6f, 0x66, 0x77, 0x61, 0x73, 0x20, 0x6f, 0x66, 0x66, 0x69, 0x63, - 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, - 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x74, 0x6f, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x73, 0x75, 0x67, - 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x68, - 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x74, 0x79, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x20, 0x6f, 0x66, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x71, 0x22, 0x09, 0x09, 0x3c, 0x64, 0x69, - 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x72, 0x65, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x6d, 0x61, - 0x74, 0x68, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x69, 0x61, 0x6e, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x22, 0x63, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, - 0x6c, 0x61, 0x72, 0x2c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x29, 0x3b, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x70, 0x68, 0x69, 0x6c, 0x6f, 0x73, 0x6f, - 0x70, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x72, 0x70, 0x73, 0x6b, 0x6f, - 0x68, 0x72, 0x76, 0x61, 0x74, 0x73, 0x6b, 0x69, 0x74, 0x69, 0xe1, 0xba, 0xbf, - 0x6e, 0x67, 0x20, 0x56, 0x69, 0xe1, 0xbb, 0x87, 0x74, 0xd0, 0xa0, 0xd1, 0x83, - 0xd1, 0x81, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb8, 0xd0, 0xb9, 0xd1, 0x80, 0xd1, - 0x83, 0xd1, 0x81, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb8, 0xd0, 0xb9, 0x69, 0x6e, - 0x76, 0x65, 0x73, 0x74, 0x69, 0x67, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, - 0xd0, 0xba, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd1, 0x8b, 0xd0, - 0xb5, 0xd0, 0xbe, 0xd0, 0xb1, 0xd0, 0xbb, 0xd0, 0xb0, 0xd1, 0x81, 0xd1, 0x82, - 0xd0, 0xb8, 0xd0, 0xba, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd1, - 0x8b, 0xd0, 0xb9, 0xd1, 0x87, 0xd0, 0xb5, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, 0xb2, - 0xd0, 0xb5, 0xd0, 0xba, 0xd1, 0x81, 0xd0, 0xb8, 0xd1, 0x81, 0xd1, 0x82, 0xd0, - 0xb5, 0xd0, 0xbc, 0xd1, 0x8b, 0xd0, 0x9d, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xbe, - 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xba, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, - 0xbe, 0xd1, 0x80, 0xd1, 0x8b, 0xd1, 0x85, 0xd0, 0xbe, 0xd0, 0xb1, 0xd0, 0xbb, - 0xd0, 0xb0, 0xd1, 0x81, 0xd1, 0x82, 0xd1, 0x8c, 0xd0, 0xb2, 0xd1, 0x80, 0xd0, - 0xb5, 0xd0, 0xbc, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xba, 0xd0, 0xbe, - 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xb0, 0xd1, 0x8f, 0xd1, 0x81, 0xd0, - 0xb5, 0xd0, 0xb3, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xbd, 0xd1, 0x8f, 0xd1, 0x81, - 0xd0, 0xba, 0xd0, 0xb0, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, 0x82, 0xd1, 0x8c, 0xd0, - 0xbd, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xbe, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb8, - 0xd0, 0xa3, 0xd0, 0xba, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb8, 0xd0, 0xbd, 0xd1, - 0x8b, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xbe, 0xd1, 0x81, - 0xd1, 0x8b, 0xd0, 0xba, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, - 0xbe, 0xd0, 0xb9, 0xd1, 0x81, 0xd0, 0xb4, 0xd0, 0xb5, 0xd0, 0xbb, 0xd0, 0xb0, - 0xd1, 0x82, 0xd1, 0x8c, 0xd0, 0xbf, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xbe, 0xd1, - 0x89, 0xd1, 0x8c, 0xd1, 0x8e, 0xd1, 0x81, 0xd1, 0x80, 0xd0, 0xb5, 0xd0, 0xb4, - 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb1, 0xd1, 0x80, 0xd0, - 0xb0, 0xd0, 0xb7, 0xd0, 0xbe, 0xd0, 0xbc, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xbe, - 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xbd, 0xd1, 0x8b, 0xd1, 0x83, 0xd1, 0x87, 0xd0, - 0xb0, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb5, - 0xd1, 0x87, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xb5, 0xd0, 0x93, 0xd0, - 0xbb, 0xd0, 0xb0, 0xd0, 0xb2, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x8f, 0xd0, 0xb8, - 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, 0xb8, 0xd1, - 0x81, 0xd0, 0xb8, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbc, 0xd0, 0xb0, - 0xd1, 0x80, 0xd0, 0xb5, 0xd1, 0x88, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, - 0x8f, 0xd0, 0xa1, 0xd0, 0xba, 0xd0, 0xb0, 0xd1, 0x87, 0xd0, 0xb0, 0xd1, 0x82, - 0xd1, 0x8c, 0xd0, 0xbf, 0xd0, 0xbe, 0xd1, 0x8d, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, - 0xbc, 0xd1, 0x83, 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xb4, 0xd1, 0x83, - 0xd0, 0xb5, 0xd1, 0x82, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb0, 0xd0, 0xb7, 0xd0, - 0xb0, 0xd1, 0x82, 0xd1, 0x8c, 0xd1, 0x82, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xb0, - 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xbd, 0xd0, - 0xb5, 0xd1, 0x87, 0xd0, 0xbd, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xb5, 0xd1, 0x88, - 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xb5, 0xd0, 0xba, 0xd0, 0xbe, 0xd1, - 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb5, 0xd0, 0xbe, 0xd1, 0x80, - 0xd0, 0xb3, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xba, 0xd0, - 0xbe, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xbc, 0xd0, 0xa0, - 0xd0, 0xb5, 0xd0, 0xba, 0xd0, 0xbb, 0xd0, 0xb0, 0xd0, 0xbc, 0xd0, 0xb0, 0xd8, - 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xaf, 0xd9, 0x89, - 0xd9, 0x85, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, - 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x88, 0xd8, 0xb6, 0xd9, 0x88, - 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa8, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, - 0x85, 0xd8, 0xac, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x88, 0xd8, 0xa7, - 0xd9, 0x82, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd8, 0xb3, 0xd8, - 0xa7, 0xd8, 0xa6, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, 0xa7, 0xd8, 0xb1, - 0xd9, 0x83, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa3, 0xd8, - 0xb9, 0xd8, 0xb6, 0xd8, 0xa7, 0xd8, 0xa1, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, - 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xb6, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, - 0xaa, 0xd8, 0xb5, 0xd9, 0x85, 0xd9, 0x8a, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xa7, 0xd8, 0xb9, 0xd8, 0xb6, 0xd8, 0xa7, 0xd8, 0xa1, 0xd8, 0xa7, 0xd9, - 0x84, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xa7, 0xd8, 0xa6, 0xd8, 0xac, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xa3, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xaa, 0xd8, 0xb3, 0xd8, 0xac, 0xd9, 0x8a, 0xd9, 0x84, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa3, 0xd9, 0x82, 0xd8, 0xb3, 0xd8, 0xa7, 0xd9, - 0x85, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb6, 0xd8, 0xba, 0xd8, 0xb7, 0xd8, 0xa7, - 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x81, 0xd9, 0x8a, 0xd8, 0xaf, 0xd9, - 0x8a, 0xd9, 0x88, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xaa, 0xd8, 0xb1, 0xd8, 0xad, - 0xd9, 0x8a, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xac, 0xd8, 0xaf, 0xd9, - 0x8a, 0xd8, 0xaf, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xaa, 0xd8, 0xb9, - 0xd9, 0x84, 0xd9, 0x8a, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa3, 0xd8, - 0xae, 0xd8, 0xa8, 0xd8, 0xa7, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, - 0xd9, 0x81, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, - 0xa3, 0xd9, 0x81, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x85, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xaa, 0xd8, 0xa7, 0xd8, 0xb1, 0xd9, 0x8a, 0xd8, 0xae, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xaa, 0xd9, 0x82, 0xd9, 0x86, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa7, - 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xae, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xb7, 0xd8, 0xb1, - 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xac, 0xd8, 0xaa, 0xd9, 0x85, 0xd8, - 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xaf, 0xd9, 0x8a, 0xd9, 0x83, 0xd9, 0x88, - 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb3, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, - 0xad, 0xd8, 0xa9, 0xd8, 0xb9, 0xd8, 0xa8, 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, - 0xd9, 0x84, 0xd9, 0x87, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xaa, 0xd8, 0xb1, 0xd8, - 0xa8, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd9, 0x88, - 0xd8, 0xa7, 0xd8, 0xa8, 0xd8, 0xb7, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa3, 0xd8, - 0xaf, 0xd8, 0xa8, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, - 0xd8, 0xae, 0xd8, 0xa8, 0xd8, 0xa7, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, - 0x85, 0xd8, 0xaa, 0xd8, 0xad, 0xd8, 0xaf, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xa7, 0xd8, 0xba, 0xd8, 0xa7, 0xd9, 0x86, 0xd9, 0x8a, 0x63, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x3c, - 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a, 0x3c, 0x6d, 0x65, 0x74, 0x61, - 0x20, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x22, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x2f, 0x61, - 0x3e, 0x20, 0x7c, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, - 0x3c, 0x21, 0x64, 0x6f, 0x63, 0x74, 0x79, 0x70, 0x65, 0x20, 0x68, 0x74, 0x6d, - 0x6c, 0x3e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x3d, 0x22, 0x73, 0x63, 0x72, 0x65, - 0x65, 0x6e, 0x22, 0x20, 0x3c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, - 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x09, 0x09, 0x3c, 0x64, - 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, - 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x67, 0x65, 0x74, 0x22, - 0x20, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, - 0x6c, 0x3e, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x20, 0x69, - 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x28, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x72, 0x65, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x22, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6f, 0x75, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x66, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, - 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3e, - 0x3c, 0x77, 0x61, 0x73, 0x20, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x29, 0x3b, 0x0d, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x22, 0x3e, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x65, 0x63, 0x61, - 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, - 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, - 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, - 0x22, 0x2f, 0x7d, 0x62, 0x6f, 0x64, 0x79, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x3a, 0x30, 0x3b, 0x45, 0x6e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x70, 0x65, - 0x64, 0x69, 0x61, 0x20, 0x6f, 0x66, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2e, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x3c, - 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, - 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, - 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x3e, 0x3c, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x70, 0x6f, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, - 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3d, 0x22, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, - 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x49, 0x6e, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x2c, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x2f, 0x3e, 0x0a, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x61, 0x73, 0x20, 0x77, 0x65, 0x6c, 0x6c, 0x20, - 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x63, - 0x65, 0x6e, 0x74, 0x20, 0x79, 0x65, 0x61, 0x72, 0x73, 0x0d, 0x0a, 0x09, 0x3c, - 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x09, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, - 0x69, 0x6e, 0x73, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x2e, 0x6a, 0x73, - 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x20, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, - 0x65, 0x65, 0x6e, 0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x20, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x73, 0x74, 0x20, 0x50, 0x61, 0x72, 0x74, 0x79, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, - 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3d, 0x22, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x20, 0x6f, 0x66, 0x22, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, - 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x4f, 0x72, 0x74, - 0x68, 0x6f, 0x64, 0x6f, 0x78, 0x20, 0x43, 0x68, 0x75, 0x72, 0x63, 0x68, 0x73, - 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x2f, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, - 0x3d, 0x22, 0x73, 0x77, 0x61, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x68, 0x69, - 0x73, 0x20, 0x64, 0x65, 0x61, 0x74, 0x68, 0x7d, 0x29, 0x28, 0x29, 0x3b, 0x0a, - 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x4e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6c, - 0x61, 0x6e, 0x64, 0x73, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x3a, 0x75, 0x72, 0x6c, 0x28, 0x61, 0x72, 0x67, 0x75, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x73, 0x63, 0x72, - 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x20, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x68, 0x65, 0x20, 0x74, 0x72, - 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x64, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x61, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x76, 0x65, 0x72, 0x79, 0x20, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, - 0x72, 0x20, 0x74, 0x6f, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x77, 0x6f, 0x75, - 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x3d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x69, 0x73, 0x20, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x6e, 0x61, - 0x6d, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x6d, 0x6f, 0x73, - 0x74, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x69, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, - 0x64, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x77, 0x61, 0x73, 0x20, - 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x61, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x6e, 0x73, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x61, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, - 0x65, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x61, 0x72, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x55, 0x6e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x64, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3e, 0x0a, 0x09, 0x3c, 0x64, 0x69, - 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x74, - 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x20, 0x6f, 0x66, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x68, 0x61, 0x76, 0x65, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, - 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x28, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x49, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, - 0x74, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x2f, 0x64, - 0x69, 0x76, 0x3e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, - 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x61, 0x73, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x46, 0x6f, - 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, - 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x74, - 0x22, 0x20, 0x77, 0x61, 0x73, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x6d, 0x64, 0x61, 0x73, - 0x68, 0x3b, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6a, 0x73, 0x22, 0x3e, 0x3c, - 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x75, 0x6c, 0x3e, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x61, 0x74, - 0x68, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x20, 0x74, 0x6f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x75, 0x6c, 0x61, 0x72, 0x6c, 0x79, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x3b, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, 0x69, 0x73, - 0x20, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0xe4, 0xb8, 0xad, 0xe6, 0x96, 0x87, 0x20, 0x28, 0xe7, 0xae, 0x80, 0xe4, 0xbd, - 0x93, 0x29, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x64, 0x61, 0x64, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, - 0x61, 0x63, 0x69, 0xc3, 0xb3, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x63, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x65, 0xe0, 0xa4, 0x89, - 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x97, 0xe0, - 0xa4, 0xaa, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xb5, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x97, 0xe0, - 0xa5, 0x8b, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x9a, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xb8, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0x96, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0x82, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, - 0xbf, 0xe0, 0xa4, 0x8f, 0xe0, 0xa4, 0xad, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x9c, - 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xae, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, - 0xae, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x9c, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa3, 0xe0, - 0xa4, 0xac, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xac, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb2, 0xe0, - 0xa5, 0x89, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xb2, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb9, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, 0xe0, - 0xa5, 0x83, 0xe0, 0xa4, 0xb7, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa0, 0xe0, 0xa4, - 0xac, 0xe0, 0xa4, 0xa2, 0xe0, 0xa4, 0xbc, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0xad, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xaa, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, - 0xbf, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, 0xbf, 0xe0, - 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xab, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, - 0x8c, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xae, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xae, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xaf, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xaa, 0xe0, - 0xa4, 0xb9, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x81, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, - 0xac, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xa6, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x9b, - 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, - 0xa4, 0xb6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb7, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0x89, - 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0xae, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, - 0x88, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x8b, - 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa4, 0xa3, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xa2, 0xe0, 0xa4, - 0xbc, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xab, 0xe0, - 0xa4, 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, - 0xae, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x96, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xaf, - 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0x9a, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0x9b, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0x9b, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, - 0xa4, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x97, - 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x8f, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, - 0xbf, 0xe0, 0xa4, 0xad, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0x98, - 0xe0, 0xa4, 0xa3, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xa6, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x8b, - 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, 0xe0, - 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa7, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb5, 0xe0, - 0xa4, 0xbf, 0xe0, 0xa4, 0xb6, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, - 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, - 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x8d, 0xe0, - 0xa4, 0xb8, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xb6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, - 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xa6, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, - 0xbf, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaa, - 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb7, 0xe0, - 0xa4, 0xb9, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, - 0x80, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, - 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xbc, 0xe0, 0xa4, - 0xae, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa4, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x83, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, - 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, 0x98, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xb5, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0xb8, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x96, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x82, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xae, 0xe0, - 0xa5, 0x88, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0xa4, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, 0xe0, - 0xa5, 0x87, 0x72, 0x73, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x22, 0x20, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x3e, 0x0a, 0x3c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, - 0x22, 0x70, 0x6f, 0x73, 0x74, 0x22, 0x20, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, - 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x74, - 0x2f, 0x6a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x6d, 0x69, 0x6e, 0x2e, 0x6a, - 0x73, 0x22, 0x3e, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x28, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, - 0x22, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x7d, 0x29, 0x28, 0x29, - 0x3b, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, - 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3d, 0x22, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x29, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, - 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x73, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x6e, 0x6f, 0x22, - 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x3a, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x42, 0x61, 0x68, 0x61, 0x73, 0x61, - 0x20, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x45, 0x6e, 0x67, - 0x6c, 0x69, 0x73, 0x68, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x3c, 0x74, 0x65, 0x78, 0x74, 0x20, 0x78, 0x6d, 0x6c, 0x3a, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x3d, 0x2e, 0x67, 0x69, 0x66, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, - 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x6f, 0x76, 0x65, 0x72, - 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x69, - 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x65, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x2e, 0x6a, 0x73, 0x22, - 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x2f, 0x66, - 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x20, 0x2f, - 0x3e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x3d, 0x22, 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x3e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x20, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, - 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, - 0x66, 0x74, 0x3b, 0x0a, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x28, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x29, - 0x3b, 0x0d, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, - 0x0a, 0x3c, 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x3a, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, - 0x77, 0x3a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x6d, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x3c, 0x2f, 0x64, - 0x69, 0x76, 0x3e, 0x0a, 0x09, 0x09, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, - 0x3b, 0x22, 0x3e, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, - 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x0a, 0x20, 0x20, 0x28, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x35, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x2e, - 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x28, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x79, 0x7a, 0x61, 0x6e, 0x74, 0x69, 0x6e, - 0x65, 0x20, 0x45, 0x6d, 0x70, 0x69, 0x72, 0x65, 0x2e, 0x6a, 0x70, 0x67, 0x7c, - 0x74, 0x68, 0x75, 0x6d, 0x62, 0x7c, 0x6c, 0x65, 0x66, 0x74, 0x7c, 0x76, 0x61, - 0x73, 0x74, 0x20, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, - 0x66, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x74, 0x79, 0x20, 0x50, 0x72, 0x65, 0x73, 0x73, 0x64, 0x6f, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x20, - 0x57, 0x61, 0x72, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x66, 0x6f, 0x6c, - 0x6c, 0x6f, 0x77, 0x22, 0x3e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x73, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x72, 0x61, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x20, - 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x3a, 0x31, 0x30, 0x30, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x2d, 0x73, - 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x20, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x62, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x6f, 0x66, 0x44, 0x65, 0x6d, 0x6f, 0x63, 0x72, 0x61, 0x74, 0x69, 0x63, - 0x20, 0x50, 0x61, 0x72, 0x74, 0x79, 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x46, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2c, 0x2e, - 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, - 0x0a, 0x09, 0x73, 0x42, 0x79, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x28, - 0x73, 0x29, 0x5b, 0x30, 0x5d, 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x3c, 0x2e, 0x6a, 0x73, 0x22, 0x3e, - 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x6c, 0x69, - 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x69, 0x63, 0x6f, 0x6e, 0x22, - 0x20, 0x27, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x27, 0x27, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x27, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x3c, 0x2f, 0x61, - 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x2f, 0x70, 0x61, 0x67, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x67, - 0x65, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x62, 0x61, 0x68, 0x61, - 0x73, 0x61, 0x20, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x65, - 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x20, 0x28, 0x73, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x29, 0xce, 0x95, 0xce, 0xbb, 0xce, 0xbb, 0xce, 0xb7, 0xce, 0xbd, 0xce, - 0xb9, 0xce, 0xba, 0xce, 0xac, 0xd1, 0x85, 0xd1, 0x80, 0xd0, 0xb2, 0xd0, 0xb0, - 0xd1, 0x82, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb8, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, - 0xbc, 0xd0, 0xbf, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xb8, 0xd1, 0x8f, - 0xd0, 0xb2, 0xd0, 0xbb, 0xd1, 0x8f, 0xd0, 0xb5, 0xd1, 0x82, 0xd1, 0x81, 0xd1, - 0x8f, 0xd0, 0x94, 0xd0, 0xbe, 0xd0, 0xb1, 0xd0, 0xb0, 0xd0, 0xb2, 0xd0, 0xb8, - 0xd1, 0x82, 0xd1, 0x8c, 0xd1, 0x87, 0xd0, 0xb5, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, - 0xb2, 0xd0, 0xb5, 0xd0, 0xba, 0xd0, 0xb0, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb7, - 0xd0, 0xb2, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, 0xb8, 0xd1, 0x8f, 0xd0, 0x98, 0xd0, - 0xbd, 0xd1, 0x82, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xbd, 0xd0, 0xb5, 0xd1, 0x82, - 0xd0, 0x9e, 0xd1, 0x82, 0xd0, 0xb2, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xb8, 0xd1, - 0x82, 0xd1, 0x8c, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xb8, - 0xd0, 0xbc, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, 0xbd, 0xd1, 0x82, 0xd0, - 0xb5, 0xd1, 0x80, 0xd0, 0xbd, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xba, 0xd0, 0xbe, - 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb3, 0xd0, 0xbe, 0xd1, - 0x81, 0xd1, 0x82, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, 0x86, - 0xd1, 0x8b, 0xd0, 0xba, 0xd0, 0xb0, 0xd1, 0x87, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, - 0x82, 0xd0, 0xb2, 0xd0, 0xb5, 0xd1, 0x83, 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xbe, - 0xd0, 0xb2, 0xd0, 0xb8, 0xd1, 0x8f, 0xd1, 0x85, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, - 0xbe, 0xd0, 0xb1, 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xbc, 0xd1, 0x8b, 0xd0, 0xbf, - 0xd0, 0xbe, 0xd0, 0xbb, 0xd1, 0x83, 0xd1, 0x87, 0xd0, 0xb8, 0xd1, 0x82, 0xd1, - 0x8c, 0xd1, 0x8f, 0xd0, 0xb2, 0xd0, 0xbb, 0xd1, 0x8f, 0xd1, 0x8e, 0xd1, 0x82, - 0xd1, 0x81, 0xd1, 0x8f, 0xd0, 0xbd, 0xd0, 0xb0, 0xd0, 0xb8, 0xd0, 0xb1, 0xd0, - 0xbe, 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xb5, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xbc, - 0xd0, 0xbf, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, 0x8f, 0xd0, 0xb2, 0xd0, - 0xbd, 0xd0, 0xb8, 0xd0, 0xbc, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, 0xb5, - 0xd1, 0x81, 0xd1, 0x80, 0xd0, 0xb5, 0xd0, 0xb4, 0xd1, 0x81, 0xd1, 0x82, 0xd0, - 0xb2, 0xd0, 0xb0, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x88, 0xd8, 0xa7, - 0xd8, 0xb6, 0xd9, 0x8a, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, 0xd8, - 0xa6, 0xd9, 0x8a, 0xd8, 0xb3, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, - 0xd8, 0xa7, 0xd9, 0x86, 0xd8, 0xaa, 0xd9, 0x82, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, - 0x85, 0xd8, 0xb4, 0xd8, 0xa7, 0xd8, 0xb1, 0xd9, 0x83, 0xd8, 0xa7, 0xd8, 0xaa, - 0xd9, 0x83, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb3, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, - 0xb1, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd9, 0x83, - 0xd8, 0xaa, 0xd9, 0x88, 0xd8, 0xa8, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, - 0xb3, 0xd8, 0xb9, 0xd9, 0x88, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa7, - 0xd8, 0xad, 0xd8, 0xb5, 0xd8, 0xa7, 0xd8, 0xa6, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, - 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb9, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, - 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb5, 0xd9, 0x88, 0xd8, - 0xaa, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, - 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xb1, 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xaa, 0xd8, 0xb5, 0xd8, 0xa7, 0xd9, 0x85, 0xd9, 0x8a, 0xd9, 0x85, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa5, 0xd8, 0xb3, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, - 0x85, 0xd9, 0x8a, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, 0xa7, - 0xd8, 0xb1, 0xd9, 0x83, 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, - 0xb1, 0xd8, 0xa6, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xaa, 0x72, 0x6f, 0x62, 0x6f, - 0x74, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, - 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x66, 0x6f, 0x6f, 0x74, - 0x65, 0x72, 0x22, 0x3e, 0x74, 0x68, 0x65, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x65, - 0x64, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x3c, 0x69, 0x6d, 0x67, 0x20, - 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x2e, - 0x6a, 0x70, 0x67, 0x7c, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7c, 0x74, 0x68, 0x75, - 0x6d, 0x62, 0x7c, 0x2e, 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x3c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, - 0x20, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x64, - 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x66, 0x6f, 0x6e, - 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, 0x6c, 0x64, - 0x3b, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x26, - 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x67, - 0x69, 0x6e, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, - 0x22, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x66, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x22, 0x20, 0x50, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x77, 0x65, 0x6e, 0x74, - 0x69, 0x65, 0x74, 0x68, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x3c, 0x2f, 0x70, - 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x45, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x61, 0x2e, 0x61, 0x73, 0x79, 0x6e, - 0x63, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0d, 0x0a, 0x69, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, - 0x75, 0x74, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x22, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x3c, 0x61, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x22, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, 0x3c, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x27, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, - 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x41, 0x72, 0x69, 0x61, 0x6c, 0x2c, - 0x20, 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x2c, 0x3c, 0x2f, - 0x61, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x65, 0x73, 0x74, 0x64, 0x3e, - 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, - 0x3c, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x72, 0x65, 0x6c, 0x3d, - 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x28, 0x27, 0x3c, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, - 0x75, 0x74, 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x74, 0x65, 0x6c, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x20, 0x72, 0x65, 0x6c, 0x3d, - 0x22, 0x6e, 0x6f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x22, 0x3e, 0x20, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, - 0x22, 0x3e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x68, 0x74, 0x74, 0x70, 0x25, 0x33, 0x41, - 0x25, 0x32, 0x46, 0x25, 0x32, 0x46, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x66, 0x50, 0x72, 0x69, 0x6d, 0x65, 0x20, 0x4d, 0x69, 0x6e, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, 0x78, 0x22, 0x3e, - 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x0d, 0x0a, 0x0d, 0x0a, 0x74, 0x68, 0x72, 0x65, 0x65, 0x2d, 0x64, 0x69, 0x6d, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x68, 0x75, 0x72, 0x63, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x61, 0x6e, 0x64, 0x6f, - 0x66, 0x20, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x43, 0x61, 0x72, 0x6f, 0x6c, - 0x69, 0x6e, 0x61, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x20, 0x6b, 0x69, 0x6c, - 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x65, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x64, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x74, 0x69, - 0x63, 0x20, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x64, 0x65, 0x63, - 0x6c, 0x61, 0x72, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x42, 0x65, 0x6e, 0x6a, 0x61, 0x6d, 0x69, 0x6e, - 0x20, 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x6c, 0x69, 0x6e, 0x72, 0x6f, 0x6c, 0x65, - 0x2d, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x67, 0x61, 0x6d, 0x65, - 0x74, 0x68, 0x65, 0x20, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, - 0x79, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x20, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x6e, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x70, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x47, 0x75, 0x74, 0x65, 0x6e, 0x62, - 0x65, 0x72, 0x67, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, 0x6c, 0x65, 0x73, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x74, 0x6f, - 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x6d, 0x69, 0x6e, - 0x2e, 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x3e, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, - 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3c, 0x69, 0x6d, 0x67, - 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x2f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x20, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x63, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x75, 0x6d, 0x20, 0x6d, 0x65, - 0x63, 0x68, 0x61, 0x6e, 0x69, 0x63, 0x73, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x74, - 0x68, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x69, - 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x65, 0x61, 0x72, 0x73, 0x20, 0x61, - 0x67, 0x6f, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0d, 0x0a, 0x3c, 0x2f, - 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0d, 0xce, 0x95, 0xce, 0xbb, 0xce, 0xbb, 0xce, - 0xb7, 0xce, 0xbd, 0xce, 0xb9, 0xce, 0xba, 0xce, 0xac, 0x0a, 0x74, 0x61, 0x6b, - 0x65, 0x20, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x20, 0x6f, - 0x66, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x63, 0x65, 0x6e, - 0x74, 0x75, 0x72, 0x79, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x64, 0x69, 0x76, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x68, 0x6f, 0x72, 0x74, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x6e, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x65, 0x78, - 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x6f, 0x75, 0x73, 0x61, 0x6e, 0x64, 0x73, 0x73, 0x65, - 0x76, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x2e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x69, 0x6c, 0x69, 0x74, 0x61, 0x72, 0x79, 0x69, 0x73, 0x6f, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x4f, 0x6c, 0x64, 0x20, - 0x54, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x66, 0x72, 0x69, - 0x63, 0x61, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x73, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, - 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x61, 0x6e, 0x20, 0x61, 0x72, 0x65, 0x61, 0x6d, - 0x61, 0x6b, 0x65, 0x73, 0x20, 0x69, 0x74, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x72, 0x67, 0x75, 0x61, 0x62, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, - 0x3e, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x3d, - 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x2f, 0x3e, - 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x74, 0x77, 0x6f, 0x2d, 0x74, 0x68, 0x69, 0x72, - 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x44, 0x75, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2c, - 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x63, 0x65, 0x6e, - 0x74, 0x6c, 0x79, 0x62, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x63, 0x69, - 0x6f, 0x75, 0x73, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x66, 0x6f, - 0x72, 0x6d, 0x65, 0x72, 0x6c, 0x79, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x65, 0x61, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x6f, 0x63, 0x63, - 0x61, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x3d, 0x22, 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x20, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x78, 0x2f, 0x6c, - 0x69, 0x62, 0x73, 0x2f, 0x6a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x31, 0x2e, - 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x3d, 0x22, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, - 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, - 0x79, 0x20, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3c, 0x2f, 0x61, 0x3e, 0x65, - 0x28, 0x22, 0x25, 0x33, 0x43, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x73, - 0x72, 0x63, 0x3d, 0x27, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, - 0x22, 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x3e, 0x4f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x68, 0x61, 0x6e, 0x64, - 0x2c, 0x2e, 0x6a, 0x70, 0x67, 0x7c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x7c, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x7c, 0x32, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, - 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x3c, 0x64, - 0x69, 0x76, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x6e, 0x69, 0x6e, 0x65, 0x74, 0x65, 0x65, 0x6e, 0x74, 0x68, - 0x20, 0x63, 0x65, 0x6e, 0x74, 0x75, 0x72, 0x79, 0x3c, 0x2f, 0x62, 0x6f, 0x64, - 0x79, 0x3e, 0x0d, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0d, 0x0a, - 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x6f, 0x6e, - 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x62, 0x6f, 0x6c, - 0x64, 0x3b, 0x20, 0x41, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x22, - 0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, - 0x22, 0x30, 0x22, 0x20, 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, - 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34, 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, - 0x64, 0x74, 0x64, 0x22, 0x3e, 0x0a, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x3c, 0x2f, - 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x3e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x6c, 0x79, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, - 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, - 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x3c, 0x73, 0x70, - 0x61, 0x6e, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x6e, - 0x74, 0x2d, 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x09, 0x3c, 0x64, 0x69, 0x76, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x64, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x20, 0x77, 0x69, - 0x64, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x65, 0x74, 0x79, 0x20, 0x6f, 0x66, - 0x20, 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, 0x74, - 0x6d, 0x6c, 0x3e, 0x0d, 0x0a, 0x3c, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x26, - 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x22, 0x3e, - 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x63, 0x6f, 0x6e, 0x63, 0x65, - 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x3d, 0x68, 0x74, 0x74, 0x70, 0x25, 0x33, 0x41, 0x25, 0x32, 0x46, 0x25, 0x32, - 0x46, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, - 0x61, 0x72, 0x20, 0x63, 0x75, 0x6c, 0x74, 0x75, 0x72, 0x65, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, - 0x2f, 0x3e, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x48, 0x61, 0x72, 0x76, 0x61, 0x72, - 0x64, 0x20, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x74, - 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x68, 0x72, 0x65, - 0x66, 0x3d, 0x22, 0x2f, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x78, 0x66, 0x6f, - 0x72, 0x64, 0x20, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, - 0x20, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6b, 0x65, 0x79, 0x77, 0x6f, - 0x72, 0x64, 0x73, 0x22, 0x20, 0x63, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, - 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x74, 0x68, - 0x65, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4b, 0x69, 0x6e, 0x67, - 0x64, 0x6f, 0x6d, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x67, 0x6f, - 0x76, 0x65, 0x72, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3c, 0x64, 0x69, 0x76, 0x20, - 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, - 0x20, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x64, 0x69, - 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x2e, 0x6d, 0x69, 0x6e, 0x2e, 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, - 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x74, 0x65, 0x6c, 0x65, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x61, 0x66, 0x74, 0x65, 0x72, 0x65, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x48, 0x6f, 0x77, 0x65, 0x76, - 0x65, 0x72, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x22, 0x20, 0x73, - 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, - 0x77, 0x22, 0x20, 0x74, 0x48, 0x6f, 0x6c, 0x79, 0x20, 0x52, 0x6f, 0x6d, 0x61, - 0x6e, 0x20, 0x45, 0x6d, 0x70, 0x65, 0x72, 0x6f, 0x72, 0x61, 0x6c, 0x6d, 0x6f, - 0x73, 0x74, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x6c, - 0x79, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, - 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x63, 0x75, - 0x6c, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x43, 0x49, 0x41, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x20, - 0x46, 0x61, 0x63, 0x74, 0x62, 0x6f, 0x6f, 0x6b, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, - 0x61, 0x6e, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x72, 0x79, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x3c, 0x6c, 0x69, - 0x3e, 0x3c, 0x65, 0x6d, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, - 0x22, 0x2f, 0x74, 0x68, 0x65, 0x20, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, - 0x63, 0x20, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, - 0x6c, 0x79, 0x20, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2c, 0x73, - 0x68, 0x6f, 0x72, 0x74, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x74, 0x68, 0x65, 0x20, - 0x4f, 0x74, 0x74, 0x6f, 0x6d, 0x61, 0x6e, 0x20, 0x45, 0x6d, 0x70, 0x69, 0x72, - 0x65, 0x3e, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x41, 0x6e, 0x20, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x65, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x69, 0x6e, 0x64, 0x69, 0x67, 0x65, 0x6e, 0x6f, 0x75, 0x73, 0x20, 0x70, 0x65, - 0x6f, 0x70, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x65, 0x64, 0x69, - 0x6e, 0x67, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x69, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x64, - 0x69, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x72, 0x65, 0x65, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x69, 0x73, 0x20, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x64, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x77, 0x69, - 0x64, 0x65, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6d, - 0x70, 0x6f, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x66, 0x6f, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x65, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x74, 0x68, 0x65, - 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x6f, 0x66, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x72, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x69, 0x73, 0x20, 0x61, - 0x6c, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x6c, - 0x79, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x63, 0x6f, - 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x47, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x69, 0x63, 0x20, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x20, 0x61, 0x63, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6c, 0x79, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x68, 0x72, 0x65, - 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x20, - 0x6f, 0x66, 0x20, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x3c, - 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x7c, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x49, 0x6e, 0x20, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x6f, - 0x74, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x74, 0x68, - 0x6f, 0x75, 0x73, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x79, 0x65, - 0x61, 0x72, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x3c, 0x2f, 0x64, 0x69, 0x76, - 0x3e, 0x0d, 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, 0x0d, 0x0a, - 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x2e, 0x70, 0x68, 0x70, 0x77, 0x61, 0x73, 0x20, 0x65, 0x73, 0x74, 0x61, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x6d, 0x69, 0x6e, - 0x2e, 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x3e, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x61, 0x20, 0x73, 0x74, 0x72, 0x6f, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, - 0x74, 0x6f, 0x70, 0x3a, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x67, 0x72, 0x61, 0x64, - 0x75, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, - 0x79, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x28, 0x22, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x29, 0x3b, 0x48, 0x6f, - 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x64, 0x69, - 0x76, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3b, - 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, - 0x61, 0x69, 0x6e, 0x73, 0x74, 0x30, 0x3b, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x55, 0x6e, 0x66, - 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x2c, 0x20, 0x74, - 0x68, 0x65, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x2f, 0x78, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, - 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, - 0x69, 0x78, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x09, 0x09, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x09, 0x09, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x0a, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0xd0, 0x91, 0xd1, 0x8a, 0xd0, 0xbb, 0xd0, - 0xb3, 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb8, 0xd0, 0xb1, - 0xd1, 0x8a, 0xd0, 0xbb, 0xd0, 0xb3, 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x81, 0xd0, - 0xba, 0xd0, 0xb8, 0xd0, 0xa4, 0xd0, 0xb5, 0xd0, 0xb4, 0xd0, 0xb5, 0xd1, 0x80, - 0xd0, 0xb0, 0xd1, 0x86, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0xbd, 0xd0, 0xb5, 0xd1, - 0x81, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xbb, 0xd1, 0x8c, 0xd0, 0xba, 0xd0, 0xbe, - 0xd1, 0x81, 0xd0, 0xbe, 0xd0, 0xbe, 0xd0, 0xb1, 0xd1, 0x89, 0xd0, 0xb5, 0xd0, - 0xbd, 0xd0, 0xb8, 0xd0, 0xb5, 0xd1, 0x81, 0xd0, 0xbe, 0xd0, 0xbe, 0xd0, 0xb1, - 0xd1, 0x89, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, 0x8f, 0xd0, 0xbf, 0xd1, - 0x80, 0xd0, 0xbe, 0xd0, 0xb3, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbc, 0xd0, 0xbc, - 0xd1, 0x8b, 0xd0, 0x9e, 0xd1, 0x82, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, - 0xb2, 0xd0, 0xb8, 0xd1, 0x82, 0xd1, 0x8c, 0xd0, 0xb1, 0xd0, 0xb5, 0xd1, 0x81, - 0xd0, 0xbf, 0xd0, 0xbb, 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xbd, 0xd0, 0xbe, 0xd0, - 0xbc, 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, 0xb0, - 0xd0, 0xbb, 0xd1, 0x8b, 0xd0, 0xbf, 0xd0, 0xbe, 0xd0, 0xb7, 0xd0, 0xb2, 0xd0, - 0xbe, 0xd0, 0xbb, 0xd1, 0x8f, 0xd0, 0xb5, 0xd1, 0x82, 0xd0, 0xbf, 0xd0, 0xbe, - 0xd1, 0x81, 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xb4, 0xd0, 0xbd, 0xd0, 0xb8, 0xd0, - 0xb5, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb7, 0xd0, 0xbb, 0xd0, 0xb8, 0xd1, 0x87, - 0xd0, 0xbd, 0xd1, 0x8b, 0xd1, 0x85, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xbe, 0xd0, - 0xb4, 0xd1, 0x83, 0xd0, 0xba, 0xd1, 0x86, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0xbf, - 0xd1, 0x80, 0xd0, 0xbe, 0xd0, 0xb3, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbc, 0xd0, - 0xbc, 0xd0, 0xb0, 0xd0, 0xbf, 0xd0, 0xbe, 0xd0, 0xbb, 0xd0, 0xbd, 0xd0, 0xbe, - 0xd1, 0x81, 0xd1, 0x82, 0xd1, 0x8c, 0xd1, 0x8e, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, - 0x85, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb8, 0xd1, 0x82, 0xd1, 0x81, 0xd1, 0x8f, - 0xd0, 0xb8, 0xd0, 0xb7, 0xd0, 0xb1, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, - 0xbd, 0xd0, 0xbe, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xb5, - 0xd0, 0xbb, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, 0x8f, 0xd0, 0xb8, 0xd0, - 0xb7, 0xd0, 0xbc, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, - 0xd1, 0x8f, 0xd0, 0xba, 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, - 0xbe, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0x90, 0xd0, 0xbb, 0xd0, 0xb5, - 0xd0, 0xba, 0xd1, 0x81, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb4, 0xd1, 0x80, 0xe0, - 0xa4, 0xa6, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xaa, 0xe0, - 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa4, 0xad, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa4, - 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa5, 0x81, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa6, - 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa1, 0xe0, - 0xa4, 0xbf, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, - 0xbf, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x80, - 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xa7, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb5, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, - 0xa1, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x9a, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa0, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0x9a, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0x82, - 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0xa6, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0x85, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xb0, 0xe0, 0xa4, 0x91, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, - 0xb6, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8b, - 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xb8, 0xe0, 0xa4, 0xad, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xab, 0xe0, 0xa4, - 0xbc, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x88, 0xe0, 0xa4, 0xb6, - 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa4, 0xe0, - 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xb0, 0xe0, 0xa4, 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xaa, - 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xaf, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, - 0xa6, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbf, 0xe0, - 0xa4, 0x89, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x9a, 0xe0, - 0xa4, 0xbf, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa0, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x8d, 0xe0, - 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xa1, 0xe0, - 0xa4, 0xbc, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, - 0xa8, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa6, - 0xe0, 0xa4, 0xb6, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xa3, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb7, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa5, 0x80, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x97, 0xe0, 0xa5, - 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb9, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa3, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, - 0xa4, 0xac, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0x82, 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0x9a, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0x9a, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x89, 0xe0, - 0xa4, 0xaa, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xac, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xa7, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, 0xe0, - 0xa4, 0xaa, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, - 0x89, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x80, - 0xe0, 0xa4, 0xa6, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa7, 0xe0, - 0xa5, 0x8d, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xac, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa6, 0xe0, - 0xa5, 0x8b, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, - 0xa1, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x86, - 0xe0, 0xa4, 0x88, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x8f, 0xe0, - 0xa4, 0xb2, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0x87, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, - 0xe0, 0xa4, 0x96, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x86, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, - 0xb6, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x85, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x81, - 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa7, 0xe0, 0xa4, 0xac, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbc, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xb0, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xb5, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa4, 0xae, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x96, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb6, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xaa, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbf, 0xe0, - 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, - 0x81, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, - 0xa4, 0xa5, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x86, 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, - 0x8b, 0xe0, 0xa4, 0x9c, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb0, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, 0xa7, 0xd8, - 0xb1, 0xd9, 0x83, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, - 0xd9, 0x86, 0xd8, 0xaa, 0xd8, 0xaf, 0xd9, 0x8a, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, - 0xa7, 0xd9, 0x84, 0xd9, 0x83, 0xd9, 0x85, 0xd8, 0xa8, 0xd9, 0x8a, 0xd9, 0x88, - 0xd8, 0xaa, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb4, 0xd8, - 0xa7, 0xd9, 0x87, 0xd8, 0xaf, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xb9, 0xd8, 0xaf, - 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb2, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, - 0xb1, 0xd8, 0xb9, 0xd8, 0xaf, 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xb1, - 0xd8, 0xaf, 0xd9, 0x88, 0xd8, 0xaf, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa5, 0xd8, - 0xb3, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x85, 0xd9, 0x8a, 0xd8, 0xa9, 0xd8, 0xa7, - 0xd9, 0x84, 0xd9, 0x81, 0xd9, 0x88, 0xd8, 0xaa, 0xd9, 0x88, 0xd8, 0xb4, 0xd9, - 0x88, 0xd8, 0xa8, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb3, 0xd8, 0xa7, - 0xd8, 0xa8, 0xd9, 0x82, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd9, - 0x85, 0xd8, 0xb9, 0xd9, 0x84, 0xd9, 0x88, 0xd9, 0x85, 0xd8, 0xa7, 0xd8, 0xaa, - 0xd8, 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xb3, 0xd9, 0x84, 0xd8, 0xb3, 0xd9, - 0x84, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xac, 0xd8, 0xb1, - 0xd8, 0xa7, 0xd9, 0x81, 0xd9, 0x8a, 0xd9, 0x83, 0xd8, 0xb3, 0xd8, 0xa7, 0xd9, - 0x84, 0xd8, 0xa7, 0xd8, 0xb3, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x85, 0xd9, 0x8a, - 0xd8, 0xa9, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, 0xaa, 0xd8, 0xb5, 0xd8, - 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, 0xaa, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, - 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x31, 0x39, 0x39, 0x39, 0x2f, 0x78, - 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3b, 0x20, 0x63, 0x68, 0x61, - 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x3d, 0x22, 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x3e, 0x3c, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3d, 0x22, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x3d, 0x22, 0x6f, 0x66, 0x66, 0x22, 0x20, 0x74, 0x65, 0x78, - 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x3b, 0x74, 0x6f, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x79, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x23, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x2f, 0x64, 0x69, 0x76, 0x3e, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, - 0x3d, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x23, 0x22, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x22, 0x3e, 0x3c, 0x69, 0x6d, 0x67, - 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x2f, - 0x2f, 0x45, 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x77, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x55, 0x52, - 0x49, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x28, 0x22, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x3a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x28, 0x27, - 0x3c, 0x73, 0x63, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, - 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x72, - 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x2e, 0x6d, 0x69, 0x6e, 0x2e, - 0x6a, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, - 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, - 0x2f, 0x31, 0x39, 0x39, 0x39, 0x2f, 0x78, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x20, - 0x0a, 0x0d, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0d, 0x0a, 0x3c, - 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x2f, - 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x62, 0x6c, - 0x61, 0x6e, 0x6b, 0x22, 0x3e, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x68, 0x72, - 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x65, 0x6e, - 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x75, 0x74, 0x66, 0x2d, 0x38, - 0x22, 0x3f, 0x3e, 0x0a, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x3f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x20, 0x73, 0x74, 0x79, - 0x6c, 0x65, 0x3d, 0x22, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x3a, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, - 0x63, 0x73, 0x73, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x20, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3d, 0x22, 0x6f, 0x67, 0x3a, - 0x74, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, - 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, - 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x68, - 0x74, 0x6d, 0x6c, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, - 0x75, 0x74, 0x66, 0x2d, 0x38, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, - 0x30, 0x25, 0x22, 0x20, 0x49, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x64, 0x65, 0x76, 0x65, - 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x3c, 0x2f, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x20, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x66, 0x6f, 0x6e, 0x74, - 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, - 0x6e, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x67, 0x62, - 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x43, 0x6f, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, - 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x69, 0x6d, 0x45, - 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x20, - 0x6f, 0x66, 0x20, 0x53, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x64, 0x69, - 0x76, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x2e, 0x67, 0x65, - 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, - 0x69, 0x64, 0x29, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x28, 0x27, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x27, 0x29, - 0x3b, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x3d, 0x22, 0x6f, 0x67, 0x3a, 0xd0, 0x91, 0xd1, 0x8a, 0xd0, - 0xbb, 0xd0, 0xb3, 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xb8, - 0x0a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x3e, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x63, 0x79, 0x20, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3c, 0x2f, 0x61, 0x3e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x3e, 0x3c, - 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x69, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x26, 0x71, - 0x75, 0x6f, 0x74, 0x3b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x70, 0x6f, 0x70, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x69, 0x6e, 0x20, 0x57, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x2c, 0x20, 0x44, 0x2e, - 0x43, 0x2e, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x61, 0x6d, 0x6f, 0x6e, 0x67, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x73, - 0x2c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x66, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x61, 0x72, - 0x61, 0x63, 0x74, 0x65, 0x72, 0x20, 0x4f, 0x78, 0x66, 0x6f, 0x72, 0x64, 0x20, - 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x20, 0x6d, 0x69, - 0x73, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x2c, 0x20, 0x68, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x73, 0x74, 0x79, - 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3d, 0x22, 0x2f, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x62, 0x69, 0x61, 0x20, 0x55, - 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x74, 0x79, 0x65, 0x78, 0x70, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x69, 0x6e, 0x64, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x68, 0x61, 0x76, 0x65, 0x20, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x61, 0x66, 0x66, 0x69, 0x6c, 0x69, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x3e, - 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x52, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x20, 0x6f, 0x66, 0x20, 0x49, 0x72, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x0a, 0x3c, - 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x77, - 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x68, 0x65, 0x61, 0x64, - 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, 0x6d, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x64, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x64, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, - 0x6c, 0x20, 0x52, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x6f, 0x66, - 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x79, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x4e, - 0x6f, 0x74, 0x65, 0x2c, 0x20, 0x68, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x73, 0x69, 0x6d, 0x69, 0x6c, 0x61, 0x72, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x64, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x69, 0x73, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x68, 0x69, 0x73, 0x20, 0x79, - 0x6f, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x62, 0x72, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, - 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x58, 0x2d, 0x55, 0x41, 0x2d, - 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x6f, 0x66, 0x20, 0x42, 0x72, 0x69, 0x74, - 0x69, 0x73, 0x68, 0x20, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x62, 0x69, 0x61, 0x68, - 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x72, 0x69, 0x74, 0x69, - 0x63, 0x69, 0x7a, 0x65, 0x64, 0x28, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x70, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x30, 0x22, 0x20, - 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, - 0x30, 0x22, 0x20, 0x74, 0x68, 0x6f, 0x75, 0x73, 0x61, 0x6e, 0x64, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x72, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, 0x2e, 0x20, 0x46, - 0x6f, 0x72, 0x68, 0x61, 0x76, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x25, 0x33, 0x45, 0x25, 0x33, - 0x43, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x25, 0x33, 0x45, 0x22, 0x29, - 0x29, 0x3b, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x3c, 0x6c, 0x69, 0x3e, - 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, 0x78, - 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x6e, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3c, 0x6d, - 0x65, 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, - 0x76, 0x3d, 0x22, 0x58, 0x2d, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, - 0x28, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x29, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, - 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, - 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x6a, 0x61, 0x76, - 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x72, 0x65, - 0x66, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, - 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x2d, 0x2d, 0x3e, 0x0d, 0x0a, - 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x74, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x27, 0x68, 0x74, - 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x68, 0x6f, 0x72, 0x74, - 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x72, 0x65, - 0x66, 0x3d, 0x22, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, 0x3c, 0x64, - 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x3c, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x22, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x63, 0x79, 0x3d, 0x22, 0x58, 0x2d, 0x55, 0x41, 0x2d, 0x43, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x20, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x2f, 0x75, - 0x6c, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x61, 0x73, 0x73, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x69, 0x6e, 0x67, - 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, - 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, - 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x6f, 0x72, - 0x6d, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x22, 0x71, 0x22, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, - 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, - 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x36, 0x3e, 0x3c, 0x75, 0x6c, - 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, - 0x22, 0x20, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, - 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x63, 0x73, 0x73, 0x22, 0x20, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x3d, 0x22, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, - 0x22, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2f, 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x68, 0x74, 0x6d, - 0x6c, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, - 0x66, 0x2d, 0x38, 0x22, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x3d, 0x22, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x74, 0x65, 0x0d, 0x0a, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, - 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x3e, - 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x63, 0x65, 0x6c, - 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0x3e, - 0x3b, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x63, - 0x65, 0x73, 0x73, 0x61, 0x72, 0x69, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x3c, 0x21, 0x44, 0x4f, - 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x68, - 0x74, 0x6d, 0x6c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, - 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x65, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x3d, 0x22, 0x6f, 0x66, 0x66, 0x22, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, - 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, - 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6c, - 0x64, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x6d, 0x69, 0x73, 0x63, 0x6f, - 0x6e, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x73, 0x73, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x64, 0x69, - 0x76, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x64, 0x75, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x2c, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69, 0x63, - 0x6f, 0x6e, 0x22, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x64, 0x69, - 0x70, 0x6c, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x20, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x74, 0x65, - 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x6d, - 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, - 0x75, 0x74, 0x66, 0x2d, 0x38, 0x22, 0x20, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, - 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x22, 0x3e, 0x3c, 0x69, 0x6d, 0x67, - 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x69, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6f, 0x66, 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x64, 0x69, - 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x26, 0x61, 0x6d, 0x70, - 0x3b, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x26, 0x61, 0x6d, 0x70, 0x3b, 0x6e, 0x62, - 0x73, 0x70, 0x3b, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x65, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x71, 0x75, 0x69, - 0x74, 0x65, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x63, - 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x77, 0x69, 0x64, 0x65, 0x6c, 0x79, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x77, 0x61, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x77, 0x69, 0x74, 0x68, 0x20, 0x76, - 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, - 0x73, 0x68, 0x61, 0x76, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x28, 0x64, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x64, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, - 0x74, 0x3d, 0x22, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, - 0x20, 0x2f, 0x3e, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x61, 0x62, 0x6c, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6d, 0x6f, - 0x72, 0x65, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x6c, 0x79, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x65, 0x64, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x70, 0x65, 0x72, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x73, 0x74, 0x79, 0x6c, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, - 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x72, 0x65, 0x73, - 0x69, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x76, 0x65, 0x6c, - 0x6f, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x20, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x65, 0x63, 0x6f, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, - 0x65, 0x6e, 0x74, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x66, 0x6f, 0x72, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x76, 0x65, 0x72, 0x61, - 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x61, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x75, 0x67, 0x75, 0xc3, 0xaa, 0x73, 0x20, 0x28, 0x45, 0x75, 0x72, - 0x6f, 0x70, 0x65, 0x75, 0x29, 0xd0, 0xa3, 0xd0, 0xba, 0xd1, 0x80, 0xd0, 0xb0, - 0xd1, 0x97, 0xd0, 0xbd, 0xd1, 0x81, 0xd1, 0x8c, 0xd0, 0xba, 0xd0, 0xb0, 0xd1, - 0x83, 0xd0, 0xba, 0xd1, 0x80, 0xd0, 0xb0, 0xd1, 0x97, 0xd0, 0xbd, 0xd1, 0x81, - 0xd1, 0x8c, 0xd0, 0xba, 0xd0, 0xb0, 0xd0, 0xa0, 0xd0, 0xbe, 0xd1, 0x81, 0xd1, - 0x81, 0xd0, 0xb8, 0xd0, 0xb9, 0xd1, 0x81, 0xd0, 0xba, 0xd0, 0xbe, 0xd0, 0xb9, - 0xd0, 0xbc, 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xb5, 0xd1, 0x80, 0xd0, 0xb8, 0xd0, - 0xb0, 0xd0, 0xbb, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xb8, 0xd0, 0xbd, 0xd1, 0x84, - 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbc, 0xd0, 0xb0, 0xd1, 0x86, 0xd0, 0xb8, 0xd0, - 0xb8, 0xd1, 0x83, 0xd0, 0xbf, 0xd1, 0x80, 0xd0, 0xb0, 0xd0, 0xb2, 0xd0, 0xbb, - 0xd0, 0xb5, 0xd0, 0xbd, 0xd0, 0xb8, 0xd1, 0x8f, 0xd0, 0xbd, 0xd0, 0xb5, 0xd0, - 0xbe, 0xd0, 0xb1, 0xd1, 0x85, 0xd0, 0xbe, 0xd0, 0xb4, 0xd0, 0xb8, 0xd0, 0xbc, - 0xd0, 0xbe, 0xd0, 0xb8, 0xd0, 0xbd, 0xd1, 0x84, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, - 0xbc, 0xd0, 0xb0, 0xd1, 0x86, 0xd0, 0xb8, 0xd1, 0x8f, 0xd0, 0x98, 0xd0, 0xbd, - 0xd1, 0x84, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xbc, 0xd0, 0xb0, 0xd1, 0x86, 0xd0, - 0xb8, 0xd1, 0x8f, 0xd0, 0xa0, 0xd0, 0xb5, 0xd1, 0x81, 0xd0, 0xbf, 0xd1, 0x83, - 0xd0, 0xb1, 0xd0, 0xbb, 0xd0, 0xb8, 0xd0, 0xba, 0xd0, 0xb8, 0xd0, 0xba, 0xd0, - 0xbe, 0xd0, 0xbb, 0xd0, 0xb8, 0xd1, 0x87, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x82, - 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb8, 0xd0, 0xbd, 0xd1, 0x84, 0xd0, 0xbe, 0xd1, - 0x80, 0xd0, 0xbc, 0xd0, 0xb0, 0xd1, 0x86, 0xd0, 0xb8, 0xd1, 0x8e, 0xd1, 0x82, - 0xd0, 0xb5, 0xd1, 0x80, 0xd1, 0x80, 0xd0, 0xb8, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, - 0x80, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0xb4, 0xd0, 0xbe, 0xd1, 0x81, 0xd1, 0x82, - 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xbe, 0xd1, 0x87, 0xd0, 0xbd, 0xd0, 0xbe, 0xd8, - 0xa7, 0xd9, 0x84, 0xd9, 0x85, 0xd8, 0xaa, 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xac, - 0xd8, 0xaf, 0xd9, 0x88, 0xd9, 0x86, 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd8, - 0xb4, 0xd8, 0xaa, 0xd8, 0xb1, 0xd8, 0xa7, 0xd9, 0x83, 0xd8, 0xa7, 0xd8, 0xaa, - 0xd8, 0xa7, 0xd9, 0x84, 0xd8, 0xa7, 0xd9, 0x82, 0xd8, 0xaa, 0xd8, 0xb1, 0xd8, - 0xa7, 0xd8, 0xad, 0xd8, 0xa7, 0xd8, 0xaa, 0x68, 0x74, 0x6d, 0x6c, 0x3b, 0x20, - 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x55, 0x54, 0x46, 0x2d, 0x38, - 0x22, 0x20, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2f, - 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x3c, 0x69, 0x6d, 0x67, 0x20, - 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x22, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x3d, 0x22, 0x6f, 0x66, 0x66, 0x22, - 0x20, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, - 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x3c, 0x2f, 0x61, 0x3e, - 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x63, 0x73, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x3c, - 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, - 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, - 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x61, - 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x22, 0x20, 0x0d, 0x0a, 0x3c, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x74, 0x65, 0x78, 0x74, 0x2f, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, - 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, - 0x28, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x29, 0x2e, 0x67, 0x65, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x29, 0x7d, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, - 0x31, 0x22, 0x20, 0x50, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x27, 0x73, 0x20, 0x52, - 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x20, 0x3c, - 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, - 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, - 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x75, 0x6e, 0x64, 0x65, - 0x72, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x3c, 0x2f, 0x64, 0x69, - 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x64, - 0x69, 0x76, 0x3e, 0x0a, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x3c, - 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, - 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x23, 0x76, 0x69, 0x65, 0x77, 0x70, - 0x6f, 0x72, 0x74, 0x7b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3a, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x73, 0x72, - 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x3e, 0x3c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x73, 0x20, - 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x0a, 0x3c, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x3c, 0x21, 0x44, 0x4f, 0x43, - 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x21, - 0x2d, 0x2d, 0x5b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x20, 0x41, 0x69, 0x72, 0x70, 0x6f, 0x72, 0x74, 0x3e, 0x0a, - 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, - 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x61, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x77, 0xe0, 0xb8, 0xa0, 0xe0, 0xb8, 0xb2, 0xe0, 0xb8, 0xa9, 0xe0, 0xb8, 0xb2, - 0xe0, 0xb9, 0x84, 0xe0, 0xb8, 0x97, 0xe0, 0xb8, 0xa2, 0xe1, 0x83, 0xa5, 0xe1, - 0x83, 0x90, 0xe1, 0x83, 0xa0, 0xe1, 0x83, 0x97, 0xe1, 0x83, 0xa3, 0xe1, 0x83, - 0x9a, 0xe1, 0x83, 0x98, 0xe6, 0xad, 0xa3, 0xe9, 0xab, 0x94, 0xe4, 0xb8, 0xad, - 0xe6, 0x96, 0x87, 0x20, 0x28, 0xe7, 0xb9, 0x81, 0xe9, 0xab, 0x94, 0x29, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xa6, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb6, 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xb2, 0xe0, 0xa5, 0x8b, 0xe0, - 0xa4, 0xa1, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb7, 0xe0, 0xa5, - 0x87, 0xe0, 0xa4, 0xa4, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x9c, - 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb0, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, - 0xac, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa7, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa4, - 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa5, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xaa, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, - 0x8d, 0xe0, 0xa4, 0xb5, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xb8, 0xe0, - 0xa5, 0x8d, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa3, 0xe0, 0xa4, - 0xb8, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0x97, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x9a, 0xe0, 0xa4, 0xbf, 0xe0, - 0xa4, 0x9f, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa0, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, - 0x82, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x9c, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0x9e, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x85, 0xe0, - 0xa4, 0xae, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xad, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0x97, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xa1, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0xaf, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x81, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xaf, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x95, 0xe0, - 0xa4, 0xbf, 0xe0, 0xa4, 0xb8, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, - 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb7, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, - 0xe0, 0xa4, 0xb9, 0xe0, 0xa5, 0x81, 0xe0, 0xa4, 0x81, 0xe0, 0xa4, 0x9a, 0xe0, - 0xa4, 0xa4, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xb0, 0xe0, 0xa4, 0xac, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa7, 0xe0, 0xa4, 0xa8, - 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, - 0xa4, 0xaa, 0xe0, 0xa4, 0xa3, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, - 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xad, 0xe0, 0xa4, - 0xaa, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, - 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xb2, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, - 0x82, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xab, 0xe0, 0xa4, 0xbc, 0xe0, 0xa5, 0x8d, - 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xa8, 0xe0, - 0xa4, 0xbf, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xae, 0xe0, 0xa4, - 0xbe, 0xe0, 0xa4, 0xa3, 0xe0, 0xa4, 0xb2, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xae, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x9f, 0xe0, 0xa5, 0x87, 0xe0, 0xa4, 0xa1, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x42, 0x79, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x28, - 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, 0x74, 0x6d, - 0x6c, 0x3e, 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x3c, 0x6d, 0x65, 0x74, - 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, 0x75, 0x74, - 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x3a, 0x75, 0x72, 0x6c, 0x22, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, - 0x2f, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x73, 0x74, 0x79, - 0x6c, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, - 0x2f, 0x63, 0x73, 0x73, 0x22, 0x3e, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, - 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, - 0x3d, 0x22, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x31, 0x39, 0x39, 0x39, - 0x2f, 0x78, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x20, 0x78, 0x6d, 0x6c, 0x74, 0x79, - 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x3d, 0x22, 0x67, 0x65, 0x74, 0x22, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x3d, 0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, - 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x20, - 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, - 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69, 0x63, 0x6f, 0x6e, - 0x22, 0x20, 0x2f, 0x3e, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, - 0x2e, 0x63, 0x73, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, - 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x3c, 0x2f, 0x61, 0x3e, - 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, - 0x22, 0x31, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x31, - 0x22, 0x22, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x74, 0x79, - 0x6c, 0x65, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, - 0x6f, 0x6e, 0x65, 0x3b, 0x22, 0x3e, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x74, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, 0x2f, 0x44, 0x54, 0x44, - 0x20, 0x58, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x31, 0x2e, 0x30, 0x20, 0x65, 0x6c, - 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0x20, - 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3d, 0x22, 0x2f, 0x61, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, - 0x73, 0x70, 0x61, 0x6e, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x3d, 0x22, 0x73, 0x0a, - 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x3d, 0x22, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x22, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, - 0x67, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x3d, 0x22, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x27, 0x74, 0x65, - 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x27, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x63, - 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x79, 0x70, 0x65, - 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x72, - 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3d, 0x22, 0x31, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, - 0x22, 0x20, 0x3d, 0x27, 0x2b, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x55, 0x52, - 0x49, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x28, 0x3c, 0x6c, - 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x61, 0x6c, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x74, 0x65, 0x22, 0x20, 0x0a, 0x62, 0x6f, 0x64, 0x79, 0x2c, - 0x20, 0x74, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x70, 0x6f, 0x73, 0x74, 0x22, 0x20, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x3e, 0x0a, 0x3c, 0x61, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x20, 0x72, 0x65, 0x6c, 0x3d, - 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, - 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, - 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x22, 0x3e, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x3d, 0x22, 0x74, 0x72, 0x75, 0x65, 0x22, 0x3e, 0xc2, 0xb7, - 0x3c, 0x72, 0x69, 0x70, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x6c, 0x3d, 0x30, - 0x3b, 0x7d, 0x29, 0x28, 0x29, 0x3b, 0x0a, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x75, 0x72, - 0x6c, 0x28, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, - 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x09, 0x09, - 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, - 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x20, - 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x22, - 0x74, 0x72, 0x75, 0x3e, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, - 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x20, 0x2f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x3e, 0x0a, 0x3c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, - 0x76, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, - 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x22, 0x74, 0x72, 0x65, 0x3d, 0x28, 0x6e, - 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x28, 0x29, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x75, 0xc3, - 0xaa, 0x73, 0x20, 0x28, 0x64, 0x6f, 0x20, 0x42, 0x72, 0x61, 0x73, 0x69, 0x6c, - 0x29, 0xd0, 0xbe, 0xd1, 0x80, 0xd0, 0xb3, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb8, - 0xd0, 0xb7, 0xd0, 0xb0, 0xd1, 0x86, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0xb2, 0xd0, - 0xbe, 0xd0, 0xb7, 0xd0, 0xbc, 0xd0, 0xbe, 0xd0, 0xb6, 0xd0, 0xbd, 0xd0, 0xbe, - 0xd1, 0x81, 0xd1, 0x82, 0xd1, 0x8c, 0xd0, 0xbe, 0xd0, 0xb1, 0xd1, 0x80, 0xd0, - 0xb0, 0xd0, 0xb7, 0xd0, 0xbe, 0xd0, 0xb2, 0xd0, 0xb0, 0xd0, 0xbd, 0xd0, 0xb8, - 0xd1, 0x8f, 0xd1, 0x80, 0xd0, 0xb5, 0xd0, 0xb3, 0xd0, 0xb8, 0xd1, 0x81, 0xd1, - 0x82, 0xd1, 0x80, 0xd0, 0xb0, 0xd1, 0x86, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0xb2, - 0xd0, 0xbe, 0xd0, 0xb7, 0xd0, 0xbc, 0xd0, 0xbe, 0xd0, 0xb6, 0xd0, 0xbd, 0xd0, - 0xbe, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb8, 0xd0, 0xbe, 0xd0, 0xb1, 0xd1, 0x8f, - 0xd0, 0xb7, 0xd0, 0xb0, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbb, 0xd1, 0x8c, 0xd0, - 0xbd, 0xd0, 0xb0, 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, - 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x22, - 0x6e, 0x74, 0x2d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x3c, 0x6d, 0x65, - 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, - 0x3d, 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45, 0x4e, 0x22, 0x20, 0x22, 0x68, - 0x74, 0x74, 0x70, 0x3a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x78, 0x6d, 0x6c, - 0x6e, 0x73, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, - 0x58, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x31, 0x2e, 0x30, 0x20, 0x54, 0x44, 0x54, - 0x44, 0x2f, 0x78, 0x68, 0x74, 0x6d, 0x6c, 0x31, 0x2d, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x77, 0x77, 0x77, - 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x78, 0x68, - 0x74, 0x6d, 0x6c, 0x31, 0x2f, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x27, 0x74, 0x65, - 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x27, 0x3b, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x22, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x3c, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x68, 0x69, 0x64, 0x64, - 0x65, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6a, 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, - 0x63, 0x72, 0x69, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x29, - 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, - 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x55, 0x41, 0x2d, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x3d, 0x74, 0x6d, 0x6c, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x72, - 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x22, 0x20, 0x2f, 0x3e, - 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x3c, 0x6c, - 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x3c, 0x2f, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, - 0x5f, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, - 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x61, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x3d, 0x20, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, - 0x63, 0x72, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, - 0x22, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x68, 0x74, 0x6d, 0x6c, 0x3b, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, - 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x22, 0x20, 0x2f, 0x3e, 0x64, 0x74, 0x64, - 0x22, 0x3e, 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x78, 0x6d, 0x6c, 0x6e, - 0x73, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, - 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x34, 0x2e, - 0x30, 0x31, 0x20, 0x54, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x54, 0x61, 0x67, - 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x27, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x27, - 0x29, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x3c, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, - 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x22, 0x20, 0x73, 0x74, - 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, - 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x22, 0x3e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x79, 0x49, 0x64, 0x28, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x28, 0x27, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x27, 0x74, 0x65, - 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x27, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, - 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x64, - 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, - 0x79, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x73, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x43, 0x2f, 0x2f, 0x44, 0x54, - 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, - 0x73, 0x22, 0x3e, 0x0a, 0x0a, 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, - 0x22, 0x3e, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x64, 0x74, 0x64, 0x22, 0x3e, - 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3d, - 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x54, 0x79, 0x70, 0x65, 0x64, 0x69, - 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, - 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0x68, 0x74, 0x6d, 0x6c, - 0x3b, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, - 0x2d, 0x38, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x3d, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, - 0x65, 0x3b, 0x22, 0x3e, 0x3c, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, - 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x27, 0x74, 0x65, 0x78, - 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x27, - 0x3e, 0xd0, 0xb4, 0xd0, 0xb5, 0xd1, 0x8f, 0xd1, 0x82, 0xd0, 0xb5, 0xd0, 0xbb, - 0xd1, 0x8c, 0xd0, 0xbd, 0xd0, 0xbe, 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb8, 0xd1, - 0x81, 0xd0, 0xbe, 0xd0, 0xbe, 0xd1, 0x82, 0xd0, 0xb2, 0xd0, 0xb5, 0xd1, 0x82, - 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb2, 0xd0, 0xb8, 0xd0, 0xb8, 0xd0, 0xbf, 0xd1, - 0x80, 0xd0, 0xbe, 0xd0, 0xb8, 0xd0, 0xb7, 0xd0, 0xb2, 0xd0, 0xbe, 0xd0, 0xb4, - 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb2, 0xd0, 0xb0, 0xd0, 0xb1, 0xd0, 0xb5, 0xd0, - 0xb7, 0xd0, 0xbe, 0xd0, 0xbf, 0xd0, 0xb0, 0xd1, 0x81, 0xd0, 0xbd, 0xd0, 0xbe, - 0xd1, 0x81, 0xd1, 0x82, 0xd0, 0xb8, 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x81, 0xe0, - 0xa4, 0xb8, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0x82, - 0xe0, 0xa4, 0x97, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa5, 0x87, 0xe0, - 0xa4, 0xb8, 0xe0, 0xa4, 0x89, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xb9, 0xe0, 0xa5, 0x8b, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0xa8, 0xe0, 0xa5, 0x87, - 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa7, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0xa8, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0xad, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0xab, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb8, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0x82, 0xe0, 0xa4, 0x97, 0xe0, 0xa4, 0xb8, 0xe0, - 0xa5, 0x81, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, - 0xb7, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x89, - 0xe0, 0xa4, 0xaa, 0xe0, 0xa5, 0x80, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xbe, 0xe0, - 0xa4, 0x87, 0xe0, 0xa4, 0x9f, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, - 0x9c, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0x9e, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xaa, - 0xe0, 0xa4, 0xa8, 0xe0, 0xa4, 0x95, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, 0xb0, 0xe0, - 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, 0xe0, 0xa4, 0xb5, 0xe0, 0xa4, 0xbe, 0xe0, 0xa4, - 0x88, 0xe0, 0xa4, 0xb8, 0xe0, 0xa4, 0x95, 0xe0, 0xa5, 0x8d, 0xe0, 0xa4, 0xb0, - 0xe0, 0xa4, 0xbf, 0xe0, 0xa4, 0xaf, 0xe0, 0xa4, 0xa4, 0xe0, 0xa4, 0xbe, -}; - -#if defined(__cplusplus) || defined(c_plusplus) -} /* extern "C" */ -#endif diff --git a/thirdparty/brotli/enc/dictionary.h b/thirdparty/brotli/enc/dictionary.h deleted file mode 100644 index c9c6362d..00000000 --- a/thirdparty/brotli/enc/dictionary.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Collection of static dictionary words. - -#ifndef BROTLI_ENC_DICTIONARY_H_ -#define BROTLI_ENC_DICTIONARY_H_ - -#include "./types.h" - -// No namespace, use same identifier as for the C decoder. - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - -extern const uint8_t kBrotliDictionary[122784]; - -static const uint32_t kBrotliDictionaryOffsetsByLength[] = { - 0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032, - 53248, 63488, 74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536, - 115968, 118528, 119872, 121280, 122016, -}; - -static const uint8_t kBrotliDictionarySizeBitsByLength[] = { - 0, 0, 0, 0, 10, 10, 11, 11, 10, 10, - 10, 10, 10, 9, 9, 8, 7, 7, 8, 7, - 7, 6, 6, 5, 5, -}; - -static const int kBrotliMinDictionaryWordLength = 4; -static const int kBrotliMaxDictionaryWordLength = 24; - -#if defined(__cplusplus) || defined(c_plusplus) -} /* extern "C" */ -#endif - -#endif // BROTLI_ENC_DICTIONARY_H_ diff --git a/thirdparty/brotli/enc/dictionary_hash.h b/thirdparty/brotli/enc/dictionary_hash.h index afbb1f1e..92576b3c 100644 --- a/thirdparty/brotli/enc/dictionary_hash.h +++ b/thirdparty/brotli/enc/dictionary_hash.h @@ -4,14 +4,16 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Hash table on the 4-byte prefixes of static dictionary words. +/* Hash table on the 4-byte prefixes of static dictionary words. */ #ifndef BROTLI_ENC_DICTIONARY_HASH_H_ #define BROTLI_ENC_DICTIONARY_HASH_H_ -#include "./types.h" +#include "../common/types.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif static const uint16_t kStaticDictionaryHash[] = { 0x7d48, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -4112,6 +4114,8 @@ static const uint16_t kStaticDictionaryHash[] = { 0x0000, 0x0000, 0x0d88, 0x4ac5, 0x0000, 0x0000, 0x0000, 0x0000, }; -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_DICTIONARY_HASH_H_ +#endif /* BROTLI_ENC_DICTIONARY_HASH_H_ */ diff --git a/thirdparty/brotli/enc/encode.c b/thirdparty/brotli/enc/encode.c new file mode 100644 index 00000000..368722a1 --- /dev/null +++ b/thirdparty/brotli/enc/encode.c @@ -0,0 +1,1562 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Implementation of Brotli compressor. */ + +#include "./encode.h" + +#include <stdlib.h> /* free, malloc */ +#include <string.h> /* memcpy, memset */ + +#include "./backward_references.h" +#include "./bit_cost.h" +#include "./brotli_bit_stream.h" +#include "./compress_fragment.h" +#include "./compress_fragment_two_pass.h" +#include "./context.h" +#include "./entropy_encode.h" +#include "./fast_log.h" +#include "./hash.h" +#include "./histogram.h" +#include "./memory.h" +#include "./metablock.h" +#include "./port.h" +#include "./prefix.h" +#include "./quality.h" +#include "./ringbuffer.h" +#include "./utf8_util.h" +#include "./write_bits.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define COPY_ARRAY(dst, src) memcpy(dst, src, sizeof(src)); + +typedef enum BrotliEncoderStreamState { + /* Default state. */ + BROTLI_STREAM_PROCESSING = 0, + /* Intermediate state; after next block is emitted, byte-padding should be + performed before getting back to default state. */ + BROTLI_STREAM_FLUSH_REQUESTED = 1, + /* Last metablock was produced; no more input is acceptable. */ + BROTLI_STREAM_FINISHED = 2 +} BrotliEncoderStreamState; + +typedef struct BrotliEncoderStateStruct { + BrotliEncoderParams params; + + MemoryManager memory_manager_; + + Hashers hashers_; + uint64_t input_pos_; + RingBuffer ringbuffer_; + size_t cmd_alloc_size_; + Command* commands_; + size_t num_commands_; + size_t num_literals_; + size_t last_insert_len_; + uint64_t last_flush_pos_; + uint64_t last_processed_pos_; + int dist_cache_[4]; + int saved_dist_cache_[4]; + uint8_t last_byte_; + uint8_t last_byte_bits_; + uint8_t prev_byte_; + uint8_t prev_byte2_; + size_t storage_size_; + uint8_t* storage_; + /* Hash table for FAST_ONE_PASS_COMPRESSION_QUALITY mode. */ + int small_table_[1 << 10]; /* 4KiB */ + int* large_table_; /* Allocated only when needed */ + size_t large_table_size_; + /* Command and distance prefix codes (each 64 symbols, stored back-to-back) + used for the next block in FAST_ONE_PASS_COMPRESSION_QUALITY. The command + prefix code is over a smaller alphabet with the following 64 symbols: + 0 - 15: insert length code 0, copy length code 0 - 15, same distance + 16 - 39: insert length code 0, copy length code 0 - 23 + 40 - 63: insert length code 0 - 23, copy length code 0 + Note that symbols 16 and 40 represent the same code in the full alphabet, + but we do not use either of them in FAST_ONE_PASS_COMPRESSION_QUALITY. */ + uint8_t cmd_depths_[128]; + uint16_t cmd_bits_[128]; + /* The compressed form of the command and distance prefix codes for the next + block in FAST_ONE_PASS_COMPRESSION_QUALITY. */ + uint8_t cmd_code_[512]; + size_t cmd_code_numbits_; + /* Command and literal buffers for FAST_TWO_PASS_COMPRESSION_QUALITY. */ + uint32_t* command_buf_; + uint8_t* literal_buf_; + + uint8_t* next_out_; + size_t available_out_; + size_t total_out_; + uint8_t flush_buf_[2]; + BrotliEncoderStreamState stream_state_; + + BROTLI_BOOL is_last_block_emitted_; + BROTLI_BOOL is_initialized_; +} BrotliEncoderStateStruct; + +static BROTLI_BOOL EnsureInitialized(BrotliEncoderState* s); + +size_t BrotliEncoderInputBlockSize(BrotliEncoderState* s) { + if (!EnsureInitialized(s)) return 0; + return (size_t)1 << s->params.lgblock; +} + +static uint64_t UnprocessedInputSize(BrotliEncoderState* s) { + return s->input_pos_ - s->last_processed_pos_; +} + +static size_t RemainingInputBlockSize(BrotliEncoderState* s) { + const uint64_t delta = UnprocessedInputSize(s); + size_t block_size = BrotliEncoderInputBlockSize(s); + if (delta >= block_size) return 0; + return block_size - (size_t)delta; +} + +BROTLI_BOOL BrotliEncoderSetParameter( + BrotliEncoderState* state, BrotliEncoderParameter p, uint32_t value) { + /* Changing parameters on the fly is not implemented yet. */ + if (state->is_initialized_) return BROTLI_FALSE; + /* TODO: Validate/clamp params here. */ + switch (p) { + case BROTLI_PARAM_MODE: + state->params.mode = (BrotliEncoderMode)value; + return BROTLI_TRUE; + + case BROTLI_PARAM_QUALITY: + state->params.quality = (int)value; + return BROTLI_TRUE; + + case BROTLI_PARAM_LGWIN: + state->params.lgwin = (int)value; + return BROTLI_TRUE; + + case BROTLI_PARAM_LGBLOCK: + state->params.lgblock = (int)value; + return BROTLI_TRUE; + + default: return BROTLI_FALSE; + } +} + +static void RecomputeDistancePrefixes(Command* cmds, + size_t num_commands, + uint32_t num_direct_distance_codes, + uint32_t distance_postfix_bits) { + size_t i; + if (num_direct_distance_codes == 0 && distance_postfix_bits == 0) { + return; + } + for (i = 0; i < num_commands; ++i) { + Command* cmd = &cmds[i]; + if (CommandCopyLen(cmd) && cmd->cmd_prefix_ >= 128) { + PrefixEncodeCopyDistance(CommandDistanceCode(cmd), + num_direct_distance_codes, + distance_postfix_bits, + &cmd->dist_prefix_, + &cmd->dist_extra_); + } + } +} + +/* Wraps 64-bit input position to 32-bit ringbuffer position preserving + "not-a-first-lap" feature. */ +static uint32_t WrapPosition(uint64_t position) { + uint32_t result = (uint32_t)position; + uint64_t gb = position >> 30; + if (gb > 2) { + /* Wrap every 2GiB; The first 3GB are continous. */ + result = (result & ((1u << 30) - 1)) | ((uint32_t)((gb - 1) & 1) + 1) << 30; + } + return result; +} + +static uint8_t* GetBrotliStorage(BrotliEncoderState* s, size_t size) { + MemoryManager* m = &s->memory_manager_; + if (s->storage_size_ < size) { + BROTLI_FREE(m, s->storage_); + s->storage_ = BROTLI_ALLOC(m, uint8_t, size); + if (BROTLI_IS_OOM(m)) return NULL; + s->storage_size_ = size; + } + return s->storage_; +} + +static size_t HashTableSize(size_t max_table_size, size_t input_size) { + size_t htsize = 256; + while (htsize < max_table_size && htsize < input_size) { + htsize <<= 1; + } + return htsize; +} + +static int* GetHashTable(BrotliEncoderState* s, int quality, + size_t input_size, size_t* table_size) { + /* Use smaller hash table when input.size() is smaller, since we + fill the table, incurring O(hash table size) overhead for + compression, and if the input is short, we won't need that + many hash table entries anyway. */ + MemoryManager* m = &s->memory_manager_; + const size_t max_table_size = MaxHashTableSize(quality); + size_t htsize = HashTableSize(max_table_size, input_size); + int* table; + assert(max_table_size >= 256); + + if (htsize <= sizeof(s->small_table_) / sizeof(s->small_table_[0])) { + table = s->small_table_; + } else { + if (htsize > s->large_table_size_) { + s->large_table_size_ = htsize; + BROTLI_FREE(m, s->large_table_); + s->large_table_ = BROTLI_ALLOC(m, int, htsize); + if (BROTLI_IS_OOM(m)) return 0; + } + table = s->large_table_; + } + + *table_size = htsize; + memset(table, 0, htsize * sizeof(*table)); + return table; +} + +static void EncodeWindowBits(int lgwin, uint8_t* last_byte, + uint8_t* last_byte_bits) { + if (lgwin == 16) { + *last_byte = 0; + *last_byte_bits = 1; + } else if (lgwin == 17) { + *last_byte = 1; + *last_byte_bits = 7; + } else if (lgwin > 17) { + *last_byte = (uint8_t)(((lgwin - 17) << 1) | 1); + *last_byte_bits = 4; + } else { + *last_byte = (uint8_t)(((lgwin - 8) << 4) | 1); + *last_byte_bits = 7; + } +} + +/* Initializes the command and distance prefix codes for the first block. */ +static void InitCommandPrefixCodes(uint8_t cmd_depths[128], + uint16_t cmd_bits[128], + uint8_t cmd_code[512], + size_t* cmd_code_numbits) { + static const uint8_t kDefaultCommandDepths[128] = { + 0, 4, 4, 5, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, + 0, 0, 0, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, + 7, 7, 10, 10, 10, 10, 10, 10, 0, 4, 4, 5, 5, 5, 6, 6, + 7, 8, 8, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, + 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 7, 8, 10, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + }; + static const uint16_t kDefaultCommandBits[128] = { + 0, 0, 8, 9, 3, 35, 7, 71, + 39, 103, 23, 47, 175, 111, 239, 31, + 0, 0, 0, 4, 12, 2, 10, 6, + 13, 29, 11, 43, 27, 59, 87, 55, + 15, 79, 319, 831, 191, 703, 447, 959, + 0, 14, 1, 25, 5, 21, 19, 51, + 119, 159, 95, 223, 479, 991, 63, 575, + 127, 639, 383, 895, 255, 767, 511, 1023, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 59, 7, 39, 23, 55, 30, 1, 17, 9, 25, 5, 0, 8, 4, 12, + 2, 10, 6, 21, 13, 29, 3, 19, 11, 15, 47, 31, 95, 63, 127, 255, + 767, 2815, 1791, 3839, 511, 2559, 1535, 3583, 1023, 3071, 2047, 4095, + }; + static const uint8_t kDefaultCommandCode[] = { + 0xff, 0x77, 0xd5, 0xbf, 0xe7, 0xde, 0xea, 0x9e, 0x51, 0x5d, 0xde, 0xc6, + 0x70, 0x57, 0xbc, 0x58, 0x58, 0x58, 0xd8, 0xd8, 0x58, 0xd5, 0xcb, 0x8c, + 0xea, 0xe0, 0xc3, 0x87, 0x1f, 0x83, 0xc1, 0x60, 0x1c, 0x67, 0xb2, 0xaa, + 0x06, 0x83, 0xc1, 0x60, 0x30, 0x18, 0xcc, 0xa1, 0xce, 0x88, 0x54, 0x94, + 0x46, 0xe1, 0xb0, 0xd0, 0x4e, 0xb2, 0xf7, 0x04, 0x00, + }; + static const size_t kDefaultCommandCodeNumBits = 448; + COPY_ARRAY(cmd_depths, kDefaultCommandDepths); + COPY_ARRAY(cmd_bits, kDefaultCommandBits); + + /* Initialize the pre-compressed form of the command and distance prefix + codes. */ + COPY_ARRAY(cmd_code, kDefaultCommandCode); + *cmd_code_numbits = kDefaultCommandCodeNumBits; +} + +/* Decide about the context map based on the ability of the prediction + ability of the previous byte UTF8-prefix on the next byte. The + prediction ability is calculated as shannon entropy. Here we need + shannon entropy instead of 'BitsEntropy' since the prefix will be + encoded with the remaining 6 bits of the following byte, and + BitsEntropy will assume that symbol to be stored alone using Huffman + coding. */ +static void ChooseContextMap(int quality, + uint32_t* bigram_histo, + size_t* num_literal_contexts, + const uint32_t** literal_context_map) { + static const uint32_t kStaticContextMapContinuation[64] = { + 1, 1, 2, 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, + }; + static const uint32_t kStaticContextMapSimpleUTF8[64] = { + 0, 0, 1, 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, + }; + + uint32_t monogram_histo[3] = { 0 }; + uint32_t two_prefix_histo[6] = { 0 }; + size_t total = 0; + size_t i; + size_t dummy; + double entropy[4]; + for (i = 0; i < 9; ++i) { + size_t j = i; + total += bigram_histo[i]; + monogram_histo[i % 3] += bigram_histo[i]; + if (j >= 6) { + j -= 6; + } + two_prefix_histo[j] += bigram_histo[i]; + } + entropy[1] = ShannonEntropy(monogram_histo, 3, &dummy); + entropy[2] = (ShannonEntropy(two_prefix_histo, 3, &dummy) + + ShannonEntropy(two_prefix_histo + 3, 3, &dummy)); + entropy[3] = 0; + for (i = 0; i < 3; ++i) { + entropy[3] += ShannonEntropy(bigram_histo + 3 * i, 3, &dummy); + } + + assert(total != 0); + entropy[0] = 1.0 / (double)total; + entropy[1] *= entropy[0]; + entropy[2] *= entropy[0]; + entropy[3] *= entropy[0]; + + if (quality < MIN_QUALITY_FOR_HQ_CONTEXT_MODELING) { + /* 3 context models is a bit slower, don't use it at lower qualities. */ + entropy[3] = entropy[1] * 10; + } + /* If expected savings by symbol are less than 0.2 bits, skip the + context modeling -- in exchange for faster decoding speed. */ + if (entropy[1] - entropy[2] < 0.2 && + entropy[1] - entropy[3] < 0.2) { + *num_literal_contexts = 1; + } else if (entropy[2] - entropy[3] < 0.02) { + *num_literal_contexts = 2; + *literal_context_map = kStaticContextMapSimpleUTF8; + } else { + *num_literal_contexts = 3; + *literal_context_map = kStaticContextMapContinuation; + } +} + +static void DecideOverLiteralContextModeling(const uint8_t* input, + size_t start_pos, size_t length, size_t mask, int quality, + ContextType* literal_context_mode, size_t* num_literal_contexts, + const uint32_t** literal_context_map) { + if (quality < MIN_QUALITY_FOR_CONTEXT_MODELING || length < 64) { + return; + } else { + /* Gather bigram data of the UTF8 byte prefixes. To make the analysis of + UTF8 data faster we only examine 64 byte long strides at every 4kB + intervals. */ + const size_t end_pos = start_pos + length; + uint32_t bigram_prefix_histo[9] = { 0 }; + for (; start_pos + 64 <= end_pos; start_pos += 4096) { + static const int lut[4] = { 0, 0, 1, 2 }; + const size_t stride_end_pos = start_pos + 64; + int prev = lut[input[start_pos & mask] >> 6] * 3; + size_t pos; + for (pos = start_pos + 1; pos < stride_end_pos; ++pos) { + const uint8_t literal = input[pos & mask]; + ++bigram_prefix_histo[prev + lut[literal >> 6]]; + prev = lut[literal >> 6] * 3; + } + } + *literal_context_mode = CONTEXT_UTF8; + ChooseContextMap(quality, &bigram_prefix_histo[0], num_literal_contexts, + literal_context_map); + } +} + +static BROTLI_BOOL ShouldCompress( + const uint8_t* data, const size_t mask, const uint64_t last_flush_pos, + const size_t bytes, const size_t num_literals, const size_t num_commands) { + if (num_commands < (bytes >> 8) + 2) { + if (num_literals > 0.99 * (double)bytes) { + uint32_t literal_histo[256] = { 0 }; + static const uint32_t kSampleRate = 13; + static const double kMinEntropy = 7.92; + const double bit_cost_threshold = + (double)bytes * kMinEntropy / kSampleRate; + size_t t = (bytes + kSampleRate - 1) / kSampleRate; + uint32_t pos = (uint32_t)last_flush_pos; + size_t i; + for (i = 0; i < t; i++) { + ++literal_histo[data[pos & mask]]; + pos += kSampleRate; + } + if (BitsEntropy(literal_histo, 256) > bit_cost_threshold) { + return BROTLI_FALSE; + } + } + } + return BROTLI_TRUE; +} + +static void WriteMetaBlockInternal(MemoryManager* m, + const uint8_t* data, + const size_t mask, + const uint64_t last_flush_pos, + const size_t bytes, + const BROTLI_BOOL is_last, + const BrotliEncoderParams* params, + const uint8_t prev_byte, + const uint8_t prev_byte2, + const size_t num_literals, + const size_t num_commands, + Command* commands, + const int* saved_dist_cache, + int* dist_cache, + size_t* storage_ix, + uint8_t* storage) { + const uint32_t wrapped_last_flush_pos = WrapPosition(last_flush_pos); + uint8_t last_byte; + uint8_t last_byte_bits; + uint32_t num_direct_distance_codes = 0; + uint32_t distance_postfix_bits = 0; + + if (bytes == 0) { + /* Write the ISLAST and ISEMPTY bits. */ + BrotliWriteBits(2, 3, storage_ix, storage); + *storage_ix = (*storage_ix + 7u) & ~7u; + return; + } + + if (!ShouldCompress(data, mask, last_flush_pos, bytes, + num_literals, num_commands)) { + /* Restore the distance cache, as its last update by + CreateBackwardReferences is now unused. */ + memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); + BrotliStoreUncompressedMetaBlock(is_last, data, + wrapped_last_flush_pos, mask, bytes, + storage_ix, storage); + return; + } + + last_byte = storage[0]; + last_byte_bits = (uint8_t)(*storage_ix & 0xff); + if (params->quality >= MIN_QUALITY_FOR_RECOMPUTE_DISTANCE_PREFIXES && + params->mode == BROTLI_MODE_FONT) { + num_direct_distance_codes = 12; + distance_postfix_bits = 1; + RecomputeDistancePrefixes(commands, + num_commands, + num_direct_distance_codes, + distance_postfix_bits); + } + if (params->quality <= MAX_QUALITY_FOR_STATIC_ENRTOPY_CODES) { + BrotliStoreMetaBlockFast(m, data, wrapped_last_flush_pos, + bytes, mask, is_last, + commands, num_commands, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + } else if (params->quality < MIN_QUALITY_FOR_BLOCK_SPLIT) { + BrotliStoreMetaBlockTrivial(m, data, wrapped_last_flush_pos, + bytes, mask, is_last, + commands, num_commands, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + } else { + ContextType literal_context_mode = CONTEXT_UTF8; + MetaBlockSplit mb; + InitMetaBlockSplit(&mb); + if (params->quality < MIN_QUALITY_FOR_HQ_BLOCK_SPLITTING) { + size_t num_literal_contexts = 1; + const uint32_t* literal_context_map = NULL; + DecideOverLiteralContextModeling(data, wrapped_last_flush_pos, + bytes, mask, + params->quality, + &literal_context_mode, + &num_literal_contexts, + &literal_context_map); + if (literal_context_map == NULL) { + BrotliBuildMetaBlockGreedy(m, data, wrapped_last_flush_pos, mask, + commands, num_commands, &mb); + if (BROTLI_IS_OOM(m)) return; + } else { + BrotliBuildMetaBlockGreedyWithContexts(m, data, + wrapped_last_flush_pos, + mask, + prev_byte, prev_byte2, + literal_context_mode, + num_literal_contexts, + literal_context_map, + commands, num_commands, + &mb); + if (BROTLI_IS_OOM(m)) return; + } + } else { + if (!BrotliIsMostlyUTF8(data, wrapped_last_flush_pos, mask, bytes, + kMinUTF8Ratio)) { + literal_context_mode = CONTEXT_SIGNED; + } + BrotliBuildMetaBlock(m, data, wrapped_last_flush_pos, mask, params, + prev_byte, prev_byte2, + commands, num_commands, + literal_context_mode, + &mb); + if (BROTLI_IS_OOM(m)) return; + } + if (params->quality >= MIN_QUALITY_FOR_OPTIMIZE_HISTOGRAMS) { + BrotliOptimizeHistograms(num_direct_distance_codes, + distance_postfix_bits, + &mb); + } + BrotliStoreMetaBlock(m, data, wrapped_last_flush_pos, bytes, mask, + prev_byte, prev_byte2, + is_last, + num_direct_distance_codes, + distance_postfix_bits, + literal_context_mode, + commands, num_commands, + &mb, + storage_ix, storage); + if (BROTLI_IS_OOM(m)) return; + DestroyMetaBlockSplit(m, &mb); + } + if (bytes + 4 < (*storage_ix >> 3)) { + /* Restore the distance cache and last byte. */ + memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); + storage[0] = last_byte; + *storage_ix = last_byte_bits; + BrotliStoreUncompressedMetaBlock(is_last, data, + wrapped_last_flush_pos, mask, + bytes, storage_ix, storage); + } +} + +static BROTLI_BOOL EnsureInitialized(BrotliEncoderState* s) { + if (BROTLI_IS_OOM(&s->memory_manager_)) return BROTLI_FALSE; + if (s->is_initialized_) return BROTLI_TRUE; + + SanitizeParams(&s->params); + s->params.lgblock = ComputeLgBlock(&s->params); + + RingBufferSetup(&s->params, &s->ringbuffer_); + + /* Initialize last byte with stream header. */ + EncodeWindowBits(s->params.lgwin, &s->last_byte_, &s->last_byte_bits_); + + if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY) { + InitCommandPrefixCodes(s->cmd_depths_, s->cmd_bits_, + s->cmd_code_, &s->cmd_code_numbits_); + } + + /* Initialize hashers. */ + HashersSetup(&s->memory_manager_, &s->hashers_, ChooseHasher(&s->params)); + if (BROTLI_IS_OOM(&s->memory_manager_)) return BROTLI_FALSE; + + s->is_initialized_ = BROTLI_TRUE; + return BROTLI_TRUE; +} + +static void BrotliEncoderInitState(BrotliEncoderState* s) { + s->params.mode = BROTLI_DEFAULT_MODE; + s->params.quality = BROTLI_DEFAULT_QUALITY; + s->params.lgwin = BROTLI_DEFAULT_WINDOW; + s->params.lgblock = 0; + + s->input_pos_ = 0; + s->num_commands_ = 0; + s->num_literals_ = 0; + s->last_insert_len_ = 0; + s->last_flush_pos_ = 0; + s->last_processed_pos_ = 0; + s->prev_byte_ = 0; + s->prev_byte2_ = 0; + s->storage_size_ = 0; + s->storage_ = 0; + s->large_table_ = NULL; + s->large_table_size_ = 0; + s->cmd_code_numbits_ = 0; + s->command_buf_ = NULL; + s->literal_buf_ = NULL; + s->next_out_ = NULL; + s->available_out_ = 0; + s->total_out_ = 0; + s->stream_state_ = BROTLI_STREAM_PROCESSING; + s->is_last_block_emitted_ = BROTLI_FALSE; + s->is_initialized_ = BROTLI_FALSE; + + InitHashers(&s->hashers_); + + RingBufferInit(&s->ringbuffer_); + + s->commands_ = 0; + s->cmd_alloc_size_ = 0; + + /* Initialize distance cache. */ + s->dist_cache_[0] = 4; + s->dist_cache_[1] = 11; + s->dist_cache_[2] = 15; + s->dist_cache_[3] = 16; + /* Save the state of the distance cache in case we need to restore it for + emitting an uncompressed block. */ + memcpy(s->saved_dist_cache_, s->dist_cache_, sizeof(s->dist_cache_)); +} + +BrotliEncoderState* BrotliEncoderCreateInstance(brotli_alloc_func alloc_func, + brotli_free_func free_func, + void* opaque) { + BrotliEncoderState* state = 0; + if (!alloc_func && !free_func) { + state = (BrotliEncoderState*)malloc(sizeof(BrotliEncoderState)); + } else if (alloc_func && free_func) { + state = (BrotliEncoderState*)alloc_func(opaque, sizeof(BrotliEncoderState)); + } + if (state == 0) { + /* BROTLI_DUMP(); */ + return 0; + } + BrotliInitMemoryManager( + &state->memory_manager_, alloc_func, free_func, opaque); + BrotliEncoderInitState(state); + return state; +} + +static void BrotliEncoderCleanupState(BrotliEncoderState* s) { + MemoryManager* m = &s->memory_manager_; + if (BROTLI_IS_OOM(m)) { + BrotliWipeOutMemoryManager(m); + return; + } + BROTLI_FREE(m, s->storage_); + BROTLI_FREE(m, s->commands_); + RingBufferFree(m, &s->ringbuffer_); + DestroyHashers(m, &s->hashers_); + BROTLI_FREE(m, s->large_table_); + BROTLI_FREE(m, s->command_buf_); + BROTLI_FREE(m, s->literal_buf_); +} + +/* Deinitializes and frees BrotliEncoderState instance. */ +void BrotliEncoderDestroyInstance(BrotliEncoderState* state) { + if (!state) { + return; + } else { + MemoryManager* m = &state->memory_manager_; + brotli_free_func free_func = m->free_func; + void* opaque = m->opaque; + BrotliEncoderCleanupState(state); + free_func(opaque, state); + } +} + +void BrotliEncoderCopyInputToRingBuffer(BrotliEncoderState* s, + const size_t input_size, + const uint8_t* input_buffer) { + RingBuffer* ringbuffer_ = &s->ringbuffer_; + MemoryManager* m = &s->memory_manager_; + if (!EnsureInitialized(s)) return; + RingBufferWrite(m, input_buffer, input_size, ringbuffer_); + if (BROTLI_IS_OOM(m)) return; + s->input_pos_ += input_size; + + /* TL;DR: If needed, initialize 7 more bytes in the ring buffer to make the + hashing not depend on uninitialized data. This makes compression + deterministic and it prevents uninitialized memory warnings in Valgrind. + Even without erasing, the output would be valid (but nondeterministic). + + Background information: The compressor stores short (at most 8 bytes) + substrings of the input already read in a hash table, and detects + repetitions by looking up such substrings in the hash table. If it + can find a substring, it checks whether the substring is really there + in the ring buffer (or it's just a hash collision). Should the hash + table become corrupt, this check makes sure that the output is + still valid, albeit the compression ratio would be bad. + + The compressor populates the hash table from the ring buffer as it's + reading new bytes from the input. However, at the last few indexes of + the ring buffer, there are not enough bytes to build full-length + substrings from. Since the hash table always contains full-length + substrings, we erase with dummy 0s here to make sure that those + substrings will contain 0s at the end instead of uninitialized + data. + + Please note that erasing is not necessary (because the + memory region is already initialized since he ring buffer + has a `tail' that holds a copy of the beginning,) so we + skip erasing if we have already gone around at least once in + the ring buffer. + + Only clear during the first round of ringbuffer writes. On + subsequent rounds data in the ringbuffer would be affected. */ + if (ringbuffer_->pos_ <= ringbuffer_->mask_) { + /* This is the first time when the ring buffer is being written. + We clear 7 bytes just after the bytes that have been copied from + the input buffer. + + The ringbuffer has a "tail" that holds a copy of the beginning, + but only once the ring buffer has been fully written once, i.e., + pos <= mask. For the first time, we need to write values + in this tail (where index may be larger than mask), so that + we have exactly defined behavior and don't read un-initialized + memory. Due to performance reasons, hashing reads data using a + LOAD64, which can go 7 bytes beyond the bytes written in the + ringbuffer. */ + memset(ringbuffer_->buffer_ + ringbuffer_->pos_, 0, 7); + } +} + +void BrotliEncoderSetCustomDictionary(BrotliEncoderState* s, size_t size, + const uint8_t* dict) { + size_t max_dict_size = MaxBackwardLimit(s->params.lgwin); + size_t dict_size = size; + MemoryManager* m = &s->memory_manager_; + + if (!EnsureInitialized(s)) return; + + if (dict_size == 0 || + s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY || + s->params.quality == FAST_TWO_PASS_COMPRESSION_QUALITY) { + return; + } + if (size > max_dict_size) { + dict += size - max_dict_size; + dict_size = max_dict_size; + } + BrotliEncoderCopyInputToRingBuffer(s, dict_size, dict); + s->last_flush_pos_ = dict_size; + s->last_processed_pos_ = dict_size; + if (dict_size > 0) { + s->prev_byte_ = dict[dict_size - 1]; + } + if (dict_size > 1) { + s->prev_byte2_ = dict[dict_size - 2]; + } + HashersPrependCustomDictionary(m, &s->hashers_, &s->params, dict_size, dict); + if (BROTLI_IS_OOM(m)) return; +} + +/* Marks all input as processed. + Returns true if position wrapping occurs. */ +static BROTLI_BOOL UpdateLastProcessedPos(BrotliEncoderState* s) { + uint32_t wrapped_last_processed_pos = WrapPosition(s->last_processed_pos_); + uint32_t wrapped_input_pos = WrapPosition(s->input_pos_); + s->last_processed_pos_ = s->input_pos_; + return TO_BROTLI_BOOL(wrapped_input_pos < wrapped_last_processed_pos); +} + +BROTLI_BOOL BrotliEncoderWriteData( + BrotliEncoderState* s, const BROTLI_BOOL is_last, + const BROTLI_BOOL force_flush, size_t* out_size, uint8_t** output) { + const uint64_t delta = UnprocessedInputSize(s); + const uint32_t bytes = (uint32_t)delta; + const uint32_t wrapped_last_processed_pos = + WrapPosition(s->last_processed_pos_); + uint8_t* data; + uint32_t mask; + MemoryManager* m = &s->memory_manager_; + + if (!EnsureInitialized(s)) return BROTLI_FALSE; + data = s->ringbuffer_.buffer_; + mask = s->ringbuffer_.mask_; + + /* Adding more blocks after "last" block is forbidden. */ + if (s->is_last_block_emitted_) return BROTLI_FALSE; + if (is_last) s->is_last_block_emitted_ = BROTLI_TRUE; + + if (delta > BrotliEncoderInputBlockSize(s)) { + return BROTLI_FALSE; + } + if (s->params.quality == FAST_TWO_PASS_COMPRESSION_QUALITY && + !s->command_buf_) { + s->command_buf_ = + BROTLI_ALLOC(m, uint32_t, kCompressFragmentTwoPassBlockSize); + s->literal_buf_ = + BROTLI_ALLOC(m, uint8_t, kCompressFragmentTwoPassBlockSize); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + } + + if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY || + s->params.quality == FAST_TWO_PASS_COMPRESSION_QUALITY) { + uint8_t* storage; + size_t storage_ix = s->last_byte_bits_; + size_t table_size; + int* table; + + if (delta == 0 && !is_last) { + /* We have no new input data and we don't have to finish the stream, so + nothing to do. */ + *out_size = 0; + return BROTLI_TRUE; + } + storage = GetBrotliStorage(s, 2 * bytes + 500); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + storage[0] = s->last_byte_; + table = GetHashTable(s, s->params.quality, bytes, &table_size); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY) { + BrotliCompressFragmentFast( + m, &data[wrapped_last_processed_pos & mask], + bytes, is_last, + table, table_size, + s->cmd_depths_, s->cmd_bits_, + &s->cmd_code_numbits_, s->cmd_code_, + &storage_ix, storage); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + } else { + BrotliCompressFragmentTwoPass( + m, &data[wrapped_last_processed_pos & mask], + bytes, is_last, + s->command_buf_, s->literal_buf_, + table, table_size, + &storage_ix, storage); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + } + s->last_byte_ = storage[storage_ix >> 3]; + s->last_byte_bits_ = storage_ix & 7u; + UpdateLastProcessedPos(s); + *output = &storage[0]; + *out_size = storage_ix >> 3; + return BROTLI_TRUE; + } + + { + /* Theoretical max number of commands is 1 per 2 bytes. */ + size_t newsize = s->num_commands_ + bytes / 2 + 1; + if (newsize > s->cmd_alloc_size_) { + Command* new_commands; + /* Reserve a bit more memory to allow merging with a next block + without realloc: that would impact speed. */ + newsize += (bytes / 4) + 16; + s->cmd_alloc_size_ = newsize; + new_commands = BROTLI_ALLOC(m, Command, newsize); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + if (s->commands_) { + memcpy(new_commands, s->commands_, sizeof(Command) * s->num_commands_); + BROTLI_FREE(m, s->commands_); + } + s->commands_ = new_commands; + } + } + + BrotliCreateBackwardReferences(m, bytes, wrapped_last_processed_pos, + is_last, data, mask, + &s->params, + &s->hashers_, + s->dist_cache_, + &s->last_insert_len_, + &s->commands_[s->num_commands_], + &s->num_commands_, + &s->num_literals_); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + + { + const size_t max_length = MaxMetablockSize(&s->params); + const size_t max_literals = max_length / 8; + const size_t max_commands = max_length / 8; + const size_t processed_bytes = (size_t)(s->input_pos_ - s->last_flush_pos_); + /* If maximal possible additional block doesn't fit metablock, flush now. */ + /* TODO: Postpone decision until next block arrives? */ + const BROTLI_BOOL next_input_fits_metablock = TO_BROTLI_BOOL( + processed_bytes + BrotliEncoderInputBlockSize(s) <= max_length); + /* If block splitting is not used, then flush as soon as there is some + amount of commands / literals produced. */ + const BROTLI_BOOL should_flush = TO_BROTLI_BOOL( + s->params.quality < MIN_QUALITY_FOR_BLOCK_SPLIT && + s->num_literals_ + s->num_commands_ >= MAX_NUM_DELAYED_SYMBOLS); + if (!is_last && !force_flush && !should_flush && + next_input_fits_metablock && + s->num_literals_ < max_literals && + s->num_commands_ < max_commands) { + /* Merge with next input block. Everything will happen later. */ + if (UpdateLastProcessedPos(s)) { + HashersReset(&s->hashers_, ChooseHasher(&s->params)); + } + *out_size = 0; + return BROTLI_TRUE; + } + } + + /* Create the last insert-only command. */ + if (s->last_insert_len_ > 0) { + InitInsertCommand(&s->commands_[s->num_commands_++], s->last_insert_len_); + s->num_literals_ += s->last_insert_len_; + s->last_insert_len_ = 0; + } + + if (!is_last && s->input_pos_ == s->last_flush_pos_) { + /* We have no new input data and we don't have to finish the stream, so + nothing to do. */ + *out_size = 0; + return BROTLI_TRUE; + } + assert(s->input_pos_ >= s->last_flush_pos_); + assert(s->input_pos_ > s->last_flush_pos_ || is_last); + assert(s->input_pos_ - s->last_flush_pos_ <= 1u << 24); + { + const uint32_t metablock_size = + (uint32_t)(s->input_pos_ - s->last_flush_pos_); + uint8_t* storage = GetBrotliStorage(s, 2 * metablock_size + 500); + size_t storage_ix = s->last_byte_bits_; + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + storage[0] = s->last_byte_; + WriteMetaBlockInternal( + m, data, mask, s->last_flush_pos_, metablock_size, is_last, + &s->params, s->prev_byte_, s->prev_byte2_, + s->num_literals_, s->num_commands_, s->commands_, s->saved_dist_cache_, + s->dist_cache_, &storage_ix, storage); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + s->last_byte_ = storage[storage_ix >> 3]; + s->last_byte_bits_ = storage_ix & 7u; + s->last_flush_pos_ = s->input_pos_; + if (UpdateLastProcessedPos(s)) { + HashersReset(&s->hashers_, ChooseHasher(&s->params)); + } + if (s->last_flush_pos_ > 0) { + s->prev_byte_ = data[((uint32_t)s->last_flush_pos_ - 1) & mask]; + } + if (s->last_flush_pos_ > 1) { + s->prev_byte2_ = data[(uint32_t)(s->last_flush_pos_ - 2) & mask]; + } + s->num_commands_ = 0; + s->num_literals_ = 0; + /* Save the state of the distance cache in case we need to restore it for + emitting an uncompressed block. */ + memcpy(s->saved_dist_cache_, s->dist_cache_, sizeof(s->dist_cache_)); + *output = &storage[0]; + *out_size = storage_ix >> 3; + return BROTLI_TRUE; + } +} + +BROTLI_BOOL BrotliEncoderWriteMetaBlock( + BrotliEncoderState* s, const size_t input_size, const uint8_t* input_buffer, + const BROTLI_BOOL is_last, size_t* encoded_size, uint8_t* encoded_buffer) { + size_t out_size = 0; + uint8_t* output; + int result; + if (!EnsureInitialized(s)) return BROTLI_FALSE; + BrotliEncoderCopyInputToRingBuffer(s, input_size, input_buffer); + result = BrotliEncoderWriteData( + s, is_last, /* force_flush */ BROTLI_TRUE, &out_size, &output); + if (!result || out_size > *encoded_size) { + return BROTLI_FALSE; + } + if (out_size > 0) { + memcpy(encoded_buffer, output, out_size); + } + *encoded_size = out_size; + return BROTLI_TRUE; +} + +BROTLI_BOOL BrotliEncoderWriteMetadata( + BrotliEncoderState* s, const size_t input_size, const uint8_t* input_buffer, + const BROTLI_BOOL is_last, size_t* encoded_size, uint8_t* encoded_buffer) { + uint64_t hdr_buffer_data[2]; + uint8_t* hdr_buffer = (uint8_t*)&hdr_buffer_data[0]; + size_t storage_ix; + if (!EnsureInitialized(s)) return BROTLI_FALSE; + if (input_size > (1 << 24) || input_size + 6 > *encoded_size) { + return BROTLI_FALSE; + } + storage_ix = s->last_byte_bits_; + hdr_buffer[0] = s->last_byte_; + BrotliWriteBits(1, 0, &storage_ix, hdr_buffer); + BrotliWriteBits(2, 3, &storage_ix, hdr_buffer); + BrotliWriteBits(1, 0, &storage_ix, hdr_buffer); + if (input_size == 0) { + BrotliWriteBits(2, 0, &storage_ix, hdr_buffer); + *encoded_size = (storage_ix + 7u) >> 3; + memcpy(encoded_buffer, hdr_buffer, *encoded_size); + } else { + uint32_t nbits = (input_size == 1) ? 0 : + (Log2FloorNonZero((uint32_t)input_size - 1) + 1); + uint32_t nbytes = (nbits + 7) / 8; + size_t hdr_size; + BrotliWriteBits(2, nbytes, &storage_ix, hdr_buffer); + BrotliWriteBits(8 * nbytes, input_size - 1, &storage_ix, hdr_buffer); + hdr_size = (storage_ix + 7u) >> 3; + memcpy(encoded_buffer, hdr_buffer, hdr_size); + memcpy(&encoded_buffer[hdr_size], input_buffer, input_size); + *encoded_size = hdr_size + input_size; + } + if (is_last) { + encoded_buffer[(*encoded_size)++] = 3; + } + s->last_byte_ = 0; + s->last_byte_bits_ = 0; + return BROTLI_TRUE; +} + +BROTLI_BOOL BrotliEncoderFinishStream( + BrotliEncoderState* s, size_t* encoded_size, uint8_t* encoded_buffer) { + if (!EnsureInitialized(s)) return BROTLI_FALSE; + return BrotliEncoderWriteMetaBlock( + s, 0, NULL, 1, encoded_size, encoded_buffer); +} + +static BROTLI_BOOL BrotliCompressBufferQuality10( + int lgwin, size_t input_size, const uint8_t* input_buffer, + size_t* encoded_size, uint8_t* encoded_buffer) { + MemoryManager memory_manager; + MemoryManager* m = &memory_manager; + + const size_t mask = BROTLI_SIZE_MAX >> 1; + const size_t max_backward_limit = MaxBackwardLimit(lgwin); + int dist_cache[4] = { 4, 11, 15, 16 }; + int saved_dist_cache[4] = { 4, 11, 15, 16 }; + BROTLI_BOOL ok = BROTLI_TRUE; + const size_t max_out_size = *encoded_size; + size_t total_out_size = 0; + uint8_t last_byte; + uint8_t last_byte_bits; + H10* hasher; + + const size_t hasher_eff_size = + BROTLI_MIN(size_t, input_size, max_backward_limit + 16); + + BrotliEncoderParams params; + + const int lgmetablock = BROTLI_MIN(int, 24, lgwin + 1); + size_t max_block_size; + const size_t max_metablock_size = (size_t)1 << lgmetablock; + const size_t max_literals_per_metablock = max_metablock_size / 8; + const size_t max_commands_per_metablock = max_metablock_size / 8; + size_t metablock_start = 0; + uint8_t prev_byte = 0; + uint8_t prev_byte2 = 0; + + params.mode = BROTLI_DEFAULT_MODE; + params.quality = 10; + params.lgwin = lgwin; + params.lgblock = 0; + SanitizeParams(¶ms); + params.lgblock = ComputeLgBlock(¶ms); + max_block_size = (size_t)1 << params.lgblock; + + BrotliInitMemoryManager(m, 0, 0, 0); + + assert(input_size <= mask + 1); + EncodeWindowBits(lgwin, &last_byte, &last_byte_bits); + hasher = BROTLI_ALLOC(m, H10, 1); + if (BROTLI_IS_OOM(m)) goto oom; + InitializeH10(hasher); + InitH10(m, hasher, input_buffer, ¶ms, 0, hasher_eff_size, 1); + if (BROTLI_IS_OOM(m)) goto oom; + + while (ok && metablock_start < input_size) { + const size_t metablock_end = + BROTLI_MIN(size_t, input_size, metablock_start + max_metablock_size); + const size_t expected_num_commands = + (metablock_end - metablock_start) / 12 + 16; + Command* commands = 0; + size_t num_commands = 0; + size_t last_insert_len = 0; + size_t num_literals = 0; + size_t metablock_size = 0; + size_t cmd_alloc_size = 0; + BROTLI_BOOL is_last; + uint8_t* storage; + size_t storage_ix; + + size_t block_start; + for (block_start = metablock_start; block_start < metablock_end; ) { + size_t block_size = + BROTLI_MIN(size_t, metablock_end - block_start, max_block_size); + ZopfliNode* nodes = BROTLI_ALLOC(m, ZopfliNode, block_size + 1); + size_t path_size; + size_t new_cmd_alloc_size; + if (BROTLI_IS_OOM(m)) goto oom; + BrotliInitZopfliNodes(nodes, block_size + 1); + StitchToPreviousBlockH10(hasher, block_size, block_start, + input_buffer, mask); + path_size = BrotliZopfliComputeShortestPath( + m, block_size, block_start, input_buffer, mask, ¶ms, + max_backward_limit, dist_cache, hasher, nodes); + if (BROTLI_IS_OOM(m)) goto oom; + /* We allocate a command buffer in the first iteration of this loop that + will be likely big enough for the whole metablock, so that for most + inputs we will not have to reallocate in later iterations. We do the + allocation here and not before the loop, because if the input is small, + this will be allocated after the zopfli cost model is freed, so this + will not increase peak memory usage. + TODO: If the first allocation is too small, increase command + buffer size exponentially. */ + new_cmd_alloc_size = BROTLI_MAX(size_t, expected_num_commands, + num_commands + path_size + 1); + if (cmd_alloc_size != new_cmd_alloc_size) { + Command* new_commands = BROTLI_ALLOC(m, Command, new_cmd_alloc_size); + if (BROTLI_IS_OOM(m)) goto oom; + cmd_alloc_size = new_cmd_alloc_size; + if (commands) { + memcpy(new_commands, commands, sizeof(Command) * num_commands); + BROTLI_FREE(m, commands); + } + commands = new_commands; + } + BrotliZopfliCreateCommands(block_size, block_start, max_backward_limit, + &nodes[0], dist_cache, &last_insert_len, + &commands[num_commands], &num_literals); + num_commands += path_size; + block_start += block_size; + metablock_size += block_size; + BROTLI_FREE(m, nodes); + if (num_literals > max_literals_per_metablock || + num_commands > max_commands_per_metablock) { + break; + } + } + + if (last_insert_len > 0) { + InitInsertCommand(&commands[num_commands++], last_insert_len); + num_literals += last_insert_len; + } + + is_last = TO_BROTLI_BOOL(metablock_start + metablock_size == input_size); + storage = NULL; + storage_ix = last_byte_bits; + + if (metablock_size == 0) { + /* Write the ISLAST and ISEMPTY bits. */ + storage = BROTLI_ALLOC(m, uint8_t, 16); + if (BROTLI_IS_OOM(m)) goto oom; + storage[0] = last_byte; + BrotliWriteBits(2, 3, &storage_ix, storage); + storage_ix = (storage_ix + 7u) & ~7u; + } else if (!ShouldCompress(input_buffer, mask, metablock_start, + metablock_size, num_literals, num_commands)) { + /* Restore the distance cache, as its last update by + CreateBackwardReferences is now unused. */ + memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); + storage = BROTLI_ALLOC(m, uint8_t, metablock_size + 16); + if (BROTLI_IS_OOM(m)) goto oom; + storage[0] = last_byte; + BrotliStoreUncompressedMetaBlock(is_last, input_buffer, + metablock_start, mask, metablock_size, + &storage_ix, storage); + } else { + uint32_t num_direct_distance_codes = 0; + uint32_t distance_postfix_bits = 0; + ContextType literal_context_mode = CONTEXT_UTF8; + MetaBlockSplit mb; + InitMetaBlockSplit(&mb); + if (!BrotliIsMostlyUTF8(input_buffer, metablock_start, mask, + metablock_size, kMinUTF8Ratio)) { + literal_context_mode = CONTEXT_SIGNED; + } + BrotliBuildMetaBlock(m, input_buffer, metablock_start, mask, ¶ms, + prev_byte, prev_byte2, + commands, num_commands, + literal_context_mode, + &mb); + if (BROTLI_IS_OOM(m)) goto oom; + BrotliOptimizeHistograms(num_direct_distance_codes, + distance_postfix_bits, + &mb); + storage = BROTLI_ALLOC(m, uint8_t, 2 * metablock_size + 500); + if (BROTLI_IS_OOM(m)) goto oom; + storage[0] = last_byte; + BrotliStoreMetaBlock(m, input_buffer, metablock_start, metablock_size, + mask, prev_byte, prev_byte2, + is_last, + num_direct_distance_codes, + distance_postfix_bits, + literal_context_mode, + commands, num_commands, + &mb, + &storage_ix, storage); + if (BROTLI_IS_OOM(m)) goto oom; + if (metablock_size + 4 < (storage_ix >> 3)) { + /* Restore the distance cache and last byte. */ + memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); + storage[0] = last_byte; + storage_ix = last_byte_bits; + BrotliStoreUncompressedMetaBlock(is_last, input_buffer, + metablock_start, mask, + metablock_size, &storage_ix, storage); + } + DestroyMetaBlockSplit(m, &mb); + } + last_byte = storage[storage_ix >> 3]; + last_byte_bits = storage_ix & 7u; + metablock_start += metablock_size; + prev_byte = input_buffer[metablock_start - 1]; + prev_byte2 = input_buffer[metablock_start - 2]; + /* Save the state of the distance cache in case we need to restore it for + emitting an uncompressed block. */ + memcpy(saved_dist_cache, dist_cache, 4 * sizeof(dist_cache[0])); + + { + const size_t out_size = storage_ix >> 3; + total_out_size += out_size; + if (total_out_size <= max_out_size) { + memcpy(encoded_buffer, storage, out_size); + encoded_buffer += out_size; + } else { + ok = BROTLI_FALSE; + } + } + BROTLI_FREE(m, storage); + BROTLI_FREE(m, commands); + } + + *encoded_size = total_out_size; + CleanupH10(m, hasher); + BROTLI_FREE(m, hasher); + return ok; + +oom: + BrotliWipeOutMemoryManager(m); + return BROTLI_FALSE; +} + +size_t BrotliEncoderMaxCompressedSize(size_t input_size) { + /* [window bits / empty metadata] + N * [uncompressed] + [last empty] */ + size_t num_large_blocks = input_size >> 24; + size_t tail = input_size - (num_large_blocks << 24); + size_t tail_overhead = (tail > (1 << 20)) ? 4 : 3; + size_t overhead = 2 + (4 * num_large_blocks) + tail_overhead + 1; + size_t result = input_size + overhead; + if (input_size == 0) return 1; + return (result < input_size) ? 0 : result; +} + +/* Wraps data to uncompressed brotli stream with minimal window size. + |output| should point at region with at least BrotliEncoderMaxCompressedSize + addressable bytes. + Returns the length of stream. */ +static size_t MakeUncompressedStream( + const uint8_t* input, size_t input_size, uint8_t* output) { + size_t size = input_size; + size_t result = 0; + size_t offset = 0; + if (input_size == 0) { + output[0] = 6; + return 1; + } + output[result++] = 0x21; /* window bits = 10, is_last = false */ + output[result++] = 0x03; /* empty metadata, padding */ + while (size > 0) { + uint32_t nibbles = 0; + uint32_t chunk_size; + uint32_t bits; + chunk_size = (size > (1u << 24)) ? (1u << 24) : (uint32_t)size; + if (chunk_size > (1u << 16)) nibbles = (chunk_size > (1u << 20)) ? 2 : 1; + bits = + (nibbles << 1) | ((chunk_size - 1) << 3) | (1u << (19 + 4 * nibbles)); + output[result++] = (uint8_t)bits; + output[result++] = (uint8_t)(bits >> 8); + output[result++] = (uint8_t)(bits >> 16); + if (nibbles == 2) output[result++] = (uint8_t)(bits >> 24); + memcpy(&output[result], &input[offset], chunk_size); + result += chunk_size; + offset += chunk_size; + size -= chunk_size; + } + output[result++] = 3; + return result; +} + +BROTLI_BOOL BrotliEncoderCompress( + int quality, int lgwin, BrotliEncoderMode mode, size_t input_size, + const uint8_t* input_buffer, size_t* encoded_size, + uint8_t* encoded_buffer) { + BrotliEncoderState* s; + size_t out_size = *encoded_size; + const uint8_t* input_start = input_buffer; + uint8_t* output_start = encoded_buffer; + size_t max_out_size = BrotliEncoderMaxCompressedSize(input_size); + if (out_size == 0) { + /* Output buffer needs at least one byte. */ + return BROTLI_FALSE; + } + if (input_size == 0) { + /* Handle the special case of empty input. */ + *encoded_size = 1; + *encoded_buffer = 6; + return BROTLI_TRUE; + } + if (quality == 10) { + /* TODO: Implement this direct path for all quality levels. */ + const int lg_win = BROTLI_MIN(int, 24, BROTLI_MAX(int, 16, lgwin)); + int ok = BrotliCompressBufferQuality10(lg_win, input_size, input_buffer, + encoded_size, encoded_buffer); + if (!ok || (max_out_size && *encoded_size > max_out_size)) { + goto fallback; + } + return BROTLI_TRUE; + } + + s = BrotliEncoderCreateInstance(0, 0, 0); + if (!s) { + return BROTLI_FALSE; + } else { + size_t available_in = input_size; + const uint8_t* next_in = input_buffer; + size_t available_out = *encoded_size; + uint8_t* next_out = encoded_buffer; + size_t total_out = 0; + BROTLI_BOOL result = BROTLI_FALSE; + BrotliEncoderSetParameter(s, BROTLI_PARAM_QUALITY, (uint32_t)quality); + BrotliEncoderSetParameter(s, BROTLI_PARAM_LGWIN, (uint32_t)lgwin); + BrotliEncoderSetParameter(s, BROTLI_PARAM_MODE, (uint32_t)mode); + result = BrotliEncoderCompressStream(s, BROTLI_OPERATION_FINISH, + &available_in, &next_in, &available_out, &next_out, &total_out); + if (!BrotliEncoderIsFinished(s)) result = 0; + *encoded_size = total_out; + BrotliEncoderDestroyInstance(s); + if (!result || (max_out_size && *encoded_size > max_out_size)) { + goto fallback; + } + return BROTLI_TRUE; + } +fallback: + *encoded_size = 0; + if (!max_out_size) return BROTLI_FALSE; + if (out_size >= max_out_size) { + *encoded_size = + MakeUncompressedStream(input_start, input_size, output_start); + return BROTLI_TRUE; + } + return BROTLI_FALSE; +} + +static void InjectBytePaddingBlock(BrotliEncoderState* s) { + uint32_t seal = s->last_byte_; + size_t seal_bits = s->last_byte_bits_; + s->last_byte_ = 0; + s->last_byte_bits_ = 0; + /* is_last = 0, data_nibbles = 11, reseved = 0, meta_nibbles = 00 */ + seal |= 0x6u << seal_bits; + seal_bits += 6; + s->flush_buf_[0] = (uint8_t)seal; + if (seal_bits > 8) s->flush_buf_[1] = (uint8_t)(seal >> 8); + s->next_out_ = s->flush_buf_; + s->available_out_ = (seal_bits + 7) >> 3; +} + +static BROTLI_BOOL BrotliEncoderCompressStreamFast( + BrotliEncoderState* s, BrotliEncoderOperation op, size_t* available_in, + const uint8_t** next_in, size_t* available_out, uint8_t** next_out, + size_t* total_out) { + const size_t block_size_limit = (size_t)1 << s->params.lgwin; + const size_t buf_size = BROTLI_MIN(size_t, kCompressFragmentTwoPassBlockSize, + BROTLI_MIN(size_t, *available_in, block_size_limit)); + uint32_t* tmp_command_buf = NULL; + uint32_t* command_buf = NULL; + uint8_t* tmp_literal_buf = NULL; + uint8_t* literal_buf = NULL; + MemoryManager* m = &s->memory_manager_; + if (s->params.quality != FAST_ONE_PASS_COMPRESSION_QUALITY && + s->params.quality != FAST_TWO_PASS_COMPRESSION_QUALITY) { + return BROTLI_FALSE; + } + if (s->params.quality == FAST_TWO_PASS_COMPRESSION_QUALITY) { + if (!s->command_buf_ && buf_size == kCompressFragmentTwoPassBlockSize) { + s->command_buf_ = + BROTLI_ALLOC(m, uint32_t, kCompressFragmentTwoPassBlockSize); + s->literal_buf_ = + BROTLI_ALLOC(m, uint8_t, kCompressFragmentTwoPassBlockSize); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + } + if (s->command_buf_) { + command_buf = s->command_buf_; + literal_buf = s->literal_buf_; + } else { + tmp_command_buf = BROTLI_ALLOC(m, uint32_t, buf_size); + tmp_literal_buf = BROTLI_ALLOC(m, uint8_t, buf_size); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + command_buf = tmp_command_buf; + literal_buf = tmp_literal_buf; + } + } + + while (BROTLI_TRUE) { + if (s->available_out_ == 0 && + s->stream_state_ == BROTLI_STREAM_FLUSH_REQUESTED) { + s->stream_state_ = BROTLI_STREAM_PROCESSING; + if (s->last_byte_bits_ == 0) break; + InjectBytePaddingBlock(s); + continue; + } + + if (s->available_out_ != 0 && *available_out != 0) { + size_t copy_output_size = + BROTLI_MIN(size_t, s->available_out_, *available_out); + memcpy(*next_out, s->next_out_, copy_output_size); + *next_out += copy_output_size; + *available_out -= copy_output_size; + s->next_out_ += copy_output_size; + s->available_out_ -= copy_output_size; + s->total_out_ += copy_output_size; + if (total_out) *total_out = s->total_out_; + continue; + } + + /* Compress block only when internal output buffer is empty, stream is not + finished, there is no pending flush request, and there is either + additional input or pending operation. */ + if (s->available_out_ == 0 && + s->stream_state_ == BROTLI_STREAM_PROCESSING && + (*available_in != 0 || op != BROTLI_OPERATION_PROCESS)) { + size_t block_size = BROTLI_MIN(size_t, block_size_limit, *available_in); + BROTLI_BOOL is_last = + (*available_in == block_size) && (op == BROTLI_OPERATION_FINISH); + BROTLI_BOOL force_flush = + (*available_in == block_size) && (op == BROTLI_OPERATION_FLUSH); + size_t max_out_size = 2 * block_size + 500; + BROTLI_BOOL inplace = BROTLI_TRUE; + uint8_t* storage = NULL; + size_t storage_ix = s->last_byte_bits_; + size_t table_size; + int* table; + + if (force_flush && block_size == 0) { + s->stream_state_ = BROTLI_STREAM_FLUSH_REQUESTED; + continue; + } + if (max_out_size <= *available_out) { + storage = *next_out; + } else { + inplace = 0; + storage = GetBrotliStorage(s, max_out_size); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + } + storage[0] = s->last_byte_; + table = GetHashTable(s, s->params.quality, block_size, &table_size); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + + if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY) { + BrotliCompressFragmentFast(m, *next_in, block_size, is_last, table, + table_size, s->cmd_depths_, s->cmd_bits_, &s->cmd_code_numbits_, + s->cmd_code_, &storage_ix, storage); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + } else { + BrotliCompressFragmentTwoPass(m, *next_in, block_size, is_last, + command_buf, literal_buf, table, table_size, + &storage_ix, storage); + if (BROTLI_IS_OOM(m)) return BROTLI_FALSE; + } + *next_in += block_size; + *available_in -= block_size; + if (inplace) { + size_t out_bytes = storage_ix >> 3; + assert(out_bytes <= *available_out); + assert((storage_ix & 7) == 0 || out_bytes < *available_out); + *next_out += out_bytes; + *available_out -= out_bytes; + s->total_out_ += out_bytes; + if (total_out) *total_out = s->total_out_; + } else { + size_t out_bytes = storage_ix >> 3; + s->next_out_ = storage; + s->available_out_ = out_bytes; + } + s->last_byte_ = storage[storage_ix >> 3]; + s->last_byte_bits_ = storage_ix & 7u; + + if (force_flush) s->stream_state_ = BROTLI_STREAM_FLUSH_REQUESTED; + if (is_last) s->stream_state_ = BROTLI_STREAM_FINISHED; + continue; + } + break; + } + BROTLI_FREE(m, tmp_command_buf); + BROTLI_FREE(m, tmp_literal_buf); + return BROTLI_TRUE; +} + +BROTLI_BOOL BrotliEncoderCompressStream( + BrotliEncoderState* s, BrotliEncoderOperation op, size_t* available_in, + const uint8_t** next_in, size_t* available_out,uint8_t** next_out, + size_t* total_out) { + if (!EnsureInitialized(s)) return BROTLI_FALSE; + + if (s->stream_state_ != BROTLI_STREAM_PROCESSING && *available_in != 0) { + return BROTLI_FALSE; + } + if (s->params.quality == FAST_ONE_PASS_COMPRESSION_QUALITY || + s->params.quality == FAST_TWO_PASS_COMPRESSION_QUALITY) { + return BrotliEncoderCompressStreamFast(s, op, available_in, next_in, + available_out, next_out, total_out); + } + while (BROTLI_TRUE) { + size_t remaining_block_size = RemainingInputBlockSize(s); + + if (remaining_block_size != 0 && *available_in != 0) { + size_t copy_input_size = + BROTLI_MIN(size_t, remaining_block_size, *available_in); + BrotliEncoderCopyInputToRingBuffer(s, copy_input_size, *next_in); + *next_in += copy_input_size; + *available_in -= copy_input_size; + continue; + } + + if (s->available_out_ == 0 && + s->stream_state_ == BROTLI_STREAM_FLUSH_REQUESTED) { + s->stream_state_ = BROTLI_STREAM_PROCESSING; + if (s->last_byte_bits_ == 0) break; + InjectBytePaddingBlock(s); + continue; + } + + if (s->available_out_ != 0 && *available_out != 0) { + size_t copy_output_size = + BROTLI_MIN(size_t, s->available_out_, *available_out); + memcpy(*next_out, s->next_out_, copy_output_size); + *next_out += copy_output_size; + *available_out -= copy_output_size; + s->next_out_ += copy_output_size; + s->available_out_ -= copy_output_size; + s->total_out_ += copy_output_size; + if (total_out) *total_out = s->total_out_; + continue; + } + + /* Compress data only when internal outpuf buffer is empty, stream is not + finished and there is no pending flush request. */ + if (s->available_out_ == 0 && + s->stream_state_ == BROTLI_STREAM_PROCESSING) { + if (remaining_block_size == 0 || op != BROTLI_OPERATION_PROCESS) { + BROTLI_BOOL is_last = TO_BROTLI_BOOL( + (*available_in == 0) && op == BROTLI_OPERATION_FINISH); + BROTLI_BOOL force_flush = TO_BROTLI_BOOL( + (*available_in == 0) && op == BROTLI_OPERATION_FLUSH); + BROTLI_BOOL result = BrotliEncoderWriteData(s, is_last, force_flush, + &s->available_out_, &s->next_out_); + if (!result) return BROTLI_FALSE; + if (force_flush) s->stream_state_ = BROTLI_STREAM_FLUSH_REQUESTED; + if (is_last) s->stream_state_ = BROTLI_STREAM_FINISHED; + continue; + } + } + break; + } + return BROTLI_TRUE; +} + +BROTLI_BOOL BrotliEncoderIsFinished(BrotliEncoderState* s) { + return TO_BROTLI_BOOL(s->stream_state_ == BROTLI_STREAM_FINISHED && + !BrotliEncoderHasMoreOutput(s)); +} + +BROTLI_BOOL BrotliEncoderHasMoreOutput(BrotliEncoderState* s) { + return TO_BROTLI_BOOL(s->available_out_ != 0); +} + + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/encode.cc b/thirdparty/brotli/enc/encode.cc deleted file mode 100644 index 3e1c79ad..00000000 --- a/thirdparty/brotli/enc/encode.cc +++ /dev/null @@ -1,1175 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Implementation of Brotli compressor. - -#include "./encode.h" - -#include <algorithm> -#include <cstdlib> /* free, malloc */ -#include <cstring> /* memset */ -#include <limits> - -#include "./backward_references.h" -#include "./bit_cost.h" -#include "./block_splitter.h" -#include "./brotli_bit_stream.h" -#include "./cluster.h" -#include "./context.h" -#include "./metablock.h" -#include "./transform.h" -#include "./compress_fragment.h" -#include "./compress_fragment_two_pass.h" -#include "./entropy_encode.h" -#include "./fast_log.h" -#include "./hash.h" -#include "./histogram.h" -#include "./prefix.h" -#include "./utf8_util.h" -#include "./write_bits.h" - -namespace brotli { - -static const int kMinQualityForBlockSplit = 4; -static const int kMinQualityForContextModeling = 5; -static const int kMinQualityForOptimizeHistograms = 4; -// For quality 2 there is no block splitting, so we buffer at most this much -// literals and commands. -static const size_t kMaxNumDelayedSymbols = 0x2fff; - -#define COPY_ARRAY(dst, src) memcpy(dst, src, sizeof(src)); - -static void RecomputeDistancePrefixes(Command* cmds, - size_t num_commands, - uint32_t num_direct_distance_codes, - uint32_t distance_postfix_bits) { - if (num_direct_distance_codes == 0 && distance_postfix_bits == 0) { - return; - } - for (size_t i = 0; i < num_commands; ++i) { - Command* cmd = &cmds[i]; - if (cmd->copy_len() && cmd->cmd_prefix_ >= 128) { - PrefixEncodeCopyDistance(cmd->DistanceCode(), - num_direct_distance_codes, - distance_postfix_bits, - &cmd->dist_prefix_, - &cmd->dist_extra_); - } - } -} - -/* Wraps 64-bit input position to 32-bit ringbuffer position preserving - "not-a-first-lap" feature. */ -static uint32_t WrapPosition(uint64_t position) { - uint32_t result = static_cast<uint32_t>(position); - if (position > (1u << 30)) { - result = (result & ((1u << 30) - 1)) | (1u << 30); - } - return result; -} - -uint8_t* BrotliCompressor::GetBrotliStorage(size_t size) { - if (storage_size_ < size) { - delete[] storage_; - storage_ = new uint8_t[size]; - storage_size_ = size; - } - return storage_; -} - -static size_t MaxHashTableSize(int quality) { - return quality == 0 ? 1 << 15 : 1 << 17; -} - -static size_t HashTableSize(size_t max_table_size, size_t input_size) { - size_t htsize = 256; - while (htsize < max_table_size && htsize < input_size) { - htsize <<= 1; - } - return htsize; -} - -int* BrotliCompressor::GetHashTable(int quality, - size_t input_size, - size_t* table_size) { - // Use smaller hash table when input.size() is smaller, since we - // fill the table, incurring O(hash table size) overhead for - // compression, and if the input is short, we won't need that - // many hash table entries anyway. - const size_t max_table_size = MaxHashTableSize(quality); - assert(max_table_size >= 256); - size_t htsize = HashTableSize(max_table_size, input_size); - - int* table; - if (htsize <= sizeof(small_table_) / sizeof(small_table_[0])) { - table = small_table_; - } else { - if (large_table_ == NULL) { - large_table_ = new int[max_table_size]; - } - table = large_table_; - } - - *table_size = htsize; - memset(table, 0, htsize * sizeof(*table)); - return table; -} - -static void EncodeWindowBits(int lgwin, uint8_t* last_byte, - uint8_t* last_byte_bits) { - if (lgwin == 16) { - *last_byte = 0; - *last_byte_bits = 1; - } else if (lgwin == 17) { - *last_byte = 1; - *last_byte_bits = 7; - } else if (lgwin > 17) { - *last_byte = static_cast<uint8_t>(((lgwin - 17) << 1) | 1); - *last_byte_bits = 4; - } else { - *last_byte = static_cast<uint8_t>(((lgwin - 8) << 4) | 1); - *last_byte_bits = 7; - } -} - -// Initializes the command and distance prefix codes for the first block. -static void InitCommandPrefixCodes(uint8_t cmd_depths[128], - uint16_t cmd_bits[128], - uint8_t cmd_code[512], - size_t* cmd_code_numbits) { - static const uint8_t kDefaultCommandDepths[128] = { - 0, 4, 4, 5, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, - 0, 0, 0, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, - 7, 7, 10, 10, 10, 10, 10, 10, 0, 4, 4, 5, 5, 5, 6, 6, - 7, 8, 8, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, - 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 7, 8, 10, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - }; - static const uint16_t kDefaultCommandBits[128] = { - 0, 0, 8, 9, 3, 35, 7, 71, - 39, 103, 23, 47, 175, 111, 239, 31, - 0, 0, 0, 4, 12, 2, 10, 6, - 13, 29, 11, 43, 27, 59, 87, 55, - 15, 79, 319, 831, 191, 703, 447, 959, - 0, 14, 1, 25, 5, 21, 19, 51, - 119, 159, 95, 223, 479, 991, 63, 575, - 127, 639, 383, 895, 255, 767, 511, 1023, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 59, 7, 39, 23, 55, 30, 1, 17, 9, 25, 5, 0, 8, 4, 12, - 2, 10, 6, 21, 13, 29, 3, 19, 11, 15, 47, 31, 95, 63, 127, 255, - 767, 2815, 1791, 3839, 511, 2559, 1535, 3583, 1023, 3071, 2047, 4095, - }; - COPY_ARRAY(cmd_depths, kDefaultCommandDepths); - COPY_ARRAY(cmd_bits, kDefaultCommandBits); - - // Initialize the pre-compressed form of the command and distance prefix - // codes. - static const uint8_t kDefaultCommandCode[] = { - 0xff, 0x77, 0xd5, 0xbf, 0xe7, 0xde, 0xea, 0x9e, 0x51, 0x5d, 0xde, 0xc6, - 0x70, 0x57, 0xbc, 0x58, 0x58, 0x58, 0xd8, 0xd8, 0x58, 0xd5, 0xcb, 0x8c, - 0xea, 0xe0, 0xc3, 0x87, 0x1f, 0x83, 0xc1, 0x60, 0x1c, 0x67, 0xb2, 0xaa, - 0x06, 0x83, 0xc1, 0x60, 0x30, 0x18, 0xcc, 0xa1, 0xce, 0x88, 0x54, 0x94, - 0x46, 0xe1, 0xb0, 0xd0, 0x4e, 0xb2, 0xf7, 0x04, 0x00, - }; - static const int kDefaultCommandCodeNumBits = 448; - COPY_ARRAY(cmd_code, kDefaultCommandCode); - *cmd_code_numbits = kDefaultCommandCodeNumBits; -} - -// Decide about the context map based on the ability of the prediction -// ability of the previous byte UTF8-prefix on the next byte. The -// prediction ability is calculated as shannon entropy. Here we need -// shannon entropy instead of 'BitsEntropy' since the prefix will be -// encoded with the remaining 6 bits of the following byte, and -// BitsEntropy will assume that symbol to be stored alone using Huffman -// coding. -static void ChooseContextMap(int quality, - uint32_t* bigram_histo, - size_t* num_literal_contexts, - const uint32_t** literal_context_map) { - uint32_t monogram_histo[3] = { 0 }; - uint32_t two_prefix_histo[6] = { 0 }; - size_t total = 0; - for (size_t i = 0; i < 9; ++i) { - total += bigram_histo[i]; - monogram_histo[i % 3] += bigram_histo[i]; - size_t j = i; - if (j >= 6) { - j -= 6; - } - two_prefix_histo[j] += bigram_histo[i]; - } - size_t dummy; - double entropy1 = ShannonEntropy(monogram_histo, 3, &dummy); - double entropy2 = (ShannonEntropy(two_prefix_histo, 3, &dummy) + - ShannonEntropy(two_prefix_histo + 3, 3, &dummy)); - double entropy3 = 0; - for (size_t k = 0; k < 3; ++k) { - entropy3 += ShannonEntropy(bigram_histo + 3 * k, 3, &dummy); - } - - assert(total != 0); - double scale = 1.0 / static_cast<double>(total); - entropy1 *= scale; - entropy2 *= scale; - entropy3 *= scale; - - static const uint32_t kStaticContextMapContinuation[64] = { - 1, 1, 2, 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, - }; - static const uint32_t kStaticContextMapSimpleUTF8[64] = { - 0, 0, 1, 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, - }; - if (quality < 7) { - // 3 context models is a bit slower, don't use it at lower qualities. - entropy3 = entropy1 * 10; - } - // If expected savings by symbol are less than 0.2 bits, skip the - // context modeling -- in exchange for faster decoding speed. - if (entropy1 - entropy2 < 0.2 && - entropy1 - entropy3 < 0.2) { - *num_literal_contexts = 1; - } else if (entropy2 - entropy3 < 0.02) { - *num_literal_contexts = 2; - *literal_context_map = kStaticContextMapSimpleUTF8; - } else { - *num_literal_contexts = 3; - *literal_context_map = kStaticContextMapContinuation; - } -} - -static void DecideOverLiteralContextModeling( - const uint8_t* input, - size_t start_pos, - size_t length, - size_t mask, - int quality, - ContextType* literal_context_mode, - size_t* num_literal_contexts, - const uint32_t** literal_context_map) { - if (quality < kMinQualityForContextModeling || length < 64) { - return; - } - // Gather bigram data of the UTF8 byte prefixes. To make the analysis of - // UTF8 data faster we only examine 64 byte long strides at every 4kB - // intervals. - const size_t end_pos = start_pos + length; - uint32_t bigram_prefix_histo[9] = { 0 }; - for (; start_pos + 64 <= end_pos; start_pos += 4096) { - static const int lut[4] = { 0, 0, 1, 2 }; - const size_t stride_end_pos = start_pos + 64; - int prev = lut[input[start_pos & mask] >> 6] * 3; - for (size_t pos = start_pos + 1; pos < stride_end_pos; ++pos) { - const uint8_t literal = input[pos & mask]; - ++bigram_prefix_histo[prev + lut[literal >> 6]]; - prev = lut[literal >> 6] * 3; - } - } - *literal_context_mode = CONTEXT_UTF8; - ChooseContextMap(quality, &bigram_prefix_histo[0], num_literal_contexts, - literal_context_map); -} - -static bool ShouldCompress(const uint8_t* data, - const size_t mask, - const uint64_t last_flush_pos, - const size_t bytes, - const size_t num_literals, - const size_t num_commands) { - if (num_commands < (bytes >> 8) + 2) { - if (num_literals > 0.99 * static_cast<double>(bytes)) { - uint32_t literal_histo[256] = { 0 }; - static const uint32_t kSampleRate = 13; - static const double kMinEntropy = 7.92; - const double bit_cost_threshold = - static_cast<double>(bytes) * kMinEntropy / kSampleRate; - size_t t = (bytes + kSampleRate - 1) / kSampleRate; - uint32_t pos = static_cast<uint32_t>(last_flush_pos); - for (size_t i = 0; i < t; i++) { - ++literal_histo[data[pos & mask]]; - pos += kSampleRate; - } - if (BitsEntropy(literal_histo, 256) > bit_cost_threshold) { - return false; - } - } - } - return true; -} - -static void WriteMetaBlockInternal(const uint8_t* data, - const size_t mask, - const uint64_t last_flush_pos, - const size_t bytes, - const bool is_last, - const int quality, - const bool font_mode, - const uint8_t prev_byte, - const uint8_t prev_byte2, - const size_t num_literals, - const size_t num_commands, - Command* commands, - const int* saved_dist_cache, - int* dist_cache, - size_t* storage_ix, - uint8_t* storage) { - if (bytes == 0) { - // Write the ISLAST and ISEMPTY bits. - WriteBits(2, 3, storage_ix, storage); - *storage_ix = (*storage_ix + 7u) & ~7u; - return; - } - - if (!ShouldCompress(data, mask, last_flush_pos, bytes, - num_literals, num_commands)) { - // Restore the distance cache, as its last update by - // CreateBackwardReferences is now unused. - memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); - StoreUncompressedMetaBlock(is_last, data, - WrapPosition(last_flush_pos), mask, bytes, - storage_ix, storage); - return; - } - - const uint8_t last_byte = storage[0]; - const uint8_t last_byte_bits = static_cast<uint8_t>(*storage_ix & 0xff); - uint32_t num_direct_distance_codes = 0; - uint32_t distance_postfix_bits = 0; - if (quality > 9 && font_mode) { - num_direct_distance_codes = 12; - distance_postfix_bits = 1; - RecomputeDistancePrefixes(commands, - num_commands, - num_direct_distance_codes, - distance_postfix_bits); - } - if (quality == 2) { - StoreMetaBlockFast(data, WrapPosition(last_flush_pos), - bytes, mask, is_last, - commands, num_commands, - storage_ix, storage); - } else if (quality < kMinQualityForBlockSplit) { - StoreMetaBlockTrivial(data, WrapPosition(last_flush_pos), - bytes, mask, is_last, - commands, num_commands, - storage_ix, storage); - } else { - MetaBlockSplit mb; - ContextType literal_context_mode = CONTEXT_UTF8; - if (quality <= 9) { - size_t num_literal_contexts = 1; - const uint32_t* literal_context_map = NULL; - DecideOverLiteralContextModeling(data, WrapPosition(last_flush_pos), - bytes, mask, - quality, - &literal_context_mode, - &num_literal_contexts, - &literal_context_map); - if (literal_context_map == NULL) { - BuildMetaBlockGreedy(data, WrapPosition(last_flush_pos), mask, - commands, num_commands, &mb); - } else { - BuildMetaBlockGreedyWithContexts(data, WrapPosition(last_flush_pos), - mask, - prev_byte, prev_byte2, - literal_context_mode, - num_literal_contexts, - literal_context_map, - commands, num_commands, - &mb); - } - } else { - if (!IsMostlyUTF8(data, WrapPosition(last_flush_pos), mask, bytes, - kMinUTF8Ratio)) { - literal_context_mode = CONTEXT_SIGNED; - } - BuildMetaBlock(data, WrapPosition(last_flush_pos), mask, - prev_byte, prev_byte2, - commands, num_commands, - literal_context_mode, - &mb); - } - if (quality >= kMinQualityForOptimizeHistograms) { - OptimizeHistograms(num_direct_distance_codes, - distance_postfix_bits, - &mb); - } - StoreMetaBlock(data, WrapPosition(last_flush_pos), bytes, mask, - prev_byte, prev_byte2, - is_last, - num_direct_distance_codes, - distance_postfix_bits, - literal_context_mode, - commands, num_commands, - mb, - storage_ix, storage); - } - if (bytes + 4 < (*storage_ix >> 3)) { - // Restore the distance cache and last byte. - memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); - storage[0] = last_byte; - *storage_ix = last_byte_bits; - StoreUncompressedMetaBlock(is_last, data, - WrapPosition(last_flush_pos), mask, - bytes, storage_ix, storage); - } -} - -BrotliCompressor::BrotliCompressor(BrotliParams params) - : params_(params), - hashers_(new Hashers()), - input_pos_(0), - num_commands_(0), - num_literals_(0), - last_insert_len_(0), - last_flush_pos_(0), - last_processed_pos_(0), - prev_byte_(0), - prev_byte2_(0), - storage_size_(0), - storage_(0), - large_table_(NULL), - cmd_code_numbits_(0), - command_buf_(NULL), - literal_buf_(NULL) { - // Sanitize params. - params_.quality = std::max(0, params_.quality); - if (params_.lgwin < kMinWindowBits) { - params_.lgwin = kMinWindowBits; - } else if (params_.lgwin > kMaxWindowBits) { - params_.lgwin = kMaxWindowBits; - } - if (params_.quality <= 1) { - params_.lgblock = params_.lgwin; - } else if (params_.quality < kMinQualityForBlockSplit) { - params_.lgblock = 14; - } else if (params_.lgblock == 0) { - params_.lgblock = 16; - if (params_.quality >= 9 && params_.lgwin > params_.lgblock) { - params_.lgblock = std::min(18, params_.lgwin); - } - } else { - params_.lgblock = std::min(kMaxInputBlockBits, - std::max(kMinInputBlockBits, params_.lgblock)); - } - - // Initialize input and literal cost ring buffers. - // We allocate at least lgwin + 1 bits for the ring buffer so that the newly - // added block fits there completely and we still get lgwin bits and at least - // read_block_size_bits + 1 bits because the copy tail length needs to be - // smaller than ringbuffer size. - int ringbuffer_bits = std::max(params_.lgwin + 1, params_.lgblock + 1); - ringbuffer_ = new RingBuffer(ringbuffer_bits, params_.lgblock); - - commands_ = 0; - cmd_alloc_size_ = 0; - - // Initialize last byte with stream header. - EncodeWindowBits(params_.lgwin, &last_byte_, &last_byte_bits_); - - // Initialize distance cache. - dist_cache_[0] = 4; - dist_cache_[1] = 11; - dist_cache_[2] = 15; - dist_cache_[3] = 16; - // Save the state of the distance cache in case we need to restore it for - // emitting an uncompressed block. - memcpy(saved_dist_cache_, dist_cache_, sizeof(dist_cache_)); - - if (params_.quality == 0) { - InitCommandPrefixCodes(cmd_depths_, cmd_bits_, - cmd_code_, &cmd_code_numbits_); - } else if (params_.quality == 1) { - command_buf_ = new uint32_t[kCompressFragmentTwoPassBlockSize]; - literal_buf_ = new uint8_t[kCompressFragmentTwoPassBlockSize]; - } - - // Initialize hashers. - hash_type_ = std::min(10, params_.quality); - hashers_->Init(hash_type_); -} - -BrotliCompressor::~BrotliCompressor(void) { - delete[] storage_; - free(commands_); - delete ringbuffer_; - delete hashers_; - delete[] large_table_; - delete[] command_buf_; - delete[] literal_buf_; -} - -void BrotliCompressor::CopyInputToRingBuffer(const size_t input_size, - const uint8_t* input_buffer) { - ringbuffer_->Write(input_buffer, input_size); - input_pos_ += input_size; - - // TL;DR: If needed, initialize 7 more bytes in the ring buffer to make the - // hashing not depend on uninitialized data. This makes compression - // deterministic and it prevents uninitialized memory warnings in Valgrind. - // Even without erasing, the output would be valid (but nondeterministic). - // - // Background information: The compressor stores short (at most 8 bytes) - // substrings of the input already read in a hash table, and detects - // repetitions by looking up such substrings in the hash table. If it - // can find a substring, it checks whether the substring is really there - // in the ring buffer (or it's just a hash collision). Should the hash - // table become corrupt, this check makes sure that the output is - // still valid, albeit the compression ratio would be bad. - // - // The compressor populates the hash table from the ring buffer as it's - // reading new bytes from the input. However, at the last few indexes of - // the ring buffer, there are not enough bytes to build full-length - // substrings from. Since the hash table always contains full-length - // substrings, we erase with dummy 0s here to make sure that those - // substrings will contain 0s at the end instead of uninitialized - // data. - // - // Please note that erasing is not necessary (because the - // memory region is already initialized since he ring buffer - // has a `tail' that holds a copy of the beginning,) so we - // skip erasing if we have already gone around at least once in - // the ring buffer. - size_t pos = ringbuffer_->position(); - // Only clear during the first round of ringbuffer writes. On - // subsequent rounds data in the ringbuffer would be affected. - if (pos <= ringbuffer_->mask()) { - // This is the first time when the ring buffer is being written. - // We clear 7 bytes just after the bytes that have been copied from - // the input buffer. - // - // The ringbuffer has a "tail" that holds a copy of the beginning, - // but only once the ring buffer has been fully written once, i.e., - // pos <= mask. For the first time, we need to write values - // in this tail (where index may be larger than mask), so that - // we have exactly defined behavior and don't read un-initialized - // memory. Due to performance reasons, hashing reads data using a - // LOAD64, which can go 7 bytes beyond the bytes written in the - // ringbuffer. - memset(ringbuffer_->start() + pos, 0, 7); - } -} - -void BrotliCompressor::BrotliSetCustomDictionary( - const size_t size, const uint8_t* dict) { - CopyInputToRingBuffer(size, dict); - last_flush_pos_ = size; - last_processed_pos_ = size; - if (size > 0) { - prev_byte_ = dict[size - 1]; - } - if (size > 1) { - prev_byte2_ = dict[size - 2]; - } - hashers_->PrependCustomDictionary(hash_type_, params_.lgwin, size, dict); -} - -bool BrotliCompressor::WriteBrotliData(const bool is_last, - const bool force_flush, - size_t* out_size, - uint8_t** output) { - const uint64_t delta = input_pos_ - last_processed_pos_; - const uint8_t* data = ringbuffer_->start(); - const uint32_t mask = ringbuffer_->mask(); - - if (delta > input_block_size()) { - return false; - } - const uint32_t bytes = static_cast<uint32_t>(delta); - - if (params_.quality <= 1) { - if (delta == 0 && !is_last) { - // We have no new input data and we don't have to finish the stream, so - // nothing to do. - *out_size = 0; - return true; - } - const size_t max_out_size = 2 * bytes + 500; - uint8_t* storage = GetBrotliStorage(max_out_size); - storage[0] = last_byte_; - size_t storage_ix = last_byte_bits_; - size_t table_size; - int* table = GetHashTable(params_.quality, bytes, &table_size); - if (params_.quality == 0) { - BrotliCompressFragmentFast( - &data[WrapPosition(last_processed_pos_) & mask], - bytes, is_last, - table, table_size, - cmd_depths_, cmd_bits_, - &cmd_code_numbits_, cmd_code_, - &storage_ix, storage); - } else { - BrotliCompressFragmentTwoPass( - &data[WrapPosition(last_processed_pos_) & mask], - bytes, is_last, - command_buf_, literal_buf_, - table, table_size, - &storage_ix, storage); - } - last_byte_ = storage[storage_ix >> 3]; - last_byte_bits_ = storage_ix & 7u; - last_processed_pos_ = input_pos_; - *output = &storage[0]; - *out_size = storage_ix >> 3; - return true; - } - - // Theoretical max number of commands is 1 per 2 bytes. - size_t newsize = num_commands_ + bytes / 2 + 1; - if (newsize > cmd_alloc_size_) { - // Reserve a bit more memory to allow merging with a next block - // without realloc: that would impact speed. - newsize += (bytes / 4) + 16; - cmd_alloc_size_ = newsize; - commands_ = - static_cast<Command*>(realloc(commands_, sizeof(Command) * newsize)); - } - - CreateBackwardReferences(bytes, WrapPosition(last_processed_pos_), - is_last, data, mask, - params_.quality, - params_.lgwin, - hashers_, - hash_type_, - dist_cache_, - &last_insert_len_, - &commands_[num_commands_], - &num_commands_, - &num_literals_); - - size_t max_length = std::min<size_t>(mask + 1, 1u << kMaxInputBlockBits); - const size_t max_literals = max_length / 8; - const size_t max_commands = max_length / 8; - if (!is_last && !force_flush && - (params_.quality >= kMinQualityForBlockSplit || - (num_literals_ + num_commands_ < kMaxNumDelayedSymbols)) && - num_literals_ < max_literals && - num_commands_ < max_commands && - input_pos_ + input_block_size() <= last_flush_pos_ + max_length) { - // Merge with next input block. Everything will happen later. - last_processed_pos_ = input_pos_; - *out_size = 0; - return true; - } - - // Create the last insert-only command. - if (last_insert_len_ > 0) { - brotli::Command cmd(last_insert_len_); - commands_[num_commands_++] = cmd; - num_literals_ += last_insert_len_; - last_insert_len_ = 0; - } - - if (!is_last && input_pos_ == last_flush_pos_) { - // We have no new input data and we don't have to finish the stream, so - // nothing to do. - *out_size = 0; - return true; - } - assert(input_pos_ >= last_flush_pos_); - assert(input_pos_ > last_flush_pos_ || is_last); - assert(input_pos_ - last_flush_pos_ <= 1u << 24); - const uint32_t metablock_size = - static_cast<uint32_t>(input_pos_ - last_flush_pos_); - const size_t max_out_size = 2 * metablock_size + 500; - uint8_t* storage = GetBrotliStorage(max_out_size); - storage[0] = last_byte_; - size_t storage_ix = last_byte_bits_; - bool font_mode = params_.mode == BrotliParams::MODE_FONT; - WriteMetaBlockInternal( - data, mask, last_flush_pos_, metablock_size, is_last, params_.quality, - font_mode, prev_byte_, prev_byte2_, num_literals_, num_commands_, - commands_, saved_dist_cache_, dist_cache_, &storage_ix, storage); - last_byte_ = storage[storage_ix >> 3]; - last_byte_bits_ = storage_ix & 7u; - last_flush_pos_ = input_pos_; - last_processed_pos_ = input_pos_; - if (last_flush_pos_ > 0) { - prev_byte_ = data[(static_cast<uint32_t>(last_flush_pos_) - 1) & mask]; - } - if (last_flush_pos_ > 1) { - prev_byte2_ = data[(static_cast<uint32_t>(last_flush_pos_) - 2) & mask]; - } - num_commands_ = 0; - num_literals_ = 0; - // Save the state of the distance cache in case we need to restore it for - // emitting an uncompressed block. - memcpy(saved_dist_cache_, dist_cache_, sizeof(dist_cache_)); - *output = &storage[0]; - *out_size = storage_ix >> 3; - return true; -} - -bool BrotliCompressor::WriteMetaBlock(const size_t input_size, - const uint8_t* input_buffer, - const bool is_last, - size_t* encoded_size, - uint8_t* encoded_buffer) { - CopyInputToRingBuffer(input_size, input_buffer); - size_t out_size = 0; - uint8_t* output; - if (!WriteBrotliData(is_last, /* force_flush = */ true, &out_size, &output) || - out_size > *encoded_size) { - return false; - } - if (out_size > 0) { - memcpy(encoded_buffer, output, out_size); - } - *encoded_size = out_size; - return true; -} - -bool BrotliCompressor::WriteMetadata(const size_t input_size, - const uint8_t* input_buffer, - const bool is_last, - size_t* encoded_size, - uint8_t* encoded_buffer) { - if (input_size > (1 << 24) || input_size + 6 > *encoded_size) { - return false; - } - uint64_t hdr_buffer_data[2]; - uint8_t* hdr_buffer = reinterpret_cast<uint8_t*>(&hdr_buffer_data[0]); - size_t storage_ix = last_byte_bits_; - hdr_buffer[0] = last_byte_; - WriteBits(1, 0, &storage_ix, hdr_buffer); - WriteBits(2, 3, &storage_ix, hdr_buffer); - WriteBits(1, 0, &storage_ix, hdr_buffer); - if (input_size == 0) { - WriteBits(2, 0, &storage_ix, hdr_buffer); - *encoded_size = (storage_ix + 7u) >> 3; - memcpy(encoded_buffer, hdr_buffer, *encoded_size); - } else { - uint32_t nbits = (input_size == 1) ? 0 : (Log2FloorNonZero( - static_cast<uint32_t>(input_size) - 1) + 1); - uint32_t nbytes = (nbits + 7) / 8; - WriteBits(2, nbytes, &storage_ix, hdr_buffer); - WriteBits(8 * nbytes, input_size - 1, &storage_ix, hdr_buffer); - size_t hdr_size = (storage_ix + 7u) >> 3; - memcpy(encoded_buffer, hdr_buffer, hdr_size); - memcpy(&encoded_buffer[hdr_size], input_buffer, input_size); - *encoded_size = hdr_size + input_size; - } - if (is_last) { - encoded_buffer[(*encoded_size)++] = 3; - } - last_byte_ = 0; - last_byte_bits_ = 0; - return true; -} - -bool BrotliCompressor::FinishStream( - size_t* encoded_size, uint8_t* encoded_buffer) { - return WriteMetaBlock(0, NULL, true, encoded_size, encoded_buffer); -} - -static int BrotliCompressBufferQuality10(int lgwin, - size_t input_size, - const uint8_t* input_buffer, - size_t* encoded_size, - uint8_t* encoded_buffer) { - const size_t mask = std::numeric_limits<size_t>::max() >> 1; - assert(input_size <= mask + 1); - const size_t max_backward_limit = (1 << lgwin) - 16; - int dist_cache[4] = { 4, 11, 15, 16 }; - int saved_dist_cache[4] = { 4, 11, 15, 16 }; - int ok = 1; - const size_t max_out_size = *encoded_size; - size_t total_out_size = 0; - uint8_t last_byte; - uint8_t last_byte_bits; - EncodeWindowBits(lgwin, &last_byte, &last_byte_bits); - - Hashers::H10* hasher = new Hashers::H10; - const size_t hasher_eff_size = std::min(input_size, max_backward_limit + 16); - hasher->Init(lgwin, 0, hasher_eff_size, true); - - const int lgblock = std::min(18, lgwin); - const int lgmetablock = std::min(24, lgwin + 1); - const size_t max_block_size = static_cast<size_t>(1) << lgblock; - const size_t max_metablock_size = static_cast<size_t>(1) << lgmetablock; - const size_t max_literals_per_metablock = max_metablock_size / 8; - const size_t max_commands_per_metablock = max_metablock_size / 8; - size_t metablock_start = 0; - uint8_t prev_byte = 0; - uint8_t prev_byte2 = 0; - while (ok && metablock_start < input_size) { - const size_t metablock_end = - std::min(input_size, metablock_start + max_metablock_size); - const size_t expected_num_commands = - (metablock_end - metablock_start) / 12 + 16; - Command* commands = 0; - size_t num_commands = 0; - size_t last_insert_len = 0; - size_t num_literals = 0; - size_t metablock_size = 0; - size_t cmd_alloc_size = 0; - - for (size_t block_start = metablock_start; block_start < metablock_end; ) { - size_t block_size = std::min(metablock_end - block_start, max_block_size); - ZopfliNode* nodes = new ZopfliNode[block_size + 1]; - std::vector<uint32_t> path; - hasher->StitchToPreviousBlock(block_size, block_start, - input_buffer, mask); - ZopfliComputeShortestPath(block_size, block_start, input_buffer, mask, - max_backward_limit, dist_cache, - hasher, nodes, &path); - // We allocate a command buffer in the first iteration of this loop that - // will be likely big enough for the whole metablock, so that for most - // inputs we will not have to reallocate in later iterations. We do the - // allocation here and not before the loop, because if the input is small, - // this will be allocated after the zopfli cost model is freed, so this - // will not increase peak memory usage. - // TODO: If the first allocation is too small, increase command - // buffer size exponentially. - size_t new_cmd_alloc_size = std::max(expected_num_commands, - num_commands + path.size() + 1); - if (cmd_alloc_size != new_cmd_alloc_size) { - cmd_alloc_size = new_cmd_alloc_size; - commands = static_cast<Command*>( - realloc(commands, cmd_alloc_size * sizeof(Command))); - } - ZopfliCreateCommands(block_size, block_start, max_backward_limit, path, - &nodes[0], dist_cache, &last_insert_len, - &commands[num_commands], &num_literals); - num_commands += path.size(); - block_start += block_size; - metablock_size += block_size; - delete[] nodes; - if (num_literals > max_literals_per_metablock || - num_commands > max_commands_per_metablock) { - break; - } - } - - if (last_insert_len > 0) { - Command cmd(last_insert_len); - commands[num_commands++] = cmd; - num_literals += last_insert_len; - } - - const bool is_last = (metablock_start + metablock_size == input_size); - uint8_t* storage = NULL; - size_t storage_ix = last_byte_bits; - - if (metablock_size == 0) { - // Write the ISLAST and ISEMPTY bits. - storage = new uint8_t[16]; - storage[0] = last_byte; - WriteBits(2, 3, &storage_ix, storage); - storage_ix = (storage_ix + 7u) & ~7u; - } else if (!ShouldCompress(input_buffer, mask, metablock_start, - metablock_size, num_literals, num_commands)) { - // Restore the distance cache, as its last update by - // CreateBackwardReferences is now unused. - memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); - storage = new uint8_t[metablock_size + 16]; - storage[0] = last_byte; - StoreUncompressedMetaBlock(is_last, input_buffer, - metablock_start, mask, metablock_size, - &storage_ix, storage); - } else { - uint32_t num_direct_distance_codes = 0; - uint32_t distance_postfix_bits = 0; - MetaBlockSplit mb; - ContextType literal_context_mode = CONTEXT_UTF8; - if (!IsMostlyUTF8( - input_buffer, metablock_start, mask, metablock_size, - kMinUTF8Ratio)) { - literal_context_mode = CONTEXT_SIGNED; - } - BuildMetaBlock(input_buffer, metablock_start, mask, - prev_byte, prev_byte2, - commands, num_commands, - literal_context_mode, - &mb); - OptimizeHistograms(num_direct_distance_codes, - distance_postfix_bits, - &mb); - const size_t max_out_metablock_size = 2 * metablock_size + 500; - storage = new uint8_t[max_out_metablock_size]; - storage[0] = last_byte; - StoreMetaBlock(input_buffer, metablock_start, metablock_size, mask, - prev_byte, prev_byte2, - is_last, - num_direct_distance_codes, - distance_postfix_bits, - literal_context_mode, - commands, num_commands, - mb, - &storage_ix, storage); - if (metablock_size + 4 < (storage_ix >> 3)) { - // Restore the distance cache and last byte. - memcpy(dist_cache, saved_dist_cache, 4 * sizeof(dist_cache[0])); - storage[0] = last_byte; - storage_ix = last_byte_bits; - StoreUncompressedMetaBlock(is_last, input_buffer, - metablock_start, mask, - metablock_size, &storage_ix, storage); - } - } - last_byte = storage[storage_ix >> 3]; - last_byte_bits = storage_ix & 7u; - metablock_start += metablock_size; - prev_byte = input_buffer[metablock_start - 1]; - prev_byte2 = input_buffer[metablock_start - 2]; - // Save the state of the distance cache in case we need to restore it for - // emitting an uncompressed block. - memcpy(saved_dist_cache, dist_cache, 4 * sizeof(dist_cache[0])); - - const size_t out_size = storage_ix >> 3; - total_out_size += out_size; - if (total_out_size <= max_out_size) { - memcpy(encoded_buffer, storage, out_size); - encoded_buffer += out_size; - } else { - ok = 0; - } - delete[] storage; - free(commands); - } - - *encoded_size = total_out_size; - delete hasher; - return ok; -} - -int BrotliCompressBuffer(BrotliParams params, - size_t input_size, - const uint8_t* input_buffer, - size_t* encoded_size, - uint8_t* encoded_buffer) { - if (*encoded_size == 0) { - // Output buffer needs at least one byte. - return 0; - } - if (input_size == 0) { - // Handle the special case of empty input. - *encoded_size = 1; - *encoded_buffer = 6; - return 1; - } - if (params.quality == 10) { - // TODO: Implement this direct path for all quality levels. - const int lgwin = std::min(24, std::max(16, params.lgwin)); - return BrotliCompressBufferQuality10(lgwin, input_size, input_buffer, - encoded_size, encoded_buffer); - } - BrotliMemIn in(input_buffer, input_size); - BrotliMemOut out(encoded_buffer, *encoded_size); - if (!BrotliCompress(params, &in, &out)) { - return 0; - } - *encoded_size = out.position(); - return 1; -} - -static bool BrotliInIsFinished(BrotliIn* r) { - size_t read_bytes; - return r->Read(0, &read_bytes) == NULL; -} - -static const uint8_t* BrotliInReadAndCheckEnd(const size_t block_size, - BrotliIn* r, - size_t* bytes_read, - bool* is_last) { - *bytes_read = 0; - const uint8_t* data = reinterpret_cast<const uint8_t*>( - r->Read(block_size, bytes_read)); - assert((data == NULL) == (*bytes_read == 0)); - *is_last = BrotliInIsFinished(r); - return data; -} - -static bool CopyOneBlockToRingBuffer(BrotliIn* r, - BrotliCompressor* compressor, - size_t* bytes_read, - bool* is_last) { - const size_t block_size = compressor->input_block_size(); - const uint8_t* data = BrotliInReadAndCheckEnd(block_size, r, - bytes_read, is_last); - if (data == NULL) { - return *is_last; - } - compressor->CopyInputToRingBuffer(*bytes_read, data); - - // Read more bytes until block_size is filled or an EOF (data == NULL) is - // received. This is useful to get deterministic compressed output for the - // same input no matter how r->Read splits the input to chunks. - for (size_t remaining = block_size - *bytes_read; remaining > 0; ) { - size_t more_bytes_read = 0; - data = BrotliInReadAndCheckEnd(remaining, r, &more_bytes_read, is_last); - if (data == NULL) { - return *is_last; - } - compressor->CopyInputToRingBuffer(more_bytes_read, data); - *bytes_read += more_bytes_read; - remaining -= more_bytes_read; - } - return true; -} - - -int BrotliCompress(BrotliParams params, BrotliIn* in, BrotliOut* out) { - return BrotliCompressWithCustomDictionary(0, 0, params, in, out); -} - -// Reads the provided input in 'block_size' blocks. Only the last read can be -// smaller than 'block_size'. -class BrotliBlockReader { - public: - explicit BrotliBlockReader(size_t block_size) - : block_size_(block_size), buf_(NULL) {} - ~BrotliBlockReader(void) { delete[] buf_; } - - const uint8_t* Read(BrotliIn* in, size_t* bytes_read, bool* is_last) { - *bytes_read = 0; - const uint8_t* data = BrotliInReadAndCheckEnd(block_size_, in, - bytes_read, is_last); - if (data == NULL || *bytes_read == block_size_ || *is_last) { - // If we could get the whole block in one read, or it is the last block, - // we just return the pointer to the data without copying. - return data; - } - // If the data comes in smaller chunks, we need to copy it into an internal - // buffer until we get a whole block or reach the last chunk. - if (buf_ == NULL) { - buf_ = new uint8_t[block_size_]; - } - memcpy(buf_, data, *bytes_read); - do { - size_t cur_bytes_read = 0; - data = BrotliInReadAndCheckEnd(block_size_ - *bytes_read, in, - &cur_bytes_read, is_last); - if (data == NULL) { - return *is_last ? buf_ : NULL; - } - memcpy(&buf_[*bytes_read], data, cur_bytes_read); - *bytes_read += cur_bytes_read; - } while (*bytes_read < block_size_ && !*is_last); - return buf_; - } - - private: - const size_t block_size_; - uint8_t* buf_; -}; - -int BrotliCompressWithCustomDictionary(size_t dictsize, const uint8_t* dict, - BrotliParams params, - BrotliIn* in, BrotliOut* out) { - if (params.quality <= 1) { - const int quality = std::max(0, params.quality); - const int lgwin = std::min(kMaxWindowBits, - std::max(kMinWindowBits, params.lgwin)); - uint8_t* storage = NULL; - int* table = NULL; - uint32_t* command_buf = NULL; - uint8_t* literal_buf = NULL; - uint8_t cmd_depths[128]; - uint16_t cmd_bits[128]; - uint8_t cmd_code[512]; - size_t cmd_code_numbits; - if (quality == 0) { - InitCommandPrefixCodes(cmd_depths, cmd_bits, cmd_code, &cmd_code_numbits); - } - uint8_t last_byte; - uint8_t last_byte_bits; - EncodeWindowBits(lgwin, &last_byte, &last_byte_bits); - BrotliBlockReader r(1u << lgwin); - int ok = 1; - bool is_last = false; - while (ok && !is_last) { - // Read next block of input. - size_t bytes; - const uint8_t* data = r.Read(in, &bytes, &is_last); - if (data == NULL) { - if (!is_last) { - ok = 0; - break; - } - assert(bytes == 0); - } - // Set up output storage. - const size_t max_out_size = 2 * bytes + 500; - if (storage == NULL) { - storage = new uint8_t[max_out_size]; - } - storage[0] = last_byte; - size_t storage_ix = last_byte_bits; - // Set up hash table. - size_t htsize = HashTableSize(MaxHashTableSize(quality), bytes); - if (table == NULL) { - table = new int[htsize]; - } - memset(table, 0, htsize * sizeof(table[0])); - // Set up command and literal buffers for two pass mode. - if (quality == 1 && command_buf == NULL) { - size_t buf_size = std::min(bytes, kCompressFragmentTwoPassBlockSize); - command_buf = new uint32_t[buf_size]; - literal_buf = new uint8_t[buf_size]; - } - // Do the actual compression. - if (quality == 0) { - BrotliCompressFragmentFast(data, bytes, is_last, table, htsize, - cmd_depths, cmd_bits, - &cmd_code_numbits, cmd_code, - &storage_ix, storage); - } else { - BrotliCompressFragmentTwoPass(data, bytes, is_last, - command_buf, literal_buf, - table, htsize, - &storage_ix, storage); - } - // Save last bytes to stitch it together with the next output block. - last_byte = storage[storage_ix >> 3]; - last_byte_bits = storage_ix & 7u; - // Write output block. - size_t out_bytes = storage_ix >> 3; - if (out_bytes > 0 && !out->Write(storage, out_bytes)) { - ok = 0; - break; - } - } - delete[] storage; - delete[] table; - delete[] command_buf; - delete[] literal_buf; - return ok; - } - - size_t in_bytes = 0; - size_t out_bytes = 0; - uint8_t* output; - bool final_block = false; - BrotliCompressor compressor(params); - if (dictsize != 0) compressor.BrotliSetCustomDictionary(dictsize, dict); - while (!final_block) { - if (!CopyOneBlockToRingBuffer(in, &compressor, &in_bytes, &final_block)) { - return false; - } - out_bytes = 0; - if (!compressor.WriteBrotliData(final_block, - /* force_flush = */ false, - &out_bytes, &output)) { - return false; - } - if (out_bytes > 0 && !out->Write(output, out_bytes)) { - return false; - } - } - return true; -} - - -} // namespace brotli diff --git a/thirdparty/brotli/enc/encode.h b/thirdparty/brotli/enc/encode.h index a06aa408..349e38dd 100644 --- a/thirdparty/brotli/enc/encode.h +++ b/thirdparty/brotli/enc/encode.h @@ -4,204 +4,218 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// API for Brotli compression +/* API for Brotli compression. */ #ifndef BROTLI_ENC_ENCODE_H_ #define BROTLI_ENC_ENCODE_H_ -#include <string> -#include <vector> -#include "./command.h" -#include "./hash.h" -#include "./ringbuffer.h" -#include "./static_dict.h" -#include "./streams.h" -#include "./types.h" - -namespace brotli { - -static const int kMaxWindowBits = 24; -static const int kMinWindowBits = 10; -static const int kMinInputBlockBits = 16; -static const int kMaxInputBlockBits = 24; - -struct BrotliParams { - BrotliParams(void) - : mode(MODE_GENERIC), - quality(11), - lgwin(22), - lgblock(0), - enable_dictionary(true), - enable_transforms(false), - greedy_block_split(false), - enable_context_modeling(true) {} - - enum Mode { - // Default compression mode. The compressor does not know anything in - // advance about the properties of the input. - MODE_GENERIC = 0, - // Compression mode for UTF-8 format text input. - MODE_TEXT = 1, - // Compression mode used in WOFF 2.0. - MODE_FONT = 2 - }; - Mode mode; - - // Controls the compression-speed vs compression-density tradeoffs. The higher - // the quality, the slower the compression. Range is 0 to 11. - int quality; - // Base 2 logarithm of the sliding window size. Range is 10 to 24. - int lgwin; - // Base 2 logarithm of the maximum input block size. Range is 16 to 24. - // If set to 0, the value will be set based on the quality. - int lgblock; - - // These settings are deprecated and will be ignored. - // All speed vs. size compromises are controlled by the quality param. - bool enable_dictionary; - bool enable_transforms; - bool greedy_block_split; - bool enable_context_modeling; -}; - -// An instance can not be reused for multiple brotli streams. -class BrotliCompressor { - public: - explicit BrotliCompressor(BrotliParams params); - ~BrotliCompressor(void); - - // The maximum input size that can be processed at once. - size_t input_block_size(void) const { return size_t(1) << params_.lgblock; } - - // Encodes the data in input_buffer as a meta-block and writes it to - // encoded_buffer (*encoded_size should be set to the size of - // encoded_buffer) and sets *encoded_size to the number of bytes that - // was written. The input_size must be <= input_block_size(). - // Returns 0 if there was an error and 1 otherwise. - bool WriteMetaBlock(const size_t input_size, - const uint8_t* input_buffer, - const bool is_last, - size_t* encoded_size, - uint8_t* encoded_buffer); - - // Writes a metadata meta-block containing the given input to encoded_buffer. - // *encoded_size should be set to the size of the encoded_buffer. - // Sets *encoded_size to the number of bytes that was written. - // Note that the given input data will not be part of the sliding window and - // thus no backward references can be made to this data from subsequent - // metablocks. - bool WriteMetadata(const size_t input_size, - const uint8_t* input_buffer, - const bool is_last, - size_t* encoded_size, - uint8_t* encoded_buffer); - - // Writes a zero-length meta-block with end-of-input bit set to the - // internal output buffer and copies the output buffer to encoded_buffer - // (*encoded_size should be set to the size of encoded_buffer) and sets - // *encoded_size to the number of bytes written. Returns false if there was - // an error and true otherwise. - bool FinishStream(size_t* encoded_size, uint8_t* encoded_buffer); - - // Copies the given input data to the internal ring buffer of the compressor. - // No processing of the data occurs at this time and this function can be - // called multiple times before calling WriteBrotliData() to process the - // accumulated input. At most input_block_size() bytes of input data can be - // copied to the ring buffer, otherwise the next WriteBrotliData() will fail. - void CopyInputToRingBuffer(const size_t input_size, - const uint8_t* input_buffer); - - // Processes the accumulated input data and sets *out_size to the length of - // the new output meta-block, or to zero if no new output meta-block was - // created (in this case the processed input data is buffered internally). - // If *out_size is positive, *output points to the start of the output data. - // If is_last or force_flush is true, an output meta-block is always created. - // Returns false if the size of the input data is larger than - // input_block_size(). - bool WriteBrotliData(const bool is_last, const bool force_flush, - size_t* out_size, uint8_t** output); - - // Fills the new state with a dictionary for LZ77, warming up the ringbuffer, - // e.g. for custom static dictionaries for data formats. - // Not to be confused with the built-in transformable dictionary of Brotli. - // To decode, use BrotliSetCustomDictionary of the decoder with the same - // dictionary. - void BrotliSetCustomDictionary(size_t size, const uint8_t* dict); - - // No-op, but we keep it here for API backward-compatibility. - void WriteStreamHeader(void) {} - - private: - uint8_t* GetBrotliStorage(size_t size); - - // Allocates and clears a hash table using memory in "*this", - // stores the number of buckets in "*table_size" and returns a pointer to - // the base of the hash table. - int* GetHashTable(int quality, - size_t input_size, size_t* table_size); - - BrotliParams params_; - Hashers* hashers_; - int hash_type_; - uint64_t input_pos_; - RingBuffer* ringbuffer_; - size_t cmd_alloc_size_; - Command* commands_; - size_t num_commands_; - size_t num_literals_; - size_t last_insert_len_; - uint64_t last_flush_pos_; - uint64_t last_processed_pos_; - int dist_cache_[4]; - int saved_dist_cache_[4]; - uint8_t last_byte_; - uint8_t last_byte_bits_; - uint8_t prev_byte_; - uint8_t prev_byte2_; - size_t storage_size_; - uint8_t* storage_; - // Hash table for quality 0 mode. - int small_table_[1 << 10]; // 2KB - int* large_table_; // Allocated only when needed - // Command and distance prefix codes (each 64 symbols, stored back-to-back) - // used for the next block in quality 0. The command prefix code is over a - // smaller alphabet with the following 64 symbols: - // 0 - 15: insert length code 0, copy length code 0 - 15, same distance - // 16 - 39: insert length code 0, copy length code 0 - 23 - // 40 - 63: insert length code 0 - 23, copy length code 0 - // Note that symbols 16 and 40 represent the same code in the full alphabet, - // but we do not use either of them in quality 0. - uint8_t cmd_depths_[128]; - uint16_t cmd_bits_[128]; - // The compressed form of the command and distance prefix codes for the next - // block in quality 0. - uint8_t cmd_code_[512]; - size_t cmd_code_numbits_; - // Command and literal buffers for quality 1. - uint32_t* command_buf_; - uint8_t* literal_buf_; -}; - -// Compresses the data in input_buffer into encoded_buffer, and sets -// *encoded_size to the compressed length. -// Returns 0 if there was an error and 1 otherwise. -int BrotliCompressBuffer(BrotliParams params, - size_t input_size, - const uint8_t* input_buffer, - size_t* encoded_size, - uint8_t* encoded_buffer); - -// Same as above, but uses the specified input and output classes instead -// of reading from and writing to pre-allocated memory buffers. -int BrotliCompress(BrotliParams params, BrotliIn* in, BrotliOut* out); - -// Before compressing the data, sets a custom LZ77 dictionary with -// BrotliCompressor::BrotliSetCustomDictionary. -int BrotliCompressWithCustomDictionary(size_t dictsize, const uint8_t* dict, - BrotliParams params, - BrotliIn* in, BrotliOut* out); - - -} // namespace brotli - -#endif // BROTLI_ENC_ENCODE_H_ +#include "../common/types.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +static const int kBrotliMaxWindowBits = 24; +static const int kBrotliMinWindowBits = 10; +static const int kBrotliMinInputBlockBits = 16; +static const int kBrotliMaxInputBlockBits = 24; + +#define BROTLI_MIN_QUALITY 0 +#define BROTLI_MAX_QUALITY 11 + +typedef enum BrotliEncoderMode { + /* Default compression mode. The compressor does not know anything in + advance about the properties of the input. */ + BROTLI_MODE_GENERIC = 0, + /* Compression mode for UTF-8 format text input. */ + BROTLI_MODE_TEXT = 1, + /* Compression mode used in WOFF 2.0. */ + BROTLI_MODE_FONT = 2 +} BrotliEncoderMode; + +#define BROTLI_DEFAULT_QUALITY 11 +#define BROTLI_DEFAULT_WINDOW 22 +#define BROTLI_DEFAULT_MODE BROTLI_MODE_GENERIC + +typedef enum BrotliEncoderOperation { + BROTLI_OPERATION_PROCESS = 0, + /* Request output stream to flush. Performed when input stream is depleted + and there is enough space in output stream. */ + BROTLI_OPERATION_FLUSH = 1, + /* Request output stream to finish. Performed when input stream is depleted + and there is enough space in output stream. */ + BROTLI_OPERATION_FINISH = 2 +} BrotliEncoderOperation; + +typedef enum BrotliEncoderParameter { + BROTLI_PARAM_MODE = 0, + /* Controls the compression-speed vs compression-density tradeoffs. The higher + the quality, the slower the compression. Range is 0 to 11. */ + BROTLI_PARAM_QUALITY = 1, + /* Base 2 logarithm of the sliding window size. Range is 10 to 24. */ + BROTLI_PARAM_LGWIN = 2, + /* Base 2 logarithm of the maximum input block size. Range is 16 to 24. + If set to 0, the value will be set based on the quality. */ + BROTLI_PARAM_LGBLOCK = 3 +} BrotliEncoderParameter; + +/* A state can not be reused for multiple brotli streams. */ +typedef struct BrotliEncoderStateStruct BrotliEncoderState; + +BROTLI_BOOL BrotliEncoderSetParameter( + BrotliEncoderState* state, BrotliEncoderParameter p, uint32_t value); + +/* Creates the instance of BrotliEncoderState and initializes it. + |alloc_func| and |free_func| MUST be both zero or both non-zero. In the case + they are both zero, default memory allocators are used. |opaque| is passed to + |alloc_func| and |free_func| when they are called. */ +BrotliEncoderState* BrotliEncoderCreateInstance(brotli_alloc_func alloc_func, + brotli_free_func free_func, + void* opaque); + +/* Deinitializes and frees BrotliEncoderState instance. */ +void BrotliEncoderDestroyInstance(BrotliEncoderState* state); +/* The maximum input size that can be processed at once. */ +size_t BrotliEncoderInputBlockSize(BrotliEncoderState* state); + +/* Encodes the data in |input_buffer| as a meta-block and writes it to + |encoded_buffer| (|*encoded_size should| be set to the size of + |encoded_buffer|) and sets |*encoded_size| to the number of bytes that + was written. The |input_size| must not be greater than input_block_size(). + Returns false if there was an error and true otherwise. */ +BROTLI_BOOL BrotliEncoderWriteMetaBlock( + BrotliEncoderState* state, const size_t input_size, + const uint8_t* input_buffer, const BROTLI_BOOL is_last, + size_t* encoded_size, uint8_t* encoded_buffer); + +/* Writes a metadata meta-block containing the given input to encoded_buffer. + |*encoded_size| should be set to the size of the encoded_buffer. + Sets |*encoded_size| to the number of bytes that was written. + Note that the given input data will not be part of the sliding window and + thus no backward references can be made to this data from subsequent + metablocks. |input_size| must not be greater than 2^24 and provided + |*encoded_size| must not be less than |input_size| + 6. + Returns false if there was an error and true otherwise. */ +BROTLI_BOOL BrotliEncoderWriteMetadata( + BrotliEncoderState* state, const size_t input_size, + const uint8_t* input_buffer, const BROTLI_BOOL is_last, + size_t* encoded_size, uint8_t* encoded_buffer); + +/* Writes a zero-length meta-block with end-of-input bit set to the + internal output buffer and copies the output buffer to |encoded_buffer| + (|*encoded_size| should be set to the size of |encoded_buffer|) and sets + |*encoded_size| to the number of bytes written. + Returns false if there was an error and true otherwise. */ +BROTLI_BOOL BrotliEncoderFinishStream( + BrotliEncoderState* state, size_t* encoded_size, uint8_t* encoded_buffer); + +/* Copies the given input data to the internal ring buffer of the compressor. + No processing of the data occurs at this time and this function can be + called multiple times before calling WriteBrotliData() to process the + accumulated input. At most input_block_size() bytes of input data can be + copied to the ring buffer, otherwise the next WriteBrotliData() will fail. + */ +void BrotliEncoderCopyInputToRingBuffer(BrotliEncoderState* state, + const size_t input_size, + const uint8_t* input_buffer); + +/* Processes the accumulated input data and sets |*out_size| to the length of + the new output meta-block, or to zero if no new output meta-block has been + created (in this case the processed input data is buffered internally). + If |*out_size| is positive, |*output| points to the start of the output + data. If |is_last| or |force_flush| is 1, an output meta-block is always + created. However, until |is_last| is 1 encoder may retain up to 7 bits + of the last byte of output. To force encoder to dump the remaining bits + use WriteMetadata() to append an empty meta-data block. + Returns false if the size of the input data is larger than + input_block_size(). */ +BROTLI_BOOL BrotliEncoderWriteData( + BrotliEncoderState* state, const BROTLI_BOOL is_last, + const BROTLI_BOOL force_flush, size_t* out_size, uint8_t** output); + +/* Fills the new state with a dictionary for LZ77, warming up the ringbuffer, + e.g. for custom static dictionaries for data formats. + Not to be confused with the built-in transformable dictionary of Brotli. + To decode, use BrotliSetCustomDictionary() of the decoder with the same + dictionary. */ +void BrotliEncoderSetCustomDictionary(BrotliEncoderState* state, size_t size, + const uint8_t* dict); + +/* Returns buffer size that is large enough to contain BrotliEncoderCompress + output for any input. + Returns 0 if result does not fit size_t. */ +size_t BrotliEncoderMaxCompressedSize(size_t input_size); + +/* Compresses the data in |input_buffer| into |encoded_buffer|, and sets + |*encoded_size| to the compressed length. + BROTLI_DEFAULT_QUALITY, BROTLI_DEFAULT_WINDOW and BROTLI_DEFAULT_MODE should + be used as |quality|, |lgwin| and |mode| if there are no specific + requirements to encoder speed and compression ratio. + If compression fails, |*encoded_size| is set to 0. + If BrotliEncoderMaxCompressedSize(|input_size|) is not zero, then + |*encoded_size| is never set to the bigger value. + Returns false if there was an error and true otherwise. */ +BROTLI_BOOL BrotliEncoderCompress( + int quality, int lgwin, BrotliEncoderMode mode, size_t input_size, + const uint8_t* input_buffer, size_t* encoded_size, uint8_t* encoded_buffer); + +/* Progressively compress input stream and push produced bytes to output stream. + Internally workflow consists of 3 tasks: + * (optional) copy input data to internal buffer + * actually compress data and (optionally) store it to internal buffer + * (optional) copy compressed bytes from internal buffer to output stream + Whenever all 3 tasks can't move forward anymore, or error occurs, this + method returns. + + |available_in| and |next_in| represent input stream; when X bytes of input + are consumed, X is subtracted from |available_in| and added to |next_in|. + |available_out| and |next_out| represent output stream; when Y bytes are + pushed to output, Y is subtracted from |available_out| and added to + |next_out|. |total_out|, if it is not a null-pointer, is assigned to the + total amount of bytes pushed by the instance of encoder to output. + + |op| is used to perform flush or finish the stream. + + Flushing the stream means forcing encoding of all input passed to encoder and + completing the current output block, so it could be fully decoded by stream + decoder. To perform flush |op| must be set to BROTLI_OPERATION_FLUSH. Under + some circumstances (e.g. lack of output stream capacity) this operation would + require several calls to BrotliEncoderCompressStream. The method must be + called again until both input stream is depleted and encoder has no more + output (see BrotliEncoderHasMoreOutput) after the method is called. + + Finishing the stream means encoding of all input passed to encoder and + adding specific "final" marks, so stream decoder could determine that stream + is complete. To perform finish |op| must be set to BROTLI_OPERATION_FINISH. + Under some circumstances (e.g. lack of output stream capacity) this operation + would require several calls to BrotliEncoderCompressStream. The method must + be called again until both input stream is depleted and encoder has no more + output (see BrotliEncoderHasMoreOutput) after the method is called. + + WARNING: when flushing and finishing, |op| should not change until operation + is complete; input stream should not be refilled as well. + + Returns false if there was an error and true otherwise. +*/ +BROTLI_BOOL BrotliEncoderCompressStream( + BrotliEncoderState* s, BrotliEncoderOperation op, size_t* available_in, + const uint8_t** next_in, size_t* available_out, uint8_t** next_out, + size_t* total_out); + +/* Check if encoder is in "finished" state, i.e. no more input is acceptable and + no more output will be produced. + Works only with BrotliEncoderCompressStream workflow. + Returns 1 if stream is finished and 0 otherwise. */ +BROTLI_BOOL BrotliEncoderIsFinished(BrotliEncoderState* s); + +/* Check if encoder has more output bytes in internal buffer. + Works only with BrotliEncoderCompressStream workflow. + Returns 1 if has more output (in internal buffer) and 0 otherwise. */ +BROTLI_BOOL BrotliEncoderHasMoreOutput(BrotliEncoderState* s); + + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_ENCODE_H_ */ diff --git a/thirdparty/brotli/enc/encode_parallel.cc b/thirdparty/brotli/enc/encode_parallel.cc index cbad9754..cedcc782 100644 --- a/thirdparty/brotli/enc/encode_parallel.cc +++ b/thirdparty/brotli/enc/encode_parallel.cc @@ -4,44 +4,39 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Implementation of parallel Brotli compressor. +/* Implementation of parallel Brotli compressor. */ #include "./encode_parallel.h" -#include <algorithm> -#include <limits> +#include <vector> #include "./backward_references.h" -#include "./bit_cost.h" -#include "./block_splitter.h" #include "./brotli_bit_stream.h" -#include "./cluster.h" #include "./context.h" -#include "./metablock.h" -#include "./transform.h" #include "./entropy_encode.h" #include "./fast_log.h" #include "./hash.h" -#include "./histogram.h" +#include "./metablock.h" +#include "./port.h" #include "./prefix.h" +#include "./quality.h" #include "./utf8_util.h" -#include "./write_bits.h" namespace brotli { namespace { -void RecomputeDistancePrefixes(Command* cmds, size_t num_commands, - uint32_t num_direct_distance_codes, - uint32_t distance_postfix_bits) { +static void RecomputeDistancePrefixes(Command* cmds, size_t num_commands, + uint32_t num_direct_distance_codes, + uint32_t distance_postfix_bits) { if (num_direct_distance_codes == 0 && distance_postfix_bits == 0) { return; } for (size_t i = 0; i < num_commands; ++i) { Command* cmd = &cmds[i]; - if (cmd->copy_len() && cmd->cmd_prefix_ >= 128) { - PrefixEncodeCopyDistance(cmd->DistanceCode(), + if (CommandCopyLen(cmd) && cmd->cmd_prefix_ >= 128) { + PrefixEncodeCopyDistance(CommandDistanceCode(cmd), num_direct_distance_codes, distance_postfix_bits, &cmd->dist_prefix_, @@ -50,230 +45,245 @@ void RecomputeDistancePrefixes(Command* cmds, size_t num_commands, } } -bool WriteMetaBlockParallel(const BrotliParams& params, - const uint32_t input_size, - const uint8_t* input_buffer, - const uint32_t prefix_size, - const uint8_t* prefix_buffer, - const bool is_first, - const bool is_last, - size_t* encoded_size, - uint8_t* encoded_buffer) { +/* Returns 1 on success, otherwise 0. */ +int WriteMetaBlockParallel(const BrotliEncoderParams* params, + const uint32_t input_size, + const uint8_t* input_buffer, + const uint32_t prefix_size, + const uint8_t* prefix_buffer, + const int is_first, + const int is_last, + size_t* encoded_size, + uint8_t* encoded_buffer) { if (input_size == 0) { - return false; + return 0; } - // Copy prefix + next input block into a continuous area. - uint32_t input_pos = prefix_size; - // CreateBackwardReferences reads up to 3 bytes past the end of input if the - // mask points past the end of input. - // FindMatchLengthWithLimit could do another 8 bytes look-forward. - std::vector<uint8_t> input(prefix_size + input_size + 4 + 8); - memcpy(&input[0], prefix_buffer, prefix_size); - memcpy(&input[input_pos], input_buffer, input_size); - // Since we don't have a ringbuffer, masking is a no-op. - // We use one less bit than the full range because some of the code uses - // mask + 1 as the size of the ringbuffer. - const uint32_t mask = std::numeric_limits<uint32_t>::max() >> 1; - - uint8_t prev_byte = input_pos > 0 ? input[(input_pos - 1) & mask] : 0; - uint8_t prev_byte2 = input_pos > 1 ? input[(input_pos - 2) & mask] : 0; - - // Decide about UTF8 mode. - static const double kMinUTF8Ratio = 0.75; - bool utf8_mode = IsMostlyUTF8(&input[0], input_pos, mask, input_size, - kMinUTF8Ratio); - - // Initialize hashers. - int hash_type = std::min(10, params.quality); - Hashers* hashers = new Hashers(); - hashers->Init(hash_type); + MemoryManager memory_manager; + MemoryManager* m = &memory_manager; + BrotliInitMemoryManager(m, 0, 0, 0); - // Compute backward references. + uint8_t* storage; + size_t storage_ix; + uint8_t first_byte; + size_t first_byte_bits; + size_t output_size; + uint32_t num_direct_distance_codes; + uint32_t distance_postfix_bits; + ContextType literal_context_mode; size_t last_insert_len = 0; size_t num_commands = 0; size_t num_literals = 0; int dist_cache[4] = { -4, -4, -4, -4 }; - Command* commands = static_cast<Command*>( - malloc(sizeof(Command) * ((input_size + 1) >> 1))); - if (commands == 0) { - delete hashers; - return false; - } - CreateBackwardReferences( - input_size, input_pos, is_last, - &input[0], mask, - params.quality, - params.lgwin, - hashers, - hash_type, - dist_cache, - &last_insert_len, - commands, - &num_commands, + Command* commands; + Hashers* hashers; + int use_utf8_mode; + uint8_t prev_byte; + uint8_t prev_byte2; + const uint32_t mask = BROTLI_UINT32_MAX >> 1; + + /* Copy prefix + next input block into a continuous area. */ + uint32_t input_pos = prefix_size; + /* CreateBackwardReferences reads up to 3 bytes past the end of input if the + mask points past the end of input. + FindMatchLengthWithLimit could do another 8 bytes look-forward. */ + uint8_t* input = BROTLI_ALLOC(m, uint8_t, prefix_size + input_size + 4 + 8); + if (BROTLI_IS_OOM(m)) goto oom; + memcpy(input, prefix_buffer, prefix_size); + memcpy(input + input_pos, input_buffer, input_size); + /* Since we don't have a ringbuffer, masking is a no-op. + We use one less bit than the full range because some of the code uses + mask + 1 as the size of the ringbuffer. */ + + prev_byte = input_pos > 0 ? input[(input_pos - 1) & mask] : 0; + prev_byte2 = input_pos > 1 ? input[(input_pos - 2) & mask] : 0; + + /* Decide about UTF8 mode. */ + static const double kMinUTF8Ratio = 0.75; + use_utf8_mode = BrotliIsMostlyUTF8( + input, input_pos, mask, input_size, kMinUTF8Ratio); + + /* Initialize hashers. */ + hashers = BROTLI_ALLOC(m, Hashers, 1); + if (BROTLI_IS_OOM(m)) goto oom; + InitHashers(hashers); + HashersSetup(m, hashers, ChooseHasher(params)); + if (BROTLI_IS_OOM(m)) goto oom; + + /* Compute backward references. */ + commands = BROTLI_ALLOC(m, Command, ((input_size + 1) >> 1)); + if (BROTLI_IS_OOM(m)) goto oom; + BrotliCreateBackwardReferences(m, input_size, input_pos, + TO_BROTLI_BOOL(is_last), input, mask, params, + hashers, dist_cache, &last_insert_len, commands, &num_commands, &num_literals); - delete hashers; + if (BROTLI_IS_OOM(m)) goto oom; + DestroyHashers(m, hashers); + BROTLI_FREE(m, hashers); if (last_insert_len > 0) { - commands[num_commands++] = Command(last_insert_len); + InitInsertCommand(&commands[num_commands++], last_insert_len); num_literals += last_insert_len; } assert(num_commands != 0); - // Build the meta-block. + /* Build the meta-block. */ MetaBlockSplit mb; - uint32_t num_direct_distance_codes = - params.mode == BrotliParams::MODE_FONT ? 12 : 0; - uint32_t distance_postfix_bits = - params.mode == BrotliParams::MODE_FONT ? 1 : 0; - ContextType literal_context_mode = utf8_mode ? CONTEXT_UTF8 : CONTEXT_SIGNED; + InitMetaBlockSplit(&mb); + num_direct_distance_codes = params->mode == BROTLI_MODE_FONT ? 12 : 0; + distance_postfix_bits = params->mode == BROTLI_MODE_FONT ? 1 : 0; + literal_context_mode = use_utf8_mode ? CONTEXT_UTF8 : CONTEXT_SIGNED; RecomputeDistancePrefixes(commands, num_commands, num_direct_distance_codes, distance_postfix_bits); - if (params.quality <= 9) { - BuildMetaBlockGreedy(&input[0], input_pos, mask, + if (params->quality < MIN_QUALITY_FOR_HQ_BLOCK_SPLITTING) { + BrotliBuildMetaBlockGreedy(m, input, input_pos, mask, + commands, num_commands, + &mb); + if (BROTLI_IS_OOM(m)) goto oom; + } else { + BrotliBuildMetaBlock(m, input, input_pos, mask, params, + prev_byte, prev_byte2, commands, num_commands, + literal_context_mode, &mb); - } else { - BuildMetaBlock(&input[0], input_pos, mask, - prev_byte, prev_byte2, - commands, num_commands, - literal_context_mode, - &mb); + if (BROTLI_IS_OOM(m)) goto oom; } - // Set up the temporary output storage. - const size_t max_out_size = 2 * input_size + 500; - std::vector<uint8_t> storage(max_out_size); - uint8_t first_byte = 0; - size_t first_byte_bits = 0; + /* Set up the temporary output storage. */ + storage = BROTLI_ALLOC(m, uint8_t, 2 * input_size + 500); + if (BROTLI_IS_OOM(m)) goto oom; + first_byte = 0; + first_byte_bits = 0; if (is_first) { - if (params.lgwin == 16) { + if (params->lgwin == 16) { first_byte = 0; first_byte_bits = 1; - } else if (params.lgwin == 17) { + } else if (params->lgwin == 17) { first_byte = 1; first_byte_bits = 7; } else { - first_byte = static_cast<uint8_t>(((params.lgwin - 17) << 1) | 1); + first_byte = static_cast<uint8_t>(((params->lgwin - 17) << 1) | 1); first_byte_bits = 4; } } storage[0] = static_cast<uint8_t>(first_byte); - size_t storage_ix = first_byte_bits; - - // Store the meta-block to the temporary output. - StoreMetaBlock(&input[0], input_pos, input_size, mask, - prev_byte, prev_byte2, - is_last, - num_direct_distance_codes, - distance_postfix_bits, - literal_context_mode, - commands, num_commands, - mb, - &storage_ix, &storage[0]); - free(commands); - - // If this is not the last meta-block, store an empty metadata - // meta-block so that the meta-block will end at a byte boundary. + storage_ix = first_byte_bits; + + /* Store the meta-block to the temporary output. */ + BrotliStoreMetaBlock(m, input, input_pos, input_size, mask, + prev_byte, prev_byte2, + TO_BROTLI_BOOL(is_last), + num_direct_distance_codes, + distance_postfix_bits, + literal_context_mode, + commands, num_commands, + &mb, + &storage_ix, storage); + if (BROTLI_IS_OOM(m)) goto oom; + DestroyMetaBlockSplit(m, &mb); + BROTLI_FREE(m, commands); + + /* If this is not the last meta-block, store an empty metadata + meta-block so that the meta-block will end at a byte boundary. */ if (!is_last) { - StoreSyncMetaBlock(&storage_ix, &storage[0]); + BrotliStoreSyncMetaBlock(&storage_ix, storage); } - // If the compressed data is too large, fall back to an uncompressed - // meta-block. - size_t output_size = storage_ix >> 3; + /* If the compressed data is too large, fall back to an uncompressed + meta-block. */ + output_size = storage_ix >> 3; if (input_size + 4 < output_size) { storage[0] = static_cast<uint8_t>(first_byte); storage_ix = first_byte_bits; - StoreUncompressedMetaBlock(is_last, &input[0], input_pos, mask, - input_size, - &storage_ix, &storage[0]); + BrotliStoreUncompressedMetaBlock( + TO_BROTLI_BOOL(is_last), input, input_pos, mask, input_size, + &storage_ix, storage); output_size = storage_ix >> 3; } - // Copy the temporary output with size-check to the output. + /* Copy the temporary output with size-check to the output. */ if (output_size > *encoded_size) { - return false; + BROTLI_FREE(m, storage); + BROTLI_FREE(m, input); + return 0; } - memcpy(encoded_buffer, &storage[0], output_size); + memcpy(encoded_buffer, storage, output_size); *encoded_size = output_size; - return true; + BROTLI_FREE(m, storage); + BROTLI_FREE(m, input); + return 1; + +oom: + BrotliWipeOutMemoryManager(m); + return 0; } -} // namespace +} /* namespace */ -int BrotliCompressBufferParallel(BrotliParams params, +int BrotliCompressBufferParallel(BrotliParams compressor_params, size_t input_size, const uint8_t* input_buffer, size_t* encoded_size, uint8_t* encoded_buffer) { if (*encoded_size == 0) { - // Output buffer needs at least one byte. + /* Output buffer needs at least one byte. */ return 0; - } else if (input_size == 0) { + } else if (input_size == 0) { encoded_buffer[0] = 6; *encoded_size = 1; return 1; } - // Sanitize params. - if (params.lgwin < kMinWindowBits) { - params.lgwin = kMinWindowBits; - } else if (params.lgwin > kMaxWindowBits) { - params.lgwin = kMaxWindowBits; - } - if (params.lgblock == 0) { - params.lgblock = 16; - if (params.quality >= 9 && params.lgwin > params.lgblock) { - params.lgblock = std::min(21, params.lgwin); - } - } else if (params.lgblock < kMinInputBlockBits) { - params.lgblock = kMinInputBlockBits; - } else if (params.lgblock > kMaxInputBlockBits) { - params.lgblock = kMaxInputBlockBits; - } + BrotliEncoderParams params; + params.mode = (BrotliEncoderMode)compressor_params.mode; + params.quality = compressor_params.quality; + params.lgwin = compressor_params.lgwin; + params.lgblock = compressor_params.lgblock; + + SanitizeParams(¶ms); + params.lgblock = ComputeLgBlock(¶ms); size_t max_input_block_size = 1 << params.lgblock; size_t max_prefix_size = 1u << params.lgwin; std::vector<std::vector<uint8_t> > compressed_pieces; - // Compress block-by-block independently. + /* Compress block-by-block independently. */ for (size_t pos = 0; pos < input_size; ) { - uint32_t input_block_size = - static_cast<uint32_t>(std::min(max_input_block_size, input_size - pos)); + uint32_t input_block_size = static_cast<uint32_t>( + BROTLI_MIN(size_t, max_input_block_size, input_size - pos)); uint32_t prefix_size = - static_cast<uint32_t>(std::min(max_prefix_size, pos)); + static_cast<uint32_t>(BROTLI_MIN(size_t, max_prefix_size, pos)); size_t out_size = input_block_size + (input_block_size >> 3) + 1024; std::vector<uint8_t> out(out_size); - if (!WriteMetaBlockParallel(params, + if (!WriteMetaBlockParallel(¶ms, input_block_size, &input_buffer[pos], prefix_size, &input_buffer[pos - prefix_size], - pos == 0, - pos + input_block_size == input_size, + (pos == 0) ? 1 : 0, + (pos + input_block_size == input_size) ? 1 : 0, &out_size, &out[0])) { - return false; + return 0; } out.resize(out_size); compressed_pieces.push_back(out); pos += input_block_size; } - // Piece together the output. + /* Piece together the output. */ size_t out_pos = 0; for (size_t i = 0; i < compressed_pieces.size(); ++i) { const std::vector<uint8_t>& out = compressed_pieces[i]; if (out_pos + out.size() > *encoded_size) { - return false; + return 0; } memcpy(&encoded_buffer[out_pos], &out[0], out.size()); out_pos += out.size(); } *encoded_size = out_pos; - return true; + return 1; } -} // namespace brotli +} /* namespace brotli */ diff --git a/thirdparty/brotli/enc/encode_parallel.h b/thirdparty/brotli/enc/encode_parallel.h index 8d637b7c..b7649b18 100644 --- a/thirdparty/brotli/enc/encode_parallel.h +++ b/thirdparty/brotli/enc/encode_parallel.h @@ -4,16 +4,15 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// API for parallel Brotli compression -// Note that this is only a proof of concept currently and not part of the -// final API yet. +/* API for parallel Brotli compression + Note that this is only a proof of concept currently and not part of the + final API yet. */ #ifndef BROTLI_ENC_ENCODE_PARALLEL_H_ #define BROTLI_ENC_ENCODE_PARALLEL_H_ - -#include "./encode.h" -#include "./types.h" +#include "../common/types.h" +#include "./compressor.h" namespace brotli { @@ -23,6 +22,6 @@ int BrotliCompressBufferParallel(BrotliParams params, size_t* encoded_size, uint8_t* encoded_buffer); -} // namespace brotli +} /* namespace brotli */ -#endif // BROTLI_ENC_ENCODE_PARALLEL_H_ +#endif /* BROTLI_ENC_ENCODE_PARALLEL_H_ */ diff --git a/thirdparty/brotli/enc/entropy_encode.c b/thirdparty/brotli/enc/entropy_encode.c new file mode 100644 index 00000000..3d2dce23 --- /dev/null +++ b/thirdparty/brotli/enc/entropy_encode.c @@ -0,0 +1,501 @@ +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Entropy encoding (Huffman) utilities. */ + +#include "./entropy_encode.h" + +#include <string.h> /* memset */ + +#include "../common/constants.h" +#include "../common/types.h" +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +BROTLI_BOOL BrotliSetDepth( + int p0, HuffmanTree* pool, uint8_t* depth, int max_depth) { + int stack[16]; + int level = 0; + int p = p0; + assert(max_depth <= 15); + stack[0] = -1; + while (BROTLI_TRUE) { + if (pool[p].index_left_ >= 0) { + level++; + if (level > max_depth) return BROTLI_FALSE; + stack[level] = pool[p].index_right_or_value_; + p = pool[p].index_left_; + continue; + } else { + depth[pool[p].index_right_or_value_] = (uint8_t)level; + } + while (level >= 0 && stack[level] == -1) level--; + if (level < 0) return BROTLI_TRUE; + p = stack[level]; + stack[level] = -1; + } +} + +/* Sort the root nodes, least popular first. */ +static BROTLI_INLINE BROTLI_BOOL SortHuffmanTree( + const HuffmanTree* v0, const HuffmanTree* v1) { + if (v0->total_count_ != v1->total_count_) { + return TO_BROTLI_BOOL(v0->total_count_ < v1->total_count_); + } + return TO_BROTLI_BOOL(v0->index_right_or_value_ > v1->index_right_or_value_); +} + +/* This function will create a Huffman tree. + + The catch here is that the tree cannot be arbitrarily deep. + Brotli specifies a maximum depth of 15 bits for "code trees" + and 7 bits for "code length code trees." + + count_limit is the value that is to be faked as the minimum value + and this minimum value is raised until the tree matches the + maximum length requirement. + + This algorithm is not of excellent performance for very long data blocks, + especially when population counts are longer than 2**tree_limit, but + we are not planning to use this with extremely long blocks. + + See http://en.wikipedia.org/wiki/Huffman_coding */ +void BrotliCreateHuffmanTree(const uint32_t *data, + const size_t length, + const int tree_limit, + HuffmanTree* tree, + uint8_t *depth) { + uint32_t count_limit; + HuffmanTree sentinel; + InitHuffmanTree(&sentinel, BROTLI_UINT32_MAX, -1, -1); + /* For block sizes below 64 kB, we never need to do a second iteration + of this loop. Probably all of our block sizes will be smaller than + that, so this loop is mostly of academic interest. If we actually + would need this, we would be better off with the Katajainen algorithm. */ + for (count_limit = 1; ; count_limit *= 2) { + size_t n = 0; + size_t i; + size_t j; + size_t k; + for (i = length; i != 0;) { + --i; + if (data[i]) { + const uint32_t count = BROTLI_MAX(uint32_t, data[i], count_limit); + InitHuffmanTree(&tree[n++], count, -1, (int16_t)i); + } + } + + if (n == 1) { + depth[tree[0].index_right_or_value_] = 1; /* Only one element. */ + break; + } + + SortHuffmanTreeItems(tree, n, SortHuffmanTree); + + /* The nodes are: + [0, n): the sorted leaf nodes that we start with. + [n]: we add a sentinel here. + [n + 1, 2n): new parent nodes are added here, starting from + (n+1). These are naturally in ascending order. + [2n]: we add a sentinel at the end as well. + There will be (2n+1) elements at the end. */ + tree[n] = sentinel; + tree[n + 1] = sentinel; + + i = 0; /* Points to the next leaf node. */ + j = n + 1; /* Points to the next non-leaf node. */ + for (k = n - 1; k != 0; --k) { + size_t left, right; + if (tree[i].total_count_ <= tree[j].total_count_) { + left = i; + ++i; + } else { + left = j; + ++j; + } + if (tree[i].total_count_ <= tree[j].total_count_) { + right = i; + ++i; + } else { + right = j; + ++j; + } + + { + /* The sentinel node becomes the parent node. */ + size_t j_end = 2 * n - k; + tree[j_end].total_count_ = + tree[left].total_count_ + tree[right].total_count_; + tree[j_end].index_left_ = (int16_t)left; + tree[j_end].index_right_or_value_ = (int16_t)right; + + /* Add back the last sentinel node. */ + tree[j_end + 1] = sentinel; + } + } + if (BrotliSetDepth((int)(2 * n - 1), &tree[0], depth, tree_limit)) { + /* We need to pack the Huffman tree in tree_limit bits. If this was not + successful, add fake entities to the lowest values and retry. */ + break; + } + } +} + +static void Reverse(uint8_t* v, size_t start, size_t end) { + --end; + while (start < end) { + uint8_t tmp = v[start]; + v[start] = v[end]; + v[end] = tmp; + ++start; + --end; + } +} + +static void BrotliWriteHuffmanTreeRepetitions( + const uint8_t previous_value, + const uint8_t value, + size_t repetitions, + size_t* tree_size, + uint8_t* tree, + uint8_t* extra_bits_data) { + assert(repetitions > 0); + if (previous_value != value) { + tree[*tree_size] = value; + extra_bits_data[*tree_size] = 0; + ++(*tree_size); + --repetitions; + } + if (repetitions == 7) { + tree[*tree_size] = value; + extra_bits_data[*tree_size] = 0; + ++(*tree_size); + --repetitions; + } + if (repetitions < 3) { + size_t i; + for (i = 0; i < repetitions; ++i) { + tree[*tree_size] = value; + extra_bits_data[*tree_size] = 0; + ++(*tree_size); + } + } else { + size_t start = *tree_size; + repetitions -= 3; + while (BROTLI_TRUE) { + tree[*tree_size] = BROTLI_REPEAT_PREVIOUS_CODE_LENGTH; + extra_bits_data[*tree_size] = repetitions & 0x3; + ++(*tree_size); + repetitions >>= 2; + if (repetitions == 0) { + break; + } + --repetitions; + } + Reverse(tree, start, *tree_size); + Reverse(extra_bits_data, start, *tree_size); + } +} + +static void BrotliWriteHuffmanTreeRepetitionsZeros( + size_t repetitions, + size_t* tree_size, + uint8_t* tree, + uint8_t* extra_bits_data) { + if (repetitions == 11) { + tree[*tree_size] = 0; + extra_bits_data[*tree_size] = 0; + ++(*tree_size); + --repetitions; + } + if (repetitions < 3) { + size_t i; + for (i = 0; i < repetitions; ++i) { + tree[*tree_size] = 0; + extra_bits_data[*tree_size] = 0; + ++(*tree_size); + } + } else { + size_t start = *tree_size; + repetitions -= 3; + while (BROTLI_TRUE) { + tree[*tree_size] = BROTLI_REPEAT_ZERO_CODE_LENGTH; + extra_bits_data[*tree_size] = repetitions & 0x7; + ++(*tree_size); + repetitions >>= 3; + if (repetitions == 0) { + break; + } + --repetitions; + } + Reverse(tree, start, *tree_size); + Reverse(extra_bits_data, start, *tree_size); + } +} + +void BrotliOptimizeHuffmanCountsForRle(size_t length, uint32_t* counts, + uint8_t* good_for_rle) { + size_t nonzero_count = 0; + size_t stride; + size_t limit; + size_t sum; + const size_t streak_limit = 1240; + /* Let's make the Huffman code more compatible with rle encoding. */ + size_t i; + for (i = 0; i < length; i++) { + if (counts[i]) { + ++nonzero_count; + } + } + if (nonzero_count < 16) { + return; + } + while (length != 0 && counts[length - 1] == 0) { + --length; + } + if (length == 0) { + return; /* All zeros. */ + } + /* Now counts[0..length - 1] does not have trailing zeros. */ + { + size_t nonzeros = 0; + uint32_t smallest_nonzero = 1 << 30; + for (i = 0; i < length; ++i) { + if (counts[i] != 0) { + ++nonzeros; + if (smallest_nonzero > counts[i]) { + smallest_nonzero = counts[i]; + } + } + } + if (nonzeros < 5) { + /* Small histogram will model it well. */ + return; + } + if (smallest_nonzero < 4) { + size_t zeros = length - nonzeros; + if (zeros < 6) { + for (i = 1; i < length - 1; ++i) { + if (counts[i - 1] != 0 && counts[i] == 0 && counts[i + 1] != 0) { + counts[i] = 1; + } + } + } + } + if (nonzeros < 28) { + return; + } + } + /* 2) Let's mark all population counts that already can be encoded + with an rle code. */ + memset(good_for_rle, 0, length); + { + /* Let's not spoil any of the existing good rle codes. + Mark any seq of 0's that is longer as 5 as a good_for_rle. + Mark any seq of non-0's that is longer as 7 as a good_for_rle. */ + uint32_t symbol = counts[0]; + size_t step = 0; + for (i = 0; i <= length; ++i) { + if (i == length || counts[i] != symbol) { + if ((symbol == 0 && step >= 5) || + (symbol != 0 && step >= 7)) { + size_t k; + for (k = 0; k < step; ++k) { + good_for_rle[i - k - 1] = 1; + } + } + step = 1; + if (i != length) { + symbol = counts[i]; + } + } else { + ++step; + } + } + } + /* 3) Let's replace those population counts that lead to more rle codes. + Math here is in 24.8 fixed point representation. */ + stride = 0; + limit = 256 * (counts[0] + counts[1] + counts[2]) / 3 + 420; + sum = 0; + for (i = 0; i <= length; ++i) { + if (i == length || good_for_rle[i] || + (i != 0 && good_for_rle[i - 1]) || + (256 * counts[i] - limit + streak_limit) >= 2 * streak_limit) { + if (stride >= 4 || (stride >= 3 && sum == 0)) { + size_t k; + /* The stride must end, collapse what we have, if we have enough (4). */ + size_t count = (sum + stride / 2) / stride; + if (count == 0) { + count = 1; + } + if (sum == 0) { + /* Don't make an all zeros stride to be upgraded to ones. */ + count = 0; + } + for (k = 0; k < stride; ++k) { + /* We don't want to change value at counts[i], + that is already belonging to the next stride. Thus - 1. */ + counts[i - k - 1] = (uint32_t)count; + } + } + stride = 0; + sum = 0; + if (i < length - 2) { + /* All interesting strides have a count of at least 4, */ + /* at least when non-zeros. */ + limit = 256 * (counts[i] + counts[i + 1] + counts[i + 2]) / 3 + 420; + } else if (i < length) { + limit = 256 * counts[i]; + } else { + limit = 0; + } + } + ++stride; + if (i != length) { + sum += counts[i]; + if (stride >= 4) { + limit = (256 * sum + stride / 2) / stride; + } + if (stride == 4) { + limit += 120; + } + } + } +} + +static void DecideOverRleUse(const uint8_t* depth, const size_t length, + BROTLI_BOOL *use_rle_for_non_zero, + BROTLI_BOOL *use_rle_for_zero) { + size_t total_reps_zero = 0; + size_t total_reps_non_zero = 0; + size_t count_reps_zero = 1; + size_t count_reps_non_zero = 1; + size_t i; + for (i = 0; i < length;) { + const uint8_t value = depth[i]; + size_t reps = 1; + size_t k; + for (k = i + 1; k < length && depth[k] == value; ++k) { + ++reps; + } + if (reps >= 3 && value == 0) { + total_reps_zero += reps; + ++count_reps_zero; + } + if (reps >= 4 && value != 0) { + total_reps_non_zero += reps; + ++count_reps_non_zero; + } + i += reps; + } + *use_rle_for_non_zero = + TO_BROTLI_BOOL(total_reps_non_zero > count_reps_non_zero * 2); + *use_rle_for_zero = TO_BROTLI_BOOL(total_reps_zero > count_reps_zero * 2); +} + +void BrotliWriteHuffmanTree(const uint8_t* depth, + size_t length, + size_t* tree_size, + uint8_t* tree, + uint8_t* extra_bits_data) { + uint8_t previous_value = BROTLI_INITIAL_REPEATED_CODE_LENGTH; + size_t i; + BROTLI_BOOL use_rle_for_non_zero = BROTLI_FALSE; + BROTLI_BOOL use_rle_for_zero = BROTLI_FALSE; + + /* Throw away trailing zeros. */ + size_t new_length = length; + for (i = 0; i < length; ++i) { + if (depth[length - i - 1] == 0) { + --new_length; + } else { + break; + } + } + + /* First gather statistics on if it is a good idea to do rle. */ + if (length > 50) { + /* Find rle coding for longer codes. + Shorter codes seem not to benefit from rle. */ + DecideOverRleUse(depth, new_length, + &use_rle_for_non_zero, &use_rle_for_zero); + } + + /* Actual rle coding. */ + for (i = 0; i < new_length;) { + const uint8_t value = depth[i]; + size_t reps = 1; + if ((value != 0 && use_rle_for_non_zero) || + (value == 0 && use_rle_for_zero)) { + size_t k; + for (k = i + 1; k < new_length && depth[k] == value; ++k) { + ++reps; + } + } + if (value == 0) { + BrotliWriteHuffmanTreeRepetitionsZeros( + reps, tree_size, tree, extra_bits_data); + } else { + BrotliWriteHuffmanTreeRepetitions(previous_value, + value, reps, tree_size, + tree, extra_bits_data); + previous_value = value; + } + i += reps; + } +} + +static uint16_t BrotliReverseBits(size_t num_bits, uint16_t bits) { + static const size_t kLut[16] = { /* Pre-reversed 4-bit values. */ + 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, + 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf + }; + size_t retval = kLut[bits & 0xf]; + size_t i; + for (i = 4; i < num_bits; i += 4) { + retval <<= 4; + bits = (uint16_t)(bits >> 4); + retval |= kLut[bits & 0xf]; + } + retval >>= ((0 - num_bits) & 0x3); + return (uint16_t)retval; +} + +/* 0..15 are values for bits */ +#define MAX_HUFFMAN_BITS 16 + +void BrotliConvertBitDepthsToSymbols(const uint8_t *depth, + size_t len, + uint16_t *bits) { + /* In Brotli, all bit depths are [1..15] + 0 bit depth means that the symbol does not exist. */ + uint16_t bl_count[MAX_HUFFMAN_BITS] = { 0 }; + uint16_t next_code[MAX_HUFFMAN_BITS]; + size_t i; + int code = 0; + for (i = 0; i < len; ++i) { + ++bl_count[depth[i]]; + } + bl_count[0] = 0; + next_code[0] = 0; + for (i = 1; i < MAX_HUFFMAN_BITS; ++i) { + code = (code + bl_count[i - 1]) << 1; + next_code[i] = (uint16_t)code; + } + for (i = 0; i < len; ++i) { + if (depth[i]) { + bits[i] = BrotliReverseBits(depth[i], next_code[depth[i]]++); + } + } +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/entropy_encode.cc b/thirdparty/brotli/enc/entropy_encode.cc deleted file mode 100644 index f18355d8..00000000 --- a/thirdparty/brotli/enc/entropy_encode.cc +++ /dev/null @@ -1,480 +0,0 @@ -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Entropy encoding (Huffman) utilities. - -#include "./entropy_encode.h" - -#include <algorithm> -#include <limits> -#include <cstdlib> - -#include "./histogram.h" -#include "./port.h" -#include "./types.h" - -namespace brotli { - -void SetDepth(const HuffmanTree &p, - HuffmanTree *pool, - uint8_t *depth, - uint8_t level) { - if (p.index_left_ >= 0) { - ++level; - SetDepth(pool[p.index_left_], pool, depth, level); - SetDepth(pool[p.index_right_or_value_], pool, depth, level); - } else { - depth[p.index_right_or_value_] = level; - } -} - -// Sort the root nodes, least popular first. -static inline bool SortHuffmanTree(const HuffmanTree& v0, - const HuffmanTree& v1) { - if (v0.total_count_ != v1.total_count_) { - return v0.total_count_ < v1.total_count_; - } - return v0.index_right_or_value_ > v1.index_right_or_value_; -} - -// This function will create a Huffman tree. -// -// The catch here is that the tree cannot be arbitrarily deep. -// Brotli specifies a maximum depth of 15 bits for "code trees" -// and 7 bits for "code length code trees." -// -// count_limit is the value that is to be faked as the minimum value -// and this minimum value is raised until the tree matches the -// maximum length requirement. -// -// This algorithm is not of excellent performance for very long data blocks, -// especially when population counts are longer than 2**tree_limit, but -// we are not planning to use this with extremely long blocks. -// -// See http://en.wikipedia.org/wiki/Huffman_coding -void CreateHuffmanTree(const uint32_t *data, - const size_t length, - const int tree_limit, - HuffmanTree* tree, - uint8_t *depth) { - // For block sizes below 64 kB, we never need to do a second iteration - // of this loop. Probably all of our block sizes will be smaller than - // that, so this loop is mostly of academic interest. If we actually - // would need this, we would be better off with the Katajainen algorithm. - for (uint32_t count_limit = 1; ; count_limit *= 2) { - size_t n = 0; - for (size_t i = length; i != 0;) { - --i; - if (data[i]) { - const uint32_t count = std::max(data[i], count_limit); - tree[n++] = HuffmanTree(count, -1, static_cast<int16_t>(i)); - } - } - - if (n == 1) { - depth[tree[0].index_right_or_value_] = 1; // Only one element. - break; - } - - std::sort(tree, tree + n, SortHuffmanTree); - - // The nodes are: - // [0, n): the sorted leaf nodes that we start with. - // [n]: we add a sentinel here. - // [n + 1, 2n): new parent nodes are added here, starting from - // (n+1). These are naturally in ascending order. - // [2n]: we add a sentinel at the end as well. - // There will be (2n+1) elements at the end. - const HuffmanTree sentinel(std::numeric_limits<uint32_t>::max(), -1, -1); - tree[n] = sentinel; - tree[n + 1] = sentinel; - - size_t i = 0; // Points to the next leaf node. - size_t j = n + 1; // Points to the next non-leaf node. - for (size_t k = n - 1; k != 0; --k) { - size_t left, right; - if (tree[i].total_count_ <= tree[j].total_count_) { - left = i; - ++i; - } else { - left = j; - ++j; - } - if (tree[i].total_count_ <= tree[j].total_count_) { - right = i; - ++i; - } else { - right = j; - ++j; - } - - // The sentinel node becomes the parent node. - size_t j_end = 2 * n - k; - tree[j_end].total_count_ = - tree[left].total_count_ + tree[right].total_count_; - tree[j_end].index_left_ = static_cast<int16_t>(left); - tree[j_end].index_right_or_value_ = static_cast<int16_t>(right); - - // Add back the last sentinel node. - tree[j_end + 1] = sentinel; - } - SetDepth(tree[2 * n - 1], &tree[0], depth, 0); - - // We need to pack the Huffman tree in tree_limit bits. - // If this was not successful, add fake entities to the lowest values - // and retry. - if (*std::max_element(&depth[0], &depth[length]) <= tree_limit) { - break; - } - } -} - -static void Reverse(uint8_t* v, size_t start, size_t end) { - --end; - while (start < end) { - uint8_t tmp = v[start]; - v[start] = v[end]; - v[end] = tmp; - ++start; - --end; - } -} - -static void WriteHuffmanTreeRepetitions( - const uint8_t previous_value, - const uint8_t value, - size_t repetitions, - size_t* tree_size, - uint8_t* tree, - uint8_t* extra_bits_data) { - assert(repetitions > 0); - if (previous_value != value) { - tree[*tree_size] = value; - extra_bits_data[*tree_size] = 0; - ++(*tree_size); - --repetitions; - } - if (repetitions == 7) { - tree[*tree_size] = value; - extra_bits_data[*tree_size] = 0; - ++(*tree_size); - --repetitions; - } - if (repetitions < 3) { - for (size_t i = 0; i < repetitions; ++i) { - tree[*tree_size] = value; - extra_bits_data[*tree_size] = 0; - ++(*tree_size); - } - } else { - repetitions -= 3; - size_t start = *tree_size; - while (true) { - tree[*tree_size] = 16; - extra_bits_data[*tree_size] = repetitions & 0x3; - ++(*tree_size); - repetitions >>= 2; - if (repetitions == 0) { - break; - } - --repetitions; - } - Reverse(tree, start, *tree_size); - Reverse(extra_bits_data, start, *tree_size); - } -} - -static void WriteHuffmanTreeRepetitionsZeros( - size_t repetitions, - size_t* tree_size, - uint8_t* tree, - uint8_t* extra_bits_data) { - if (repetitions == 11) { - tree[*tree_size] = 0; - extra_bits_data[*tree_size] = 0; - ++(*tree_size); - --repetitions; - } - if (repetitions < 3) { - for (size_t i = 0; i < repetitions; ++i) { - tree[*tree_size] = 0; - extra_bits_data[*tree_size] = 0; - ++(*tree_size); - } - } else { - repetitions -= 3; - size_t start = *tree_size; - while (true) { - tree[*tree_size] = 17; - extra_bits_data[*tree_size] = repetitions & 0x7; - ++(*tree_size); - repetitions >>= 3; - if (repetitions == 0) { - break; - } - --repetitions; - } - Reverse(tree, start, *tree_size); - Reverse(extra_bits_data, start, *tree_size); - } -} - -void OptimizeHuffmanCountsForRle(size_t length, uint32_t* counts, - uint8_t* good_for_rle) { - size_t nonzero_count = 0; - size_t stride; - size_t limit; - size_t sum; - const size_t streak_limit = 1240; - // Let's make the Huffman code more compatible with rle encoding. - size_t i; - for (i = 0; i < length; i++) { - if (counts[i]) { - ++nonzero_count; - } - } - if (nonzero_count < 16) { - return; - } - while (length != 0 && counts[length - 1] == 0) { - --length; - } - if (length == 0) { - return; // All zeros. - } - // Now counts[0..length - 1] does not have trailing zeros. - { - size_t nonzeros = 0; - uint32_t smallest_nonzero = 1 << 30; - for (i = 0; i < length; ++i) { - if (counts[i] != 0) { - ++nonzeros; - if (smallest_nonzero > counts[i]) { - smallest_nonzero = counts[i]; - } - } - } - if (nonzeros < 5) { - // Small histogram will model it well. - return; - } - size_t zeros = length - nonzeros; - if (smallest_nonzero < 4) { - if (zeros < 6) { - for (i = 1; i < length - 1; ++i) { - if (counts[i - 1] != 0 && counts[i] == 0 && counts[i + 1] != 0) { - counts[i] = 1; - } - } - } - } - if (nonzeros < 28) { - return; - } - } - // 2) Let's mark all population counts that already can be encoded - // with an rle code. - memset(good_for_rle, 0, length); - { - // Let's not spoil any of the existing good rle codes. - // Mark any seq of 0's that is longer as 5 as a good_for_rle. - // Mark any seq of non-0's that is longer as 7 as a good_for_rle. - uint32_t symbol = counts[0]; - size_t step = 0; - for (i = 0; i <= length; ++i) { - if (i == length || counts[i] != symbol) { - if ((symbol == 0 && step >= 5) || - (symbol != 0 && step >= 7)) { - size_t k; - for (k = 0; k < step; ++k) { - good_for_rle[i - k - 1] = 1; - } - } - step = 1; - if (i != length) { - symbol = counts[i]; - } - } else { - ++step; - } - } - } - // 3) Let's replace those population counts that lead to more rle codes. - // Math here is in 24.8 fixed point representation. - stride = 0; - limit = 256 * (counts[0] + counts[1] + counts[2]) / 3 + 420; - sum = 0; - for (i = 0; i <= length; ++i) { - if (i == length || good_for_rle[i] || - (i != 0 && good_for_rle[i - 1]) || - (256 * counts[i] - limit + streak_limit) >= 2 * streak_limit) { - if (stride >= 4 || (stride >= 3 && sum == 0)) { - size_t k; - // The stride must end, collapse what we have, if we have enough (4). - size_t count = (sum + stride / 2) / stride; - if (count == 0) { - count = 1; - } - if (sum == 0) { - // Don't make an all zeros stride to be upgraded to ones. - count = 0; - } - for (k = 0; k < stride; ++k) { - // We don't want to change value at counts[i], - // that is already belonging to the next stride. Thus - 1. - counts[i - k - 1] = static_cast<uint32_t>(count); - } - } - stride = 0; - sum = 0; - if (i < length - 2) { - // All interesting strides have a count of at least 4, - // at least when non-zeros. - limit = 256 * (counts[i] + counts[i + 1] + counts[i + 2]) / 3 + 420; - } else if (i < length) { - limit = 256 * counts[i]; - } else { - limit = 0; - } - } - ++stride; - if (i != length) { - sum += counts[i]; - if (stride >= 4) { - limit = (256 * sum + stride / 2) / stride; - } - if (stride == 4) { - limit += 120; - } - } - } -} - -static void DecideOverRleUse(const uint8_t* depth, const size_t length, - bool *use_rle_for_non_zero, - bool *use_rle_for_zero) { - size_t total_reps_zero = 0; - size_t total_reps_non_zero = 0; - size_t count_reps_zero = 1; - size_t count_reps_non_zero = 1; - for (size_t i = 0; i < length;) { - const uint8_t value = depth[i]; - size_t reps = 1; - for (size_t k = i + 1; k < length && depth[k] == value; ++k) { - ++reps; - } - if (reps >= 3 && value == 0) { - total_reps_zero += reps; - ++count_reps_zero; - } - if (reps >= 4 && value != 0) { - total_reps_non_zero += reps; - ++count_reps_non_zero; - } - i += reps; - } - *use_rle_for_non_zero = total_reps_non_zero > count_reps_non_zero * 2; - *use_rle_for_zero = total_reps_zero > count_reps_zero * 2; -} - -void WriteHuffmanTree(const uint8_t* depth, - size_t length, - size_t* tree_size, - uint8_t* tree, - uint8_t* extra_bits_data) { - uint8_t previous_value = 8; - - // Throw away trailing zeros. - size_t new_length = length; - for (size_t i = 0; i < length; ++i) { - if (depth[length - i - 1] == 0) { - --new_length; - } else { - break; - } - } - - // First gather statistics on if it is a good idea to do rle. - bool use_rle_for_non_zero = false; - bool use_rle_for_zero = false; - if (length > 50) { - // Find rle coding for longer codes. - // Shorter codes seem not to benefit from rle. - DecideOverRleUse(depth, new_length, - &use_rle_for_non_zero, &use_rle_for_zero); - } - - // Actual rle coding. - for (size_t i = 0; i < new_length;) { - const uint8_t value = depth[i]; - size_t reps = 1; - if ((value != 0 && use_rle_for_non_zero) || - (value == 0 && use_rle_for_zero)) { - for (size_t k = i + 1; k < new_length && depth[k] == value; ++k) { - ++reps; - } - } - if (value == 0) { - WriteHuffmanTreeRepetitionsZeros(reps, tree_size, tree, extra_bits_data); - } else { - WriteHuffmanTreeRepetitions(previous_value, - value, reps, tree_size, - tree, extra_bits_data); - previous_value = value; - } - i += reps; - } -} - -namespace { - -uint16_t ReverseBits(int num_bits, uint16_t bits) { - static const size_t kLut[16] = { // Pre-reversed 4-bit values. - 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, - 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf - }; - size_t retval = kLut[bits & 0xf]; - for (int i = 4; i < num_bits; i += 4) { - retval <<= 4; - bits = static_cast<uint16_t>(bits >> 4); - retval |= kLut[bits & 0xf]; - } - retval >>= (-num_bits & 0x3); - return static_cast<uint16_t>(retval); -} - -} // namespace - -void ConvertBitDepthsToSymbols(const uint8_t *depth, - size_t len, - uint16_t *bits) { - // In Brotli, all bit depths are [1..15] - // 0 bit depth means that the symbol does not exist. - const int kMaxBits = 16; // 0..15 are values for bits - uint16_t bl_count[kMaxBits] = { 0 }; - { - for (size_t i = 0; i < len; ++i) { - ++bl_count[depth[i]]; - } - bl_count[0] = 0; - } - uint16_t next_code[kMaxBits]; - next_code[0] = 0; - { - int code = 0; - for (int bits = 1; bits < kMaxBits; ++bits) { - code = (code + bl_count[bits - 1]) << 1; - next_code[bits] = static_cast<uint16_t>(code); - } - } - for (size_t i = 0; i < len; ++i) { - if (depth[i]) { - bits[i] = ReverseBits(depth[i], next_code[depth[i]]++); - } - } -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/entropy_encode.h b/thirdparty/brotli/enc/entropy_encode.h index 090f9546..2fad140d 100644 --- a/thirdparty/brotli/enc/entropy_encode.h +++ b/thirdparty/brotli/enc/entropy_encode.h @@ -4,101 +4,119 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Entropy encoding (Huffman) utilities. +/* Entropy encoding (Huffman) utilities. */ #ifndef BROTLI_ENC_ENTROPY_ENCODE_H_ #define BROTLI_ENC_ENTROPY_ENCODE_H_ -#include <string.h> -#include "./histogram.h" -#include "./prefix.h" -#include "./types.h" +#include "../common/types.h" +#include "./port.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -// A node of a Huffman tree. -struct HuffmanTree { - HuffmanTree() {} - HuffmanTree(uint32_t count, int16_t left, int16_t right) - : total_count_(count), - index_left_(left), - index_right_or_value_(right) { - } +/* A node of a Huffman tree. */ +typedef struct HuffmanTree { uint32_t total_count_; int16_t index_left_; int16_t index_right_or_value_; -}; - -void SetDepth(const HuffmanTree &p, HuffmanTree *pool, - uint8_t *depth, uint8_t level); - -// This function will create a Huffman tree. -// -// The (data,length) contains the population counts. -// The tree_limit is the maximum bit depth of the Huffman codes. -// -// The depth contains the tree, i.e., how many bits are used for -// the symbol. -// -// The actual Huffman tree is constructed in the tree[] array, which has to -// be at least 2 * length + 1 long. -// -// See http://en.wikipedia.org/wiki/Huffman_coding -void CreateHuffmanTree(const uint32_t *data, - const size_t length, - const int tree_limit, - HuffmanTree* tree, - uint8_t *depth); - -// Change the population counts in a way that the consequent -// Huffman tree compression, especially its rle-part will be more -// likely to compress this data more efficiently. -// -// length contains the size of the histogram. -// counts contains the population counts. -// good_for_rle is a buffer of at least length size -void OptimizeHuffmanCountsForRle(size_t length, uint32_t* counts, - uint8_t* good_for_rle); - -// Write a Huffman tree from bit depths into the bitstream representation -// of a Huffman tree. The generated Huffman tree is to be compressed once -// more using a Huffman tree -void WriteHuffmanTree(const uint8_t* depth, - size_t num, - size_t* tree_size, - uint8_t* tree, - uint8_t* extra_bits_data); - -// Get the actual bit values for a tree of bit depths. -void ConvertBitDepthsToSymbols(const uint8_t *depth, - size_t len, - uint16_t *bits); - -template<int kSize> -struct EntropyCode { - // How many bits for symbol. - uint8_t depth_[kSize]; - // Actual bits used to represent the symbol. - uint16_t bits_[kSize]; - // How many non-zero depth. - int count_; - // First four symbols with non-zero depth. - int symbols_[4]; -}; - -static const int kCodeLengthCodes = 18; - -// Literal entropy code. -typedef EntropyCode<256> EntropyCodeLiteral; -// Prefix entropy codes. -typedef EntropyCode<kNumCommandPrefixes> EntropyCodeCommand; -typedef EntropyCode<kNumDistancePrefixes> EntropyCodeDistance; -typedef EntropyCode<kNumBlockLenPrefixes> EntropyCodeBlockLength; -// Context map entropy code, 256 Huffman tree indexes + 16 run length codes. -typedef EntropyCode<272> EntropyCodeContextMap; -// Block type entropy code, 256 block types + 2 special symbols. -typedef EntropyCode<258> EntropyCodeBlockType; - -} // namespace brotli - -#endif // BROTLI_ENC_ENTROPY_ENCODE_H_ +} HuffmanTree; + +static BROTLI_INLINE void InitHuffmanTree(HuffmanTree* self, uint32_t count, + int16_t left, int16_t right) { + self->total_count_ = count; + self->index_left_ = left; + self->index_right_or_value_ = right; +} + +/* Returns 1 is assignment of depths succeded, otherwise 0. */ +BROTLI_INTERNAL BROTLI_BOOL BrotliSetDepth( + int p, HuffmanTree* pool, uint8_t* depth, int max_depth); + +/* This function will create a Huffman tree. + + The (data,length) contains the population counts. + The tree_limit is the maximum bit depth of the Huffman codes. + + The depth contains the tree, i.e., how many bits are used for + the symbol. + + The actual Huffman tree is constructed in the tree[] array, which has to + be at least 2 * length + 1 long. + + See http://en.wikipedia.org/wiki/Huffman_coding */ +BROTLI_INTERNAL void BrotliCreateHuffmanTree(const uint32_t *data, + const size_t length, + const int tree_limit, + HuffmanTree* tree, + uint8_t *depth); + +/* Change the population counts in a way that the consequent + Huffman tree compression, especially its rle-part will be more + likely to compress this data more efficiently. + + length contains the size of the histogram. + counts contains the population counts. + good_for_rle is a buffer of at least length size */ +BROTLI_INTERNAL void BrotliOptimizeHuffmanCountsForRle( + size_t length, uint32_t* counts, uint8_t* good_for_rle); + +/* Write a Huffman tree from bit depths into the bitstream representation + of a Huffman tree. The generated Huffman tree is to be compressed once + more using a Huffman tree */ +BROTLI_INTERNAL void BrotliWriteHuffmanTree(const uint8_t* depth, + size_t num, + size_t* tree_size, + uint8_t* tree, + uint8_t* extra_bits_data); + +/* Get the actual bit values for a tree of bit depths. */ +BROTLI_INTERNAL void BrotliConvertBitDepthsToSymbols(const uint8_t *depth, + size_t len, + uint16_t *bits); + +/* Input size optimized Shell sort. */ +typedef BROTLI_BOOL (*HuffmanTreeComparator)( + const HuffmanTree*, const HuffmanTree*); +static BROTLI_INLINE void SortHuffmanTreeItems(HuffmanTree* items, + const size_t n, HuffmanTreeComparator comparator) { + static const size_t gaps[] = {132, 57, 23, 10, 4, 1}; + if (n < 13) { + /* Insertion sort. */ + size_t i; + for (i = 1; i < n; ++i) { + HuffmanTree tmp = items[i]; + size_t k = i; + size_t j = i - 1; + while (comparator(&tmp, &items[j])) { + items[k] = items[j]; + k = j; + if (!j--) break; + } + items[k] = tmp; + } + return; + } else { + /* Shell sort. */ + int g = n < 57 ? 2 : 0; + for (; g < 6; ++g) { + size_t gap = gaps[g]; + size_t i; + for (i = gap; i < n; ++i) { + size_t j = i; + HuffmanTree tmp = items[i]; + for (; j >= gap && comparator(&tmp, &items[j - gap]); j -= gap) { + items[j] = items[j - gap]; + } + items[j] = tmp; + } + } + } +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_ENTROPY_ENCODE_H_ */ diff --git a/thirdparty/brotli/enc/entropy_encode_static.h b/thirdparty/brotli/enc/entropy_encode_static.h index d21f3b51..1b4a2a1d 100644 --- a/thirdparty/brotli/enc/entropy_encode_static.h +++ b/thirdparty/brotli/enc/entropy_encode_static.h @@ -4,22 +4,25 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Static entropy codes used for faster meta-block encoding. +/* Static entropy codes used for faster meta-block encoding. */ #ifndef BROTLI_ENC_ENTROPY_ENCODE_STATIC_H_ #define BROTLI_ENC_ENTROPY_ENCODE_STATIC_H_ -#include "./prefix.h" -#include "./types.h" +#include "../common/constants.h" +#include "../common/port.h" +#include "../common/types.h" #include "./write_bits.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif static const uint8_t kCodeLengthDepth[18] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 0, 4, 4, }; -static const uint8_t kStaticCommandCodeDepth[kNumCommandPrefixes] = { +static const uint8_t kStaticCommandCodeDepth[BROTLI_NUM_COMMAND_SYMBOLS] = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, @@ -77,11 +80,13 @@ static const uint32_t kCodeLengthBits[18] = { 0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 15, 31, 0, 11, 7, }; -inline void StoreStaticCodeLengthCode(size_t* storage_ix, uint8_t* storage) { - WriteBits(40, MAKE_UINT64_T(0xff, 0x55555554), storage_ix, storage); +static BROTLI_INLINE void StoreStaticCodeLengthCode( + size_t* storage_ix, uint8_t* storage) { + BrotliWriteBits( + 40, MAKE_UINT64_T(0x0000ffU, 0x55555554U), storage_ix, storage); } -static const uint64_t kZeroRepsBits[704] = { +static const uint64_t kZeroRepsBits[BROTLI_NUM_COMMAND_SYMBOLS] = { 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000017, 0x00000027, 0x00000037, 0x00000047, 0x00000057, 0x00000067, 0x00000077, 0x00000770, 0x00000b87, 0x00001387, 0x00001b87, 0x00002387, 0x00002b87, 0x00003387, @@ -202,7 +207,7 @@ static const uint64_t kZeroRepsBits[704] = { 0x06f9cb87, 0x08f9cb87, }; -static const uint32_t kZeroRepsDepth[704] = { +static const uint32_t kZeroRepsDepth[BROTLI_NUM_COMMAND_SYMBOLS] = { 0, 4, 8, 7, 7, 7, 7, 7, 7, 7, 7, 11, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, @@ -249,7 +254,7 @@ static const uint32_t kZeroRepsDepth[704] = { 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, }; -static const uint64_t kNonZeroRepsBits[704] = { +static const uint64_t kNonZeroRepsBits[BROTLI_NUM_COMMAND_SYMBOLS] = { 0x0000000b, 0x0000001b, 0x0000002b, 0x0000003b, 0x000002cb, 0x000006cb, 0x00000acb, 0x00000ecb, 0x000002db, 0x000006db, 0x00000adb, 0x00000edb, 0x000002eb, 0x000006eb, 0x00000aeb, 0x00000eeb, 0x000002fb, 0x000006fb, @@ -370,7 +375,7 @@ static const uint64_t kNonZeroRepsBits[704] = { 0x2baeb6db, 0x3baeb6db, }; -static const uint32_t kNonZeroRepsDepth[704] = { +static const uint32_t kNonZeroRepsDepth[BROTLI_NUM_COMMAND_SYMBOLS] = { 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, @@ -417,47 +422,7 @@ static const uint32_t kNonZeroRepsDepth[704] = { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, }; -static const uint16_t kStaticLiteralCodeBits[256] = { - 0, 128, 64, 192, 32, 160, 96, 224, - 16, 144, 80, 208, 48, 176, 112, 240, - 8, 136, 72, 200, 40, 168, 104, 232, - 24, 152, 88, 216, 56, 184, 120, 248, - 4, 132, 68, 196, 36, 164, 100, 228, - 20, 148, 84, 212, 52, 180, 116, 244, - 12, 140, 76, 204, 44, 172, 108, 236, - 28, 156, 92, 220, 60, 188, 124, 252, - 2, 130, 66, 194, 34, 162, 98, 226, - 18, 146, 82, 210, 50, 178, 114, 242, - 10, 138, 74, 202, 42, 170, 106, 234, - 26, 154, 90, 218, 58, 186, 122, 250, - 6, 134, 70, 198, 38, 166, 102, 230, - 22, 150, 86, 214, 54, 182, 118, 246, - 14, 142, 78, 206, 46, 174, 110, 238, - 30, 158, 94, 222, 62, 190, 126, 254, - 1, 129, 65, 193, 33, 161, 97, 225, - 17, 145, 81, 209, 49, 177, 113, 241, - 9, 137, 73, 201, 41, 169, 105, 233, - 25, 153, 89, 217, 57, 185, 121, 249, - 5, 133, 69, 197, 37, 165, 101, 229, - 21, 149, 85, 213, 53, 181, 117, 245, - 13, 141, 77, 205, 45, 173, 109, 237, - 29, 157, 93, 221, 61, 189, 125, 253, - 3, 131, 67, 195, 35, 163, 99, 227, - 19, 147, 83, 211, 51, 179, 115, 243, - 11, 139, 75, 203, 43, 171, 107, 235, - 27, 155, 91, 219, 59, 187, 123, 251, - 7, 135, 71, 199, 39, 167, 103, 231, - 23, 151, 87, 215, 55, 183, 119, 247, - 15, 143, 79, 207, 47, 175, 111, 239, - 31, 159, 95, 223, 63, 191, 127, 255, -}; - -inline void StoreStaticLiteralHuffmanTree(size_t* storage_ix, - uint8_t* storage) { - WriteBits(32, 0x00010003U, storage_ix, storage); -} - -static const uint16_t kStaticCommandCodeBits[kNumCommandPrefixes] = { +static const uint16_t kStaticCommandCodeBits[BROTLI_NUM_COMMAND_SYMBOLS] = { 0, 256, 128, 384, 64, 320, 192, 448, 32, 288, 160, 416, 96, 352, 224, 480, 16, 272, 144, 400, 80, 336, 208, 464, @@ -548,10 +513,11 @@ static const uint16_t kStaticCommandCodeBits[kNumCommandPrefixes] = { 255, 1279, 767, 1791, 511, 1535, 1023, 2047, }; -inline void StoreStaticCommandHuffmanTree(size_t* storage_ix, - uint8_t* storage) { - WriteBits(28, 0x0000000006307003U, storage_ix, storage); - WriteBits(31, 0x0000000009262441U, storage_ix, storage); +static BROTLI_INLINE void StoreStaticCommandHuffmanTree( + size_t* storage_ix, uint8_t* storage) { + BrotliWriteBits( + 56, MAKE_UINT64_T(0x926244U, 0x16307003U), storage_ix, storage); + BrotliWriteBits(3, 0x00000000U, storage_ix, storage); } static const uint16_t kStaticDistanceCodeBits[64] = { @@ -561,12 +527,13 @@ static const uint16_t kStaticDistanceCodeBits[64] = { 3, 35, 19, 51, 11, 43, 27, 59, 7, 39, 23, 55, 15, 47, 31, 63, }; -inline void StoreStaticDistanceHuffmanTree(size_t* storage_ix, - uint8_t* storage) { - WriteBits(18, 0x000000000001dc03U, storage_ix, storage); - WriteBits(10, 0x00000000000000daU, storage_ix, storage); +static BROTLI_INLINE void StoreStaticDistanceHuffmanTree( + size_t* storage_ix, uint8_t* storage) { + BrotliWriteBits(28, 0x0369dc03U, storage_ix, storage); } -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_ENTROPY_ENCODE_STATIC_H_ +#endif /* BROTLI_ENC_ENTROPY_ENCODE_STATIC_H_ */ diff --git a/thirdparty/brotli/enc/fast_log.h b/thirdparty/brotli/enc/fast_log.h index c3f3ca73..ca1d6cb3 100644 --- a/thirdparty/brotli/enc/fast_log.h +++ b/thirdparty/brotli/enc/fast_log.h @@ -4,21 +4,23 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Utilities for fast computation of logarithms. +/* Utilities for fast computation of logarithms. */ #ifndef BROTLI_ENC_FAST_LOG_H_ #define BROTLI_ENC_FAST_LOG_H_ -#include <assert.h> #include <math.h> -#include "./types.h" +#include "../common/types.h" +#include "../common/port.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -static inline uint32_t Log2FloorNonZero(size_t n) { +static BROTLI_INLINE uint32_t Log2FloorNonZero(size_t n) { #ifdef __GNUC__ - return 31u ^ static_cast<uint32_t>(__builtin_clz(static_cast<uint32_t>(n))); + return 31u ^ (uint32_t)__builtin_clz((uint32_t)n); #else uint32_t result = 0; while (n >>= 1) result++; @@ -26,10 +28,10 @@ static inline uint32_t Log2FloorNonZero(size_t n) { #endif } -// A lookup table for small values of log2(int) to be used in entropy -// computation. -// -// ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) +/* A lookup table for small values of log2(int) to be used in entropy + computation. + + ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) */ static const float kLog2Table[] = { 0.0000000000000000f, 0.0000000000000000f, 1.0000000000000000f, 1.5849625007211563f, 2.0000000000000000f, 2.3219280948873622f, @@ -119,21 +121,25 @@ static const float kLog2Table[] = { 7.9943534368588578f }; -// Faster logarithm for small integers, with the property of log2(0) == 0. -static inline double FastLog2(size_t v) { +#define LOG_2_INV 1.4426950408889634 + +/* Faster logarithm for small integers, with the property of log2(0) == 0. */ +static BROTLI_INLINE double FastLog2(size_t v) { if (v < sizeof(kLog2Table) / sizeof(kLog2Table[0])) { return kLog2Table[v]; } -#if defined(_MSC_VER) && _MSC_VER <= 1600 || defined(ANDROID) - // Visual Studio 2010 does not have the log2() function defined, so we use - // log() and a multiplication instead. - static const double kLog2Inv = 1.4426950408889634f; - return log(static_cast<double>(v)) * kLog2Inv; +#if (defined(_MSC_VER) && _MSC_VER <= 1700) || \ + (defined(__ANDROID_API__) && __ANDROID_API__ < 18) + /* Visual Studio 2012 and Android API levels < 18 do not have the log2() + * function defined, so we use log() and a multiplication instead. */ + return log((double)v) * LOG_2_INV; #else - return log2(static_cast<double>(v)); + return log2((double)v); #endif } -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_FAST_LOG_H_ +#endif /* BROTLI_ENC_FAST_LOG_H_ */ diff --git a/thirdparty/brotli/enc/find_match_length.h b/thirdparty/brotli/enc/find_match_length.h index 1337ec36..2b38abf0 100644 --- a/thirdparty/brotli/enc/find_match_length.h +++ b/thirdparty/brotli/enc/find_match_length.h @@ -4,25 +4,26 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Function to find maximal matching prefixes of strings. +/* Function to find maximal matching prefixes of strings. */ #ifndef BROTLI_ENC_FIND_MATCH_LENGTH_H_ #define BROTLI_ENC_FIND_MATCH_LENGTH_H_ - +#include "../common/types.h" #include "./port.h" -#include "./types.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -// Separate implementation for little-endian 64-bit targets, for speed. +/* Separate implementation for little-endian 64-bit targets, for speed. */ #if defined(__GNUC__) && defined(_LP64) && defined(IS_LITTLE_ENDIAN) -static inline size_t FindMatchLengthWithLimit(const uint8_t* s1, - const uint8_t* s2, - size_t limit) { +static BROTLI_INLINE size_t FindMatchLengthWithLimit(const uint8_t* s1, + const uint8_t* s2, + size_t limit) { size_t matched = 0; - size_t limit2 = (limit >> 3) + 1; // + 1 is for pre-decrement in while + size_t limit2 = (limit >> 3) + 1; /* + 1 is for pre-decrement in while */ while (PREDICT_TRUE(--limit2)) { if (PREDICT_FALSE(BROTLI_UNALIGNED_LOAD64(s2) == BROTLI_UNALIGNED_LOAD64(s1 + matched))) { @@ -31,12 +32,12 @@ static inline size_t FindMatchLengthWithLimit(const uint8_t* s1, } else { uint64_t x = BROTLI_UNALIGNED_LOAD64(s2) ^ BROTLI_UNALIGNED_LOAD64(s1 + matched); - size_t matching_bits = static_cast<size_t>(__builtin_ctzll(x)); + size_t matching_bits = (size_t)__builtin_ctzll(x); matched += matching_bits >> 3; return matched; } } - limit = (limit & 7) + 1; // + 1 is for pre-decrement in while + limit = (limit & 7) + 1; /* + 1 is for pre-decrement in while */ while (--limit) { if (PREDICT_TRUE(s1[matched] == *s2)) { ++s2; @@ -48,16 +49,16 @@ static inline size_t FindMatchLengthWithLimit(const uint8_t* s1, return matched; } #else -static inline size_t FindMatchLengthWithLimit(const uint8_t* s1, - const uint8_t* s2, - size_t limit) { +static BROTLI_INLINE size_t FindMatchLengthWithLimit(const uint8_t* s1, + const uint8_t* s2, + size_t limit) { size_t matched = 0; const uint8_t* s2_limit = s2 + limit; const uint8_t* s2_ptr = s2; - // Find out how long the match is. We loop over the data 32 bits at a - // time until we find a 32-bit block that doesn't match; then we find - // the first non-matching bit and use that to calculate the total - // length of the match. + /* Find out how long the match is. We loop over the data 32 bits at a + time until we find a 32-bit block that doesn't match; then we find + the first non-matching bit and use that to calculate the total + length of the match. */ while (s2_ptr <= s2_limit - 4 && BROTLI_UNALIGNED_LOAD32(s2_ptr) == BROTLI_UNALIGNED_LOAD32(s1 + matched)) { @@ -72,6 +73,8 @@ static inline size_t FindMatchLengthWithLimit(const uint8_t* s1, } #endif -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_FIND_MATCH_LENGTH_H_ +#endif /* BROTLI_ENC_FIND_MATCH_LENGTH_H_ */ diff --git a/thirdparty/brotli/enc/hash.h b/thirdparty/brotli/enc/hash.h index 8716863b..6efa6c69 100644 --- a/thirdparty/brotli/enc/hash.h +++ b/thirdparty/brotli/enc/hash.h @@ -4,30 +4,32 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// A (forgetful) hash table to the data seen by the compressor, to -// help create backward references to previous data. +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. */ #ifndef BROTLI_ENC_HASH_H_ #define BROTLI_ENC_HASH_H_ -#include <sys/types.h> -#include <algorithm> -#include <cstring> -#include <limits> +#include <string.h> /* memcmp, memset */ +#include "../common/constants.h" +#include "../common/dictionary.h" +#include "../common/types.h" #include "./dictionary_hash.h" #include "./fast_log.h" #include "./find_match_length.h" +#include "./memory.h" #include "./port.h" -#include "./prefix.h" +#include "./quality.h" #include "./static_dict.h" -#include "./transform.h" -#include "./types.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -static const size_t kMaxTreeSearchDepth = 64; -static const size_t kMaxTreeCompLength = 128; +#define MAX_TREE_SEARCH_DEPTH 64 +#define MAX_TREE_COMP_LENGTH 128 +#define score_t size_t static const uint32_t kDistanceCacheIndex[] = { 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, @@ -41,934 +43,675 @@ static const uint8_t kCutoffTransforms[] = { 0, 12, 27, 23, 42, 63, 56, 48, 59, 64 }; -// kHashMul32 multiplier has these properties: -// * The multiplier must be odd. Otherwise we may lose the highest bit. -// * No long streaks of 1s or 0s. -// * There is no effort to ensure that it is a prime, the oddity is enough -// for this use. -// * The number has been tuned heuristically against compression benchmarks. +typedef struct HasherSearchResult { + size_t len; + size_t len_x_code; /* == len ^ len_code */ + size_t distance; + score_t score; +} HasherSearchResult; + +typedef struct DictionarySearchStatictics { + size_t num_lookups; + size_t num_matches; +} DictionarySearchStatictics; + +/* kHashMul32 multiplier has these properties: + * The multiplier must be odd. Otherwise we may lose the highest bit. + * No long streaks of 1s or 0s. + * There is no effort to ensure that it is a prime, the oddity is enough + for this use. + * The number has been tuned heuristically against compression benchmarks. */ static const uint32_t kHashMul32 = 0x1e35a7bd; -template<int kShiftBits> -inline uint32_t Hash(const uint8_t *data) { +static BROTLI_INLINE uint32_t Hash14(const uint8_t* data) { uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32; - // The higher bits contain more mixture from the multiplication, - // so we take our results from there. - return h >> (32 - kShiftBits); + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return h >> (32 - 14); } -// Usually, we always choose the longest backward reference. This function -// allows for the exception of that rule. -// -// If we choose a backward reference that is further away, it will -// usually be coded with more bits. We approximate this by assuming -// log2(distance). If the distance can be expressed in terms of the -// last four distances, we use some heuristic constants to estimate -// the bits cost. For the first up to four literals we use the bit -// cost of the literals from the literal cost model, after that we -// use the average bit cost of the cost model. -// -// This function is used to sometimes discard a longer backward reference -// when it is not much longer and the bit cost for encoding it is more -// than the saved literals. -// -// backward_reference_offset MUST be positive. -inline double BackwardReferenceScore(size_t copy_length, - size_t backward_reference_offset) { - return 5.4 * static_cast<double>(copy_length) - - 1.20 * Log2FloorNonZero(backward_reference_offset); +#define BROTLI_LITERAL_BYTE_SCORE 540 +#define BROTLI_DISTANCE_BIT_PENALTY 120 +/* Score must be positive after applying maximal penalty. */ +#define BROTLI_SCORE_BASE (BROTLI_DISTANCE_BIT_PENALTY * 8 * sizeof(size_t)) + +/* Usually, we always choose the longest backward reference. This function + allows for the exception of that rule. + + If we choose a backward reference that is further away, it will + usually be coded with more bits. We approximate this by assuming + log2(distance). If the distance can be expressed in terms of the + last four distances, we use some heuristic constants to estimate + the bits cost. For the first up to four literals we use the bit + cost of the literals from the literal cost model, after that we + use the average bit cost of the cost model. + + This function is used to sometimes discard a longer backward reference + when it is not much longer and the bit cost for encoding it is more + than the saved literals. + + backward_reference_offset MUST be positive. */ +static BROTLI_INLINE score_t BackwardReferenceScore( + size_t copy_length, size_t backward_reference_offset) { + return BROTLI_SCORE_BASE + BROTLI_LITERAL_BYTE_SCORE * (score_t)copy_length - + BROTLI_DISTANCE_BIT_PENALTY * Log2FloorNonZero(backward_reference_offset); } -inline double BackwardReferenceScoreUsingLastDistance(size_t copy_length, - size_t distance_short_code) { - static const double kDistanceShortCodeBitCost[16] = { - -0.6, 0.95, 1.17, 1.27, - 0.93, 0.93, 0.96, 0.96, 0.99, 0.99, - 1.05, 1.05, 1.15, 1.15, 1.25, 1.25 - }; - return 5.4 * static_cast<double>(copy_length) - - kDistanceShortCodeBitCost[distance_short_code]; -} - -struct BackwardMatch { - BackwardMatch(void) : distance(0), length_and_code(0) {} - - BackwardMatch(size_t dist, size_t len) - : distance(static_cast<uint32_t>(dist)) - , length_and_code(static_cast<uint32_t>(len << 5)) {} - - BackwardMatch(size_t dist, size_t len, size_t len_code) - : distance(static_cast<uint32_t>(dist)) - , length_and_code(static_cast<uint32_t>( - (len << 5) | (len == len_code ? 0 : len_code))) {} - - size_t length(void) const { - return length_and_code >> 5; - } - size_t length_code(void) const { - size_t code = length_and_code & 31; - return code ? code : length(); - } - - uint32_t distance; - uint32_t length_and_code; +static const score_t kDistanceShortCodeCost[BROTLI_NUM_DISTANCE_SHORT_CODES] = { + /* Repeat last */ + BROTLI_SCORE_BASE + 60, + /* 2nd, 3rd, 4th last */ + BROTLI_SCORE_BASE - 95, + BROTLI_SCORE_BASE - 117, + BROTLI_SCORE_BASE - 127, + /* Last with offset */ + BROTLI_SCORE_BASE - 93, + BROTLI_SCORE_BASE - 93, + BROTLI_SCORE_BASE - 96, + BROTLI_SCORE_BASE - 96, + BROTLI_SCORE_BASE - 99, + BROTLI_SCORE_BASE - 99, + /* 2nd last with offset */ + BROTLI_SCORE_BASE - 105, + BROTLI_SCORE_BASE - 105, + BROTLI_SCORE_BASE - 115, + BROTLI_SCORE_BASE - 115, + BROTLI_SCORE_BASE - 125, + BROTLI_SCORE_BASE - 125 }; -// A (forgetful) hash table to the data seen by the compressor, to -// help create backward references to previous data. -// -// This is a hash map of fixed size (kBucketSize). Starting from the -// given index, kBucketSweep buckets are used to store values of a key. -template <int kBucketBits, int kBucketSweep, bool kUseDictionary> -class HashLongestMatchQuickly { - public: - HashLongestMatchQuickly(void) { - Reset(); - } - void Reset(void) { - need_init_ = true; - num_dict_lookups_ = 0; - num_dict_matches_ = 0; - } - void Init(void) { - if (need_init_) { - // It is not strictly necessary to fill this buffer here, but - // not filling will make the results of the compression stochastic - // (but correct). This is because random data would cause the - // system to find accidentally good backward references here and there. - memset(&buckets_[0], 0, sizeof(buckets_)); - need_init_ = false; - } - } - void InitForData(const uint8_t* data, size_t num) { - for (size_t i = 0; i < num; ++i) { - const uint32_t key = HashBytes(&data[i]); - memset(&buckets_[key], 0, kBucketSweep * sizeof(buckets_[0])); - need_init_ = false; - } - } - // Look at 4 bytes at data. - // Compute a hash from these, and store the value somewhere within - // [ix .. ix+3]. - inline void Store(const uint8_t *data, const uint32_t ix) { - const uint32_t key = HashBytes(data); - // Wiggle the value with the bucket sweep range. - const uint32_t off = (ix >> 3) % kBucketSweep; - buckets_[key + off] = ix; - } - - // Find a longest backward match of &ring_buffer[cur_ix & ring_buffer_mask] - // up to the length of max_length and stores the position cur_ix in the - // hash table. - // - // Does not look for matches longer than max_length. - // Does not look for matches further away than max_backward. - // Writes the best found match length into best_len_out. - // Writes the index (&data[index]) of the start of the best match into - // best_distance_out. - inline bool FindLongestMatch(const uint8_t * __restrict ring_buffer, - const size_t ring_buffer_mask, - const int* __restrict distance_cache, - const size_t cur_ix, - const size_t max_length, - const size_t max_backward, - size_t * __restrict best_len_out, - size_t * __restrict best_len_code_out, - size_t * __restrict best_distance_out, - double* __restrict best_score_out) { - const size_t best_len_in = *best_len_out; - const size_t cur_ix_masked = cur_ix & ring_buffer_mask; - const uint32_t key = HashBytes(&ring_buffer[cur_ix_masked]); - int compare_char = ring_buffer[cur_ix_masked + best_len_in]; - double best_score = *best_score_out; - size_t best_len = best_len_in; - size_t cached_backward = static_cast<size_t>(distance_cache[0]); - size_t prev_ix = cur_ix - cached_backward; - bool match_found = false; - if (prev_ix < cur_ix) { - prev_ix &= static_cast<uint32_t>(ring_buffer_mask); - if (compare_char == ring_buffer[prev_ix + best_len]) { - size_t len = FindMatchLengthWithLimit(&ring_buffer[prev_ix], - &ring_buffer[cur_ix_masked], - max_length); - if (len >= 4) { - best_score = BackwardReferenceScoreUsingLastDistance(len, 0); - best_len = len; - *best_len_out = len; - *best_len_code_out = len; - *best_distance_out = cached_backward; - *best_score_out = best_score; - compare_char = ring_buffer[cur_ix_masked + best_len]; - if (kBucketSweep == 1) { - buckets_[key] = static_cast<uint32_t>(cur_ix); - return true; - } else { - match_found = true; - } - } - } - } - if (kBucketSweep == 1) { - // Only one to look for, don't bother to prepare for a loop. - prev_ix = buckets_[key]; - buckets_[key] = static_cast<uint32_t>(cur_ix); - size_t backward = cur_ix - prev_ix; - prev_ix &= static_cast<uint32_t>(ring_buffer_mask); - if (compare_char != ring_buffer[prev_ix + best_len_in]) { - return false; - } - if (PREDICT_FALSE(backward == 0 || backward > max_backward)) { - return false; - } - const size_t len = FindMatchLengthWithLimit(&ring_buffer[prev_ix], - &ring_buffer[cur_ix_masked], - max_length); - if (len >= 4) { - *best_len_out = len; - *best_len_code_out = len; - *best_distance_out = backward; - *best_score_out = BackwardReferenceScore(len, backward); - return true; - } - } else { - uint32_t *bucket = buckets_ + key; - prev_ix = *bucket++; - for (int i = 0; i < kBucketSweep; ++i, prev_ix = *bucket++) { - const size_t backward = cur_ix - prev_ix; - prev_ix &= static_cast<uint32_t>(ring_buffer_mask); - if (compare_char != ring_buffer[prev_ix + best_len]) { - continue; - } - if (PREDICT_FALSE(backward == 0 || backward > max_backward)) { - continue; - } - const size_t len = FindMatchLengthWithLimit(&ring_buffer[prev_ix], - &ring_buffer[cur_ix_masked], - max_length); - if (len >= 4) { - const double score = BackwardReferenceScore(len, backward); - if (best_score < score) { - best_score = score; - best_len = len; - *best_len_out = best_len; - *best_len_code_out = best_len; - *best_distance_out = backward; - *best_score_out = score; - compare_char = ring_buffer[cur_ix_masked + best_len]; - match_found = true; - } - } - } - } - if (kUseDictionary && !match_found && - num_dict_matches_ >= (num_dict_lookups_ >> 7)) { - ++num_dict_lookups_; - const uint32_t dict_key = Hash<14>(&ring_buffer[cur_ix_masked]) << 1; - const uint16_t v = kStaticDictionaryHash[dict_key]; - if (v > 0) { - const uint32_t len = v & 31; - const uint32_t dist = v >> 5; - const size_t offset = - kBrotliDictionaryOffsetsByLength[len] + len * dist; - if (len <= max_length) { - const size_t matchlen = - FindMatchLengthWithLimit(&ring_buffer[cur_ix_masked], - &kBrotliDictionary[offset], len); - if (matchlen + kCutoffTransformsCount > len && matchlen > 0) { - const size_t transform_id = kCutoffTransforms[len - matchlen]; - const size_t word_id = - transform_id * (1u << kBrotliDictionarySizeBitsByLength[len]) + - dist; - const size_t backward = max_backward + word_id + 1; - const double score = BackwardReferenceScore(matchlen, backward); - if (best_score < score) { - ++num_dict_matches_; - best_score = score; - best_len = matchlen; - *best_len_out = best_len; - *best_len_code_out = len; - *best_distance_out = backward; - *best_score_out = best_score; - match_found = true; - } - } - } - } - } - const uint32_t off = (cur_ix >> 3) % kBucketSweep; - buckets_[key + off] = static_cast<uint32_t>(cur_ix); - return match_found; - } - - enum { kHashLength = 5 }; - enum { kHashTypeLength = 8 }; - // HashBytes is the function that chooses the bucket to place - // the address in. The HashLongestMatch and HashLongestMatchQuickly - // classes have separate, different implementations of hashing. - static uint32_t HashBytes(const uint8_t *data) { - // Computing a hash based on 5 bytes works much better for - // qualities 1 and 3, where the next hash value is likely to replace - uint64_t h = (BROTLI_UNALIGNED_LOAD64(data) << 24) * kHashMul32; - // The higher bits contain more mixture from the multiplication, - // so we take our results from there. - return static_cast<uint32_t>(h >> (64 - kBucketBits)); - } - - enum { kHashMapSize = 4 << kBucketBits }; - - private: - static const uint32_t kBucketSize = 1 << kBucketBits; - uint32_t buckets_[kBucketSize + kBucketSweep]; - // True if buckets_ array needs to be initialized. - bool need_init_; - size_t num_dict_lookups_; - size_t num_dict_matches_; -}; +static BROTLI_INLINE score_t BackwardReferenceScoreUsingLastDistance( + size_t copy_length, size_t distance_short_code) { + return BROTLI_LITERAL_BYTE_SCORE * (score_t)copy_length + + kDistanceShortCodeCost[distance_short_code]; +} -// A (forgetful) hash table to the data seen by the compressor, to -// help create backward references to previous data. -// -// This is a hash map of fixed size (kBucketSize) to a ring buffer of -// fixed size (kBlockSize). The ring buffer contains the last kBlockSize -// index positions of the given hash key in the compressed data. -template <int kBucketBits, - int kBlockBits, - int kNumLastDistancesToCheck> -class HashLongestMatch { - public: - HashLongestMatch(void) { - Reset(); - } +static BROTLI_INLINE void DictionarySearchStaticticsReset( + DictionarySearchStatictics* self) { + self->num_lookups = 0; + self->num_matches = 0; +} - void Reset(void) { - need_init_ = true; - num_dict_lookups_ = 0; - num_dict_matches_ = 0; - } +static BROTLI_INLINE BROTLI_BOOL TestStaticDictionaryItem( + size_t item, const uint8_t* data, size_t max_length, size_t max_backward, + HasherSearchResult* out) { + size_t len; + size_t dist; + size_t offset; + size_t matchlen; + size_t backward; + score_t score; + len = item & 31; + dist = item >> 5; + offset = kBrotliDictionaryOffsetsByLength[len] + len * dist; + if (len > max_length) { + return BROTLI_FALSE; + } + + matchlen = FindMatchLengthWithLimit(data, &kBrotliDictionary[offset], len); + if (matchlen + kCutoffTransformsCount <= len || matchlen == 0) { + return BROTLI_FALSE; + } + { + size_t transform_id = kCutoffTransforms[len - matchlen]; + backward = max_backward + dist + 1 + + (transform_id << kBrotliDictionarySizeBitsByLength[len]); + } + score = BackwardReferenceScore(matchlen, backward); + if (score < out->score) { + return BROTLI_FALSE; + } + out->len = matchlen; + out->len_x_code = len ^ matchlen; + out->distance = backward; + out->score = score; + return BROTLI_TRUE; +} - void Init(void) { - if (need_init_) { - memset(&num_[0], 0, sizeof(num_)); - need_init_ = false; +static BROTLI_INLINE BROTLI_BOOL SearchInStaticDictionary( + DictionarySearchStatictics* self, const uint8_t* data, size_t max_length, + size_t max_backward, HasherSearchResult* out, BROTLI_BOOL shallow) { + size_t key; + size_t i; + BROTLI_BOOL is_match_found = BROTLI_FALSE; + if (self->num_matches < (self->num_lookups >> 7)) { + return BROTLI_FALSE; + } + key = Hash14(data) << 1; + for (i = 0; i < (shallow ? 1 : 2); ++i, ++key) { + size_t item = kStaticDictionaryHash[key]; + self->num_lookups++; + if (item != 0 && + TestStaticDictionaryItem(item, data, max_length, max_backward, out)) { + self->num_matches++; + is_match_found = BROTLI_TRUE; } } + return is_match_found; +} - void InitForData(const uint8_t* data, size_t num) { - for (size_t i = 0; i < num; ++i) { - const uint32_t key = HashBytes(&data[i]); - num_[key] = 0; - need_init_ = false; - } - } +typedef struct BackwardMatch { + uint32_t distance; + uint32_t length_and_code; +} BackwardMatch; - // Look at 3 bytes at data. - // Compute a hash from these, and store the value of ix at that position. - inline void Store(const uint8_t *data, const uint32_t ix) { - const uint32_t key = HashBytes(data); - const int minor_ix = num_[key] & kBlockMask; - buckets_[key][minor_ix] = ix; - ++num_[key]; - } +static BROTLI_INLINE void InitBackwardMatch(BackwardMatch* self, + size_t dist, size_t len) { + self->distance = (uint32_t)dist; + self->length_and_code = (uint32_t)(len << 5); +} - // Find a longest backward match of &data[cur_ix] up to the length of - // max_length and stores the position cur_ix in the hash table. - // - // Does not look for matches longer than max_length. - // Does not look for matches further away than max_backward. - // Writes the best found match length into best_len_out. - // Writes the index (&data[index]) offset from the start of the best match - // into best_distance_out. - // Write the score of the best match into best_score_out. - bool FindLongestMatch(const uint8_t * __restrict data, - const size_t ring_buffer_mask, - const int* __restrict distance_cache, - const size_t cur_ix, - const size_t max_length, - const size_t max_backward, - size_t * __restrict best_len_out, - size_t * __restrict best_len_code_out, - size_t * __restrict best_distance_out, - double * __restrict best_score_out) { - *best_len_code_out = 0; - const size_t cur_ix_masked = cur_ix & ring_buffer_mask; - bool match_found = false; - // Don't accept a short copy from far away. - double best_score = *best_score_out; - size_t best_len = *best_len_out; - *best_len_out = 0; - // Try last distance first. - for (size_t i = 0; i < kNumLastDistancesToCheck; ++i) { - const size_t idx = kDistanceCacheIndex[i]; - const size_t backward = - static_cast<size_t>(distance_cache[idx] + kDistanceCacheOffset[i]); - size_t prev_ix = static_cast<size_t>(cur_ix - backward); - if (prev_ix >= cur_ix) { - continue; - } - if (PREDICT_FALSE(backward > max_backward)) { - continue; - } - prev_ix &= ring_buffer_mask; +static BROTLI_INLINE void InitDictionaryBackwardMatch(BackwardMatch* self, + size_t dist, size_t len, size_t len_code) { + self->distance = (uint32_t)dist; + self->length_and_code = + (uint32_t)((len << 5) | (len == len_code ? 0 : len_code)); +} - if (cur_ix_masked + best_len > ring_buffer_mask || - prev_ix + best_len > ring_buffer_mask || - data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { - continue; - } - const size_t len = FindMatchLengthWithLimit(&data[prev_ix], - &data[cur_ix_masked], - max_length); - if (len >= 3 || (len == 2 && i < 2)) { - // Comparing for >= 2 does not change the semantics, but just saves for - // a few unnecessary binary logarithms in backward reference score, - // since we are not interested in such short matches. - double score = BackwardReferenceScoreUsingLastDistance(len, i); - if (best_score < score) { - best_score = score; - best_len = len; - *best_len_out = best_len; - *best_len_code_out = best_len; - *best_distance_out = backward; - *best_score_out = best_score; - match_found = true; - } - } - } - const uint32_t key = HashBytes(&data[cur_ix_masked]); - const uint32_t * __restrict const bucket = &buckets_[key][0]; - const size_t down = (num_[key] > kBlockSize) ? (num_[key] - kBlockSize) : 0; - for (size_t i = num_[key]; i > down;) { - --i; - size_t prev_ix = bucket[i & kBlockMask]; - const size_t backward = cur_ix - prev_ix; - if (PREDICT_FALSE(backward == 0 || backward > max_backward)) { - break; - } - prev_ix &= ring_buffer_mask; - if (cur_ix_masked + best_len > ring_buffer_mask || - prev_ix + best_len > ring_buffer_mask || - data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { - continue; - } - const size_t len = FindMatchLengthWithLimit(&data[prev_ix], - &data[cur_ix_masked], - max_length); - if (len >= 4) { - // Comparing for >= 3 does not change the semantics, but just saves - // for a few unnecessary binary logarithms in backward reference - // score, since we are not interested in such short matches. - double score = BackwardReferenceScore(len, backward); - if (best_score < score) { - best_score = score; - best_len = len; - *best_len_out = best_len; - *best_len_code_out = best_len; - *best_distance_out = backward; - *best_score_out = best_score; - match_found = true; - } - } - } - buckets_[key][num_[key] & kBlockMask] = static_cast<uint32_t>(cur_ix); - ++num_[key]; - if (!match_found && num_dict_matches_ >= (num_dict_lookups_ >> 7)) { - size_t dict_key = Hash<14>(&data[cur_ix_masked]) << 1; - for (int k = 0; k < 2; ++k, ++dict_key) { - ++num_dict_lookups_; - const uint16_t v = kStaticDictionaryHash[dict_key]; - if (v > 0) { - const size_t len = v & 31; - const size_t dist = v >> 5; - const size_t offset = - kBrotliDictionaryOffsetsByLength[len] + len * dist; - if (len <= max_length) { - const size_t matchlen = - FindMatchLengthWithLimit(&data[cur_ix_masked], - &kBrotliDictionary[offset], len); - if (matchlen + kCutoffTransformsCount > len && matchlen > 0) { - const size_t transform_id = kCutoffTransforms[len - matchlen]; - const size_t word_id = - transform_id * (1 << kBrotliDictionarySizeBitsByLength[len]) + - dist; - const size_t backward = max_backward + word_id + 1; - double score = BackwardReferenceScore(matchlen, backward); - if (best_score < score) { - ++num_dict_matches_; - best_score = score; - best_len = matchlen; - *best_len_out = best_len; - *best_len_code_out = len; - *best_distance_out = backward; - *best_score_out = best_score; - match_found = true; - } - } - } - } - } - } - return match_found; - } +static BROTLI_INLINE size_t BackwardMatchLength(const BackwardMatch* self) { + return self->length_and_code >> 5; +} - // Finds all backward matches of &data[cur_ix & ring_buffer_mask] up to the - // length of max_length and stores the position cur_ix in the hash table. - // - // Sets *num_matches to the number of matches found, and stores the found - // matches in matches[0] to matches[*num_matches - 1]. The matches will be - // sorted by strictly increasing length and (non-strictly) increasing - // distance. - size_t FindAllMatches(const uint8_t* data, - const size_t ring_buffer_mask, - const size_t cur_ix, - const size_t max_length, - const size_t max_backward, - BackwardMatch* matches) { - BackwardMatch* const orig_matches = matches; - const size_t cur_ix_masked = cur_ix & ring_buffer_mask; - size_t best_len = 1; - size_t stop = cur_ix - 64; - if (cur_ix < 64) { stop = 0; } - for (size_t i = cur_ix - 1; i > stop && best_len <= 2; --i) { - size_t prev_ix = i; - const size_t backward = cur_ix - prev_ix; - if (PREDICT_FALSE(backward > max_backward)) { - break; - } - prev_ix &= ring_buffer_mask; - if (data[cur_ix_masked] != data[prev_ix] || - data[cur_ix_masked + 1] != data[prev_ix + 1]) { - continue; - } - const size_t len = - FindMatchLengthWithLimit(&data[prev_ix], &data[cur_ix_masked], - max_length); - if (len > best_len) { - best_len = len; - *matches++ = BackwardMatch(backward, len); - } - } - const uint32_t key = HashBytes(&data[cur_ix_masked]); - const uint32_t * __restrict const bucket = &buckets_[key][0]; - const size_t down = (num_[key] > kBlockSize) ? (num_[key] - kBlockSize) : 0; - for (size_t i = num_[key]; i > down;) { - --i; - size_t prev_ix = bucket[i & kBlockMask]; - const size_t backward = cur_ix - prev_ix; - if (PREDICT_FALSE(backward == 0 || backward > max_backward)) { - break; - } - prev_ix &= ring_buffer_mask; - if (cur_ix_masked + best_len > ring_buffer_mask || - prev_ix + best_len > ring_buffer_mask || - data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { - continue; - } - const size_t len = - FindMatchLengthWithLimit(&data[prev_ix], &data[cur_ix_masked], - max_length); - if (len > best_len) { - best_len = len; - *matches++ = BackwardMatch(backward, len); - } - } - buckets_[key][num_[key] & kBlockMask] = static_cast<uint32_t>(cur_ix); - ++num_[key]; - uint32_t dict_matches[kMaxDictionaryMatchLen + 1]; - for (size_t i = 0; i <= kMaxDictionaryMatchLen; ++i) { - dict_matches[i] = kInvalidMatch; - } - size_t minlen = std::max<size_t>(4, best_len + 1); - if (FindAllStaticDictionaryMatches(&data[cur_ix_masked], minlen, max_length, - &dict_matches[0])) { - size_t maxlen = std::min<size_t>(kMaxDictionaryMatchLen, max_length); - for (size_t l = minlen; l <= maxlen; ++l) { - uint32_t dict_id = dict_matches[l]; - if (dict_id < kInvalidMatch) { - *matches++ = BackwardMatch(max_backward + (dict_id >> 5) + 1, l, - dict_id & 31); - } - } - } - return static_cast<size_t>(matches - orig_matches); - } +static BROTLI_INLINE size_t BackwardMatchLengthCode(const BackwardMatch* self) { + size_t code = self->length_and_code & 31; + return code ? code : BackwardMatchLength(self); +} - enum { kHashLength = 4 }; - enum { kHashTypeLength = 4 }; - - // HashBytes is the function that chooses the bucket to place - // the address in. The HashLongestMatch and HashLongestMatchQuickly - // classes have separate, different implementations of hashing. - static uint32_t HashBytes(const uint8_t *data) { - uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32; - // The higher bits contain more mixture from the multiplication, - // so we take our results from there. - return h >> (32 - kBucketBits); - } +#define EXPAND_CAT(a, b) CAT(a, b) +#define CAT(a, b) a ## b +#define FN(X) EXPAND_CAT(X, HASHER()) - enum { kHashMapSize = 2 << kBucketBits }; +#define MAX_NUM_MATCHES_H10 (64 + MAX_TREE_SEARCH_DEPTH) - static const size_t kMaxNumMatches = 64 + (1 << kBlockBits); +#define HASHER() H10 +#define HashToBinaryTree HASHER() - private: - // Number of hash buckets. - static const uint32_t kBucketSize = 1 << kBucketBits; +#define BUCKET_BITS 17 +#define BUCKET_SIZE (1 << BUCKET_BITS) - // Only kBlockSize newest backward references are kept, - // and the older are forgotten. - static const uint32_t kBlockSize = 1 << kBlockBits; +static size_t FN(HashTypeLength)(void) { return 4; } +static size_t FN(StoreLookahead)(void) { return MAX_TREE_COMP_LENGTH; } - // Mask for accessing entries in a block (in a ringbuffer manner). - static const uint32_t kBlockMask = (1 << kBlockBits) - 1; +static uint32_t FN(HashBytes)(const uint8_t *data) { + uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32; + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return h >> (32 - BUCKET_BITS); +} - // Number of entries in a particular bucket. - uint16_t num_[kBucketSize]; +/* A (forgetful) hash table where each hash bucket contains a binary tree of + sequences whose first 4 bytes share the same hash code. + Each sequence is MAX_TREE_COMP_LENGTH long and is identified by its starting + position in the input data. The binary tree is sorted by the lexicographic + order of the sequences, and it is also a max-heap with respect to the + starting positions. */ +typedef struct HashToBinaryTree { + /* The window size minus 1 */ + size_t window_mask_; - // Buckets containing kBlockSize of backward references. - uint32_t buckets_[kBucketSize][kBlockSize]; + /* Hash table that maps the 4-byte hashes of the sequence to the last + position where this hash was found, which is the root of the binary + tree of sequences that share this hash bucket. */ + uint32_t buckets_[BUCKET_SIZE]; - // True if num_ array needs to be initialized. - bool need_init_; + /* The union of the binary trees of each hash bucket. The root of the tree + corresponding to a hash is a sequence starting at buckets_[hash] and + the left and right children of a sequence starting at pos are + forest_[2 * pos] and forest_[2 * pos + 1]. */ + uint32_t* forest_; - size_t num_dict_lookups_; - size_t num_dict_matches_; -}; + /* A position used to mark a non-existent sequence, i.e. a tree is empty if + its root is at invalid_pos_ and a node is a leaf if both its children + are at invalid_pos_. */ + uint32_t invalid_pos_; -// A (forgetful) hash table where each hash bucket contains a binary tree of -// sequences whose first 4 bytes share the same hash code. -// Each sequence is kMaxTreeCompLength long and is identified by its starting -// position in the input data. The binary tree is sorted by the lexicographic -// order of the sequences, and it is also a max-heap with respect to the -// starting positions. -class HashToBinaryTree { - public: - HashToBinaryTree() : forest_(NULL) { - Reset(); - } + size_t forest_size_; + BROTLI_BOOL is_dirty_; +} HashToBinaryTree; - ~HashToBinaryTree() { - delete[] forest_; - } +static void FN(Reset)(HashToBinaryTree* self) { + self->is_dirty_ = BROTLI_TRUE; +} - void Reset() { - need_init_ = true; - } +static void FN(Initialize)(HashToBinaryTree* self) { + self->forest_ = NULL; + self->forest_size_ = 0; + FN(Reset)(self); +} - void Init(int lgwin, size_t position, size_t bytes, bool is_last) { - if (need_init_) { - window_mask_ = (1u << lgwin) - 1u; - invalid_pos_ = static_cast<uint32_t>(-window_mask_); - for (uint32_t i = 0; i < kBucketSize; i++) { - buckets_[i] = invalid_pos_; - } - size_t num_nodes = (position == 0 && is_last) ? bytes : window_mask_ + 1; - forest_ = new uint32_t[2 * num_nodes]; - need_init_ = false; - } - } +static void FN(Cleanup)(MemoryManager* m, HashToBinaryTree* self) { + BROTLI_FREE(m, self->forest_); +} - // Finds all backward matches of &data[cur_ix & ring_buffer_mask] up to the - // length of max_length and stores the position cur_ix in the hash table. - // - // Sets *num_matches to the number of matches found, and stores the found - // matches in matches[0] to matches[*num_matches - 1]. The matches will be - // sorted by strictly increasing length and (non-strictly) increasing - // distance. - size_t FindAllMatches(const uint8_t* data, - const size_t ring_buffer_mask, - const size_t cur_ix, - const size_t max_length, - const size_t max_backward, - BackwardMatch* matches) { - BackwardMatch* const orig_matches = matches; - const size_t cur_ix_masked = cur_ix & ring_buffer_mask; - size_t best_len = 1; - size_t stop = cur_ix - 64; - if (cur_ix < 64) { stop = 0; } - for (size_t i = cur_ix - 1; i > stop && best_len <= 2; --i) { - size_t prev_ix = i; - const size_t backward = cur_ix - prev_ix; - if (PREDICT_FALSE(backward > max_backward)) { - break; - } - prev_ix &= ring_buffer_mask; - if (data[cur_ix_masked] != data[prev_ix] || - data[cur_ix_masked + 1] != data[prev_ix + 1]) { - continue; - } - const size_t len = - FindMatchLengthWithLimit(&data[prev_ix], &data[cur_ix_masked], - max_length); - if (len > best_len) { - best_len = len; - *matches++ = BackwardMatch(backward, len); - } - } - if (best_len < max_length) { - matches = StoreAndFindMatches(data, cur_ix, ring_buffer_mask, - max_length, &best_len, matches); - } - uint32_t dict_matches[kMaxDictionaryMatchLen + 1]; - for (size_t i = 0; i <= kMaxDictionaryMatchLen; ++i) { - dict_matches[i] = kInvalidMatch; +static void FN(Init)( + MemoryManager* m, HashToBinaryTree* self, const uint8_t* data, + const BrotliEncoderParams* params, size_t position, size_t bytes, + BROTLI_BOOL is_last) { + if (self->is_dirty_) { + uint32_t invalid_pos; + size_t num_nodes; + uint32_t i; + BROTLI_UNUSED(data); + self->window_mask_ = (1u << params->lgwin) - 1u; + invalid_pos = (uint32_t)(0 - self->window_mask_); + self->invalid_pos_ = invalid_pos; + for (i = 0; i < BUCKET_SIZE; i++) { + self->buckets_[i] = invalid_pos; } - size_t minlen = std::max<size_t>(4, best_len + 1); - if (FindAllStaticDictionaryMatches(&data[cur_ix_masked], minlen, max_length, - &dict_matches[0])) { - size_t maxlen = std::min<size_t>(kMaxDictionaryMatchLen, max_length); - for (size_t l = minlen; l <= maxlen; ++l) { - uint32_t dict_id = dict_matches[l]; - if (dict_id < kInvalidMatch) { - *matches++ = BackwardMatch(max_backward + (dict_id >> 5) + 1, l, - dict_id & 31); - } - } + num_nodes = (position == 0 && is_last) ? bytes : self->window_mask_ + 1; + if (num_nodes > self->forest_size_) { + BROTLI_FREE(m, self->forest_); + self->forest_ = BROTLI_ALLOC(m, uint32_t, 2 * num_nodes); + if (BROTLI_IS_OOM(m)) return; + self->forest_size_ = num_nodes; } - return static_cast<size_t>(matches - orig_matches); + self->is_dirty_ = BROTLI_FALSE; } +} - // Stores the hash of the next 4 bytes and re-roots the binary tree at the - // current sequence, without returning any matches. - // REQUIRES: cur_ix + kMaxTreeCompLength <= end-of-current-block - void Store(const uint8_t* data, - const size_t ring_buffer_mask, - const size_t cur_ix) { - size_t best_len = 0; - StoreAndFindMatches(data, cur_ix, ring_buffer_mask, kMaxTreeCompLength, - &best_len, NULL); - } +static BROTLI_INLINE size_t FN(LeftChildIndex)(HashToBinaryTree* self, + const size_t pos) { + return 2 * (pos & self->window_mask_); +} - void StitchToPreviousBlock(size_t num_bytes, - size_t position, - const uint8_t* ringbuffer, - size_t ringbuffer_mask) { - if (num_bytes >= 3 && position >= kMaxTreeCompLength) { - // Store the last `kMaxTreeCompLength - 1` positions in the hasher. - // These could not be calculated before, since they require knowledge - // of both the previous and the current block. - const size_t i_start = position - kMaxTreeCompLength + 1; - const size_t i_end = std::min(position, i_start + num_bytes); - for (size_t i = i_start; i < i_end; ++i) { - // We know that i + kMaxTreeCompLength <= position + num_bytes, i.e. the - // end of the current block and that we have at least - // kMaxTreeCompLength tail in the ringbuffer. - Store(ringbuffer, ringbuffer_mask, i); - } - } - } +static BROTLI_INLINE size_t FN(RightChildIndex)(HashToBinaryTree* self, + const size_t pos) { + return 2 * (pos & self->window_mask_) + 1; +} - static const size_t kMaxNumMatches = 64 + kMaxTreeSearchDepth; - - private: - // Stores the hash of the next 4 bytes and in a single tree-traversal, the - // hash bucket's binary tree is searched for matches and is re-rooted at the - // current position. - // - // If less than kMaxTreeCompLength data is available, the hash bucket of the - // current position is searched for matches, but the state of the hash table - // is not changed, since we can not know the final sorting order of the - // current (incomplete) sequence. - // - // This function must be called with increasing cur_ix positions. - BackwardMatch* StoreAndFindMatches(const uint8_t* const __restrict data, - const size_t cur_ix, - const size_t ring_buffer_mask, - const size_t max_length, - size_t* const __restrict best_len, - BackwardMatch* __restrict matches) { - const size_t cur_ix_masked = cur_ix & ring_buffer_mask; - const size_t max_backward = window_mask_ - 15; - const size_t max_comp_len = std::min(max_length, kMaxTreeCompLength); - const bool reroot_tree = max_length >= kMaxTreeCompLength; - const uint32_t key = HashBytes(&data[cur_ix_masked]); - size_t prev_ix = buckets_[key]; - // The forest index of the rightmost node of the left subtree of the new - // root, updated as we traverse and reroot the tree of the hash bucket. - size_t node_left = LeftChildIndex(cur_ix); - // The forest index of the leftmost node of the right subtree of the new - // root, updated as we traverse and reroot the tree of the hash bucket. - size_t node_right = RightChildIndex(cur_ix); - // The match length of the rightmost node of the left subtree of the new - // root, updated as we traverse and reroot the tree of the hash bucket. - size_t best_len_left = 0; - // The match length of the leftmost node of the right subtree of the new - // root, updated as we traverse and reroot the tree of the hash bucket. - size_t best_len_right = 0; - if (reroot_tree) { - buckets_[key] = static_cast<uint32_t>(cur_ix); - } - for (size_t depth_remaining = kMaxTreeSearchDepth; ; --depth_remaining) { - const size_t backward = cur_ix - prev_ix; - const size_t prev_ix_masked = prev_ix & ring_buffer_mask; - if (backward == 0 || backward > max_backward || depth_remaining == 0) { - if (reroot_tree) { - forest_[node_left] = invalid_pos_; - forest_[node_right] = invalid_pos_; - } - break; +/* Stores the hash of the next 4 bytes and in a single tree-traversal, the + hash bucket's binary tree is searched for matches and is re-rooted at the + current position. + + If less than MAX_TREE_COMP_LENGTH data is available, the hash bucket of the + current position is searched for matches, but the state of the hash table + is not changed, since we can not know the final sorting order of the + current (incomplete) sequence. + + This function must be called with increasing cur_ix positions. */ +static BROTLI_INLINE BackwardMatch* FN(StoreAndFindMatches)( + HashToBinaryTree* self, const uint8_t* const BROTLI_RESTRICT data, + const size_t cur_ix, const size_t ring_buffer_mask, const size_t max_length, + const size_t max_backward, size_t* const BROTLI_RESTRICT best_len, + BackwardMatch* BROTLI_RESTRICT matches) { + const size_t cur_ix_masked = cur_ix & ring_buffer_mask; + const size_t max_comp_len = + BROTLI_MIN(size_t, max_length, MAX_TREE_COMP_LENGTH); + const BROTLI_BOOL should_reroot_tree = + TO_BROTLI_BOOL(max_length >= MAX_TREE_COMP_LENGTH); + const uint32_t key = FN(HashBytes)(&data[cur_ix_masked]); + size_t prev_ix = self->buckets_[key]; + /* The forest index of the rightmost node of the left subtree of the new + root, updated as we traverse and reroot the tree of the hash bucket. */ + size_t node_left = FN(LeftChildIndex)(self, cur_ix); + /* The forest index of the leftmost node of the right subtree of the new + root, updated as we traverse and reroot the tree of the hash bucket. */ + size_t node_right = FN(RightChildIndex)(self, cur_ix); + /* The match length of the rightmost node of the left subtree of the new + root, updated as we traverse and reroot the tree of the hash bucket. */ + size_t best_len_left = 0; + /* The match length of the leftmost node of the right subtree of the new + root, updated as we traverse and reroot the tree of the hash bucket. */ + size_t best_len_right = 0; + size_t depth_remaining; + if (should_reroot_tree) { + self->buckets_[key] = (uint32_t)cur_ix; + } + for (depth_remaining = MAX_TREE_SEARCH_DEPTH; ; --depth_remaining) { + const size_t backward = cur_ix - prev_ix; + const size_t prev_ix_masked = prev_ix & ring_buffer_mask; + if (backward == 0 || backward > max_backward || depth_remaining == 0) { + if (should_reroot_tree) { + self->forest_[node_left] = self->invalid_pos_; + self->forest_[node_right] = self->invalid_pos_; } - const size_t cur_len = std::min(best_len_left, best_len_right); - const size_t len = cur_len + + break; + } + { + const size_t cur_len = BROTLI_MIN(size_t, best_len_left, best_len_right); + size_t len; + assert(cur_len <= MAX_TREE_COMP_LENGTH); + len = cur_len + FindMatchLengthWithLimit(&data[cur_ix_masked + cur_len], &data[prev_ix_masked + cur_len], max_length - cur_len); - if (len > *best_len) { + assert(0 == memcmp(&data[cur_ix_masked], &data[prev_ix_masked], len)); + if (matches && len > *best_len) { *best_len = len; - if (matches) { - *matches++ = BackwardMatch(backward, len); - } - if (len >= max_comp_len) { - if (reroot_tree) { - forest_[node_left] = forest_[LeftChildIndex(prev_ix)]; - forest_[node_right] = forest_[RightChildIndex(prev_ix)]; - } - break; + InitBackwardMatch(matches++, backward, len); + } + if (len >= max_comp_len) { + if (should_reroot_tree) { + self->forest_[node_left] = + self->forest_[FN(LeftChildIndex)(self, prev_ix)]; + self->forest_[node_right] = + self->forest_[FN(RightChildIndex)(self, prev_ix)]; } + break; } if (data[cur_ix_masked + len] > data[prev_ix_masked + len]) { best_len_left = len; - if (reroot_tree) { - forest_[node_left] = static_cast<uint32_t>(prev_ix); + if (should_reroot_tree) { + self->forest_[node_left] = (uint32_t)prev_ix; } - node_left = RightChildIndex(prev_ix); - prev_ix = forest_[node_left]; + node_left = FN(RightChildIndex)(self, prev_ix); + prev_ix = self->forest_[node_left]; } else { best_len_right = len; - if (reroot_tree) { - forest_[node_right] = static_cast<uint32_t>(prev_ix); + if (should_reroot_tree) { + self->forest_[node_right] = (uint32_t)prev_ix; } - node_right = LeftChildIndex(prev_ix); - prev_ix = forest_[node_right]; + node_right = FN(LeftChildIndex)(self, prev_ix); + prev_ix = self->forest_[node_right]; } } - return matches; - } - - inline size_t LeftChildIndex(const size_t pos) { - return 2 * (pos & window_mask_); } + return matches; +} - inline size_t RightChildIndex(const size_t pos) { - return 2 * (pos & window_mask_) + 1; +/* Finds all backward matches of &data[cur_ix & ring_buffer_mask] up to the + length of max_length and stores the position cur_ix in the hash table. + + Sets *num_matches to the number of matches found, and stores the found + matches in matches[0] to matches[*num_matches - 1]. The matches will be + sorted by strictly increasing length and (non-strictly) increasing + distance. */ +static BROTLI_INLINE size_t FN(FindAllMatches)(HashToBinaryTree* self, + const uint8_t* data, const size_t ring_buffer_mask, const size_t cur_ix, + const size_t max_length, const size_t max_backward, + const BrotliEncoderParams* params, BackwardMatch* matches) { + BackwardMatch* const orig_matches = matches; + const size_t cur_ix_masked = cur_ix & ring_buffer_mask; + size_t best_len = 1; + const size_t short_match_max_backward = + params->quality != HQ_ZOPFLIFICATION_QUALITY ? 16 : 64; + size_t stop = cur_ix - short_match_max_backward; + uint32_t dict_matches[BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN + 1]; + size_t i; + if (cur_ix < short_match_max_backward) { stop = 0; } + for (i = cur_ix - 1; i > stop && best_len <= 2; --i) { + size_t prev_ix = i; + const size_t backward = cur_ix - prev_ix; + if (PREDICT_FALSE(backward > max_backward)) { + break; + } + prev_ix &= ring_buffer_mask; + if (data[cur_ix_masked] != data[prev_ix] || + data[cur_ix_masked + 1] != data[prev_ix + 1]) { + continue; + } + { + const size_t len = + FindMatchLengthWithLimit(&data[prev_ix], &data[cur_ix_masked], + max_length); + if (len > best_len) { + best_len = len; + InitBackwardMatch(matches++, backward, len); + } + } } - - static uint32_t HashBytes(const uint8_t *data) { - uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32; - // The higher bits contain more mixture from the multiplication, - // so we take our results from there. - return h >> (32 - kBucketBits); + if (best_len < max_length) { + matches = FN(StoreAndFindMatches)(self, data, cur_ix, ring_buffer_mask, + max_length, max_backward, &best_len, matches); + } + for (i = 0; i <= BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN; ++i) { + dict_matches[i] = kInvalidMatch; + } + { + size_t minlen = BROTLI_MAX(size_t, 4, best_len + 1); + if (BrotliFindAllStaticDictionaryMatches(&data[cur_ix_masked], minlen, + max_length, &dict_matches[0])) { + size_t maxlen = BROTLI_MIN( + size_t, BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN, max_length); + size_t l; + for (l = minlen; l <= maxlen; ++l) { + uint32_t dict_id = dict_matches[l]; + if (dict_id < kInvalidMatch) { + InitDictionaryBackwardMatch(matches++, + max_backward + (dict_id >> 5) + 1, l, dict_id & 31); + } + } + } } + return (size_t)(matches - orig_matches); +} - static const int kBucketBits = 17; - static const size_t kBucketSize = 1 << kBucketBits; - - // The window size minus 1 - size_t window_mask_; - - // Hash table that maps the 4-byte hashes of the sequence to the last - // position where this hash was found, which is the root of the binary - // tree of sequences that share this hash bucket. - uint32_t buckets_[kBucketSize]; - - // The union of the binary trees of each hash bucket. The root of the tree - // corresponding to a hash is a sequence starting at buckets_[hash] and - // the left and right children of a sequence starting at pos are - // forest_[2 * pos] and forest_[2 * pos + 1]. - uint32_t* forest_; - - // A position used to mark a non-existent sequence, i.e. a tree is empty if - // its root is at invalid_pos_ and a node is a leaf if both its children - // are at invalid_pos_. - uint32_t invalid_pos_; - - bool need_init_; -}; +/* Stores the hash of the next 4 bytes and re-roots the binary tree at the + current sequence, without returning any matches. + REQUIRES: ix + MAX_TREE_COMP_LENGTH <= end-of-current-block */ +static BROTLI_INLINE void FN(Store)(HashToBinaryTree* self, const uint8_t *data, + const size_t mask, const size_t ix) { + /* Maximum distance is window size - 16, see section 9.1. of the spec. */ + const size_t max_backward = self->window_mask_ - 15; + FN(StoreAndFindMatches)(self, data, ix, mask, MAX_TREE_COMP_LENGTH, + max_backward, NULL, NULL); +} -struct Hashers { - // For kBucketSweep == 1, enabling the dictionary lookup makes compression - // a little faster (0.5% - 1%) and it compresses 0.15% better on small text - // and html inputs. - typedef HashLongestMatchQuickly<16, 1, true> H2; - typedef HashLongestMatchQuickly<16, 2, false> H3; - typedef HashLongestMatchQuickly<17, 4, true> H4; - typedef HashLongestMatch<14, 4, 4> H5; - typedef HashLongestMatch<14, 5, 4> H6; - typedef HashLongestMatch<15, 6, 10> H7; - typedef HashLongestMatch<15, 7, 10> H8; - typedef HashLongestMatch<15, 8, 16> H9; - typedef HashToBinaryTree H10; - - Hashers(void) : hash_h2(0), hash_h3(0), hash_h4(0), hash_h5(0), - hash_h6(0), hash_h7(0), hash_h8(0), hash_h9(0), hash_h10(0) {} - - ~Hashers(void) { - delete hash_h2; - delete hash_h3; - delete hash_h4; - delete hash_h5; - delete hash_h6; - delete hash_h7; - delete hash_h8; - delete hash_h9; - delete hash_h10; +static BROTLI_INLINE void FN(StoreRange)(HashToBinaryTree* self, + const uint8_t *data, const size_t mask, const size_t ix_start, + const size_t ix_end) { + size_t i = ix_start + 63 <= ix_end ? ix_end - 63 : ix_start; + for (; i < ix_end; ++i) { + FN(Store)(self, data, mask, i); } +} - void Init(int type) { - switch (type) { - case 2: hash_h2 = new H2; break; - case 3: hash_h3 = new H3; break; - case 4: hash_h4 = new H4; break; - case 5: hash_h5 = new H5; break; - case 6: hash_h6 = new H6; break; - case 7: hash_h7 = new H7; break; - case 8: hash_h8 = new H8; break; - case 9: hash_h9 = new H9; break; - case 10: hash_h10 = new H10; break; - default: break; +static BROTLI_INLINE void FN(StitchToPreviousBlock)(HashToBinaryTree* self, + size_t num_bytes, size_t position, const uint8_t* ringbuffer, + size_t ringbuffer_mask) { + if (num_bytes >= FN(HashTypeLength)() - 1 && + position >= MAX_TREE_COMP_LENGTH) { + /* Store the last `MAX_TREE_COMP_LENGTH - 1` positions in the hasher. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + const size_t i_start = position - MAX_TREE_COMP_LENGTH + 1; + const size_t i_end = BROTLI_MIN(size_t, position, i_start + num_bytes); + size_t i; + for (i = i_start; i < i_end; ++i) { + /* Maximum distance is window size - 16, see section 9.1. of the spec. + Furthermore, we have to make sure that we don't look further back + from the start of the next block than the window size, otherwise we + could access already overwritten areas of the ringbuffer. */ + const size_t max_backward = + self->window_mask_ - BROTLI_MAX(size_t, 15, position - i); + /* We know that i + MAX_TREE_COMP_LENGTH <= position + num_bytes, i.e. the + end of the current block and that we have at least + MAX_TREE_COMP_LENGTH tail in the ringbuffer. */ + FN(StoreAndFindMatches)(self, ringbuffer, i, ringbuffer_mask, + MAX_TREE_COMP_LENGTH, max_backward, NULL, NULL); } } +} - template<typename Hasher> - void WarmupHash(const size_t size, const uint8_t* dict, Hasher* hasher) { - hasher->Init(); - for (size_t i = 0; i + Hasher::kHashTypeLength - 1 < size; i++) { - hasher->Store(&dict[i], static_cast<uint32_t>(i)); - } - } +#undef BUCKET_SIZE +#undef BUCKET_BITS + +#undef HASHER + +/* For BUCKET_SWEEP == 1, enabling the dictionary lookup makes compression + a little faster (0.5% - 1%) and it compresses 0.15% better on small text + and html inputs. */ + +#define HASHER() H2 +#define BUCKET_BITS 16 +#define BUCKET_SWEEP 1 +#define USE_DICTIONARY 1 +#include "./hash_longest_match_quickly_inc.h" /* NOLINT(build/include) */ +#undef BUCKET_SWEEP +#undef USE_DICTIONARY +#undef HASHER + +#define HASHER() H3 +#define BUCKET_SWEEP 2 +#define USE_DICTIONARY 0 +#include "./hash_longest_match_quickly_inc.h" /* NOLINT(build/include) */ +#undef USE_DICTIONARY +#undef BUCKET_SWEEP +#undef BUCKET_BITS +#undef HASHER + +#define HASHER() H4 +#define BUCKET_BITS 17 +#define BUCKET_SWEEP 4 +#define USE_DICTIONARY 1 +#include "./hash_longest_match_quickly_inc.h" /* NOLINT(build/include) */ +#undef USE_DICTIONARY +#undef BUCKET_SWEEP +#undef BUCKET_BITS +#undef HASHER + +#define HASHER() H5 +#define BUCKET_BITS 14 +#define BLOCK_BITS 4 +#define NUM_LAST_DISTANCES_TO_CHECK 4 +#include "./hash_longest_match_inc.h" /* NOLINT(build/include) */ +#undef BLOCK_BITS +#undef HASHER + +#define HASHER() H6 +#define BLOCK_BITS 5 +#include "./hash_longest_match_inc.h" /* NOLINT(build/include) */ +#undef NUM_LAST_DISTANCES_TO_CHECK +#undef BLOCK_BITS +#undef BUCKET_BITS +#undef HASHER + +#define HASHER() H7 +#define BUCKET_BITS 15 +#define BLOCK_BITS 6 +#define NUM_LAST_DISTANCES_TO_CHECK 10 +#include "./hash_longest_match_inc.h" /* NOLINT(build/include) */ +#undef BLOCK_BITS +#undef HASHER + +#define HASHER() H8 +#define BLOCK_BITS 7 +#include "./hash_longest_match_inc.h" /* NOLINT(build/include) */ +#undef NUM_LAST_DISTANCES_TO_CHECK +#undef BLOCK_BITS +#undef HASHER + +#define HASHER() H9 +#define BLOCK_BITS 8 +#define NUM_LAST_DISTANCES_TO_CHECK 16 +#include "./hash_longest_match_inc.h" /* NOLINT(build/include) */ +#undef NUM_LAST_DISTANCES_TO_CHECK +#undef BLOCK_BITS +#undef BUCKET_BITS +#undef HASHER + +#define BUCKET_BITS 15 + +#define NUM_LAST_DISTANCES_TO_CHECK 4 +#define NUM_BANKS 1 +#define BANK_BITS 16 +#define HASHER() H40 +#include "./hash_forgetful_chain_inc.h" /* NOLINT(build/include) */ +#undef HASHER +#undef NUM_LAST_DISTANCES_TO_CHECK + +#define NUM_LAST_DISTANCES_TO_CHECK 10 +#define HASHER() H41 +#include "./hash_forgetful_chain_inc.h" /* NOLINT(build/include) */ +#undef HASHER +#undef NUM_LAST_DISTANCES_TO_CHECK +#undef NUM_BANKS +#undef BANK_BITS + +#define NUM_LAST_DISTANCES_TO_CHECK 16 +#define NUM_BANKS 512 +#define BANK_BITS 9 +#define HASHER() H42 +#include "./hash_forgetful_chain_inc.h" /* NOLINT(build/include) */ +#undef HASHER +#undef NUM_LAST_DISTANCES_TO_CHECK +#undef NUM_BANKS +#undef BANK_BITS + +#undef BUCKET_BITS + +#undef FN +#undef CAT +#undef EXPAND_CAT + +#define FOR_GENERIC_HASHERS(H) H(2) H(3) H(4) H(5) H(6) H(7) H(8) H(9) \ + H(40) H(41) H(42) +#define FOR_ALL_HASHERS(H) FOR_GENERIC_HASHERS(H) H(10) + +typedef struct Hashers { +#define _MEMBER(N) H ## N* h ## N; + FOR_ALL_HASHERS(_MEMBER) +#undef _MEMBER +} Hashers; + +static BROTLI_INLINE void InitHashers(Hashers* self) { +#define _INIT(N) self->h ## N = 0; + FOR_ALL_HASHERS(_INIT) +#undef _INIT +} - // Custom LZ77 window. - void PrependCustomDictionary( - int type, int lgwin, const size_t size, const uint8_t* dict) { - switch (type) { - case 2: WarmupHash(size, dict, hash_h2); break; - case 3: WarmupHash(size, dict, hash_h3); break; - case 4: WarmupHash(size, dict, hash_h4); break; - case 5: WarmupHash(size, dict, hash_h5); break; - case 6: WarmupHash(size, dict, hash_h6); break; - case 7: WarmupHash(size, dict, hash_h7); break; - case 8: WarmupHash(size, dict, hash_h8); break; - case 9: WarmupHash(size, dict, hash_h9); break; - case 10: - hash_h10->Init(lgwin, 0, size, false); - for (size_t i = 0; i + kMaxTreeCompLength - 1 < size; ++i) { - hash_h10->Store(dict, std::numeric_limits<size_t>::max(), i); - } - break; - default: break; - } +static BROTLI_INLINE void DestroyHashers(MemoryManager* m, Hashers* self) { + if (self->h10) CleanupH10(m, self->h10); +#define _CLEANUP(N) BROTLI_FREE(m, self->h ## N) + FOR_ALL_HASHERS(_CLEANUP) +#undef _CLEANUP +} + +static BROTLI_INLINE void HashersReset(Hashers* self, int type) { + switch (type) { +#define _RESET(N) case N: ResetH ## N(self->h ## N); break; + FOR_ALL_HASHERS(_RESET) +#undef _RESET + default: break; } +} +static BROTLI_INLINE void HashersSetup( + MemoryManager* m, Hashers* self, int type) { + switch (type) { +#define _SETUP(N) case N: self->h ## N = BROTLI_ALLOC(m, H ## N, 1); break; + FOR_ALL_HASHERS(_SETUP) +#undef _SETUP + default: break; + } + if (BROTLI_IS_OOM(m)) return; + if (type == 10) InitializeH10(self->h10); + HashersReset(self, type); +} + +#define _WARMUP_HASH(N) \ +static BROTLI_INLINE void WarmupHashH ## N(MemoryManager* m, \ + const BrotliEncoderParams* params, const size_t size, const uint8_t* dict, \ + H ## N* hasher) { \ + size_t overlap = (StoreLookaheadH ## N()) - 1; \ + size_t i; \ + InitH ## N(m, hasher, dict, params, 0, size, BROTLI_FALSE); \ + if (BROTLI_IS_OOM(m)) return; \ + for (i = 0; i + overlap < size; i++) { \ + StoreH ## N(hasher, dict, ~(size_t)0, i); \ + } \ +} +FOR_ALL_HASHERS(_WARMUP_HASH) +#undef _WARMUP_HASH + +/* Custom LZ77 window. */ +static BROTLI_INLINE void HashersPrependCustomDictionary( + MemoryManager* m, Hashers* self, const BrotliEncoderParams* params, + const size_t size, const uint8_t* dict) { + int hasher_type = ChooseHasher(params); + switch (hasher_type) { +#define _PREPEND(N) \ + case N: WarmupHashH ## N(m, params, size, dict, self->h ## N); break; + FOR_ALL_HASHERS(_PREPEND) +#undef _PREPEND + default: break; + } + if (BROTLI_IS_OOM(m)) return; +} - H2* hash_h2; - H3* hash_h3; - H4* hash_h4; - H5* hash_h5; - H6* hash_h6; - H7* hash_h7; - H8* hash_h8; - H9* hash_h9; - H10* hash_h10; -}; -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_HASH_H_ +#endif /* BROTLI_ENC_HASH_H_ */ diff --git a/thirdparty/brotli/enc/hash_forgetful_chain_inc.h b/thirdparty/brotli/enc/hash_forgetful_chain_inc.h new file mode 100755 index 00000000..49d537af --- /dev/null +++ b/thirdparty/brotli/enc/hash_forgetful_chain_inc.h @@ -0,0 +1,249 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN, BUCKET_BITS, NUM_BANKS, BANK_BITS, + NUM_LAST_DISTANCES_TO_CHECK */ + +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. + + Hashes are stored in chains which are bucketed to groups. Group of chains + share a storage "bank". When more than "bank size" chain nodes are added, + oldest nodes are replaced; this way several chains may share a tail. */ + +#define HashForgetfulChain HASHER() + +#define BANK_SIZE (1 << BANK_BITS) + +/* Number of hash buckets. */ +#define BUCKET_SIZE (1 << BUCKET_BITS) + +#define CAPPED_CHAINS 0 + +static BROTLI_INLINE size_t FN(HashTypeLength)(void) { return 4; } +static BROTLI_INLINE size_t FN(StoreLookahead)(void) { return 4; } + +/* HashBytes is the function that chooses the bucket to place the address in.*/ +static BROTLI_INLINE size_t FN(HashBytes)(const uint8_t *data) { + const uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32; + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return h >> (32 - BUCKET_BITS); +} + +typedef struct FN(Slot) { + uint16_t delta; + uint16_t next; +} FN(Slot); + +typedef struct FN(Bank) { + FN(Slot) slots[BANK_SIZE]; +} FN(Bank); + +typedef struct HashForgetfulChain { + uint32_t addr[BUCKET_SIZE]; + uint16_t head[BUCKET_SIZE]; + /* Truncated hash used for quick rejection of "distance cache" candidates. */ + uint8_t tiny_hash[65536]; + FN(Bank) banks[NUM_BANKS]; + uint16_t free_slot_idx[NUM_BANKS]; + BROTLI_BOOL is_dirty_; + DictionarySearchStatictics dict_search_stats_; + size_t max_hops; +} HashForgetfulChain; + +static void FN(Reset)(HashForgetfulChain* self) { + self->is_dirty_ = BROTLI_TRUE; + DictionarySearchStaticticsReset(&self->dict_search_stats_); +} + +static void FN(InitEmpty)(HashForgetfulChain* self) { + if (self->is_dirty_) { + /* Fill |addr| array with 0xCCCCCCCC value. Because of wrapping, position + processed by hasher never reaches 3GB + 64M; this makes all new chains + to be terminated after the first node. */ + memset(self->addr, 0xCC, sizeof(self->addr)); + memset(self->head, 0, sizeof(self->head)); + memset(self->tiny_hash, 0, sizeof(self->tiny_hash)); + memset(self->free_slot_idx, 0, sizeof(self->free_slot_idx)); + self->is_dirty_ = BROTLI_FALSE; + } +} + +static void FN(InitForData)(HashForgetfulChain* self, const uint8_t* data, + size_t num) { + size_t i; + for (i = 0; i < num; ++i) { + size_t bucket = FN(HashBytes)(&data[i]); + /* See InitEmpty comment. */ + self->addr[bucket] = 0xCCCCCCCC; + self->head[bucket] = 0xCCCC; + } + memset(self->tiny_hash, 0, sizeof(self->tiny_hash)); + memset(self->free_slot_idx, 0, sizeof(self->free_slot_idx)); + if (num != 0) { + self->is_dirty_ = BROTLI_FALSE; + } +} + +static void FN(Init)( + MemoryManager* m, HashForgetfulChain* self, const uint8_t* data, + const BrotliEncoderParams* params, size_t position, size_t bytes, + BROTLI_BOOL is_last) { + /* Choose which init method is faster. + Init() is about 100 times faster than InitForData(). */ + const size_t kMaxBytesForPartialHashInit = BUCKET_SIZE >> 6; + BROTLI_UNUSED(m); + self->max_hops = (params->quality > 6 ? 7u : 8u) << (params->quality - 4); + if (position == 0 && is_last && bytes <= kMaxBytesForPartialHashInit) { + FN(InitForData)(self, data, bytes); + } else { + FN(InitEmpty)(self); + } +} + +/* Look at 4 bytes at &data[ix & mask]. Compute a hash from these, and prepend + node to corresponding chain; also update tiny_hash for current position. */ +static BROTLI_INLINE void FN(Store)(HashForgetfulChain* BROTLI_RESTRICT self, + const uint8_t* BROTLI_RESTRICT data, const size_t mask, const size_t ix) { + const size_t key = FN(HashBytes)(&data[ix & mask]); + const size_t bank = key & (NUM_BANKS - 1); + const size_t idx = self->free_slot_idx[bank]++ & (BANK_SIZE - 1); + size_t delta = ix - self->addr[key]; + self->tiny_hash[(uint16_t)ix] = (uint8_t)key; + if (delta > 0xFFFF) delta = CAPPED_CHAINS ? 0 : 0xFFFF; + self->banks[bank].slots[idx].delta = (uint16_t)delta; + self->banks[bank].slots[idx].next = self->head[key]; + self->addr[key] = (uint32_t)ix; + self->head[key] = (uint16_t)idx; +} + +static BROTLI_INLINE void FN(StoreRange)(HashForgetfulChain* self, + const uint8_t *data, const size_t mask, const size_t ix_start, + const size_t ix_end) { + size_t i; + for (i = ix_start; i < ix_end; ++i) { + FN(Store)(self, data, mask, i); + } +} + +static BROTLI_INLINE void FN(StitchToPreviousBlock)(HashForgetfulChain* self, + size_t num_bytes, size_t position, const uint8_t* ringbuffer, + size_t ring_buffer_mask) { + if (num_bytes >= FN(HashTypeLength)() - 1 && position >= 3) { + /* Prepare the hashes for three last bytes of the last write. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + FN(Store)(self, ringbuffer, ring_buffer_mask, position - 3); + FN(Store)(self, ringbuffer, ring_buffer_mask, position - 2); + FN(Store)(self, ringbuffer, ring_buffer_mask, position - 1); + } +} + +/* Find a longest backward match of &data[cur_ix] up to the length of + max_length and stores the position cur_ix in the hash table. + + Does not look for matches longer than max_length. + Does not look for matches further away than max_backward. + Writes the best match into |out|. + Returns 1 when match is found, otherwise 0. */ +static BROTLI_INLINE BROTLI_BOOL FN(FindLongestMatch)( + HashForgetfulChain* self, const uint8_t* BROTLI_RESTRICT data, + const size_t ring_buffer_mask, const int* BROTLI_RESTRICT distance_cache, + const size_t cur_ix, const size_t max_length, const size_t max_backward, + HasherSearchResult* BROTLI_RESTRICT out) { + const size_t cur_ix_masked = cur_ix & ring_buffer_mask; + BROTLI_BOOL is_match_found = BROTLI_FALSE; + /* Don't accept a short copy from far away. */ + score_t best_score = out->score; + size_t best_len = out->len; + size_t i; + const size_t key = FN(HashBytes)(&data[cur_ix_masked]); + const uint8_t tiny_hash = (uint8_t)(key); + out->len = 0; + out->len_x_code = 0; + /* Try last distance first. */ + for (i = 0; i < NUM_LAST_DISTANCES_TO_CHECK; ++i) { + const size_t idx = kDistanceCacheIndex[i]; + const size_t backward = + (size_t)(distance_cache[idx] + kDistanceCacheOffset[i]); + size_t prev_ix = (cur_ix - backward); + if (i > 0 && self->tiny_hash[(uint16_t)prev_ix] != tiny_hash) continue; + if (prev_ix >= cur_ix || backward > max_backward) { + continue; + } + prev_ix &= ring_buffer_mask; + { + const size_t len = FindMatchLengthWithLimit(&data[prev_ix], + &data[cur_ix_masked], + max_length); + if (len >= 2) { + score_t score = BackwardReferenceScoreUsingLastDistance(len, i); + if (best_score < score) { + best_score = score; + best_len = len; + out->len = best_len; + out->distance = backward; + out->score = best_score; + is_match_found = BROTLI_TRUE; + } + } + } + } + { + const size_t bank = key & (NUM_BANKS - 1); + size_t backward = 0; + size_t hops = self->max_hops; + size_t delta = cur_ix - self->addr[key]; + size_t slot = self->head[key]; + while (hops--) { + size_t prev_ix; + size_t last = slot; + backward += delta; + if (backward > max_backward || (CAPPED_CHAINS && !delta)) break; + prev_ix = (cur_ix - backward) & ring_buffer_mask; + slot = self->banks[bank].slots[last].next; + delta = self->banks[bank].slots[last].delta; + if (cur_ix_masked + best_len > ring_buffer_mask || + prev_ix + best_len > ring_buffer_mask || + data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { + continue; + } + { + const size_t len = FindMatchLengthWithLimit(&data[prev_ix], + &data[cur_ix_masked], + max_length); + if (len >= 4) { + /* Comparing for >= 3 does not change the semantics, but just saves + for a few unnecessary binary logarithms in backward reference + score, since we are not interested in such short matches. */ + score_t score = BackwardReferenceScore(len, backward); + if (best_score < score) { + best_score = score; + best_len = len; + out->len = best_len; + out->distance = backward; + out->score = best_score; + is_match_found = BROTLI_TRUE; + } + } + } + } + FN(Store)(self, data, ring_buffer_mask, cur_ix); + } + if (!is_match_found) { + is_match_found = SearchInStaticDictionary(&self->dict_search_stats_, + &data[cur_ix_masked], max_length, max_backward, out, BROTLI_FALSE); + } + return is_match_found; +} + +#undef BANK_SIZE +#undef BUCKET_SIZE +#undef CAPPED_CHAINS + +#undef HashForgetfulChain diff --git a/thirdparty/brotli/enc/hash_longest_match_inc.h b/thirdparty/brotli/enc/hash_longest_match_inc.h new file mode 100644 index 00000000..5fc7163e --- /dev/null +++ b/thirdparty/brotli/enc/hash_longest_match_inc.h @@ -0,0 +1,241 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN, BUCKET_BITS, BLOCK_BITS, + NUM_LAST_DISTANCES_TO_CHECK */ + +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. + + This is a hash map of fixed size (BUCKET_SIZE) to a ring buffer of + fixed size (BLOCK_SIZE). The ring buffer contains the last BLOCK_SIZE + index positions of the given hash key in the compressed data. */ + +#define HashLongestMatch HASHER() + +/* Number of hash buckets. */ +#define BUCKET_SIZE (1 << BUCKET_BITS) + +/* Only BLOCK_SIZE newest backward references are kept, + and the older are forgotten. */ +#define BLOCK_SIZE (1u << BLOCK_BITS) + +/* Mask for accessing entries in a block (in a ringbuffer manner). */ +#define BLOCK_MASK ((1 << BLOCK_BITS) - 1) + +#define HASH_MAP_SIZE (2 << BUCKET_BITS) + +static BROTLI_INLINE size_t FN(HashTypeLength)(void) { return 4; } +static BROTLI_INLINE size_t FN(StoreLookahead)(void) { return 4; } + +/* HashBytes is the function that chooses the bucket to place + the address in. The HashLongestMatch and HashLongestMatchQuickly + classes have separate, different implementations of hashing. */ +static uint32_t FN(HashBytes)(const uint8_t *data) { + uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kHashMul32; + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return h >> (32 - BUCKET_BITS); +} + +typedef struct HashLongestMatch { + /* Number of entries in a particular bucket. */ + uint16_t num_[BUCKET_SIZE]; + + /* Buckets containing BLOCK_SIZE of backward references. */ + uint32_t buckets_[BLOCK_SIZE << BUCKET_BITS]; + + /* True if num_ array needs to be initialized. */ + BROTLI_BOOL is_dirty_; + + DictionarySearchStatictics dict_search_stats_; +} HashLongestMatch; + +static void FN(Reset)(HashLongestMatch* self) { + self->is_dirty_ = BROTLI_TRUE; + DictionarySearchStaticticsReset(&self->dict_search_stats_); +} + +static void FN(InitEmpty)(HashLongestMatch* self) { + if (self->is_dirty_) { + memset(self->num_, 0, sizeof(self->num_)); + self->is_dirty_ = BROTLI_FALSE; + } +} + +static void FN(InitForData)(HashLongestMatch* self, const uint8_t* data, + size_t num) { + size_t i; + for (i = 0; i < num; ++i) { + const uint32_t key = FN(HashBytes)(&data[i]); + self->num_[key] = 0; + } + if (num != 0) { + self->is_dirty_ = BROTLI_FALSE; + } +} + +static void FN(Init)( + MemoryManager* m, HashLongestMatch* self, const uint8_t* data, + const BrotliEncoderParams* params, size_t position, size_t bytes, + BROTLI_BOOL is_last) { + /* Choose which init method is faster. + Init() is about 100 times faster than InitForData(). */ + const size_t kMaxBytesForPartialHashInit = HASH_MAP_SIZE >> 7; + BROTLI_UNUSED(m); + BROTLI_UNUSED(params); + if (position == 0 && is_last && bytes <= kMaxBytesForPartialHashInit) { + FN(InitForData)(self, data, bytes); + } else { + FN(InitEmpty)(self); + } +} + +/* Look at 4 bytes at &data[ix & mask]. + Compute a hash from these, and store the value of ix at that position. */ +static BROTLI_INLINE void FN(Store)(HashLongestMatch* self, const uint8_t *data, + const size_t mask, const size_t ix) { + const uint32_t key = FN(HashBytes)(&data[ix & mask]); + const size_t minor_ix = self->num_[key] & BLOCK_MASK; + self->buckets_[minor_ix + (key << BLOCK_BITS)] = (uint32_t)ix; + ++self->num_[key]; +} + +static BROTLI_INLINE void FN(StoreRange)(HashLongestMatch* self, + const uint8_t *data, const size_t mask, const size_t ix_start, + const size_t ix_end) { + size_t i; + for (i = ix_start; i < ix_end; ++i) { + FN(Store)(self, data, mask, i); + } +} + +static BROTLI_INLINE void FN(StitchToPreviousBlock)(HashLongestMatch* self, + size_t num_bytes, size_t position, const uint8_t* ringbuffer, + size_t ringbuffer_mask) { + if (num_bytes >= FN(HashTypeLength)() - 1 && position >= 3) { + /* Prepare the hashes for three last bytes of the last write. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + FN(Store)(self, ringbuffer, ringbuffer_mask, position - 3); + FN(Store)(self, ringbuffer, ringbuffer_mask, position - 2); + FN(Store)(self, ringbuffer, ringbuffer_mask, position - 1); + } +} + +/* Find a longest backward match of &data[cur_ix] up to the length of + max_length and stores the position cur_ix in the hash table. + + Does not look for matches longer than max_length. + Does not look for matches further away than max_backward. + Writes the best match into |out|. + Returns true when match is found, otherwise false. */ +static BROTLI_INLINE BROTLI_BOOL FN(FindLongestMatch)(HashLongestMatch* self, + const uint8_t* BROTLI_RESTRICT data, const size_t ring_buffer_mask, + const int* BROTLI_RESTRICT distance_cache, const size_t cur_ix, + const size_t max_length, const size_t max_backward, + HasherSearchResult* BROTLI_RESTRICT out) { + const size_t cur_ix_masked = cur_ix & ring_buffer_mask; + BROTLI_BOOL is_match_found = BROTLI_FALSE; + /* Don't accept a short copy from far away. */ + score_t best_score = out->score; + size_t best_len = out->len; + size_t i; + out->len = 0; + out->len_x_code = 0; + /* Try last distance first. */ + for (i = 0; i < NUM_LAST_DISTANCES_TO_CHECK; ++i) { + const size_t idx = kDistanceCacheIndex[i]; + const size_t backward = + (size_t)(distance_cache[idx] + kDistanceCacheOffset[i]); + size_t prev_ix = (size_t)(cur_ix - backward); + if (prev_ix >= cur_ix) { + continue; + } + if (PREDICT_FALSE(backward > max_backward)) { + continue; + } + prev_ix &= ring_buffer_mask; + + if (cur_ix_masked + best_len > ring_buffer_mask || + prev_ix + best_len > ring_buffer_mask || + data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { + continue; + } + { + const size_t len = FindMatchLengthWithLimit(&data[prev_ix], + &data[cur_ix_masked], + max_length); + if (len >= 3 || (len == 2 && i < 2)) { + /* Comparing for >= 2 does not change the semantics, but just saves for + a few unnecessary binary logarithms in backward reference score, + since we are not interested in such short matches. */ + score_t score = BackwardReferenceScoreUsingLastDistance(len, i); + if (best_score < score) { + best_score = score; + best_len = len; + out->len = best_len; + out->distance = backward; + out->score = best_score; + is_match_found = BROTLI_TRUE; + } + } + } + } + { + const uint32_t key = FN(HashBytes)(&data[cur_ix_masked]); + uint32_t* BROTLI_RESTRICT bucket = &self->buckets_[key << BLOCK_BITS]; + const size_t down = + (self->num_[key] > BLOCK_SIZE) ? (self->num_[key] - BLOCK_SIZE) : 0u; + for (i = self->num_[key]; i > down;) { + size_t prev_ix = bucket[--i & BLOCK_MASK]; + const size_t backward = cur_ix - prev_ix; + if (PREDICT_FALSE(backward > max_backward)) { + break; + } + prev_ix &= ring_buffer_mask; + if (cur_ix_masked + best_len > ring_buffer_mask || + prev_ix + best_len > ring_buffer_mask || + data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { + continue; + } + { + const size_t len = FindMatchLengthWithLimit(&data[prev_ix], + &data[cur_ix_masked], + max_length); + if (len >= 4) { + /* Comparing for >= 3 does not change the semantics, but just saves + for a few unnecessary binary logarithms in backward reference + score, since we are not interested in such short matches. */ + score_t score = BackwardReferenceScore(len, backward); + if (best_score < score) { + best_score = score; + best_len = len; + out->len = best_len; + out->distance = backward; + out->score = best_score; + is_match_found = BROTLI_TRUE; + } + } + } + } + bucket[self->num_[key] & BLOCK_MASK] = (uint32_t)cur_ix; + ++self->num_[key]; + } + if (!is_match_found) { + is_match_found = SearchInStaticDictionary(&self->dict_search_stats_, + &data[cur_ix_masked], max_length, max_backward, out, BROTLI_FALSE); + } + return is_match_found; +} + +#undef HASH_MAP_SIZE +#undef BLOCK_MASK +#undef BLOCK_SIZE +#undef BUCKET_SIZE + +#undef HashLongestMatch diff --git a/thirdparty/brotli/enc/hash_longest_match_quickly_inc.h b/thirdparty/brotli/enc/hash_longest_match_quickly_inc.h new file mode 100644 index 00000000..db9a1e6b --- /dev/null +++ b/thirdparty/brotli/enc/hash_longest_match_quickly_inc.h @@ -0,0 +1,230 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2010 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN, BUCKET_BITS, BUCKET_SWEEP, USE_DICTIONARY */ + +#define HashLongestMatchQuickly HASHER() + +#define BUCKET_SIZE (1 << BUCKET_BITS) + +#define HASH_MAP_SIZE (4 << BUCKET_BITS) + +static BROTLI_INLINE size_t FN(HashTypeLength)(void) { return 8; } +static BROTLI_INLINE size_t FN(StoreLookahead)(void) { return 8; } + +/* HashBytes is the function that chooses the bucket to place + the address in. The HashLongestMatch and HashLongestMatchQuickly + classes have separate, different implementations of hashing. */ +static uint32_t FN(HashBytes)(const uint8_t *data) { + /* Computing a hash based on 5 bytes works much better for + qualities 1 and 3, where the next hash value is likely to replace */ + uint64_t h = (BROTLI_UNALIGNED_LOAD64(data) << 24) * kHashMul32; + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ + return (uint32_t)(h >> (64 - BUCKET_BITS)); +} + +/* A (forgetful) hash table to the data seen by the compressor, to + help create backward references to previous data. + + This is a hash map of fixed size (BUCKET_SIZE). Starting from the + given index, BUCKET_SWEEP buckets are used to store values of a key. */ +typedef struct HashLongestMatchQuickly { + uint32_t buckets_[BUCKET_SIZE + BUCKET_SWEEP]; + /* True if buckets_ array needs to be initialized. */ + BROTLI_BOOL is_dirty_; + DictionarySearchStatictics dict_search_stats_; +} HashLongestMatchQuickly; + +static void FN(Reset)(HashLongestMatchQuickly* self) { + self->is_dirty_ = BROTLI_TRUE; + DictionarySearchStaticticsReset(&self->dict_search_stats_); +} + +static void FN(InitEmpty)(HashLongestMatchQuickly* self) { + if (self->is_dirty_) { + /* It is not strictly necessary to fill this buffer here, but + not filling will make the results of the compression stochastic + (but correct). This is because random data would cause the + system to find accidentally good backward references here and there. */ + memset(&self->buckets_[0], 0, sizeof(self->buckets_)); + self->is_dirty_ = BROTLI_FALSE; + } +} + +static void FN(InitForData)(HashLongestMatchQuickly* self, const uint8_t* data, + size_t num) { + size_t i; + for (i = 0; i < num; ++i) { + const uint32_t key = FN(HashBytes)(&data[i]); + memset(&self->buckets_[key], 0, BUCKET_SWEEP * sizeof(self->buckets_[0])); + } + if (num != 0) { + self->is_dirty_ = BROTLI_FALSE; + } +} + +static void FN(Init)( + MemoryManager* m, HashLongestMatchQuickly* self, const uint8_t* data, + const BrotliEncoderParams* params, size_t position, size_t bytes, + BROTLI_BOOL is_last) { + /* Choose which init method is faster. + Init() is about 100 times faster than InitForData(). */ + const size_t kMaxBytesForPartialHashInit = HASH_MAP_SIZE >> 7; + BROTLI_UNUSED(m); + BROTLI_UNUSED(params); + if (position == 0 && is_last && bytes <= kMaxBytesForPartialHashInit) { + FN(InitForData)(self, data, bytes); + } else { + FN(InitEmpty)(self); + } +} + +/* Look at 5 bytes at &data[ix & mask]. + Compute a hash from these, and store the value somewhere within + [ix .. ix+3]. */ +static BROTLI_INLINE void FN(Store)(HashLongestMatchQuickly* self, + const uint8_t *data, const size_t mask, const size_t ix) { + const uint32_t key = FN(HashBytes)(&data[ix & mask]); + /* Wiggle the value with the bucket sweep range. */ + const uint32_t off = (ix >> 3) % BUCKET_SWEEP; + self->buckets_[key + off] = (uint32_t)ix; +} + +static BROTLI_INLINE void FN(StoreRange)(HashLongestMatchQuickly* self, + const uint8_t *data, const size_t mask, const size_t ix_start, + const size_t ix_end) { + size_t i; + for (i = ix_start; i < ix_end; ++i) { + FN(Store)(self, data, mask, i); + } +} + +static BROTLI_INLINE void FN(StitchToPreviousBlock)( + HashLongestMatchQuickly* self, size_t num_bytes, size_t position, + const uint8_t* ringbuffer, size_t ringbuffer_mask) { + if (num_bytes >= FN(HashTypeLength)() - 1 && position >= 3) { + /* Prepare the hashes for three last bytes of the last write. + These could not be calculated before, since they require knowledge + of both the previous and the current block. */ + FN(Store)(self, ringbuffer, ringbuffer_mask, position - 3); + FN(Store)(self, ringbuffer, ringbuffer_mask, position - 2); + FN(Store)(self, ringbuffer, ringbuffer_mask, position - 1); + } +} + +/* Find a longest backward match of &data[cur_ix & ring_buffer_mask] + up to the length of max_length and stores the position cur_ix in the + hash table. + + Does not look for matches longer than max_length. + Does not look for matches further away than max_backward. + Writes the best match into |out|. + Returns true if match is found, otherwise false. */ +static BROTLI_INLINE BROTLI_BOOL FN(FindLongestMatch)( + HashLongestMatchQuickly* self, const uint8_t* BROTLI_RESTRICT data, + const size_t ring_buffer_mask, const int* BROTLI_RESTRICT distance_cache, + const size_t cur_ix, const size_t max_length, const size_t max_backward, + HasherSearchResult* BROTLI_RESTRICT out) { + const size_t best_len_in = out->len; + const size_t cur_ix_masked = cur_ix & ring_buffer_mask; + const uint32_t key = FN(HashBytes)(&data[cur_ix_masked]); + int compare_char = data[cur_ix_masked + best_len_in]; + score_t best_score = out->score; + size_t best_len = best_len_in; + size_t cached_backward = (size_t)distance_cache[0]; + size_t prev_ix = cur_ix - cached_backward; + BROTLI_BOOL is_match_found = BROTLI_FALSE; + out->len_x_code = 0; + if (prev_ix < cur_ix) { + prev_ix &= (uint32_t)ring_buffer_mask; + if (compare_char == data[prev_ix + best_len]) { + size_t len = FindMatchLengthWithLimit(&data[prev_ix], + &data[cur_ix_masked], + max_length); + if (len >= 4) { + best_score = BackwardReferenceScoreUsingLastDistance(len, 0); + best_len = len; + out->len = len; + out->distance = cached_backward; + out->score = best_score; + compare_char = data[cur_ix_masked + best_len]; + if (BUCKET_SWEEP == 1) { + self->buckets_[key] = (uint32_t)cur_ix; + return BROTLI_TRUE; + } else { + is_match_found = BROTLI_TRUE; + } + } + } + } + if (BUCKET_SWEEP == 1) { + size_t backward; + size_t len; + /* Only one to look for, don't bother to prepare for a loop. */ + prev_ix = self->buckets_[key]; + self->buckets_[key] = (uint32_t)cur_ix; + backward = cur_ix - prev_ix; + prev_ix &= (uint32_t)ring_buffer_mask; + if (compare_char != data[prev_ix + best_len_in]) { + return BROTLI_FALSE; + } + if (PREDICT_FALSE(backward == 0 || backward > max_backward)) { + return BROTLI_FALSE; + } + len = FindMatchLengthWithLimit(&data[prev_ix], + &data[cur_ix_masked], + max_length); + if (len >= 4) { + out->len = len; + out->distance = backward; + out->score = BackwardReferenceScore(len, backward); + return BROTLI_TRUE; + } + } else { + uint32_t *bucket = self->buckets_ + key; + int i; + prev_ix = *bucket++; + for (i = 0; i < BUCKET_SWEEP; ++i, prev_ix = *bucket++) { + const size_t backward = cur_ix - prev_ix; + size_t len; + prev_ix &= (uint32_t)ring_buffer_mask; + if (compare_char != data[prev_ix + best_len]) { + continue; + } + if (PREDICT_FALSE(backward == 0 || backward > max_backward)) { + continue; + } + len = FindMatchLengthWithLimit(&data[prev_ix], + &data[cur_ix_masked], + max_length); + if (len >= 4) { + const score_t score = BackwardReferenceScore(len, backward); + if (best_score < score) { + best_score = score; + best_len = len; + out->len = best_len; + out->distance = backward; + out->score = score; + compare_char = data[cur_ix_masked + best_len]; + is_match_found = BROTLI_TRUE; + } + } + } + } + if (USE_DICTIONARY && !is_match_found) { + is_match_found = SearchInStaticDictionary(&self->dict_search_stats_, + &data[cur_ix_masked], max_length, max_backward, out, BROTLI_TRUE); + } + self->buckets_[key + ((cur_ix >> 3) % BUCKET_SWEEP)] = (uint32_t)cur_ix; + return is_match_found; +} + +#undef HASH_MAP_SIZE +#undef BUCKET_SIZE + +#undef HashLongestMatchQuickly diff --git a/thirdparty/brotli/enc/histogram.c b/thirdparty/brotli/enc/histogram.c new file mode 100644 index 00000000..a8f04130 --- /dev/null +++ b/thirdparty/brotli/enc/histogram.c @@ -0,0 +1,95 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Build per-context histograms of literals, commands and distance codes. */ + +#include "./histogram.h" + +#include "./block_splitter.h" +#include "./command.h" +#include "./context.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +typedef struct BlockSplitIterator { + const BlockSplit* split_; /* Not owned. */ + size_t idx_; + size_t type_; + size_t length_; +} BlockSplitIterator; + +static void InitBlockSplitIterator(BlockSplitIterator* self, + const BlockSplit* split) { + self->split_ = split; + self->idx_ = 0; + self->type_ = 0; + self->length_ = split->lengths ? split->lengths[0] : 0; +} + +static void BlockSplitIteratorNext(BlockSplitIterator* self) { + if (self->length_ == 0) { + ++self->idx_; + self->type_ = self->split_->types[self->idx_]; + self->length_ = self->split_->lengths[self->idx_]; + } + --self->length_; +} + +void BrotliBuildHistogramsWithContext( + const Command* cmds, const size_t num_commands, + const BlockSplit* literal_split, const BlockSplit* insert_and_copy_split, + const BlockSplit* dist_split, const uint8_t* ringbuffer, size_t start_pos, + size_t mask, uint8_t prev_byte, uint8_t prev_byte2, + const ContextType* context_modes, HistogramLiteral* literal_histograms, + HistogramCommand* insert_and_copy_histograms, + HistogramDistance* copy_dist_histograms) { + size_t pos = start_pos; + BlockSplitIterator literal_it; + BlockSplitIterator insert_and_copy_it; + BlockSplitIterator dist_it; + size_t i; + + InitBlockSplitIterator(&literal_it, literal_split); + InitBlockSplitIterator(&insert_and_copy_it, insert_and_copy_split); + InitBlockSplitIterator(&dist_it, dist_split); + for (i = 0; i < num_commands; ++i) { + const Command* cmd = &cmds[i]; + size_t j; + BlockSplitIteratorNext(&insert_and_copy_it); + HistogramAddCommand(&insert_and_copy_histograms[insert_and_copy_it.type_], + cmd->cmd_prefix_); + for (j = cmd->insert_len_; j != 0; --j) { + size_t context; + BlockSplitIteratorNext(&literal_it); + context = (literal_it.type_ << BROTLI_LITERAL_CONTEXT_BITS) + + Context(prev_byte, prev_byte2, context_modes[literal_it.type_]); + HistogramAddLiteral(&literal_histograms[context], + ringbuffer[pos & mask]); + prev_byte2 = prev_byte; + prev_byte = ringbuffer[pos & mask]; + ++pos; + } + pos += CommandCopyLen(cmd); + if (CommandCopyLen(cmd)) { + prev_byte2 = ringbuffer[(pos - 2) & mask]; + prev_byte = ringbuffer[(pos - 1) & mask]; + if (cmd->cmd_prefix_ >= 128) { + size_t context; + BlockSplitIteratorNext(&dist_it); + context = (dist_it.type_ << BROTLI_DISTANCE_CONTEXT_BITS) + + CommandDistanceContext(cmd); + HistogramAddDistance(©_dist_histograms[context], + cmd->dist_prefix_); + } + } + } +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/histogram.cc b/thirdparty/brotli/enc/histogram.cc deleted file mode 100644 index 9d733d80..00000000 --- a/thirdparty/brotli/enc/histogram.cc +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Build per-context histograms of literals, commands and distance codes. - -#include "./histogram.h" - -#include <cmath> - -#include "./block_splitter.h" -#include "./command.h" -#include "./context.h" -#include "./prefix.h" - -namespace brotli { - -void BuildHistograms( - const Command* cmds, - const size_t num_commands, - const BlockSplit& literal_split, - const BlockSplit& insert_and_copy_split, - const BlockSplit& dist_split, - const uint8_t* ringbuffer, - size_t start_pos, - size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - const std::vector<ContextType>& context_modes, - std::vector<HistogramLiteral>* literal_histograms, - std::vector<HistogramCommand>* insert_and_copy_histograms, - std::vector<HistogramDistance>* copy_dist_histograms) { - size_t pos = start_pos; - BlockSplitIterator literal_it(literal_split); - BlockSplitIterator insert_and_copy_it(insert_and_copy_split); - BlockSplitIterator dist_it(dist_split); - for (size_t i = 0; i < num_commands; ++i) { - const Command &cmd = cmds[i]; - insert_and_copy_it.Next(); - (*insert_and_copy_histograms)[insert_and_copy_it.type_].Add( - cmd.cmd_prefix_); - for (size_t j = cmd.insert_len_; j != 0; --j) { - literal_it.Next(); - size_t context = (literal_it.type_ << kLiteralContextBits) + - Context(prev_byte, prev_byte2, context_modes[literal_it.type_]); - (*literal_histograms)[context].Add(ringbuffer[pos & mask]); - prev_byte2 = prev_byte; - prev_byte = ringbuffer[pos & mask]; - ++pos; - } - pos += cmd.copy_len(); - if (cmd.copy_len()) { - prev_byte2 = ringbuffer[(pos - 2) & mask]; - prev_byte = ringbuffer[(pos - 1) & mask]; - if (cmd.cmd_prefix_ >= 128) { - dist_it.Next(); - size_t context = (dist_it.type_ << kDistanceContextBits) + - cmd.DistanceContext(); - (*copy_dist_histograms)[context].Add(cmd.dist_prefix_); - } - } - } -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/histogram.h b/thirdparty/brotli/enc/histogram.h index a1153c85..c9bcead7 100644 --- a/thirdparty/brotli/enc/histogram.h +++ b/thirdparty/brotli/enc/histogram.h @@ -4,91 +4,57 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Models the histograms of literals, commands and distance codes. +/* Models the histograms of literals, commands and distance codes. */ #ifndef BROTLI_ENC_HISTOGRAM_H_ #define BROTLI_ENC_HISTOGRAM_H_ -#include <cstring> -#include <limits> -#include <vector> -#include "./context.h" -#include "./command.h" -#include "./fast_log.h" -#include "./prefix.h" -#include "./types.h" - -namespace brotli { - -struct BlockSplit; - -// A simple container for histograms of data in blocks. -template<int kDataSize> -struct Histogram { - Histogram(void) { - Clear(); - } - void Clear(void) { - memset(data_, 0, sizeof(data_)); - total_count_ = 0; - bit_cost_ = std::numeric_limits<double>::infinity(); - } - void Add(size_t val) { - ++data_[val]; - ++total_count_; - } - void Remove(size_t val) { - --data_[val]; - --total_count_; - } - template<typename DataType> - void Add(const DataType *p, size_t n) { - total_count_ += n; - n += 1; - while(--n) ++data_[*p++]; - } - void AddHistogram(const Histogram& v) { - total_count_ += v.total_count_; - for (size_t i = 0; i < kDataSize; ++i) { - data_[i] += v.data_[i]; - } - } - - uint32_t data_[kDataSize]; - size_t total_count_; - double bit_cost_; -}; +#include <string.h> /* memset */ -// Literal histogram. -typedef Histogram<256> HistogramLiteral; -// Prefix histograms. -typedef Histogram<kNumCommandPrefixes> HistogramCommand; -typedef Histogram<kNumDistancePrefixes> HistogramDistance; -typedef Histogram<kNumBlockLenPrefixes> HistogramBlockLength; -// Context map histogram, 256 Huffman tree indexes + 16 run length codes. -typedef Histogram<272> HistogramContextMap; -// Block type histogram, 256 block types + 2 special symbols. -typedef Histogram<258> HistogramBlockType; - -static const size_t kLiteralContextBits = 6; -static const size_t kDistanceContextBits = 2; - -void BuildHistograms( - const Command* cmds, - const size_t num_commands, - const BlockSplit& literal_split, - const BlockSplit& insert_and_copy_split, - const BlockSplit& dist_split, - const uint8_t* ringbuffer, - size_t pos, - size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - const std::vector<ContextType>& context_modes, - std::vector<HistogramLiteral>* literal_histograms, - std::vector<HistogramCommand>* insert_and_copy_histograms, - std::vector<HistogramDistance>* copy_dist_histograms); - -} // namespace brotli - -#endif // BROTLI_ENC_HISTOGRAM_H_ +#include "../common/constants.h" +#include "../common/types.h" +#include "./block_splitter.h" +#include "./command.h" +#include "./context.h" +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define FN(X) X ## Literal +#define DATA_SIZE BROTLI_NUM_LITERAL_SYMBOLS +#define DataType uint8_t +#include "./histogram_inc.h" /* NOLINT(build/include) */ +#undef DataType +#undef DATA_SIZE +#undef FN + +#define FN(X) X ## Command +#define DataType uint16_t +#define DATA_SIZE BROTLI_NUM_COMMAND_SYMBOLS +#include "./histogram_inc.h" /* NOLINT(build/include) */ +#undef DATA_SIZE +#undef FN + +#define FN(X) X ## Distance +#define DATA_SIZE BROTLI_NUM_DISTANCE_SYMBOLS +#include "./histogram_inc.h" /* NOLINT(build/include) */ +#undef DataType +#undef DATA_SIZE +#undef FN + +BROTLI_INTERNAL void BrotliBuildHistogramsWithContext( + const Command* cmds, const size_t num_commands, + const BlockSplit* literal_split, const BlockSplit* insert_and_copy_split, + const BlockSplit* dist_split, const uint8_t* ringbuffer, size_t pos, + size_t mask, uint8_t prev_byte, uint8_t prev_byte2, + const ContextType* context_modes, HistogramLiteral* literal_histograms, + HistogramCommand* insert_and_copy_histograms, + HistogramDistance* copy_dist_histograms); + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_HISTOGRAM_H_ */ diff --git a/thirdparty/brotli/enc/histogram_inc.h b/thirdparty/brotli/enc/histogram_inc.h new file mode 100644 index 00000000..78070368 --- /dev/null +++ b/thirdparty/brotli/enc/histogram_inc.h @@ -0,0 +1,51 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: Histogram, DATA_SIZE, DataType */ + +/* A simple container for histograms of data in blocks. */ + +typedef struct FN(Histogram) { + uint32_t data_[DATA_SIZE]; + size_t total_count_; + double bit_cost_; +} FN(Histogram); + +static BROTLI_INLINE void FN(HistogramClear)(FN(Histogram)* self) { + memset(self->data_, 0, sizeof(self->data_)); + self->total_count_ = 0; + self->bit_cost_ = HUGE_VAL; +} + +static BROTLI_INLINE void FN(ClearHistograms)( + FN(Histogram)* array, size_t length) { + size_t i; + for (i = 0; i < length; ++i) FN(HistogramClear)(array + i); +} + +static BROTLI_INLINE void FN(HistogramAdd)(FN(Histogram)* self, size_t val) { + ++self->data_[val]; + ++self->total_count_; +} + +static BROTLI_INLINE void FN(HistogramAddVector)(FN(Histogram)* self, + const DataType *p, size_t n) { + self->total_count_ += n; + n += 1; + while (--n) ++self->data_[*p++]; +} + +static BROTLI_INLINE void FN(HistogramAddHistogram)(FN(Histogram)* self, + const FN(Histogram)* v) { + size_t i; + self->total_count_ += v->total_count_; + for (i = 0; i < DATA_SIZE; ++i) { + self->data_[i] += v->data_[i]; + } +} + +static BROTLI_INLINE size_t FN(HistogramDataSize)(void) { return DATA_SIZE; } diff --git a/thirdparty/brotli/enc/literal_cost.c b/thirdparty/brotli/enc/literal_cost.c new file mode 100644 index 00000000..301edc81 --- /dev/null +++ b/thirdparty/brotli/enc/literal_cost.c @@ -0,0 +1,178 @@ +/* Copyright 2013 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Literal cost model to allow backward reference replacement to be efficient. +*/ + +#include "./literal_cost.h" + +#include "../common/types.h" +#include "./fast_log.h" +#include "./port.h" +#include "./utf8_util.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +static size_t UTF8Position(size_t last, size_t c, size_t clamp) { + if (c < 128) { + return 0; /* Next one is the 'Byte 1' again. */ + } else if (c >= 192) { /* Next one is the 'Byte 2' of utf-8 encoding. */ + return BROTLI_MIN(size_t, 1, clamp); + } else { + /* Let's decide over the last byte if this ends the sequence. */ + if (last < 0xe0) { + return 0; /* Completed two or three byte coding. */ + } else { /* Next one is the 'Byte 3' of utf-8 encoding. */ + return BROTLI_MIN(size_t, 2, clamp); + } + } +} + +static size_t DecideMultiByteStatsLevel(size_t pos, size_t len, size_t mask, + const uint8_t *data) { + size_t counts[3] = { 0 }; + size_t max_utf8 = 1; /* should be 2, but 1 compresses better. */ + size_t last_c = 0; + size_t utf8_pos = 0; + size_t i; + for (i = 0; i < len; ++i) { + size_t c = data[(pos + i) & mask]; + utf8_pos = UTF8Position(last_c, c, 2); + ++counts[utf8_pos]; + last_c = c; + } + if (counts[2] < 500) { + max_utf8 = 1; + } + if (counts[1] + counts[2] < 25) { + max_utf8 = 0; + } + return max_utf8; +} + +static void EstimateBitCostsForLiteralsUTF8(size_t pos, size_t len, size_t mask, + const uint8_t *data, float *cost) { + /* max_utf8 is 0 (normal ascii single byte modeling), + 1 (for 2-byte utf-8 modeling), or 2 (for 3-byte utf-8 modeling). */ + const size_t max_utf8 = DecideMultiByteStatsLevel(pos, len, mask, data); + size_t histogram[3][256] = { { 0 } }; + size_t window_half = 495; + size_t in_window = BROTLI_MIN(size_t, window_half, len); + size_t in_window_utf8[3] = { 0 }; + + + size_t i; + { /* Bootstrap histograms. */ + size_t last_c = 0; + size_t utf8_pos = 0; + for (i = 0; i < in_window; ++i) { + size_t c = data[(pos + i) & mask]; + ++histogram[utf8_pos][c]; + ++in_window_utf8[utf8_pos]; + utf8_pos = UTF8Position(last_c, c, max_utf8); + last_c = c; + } + } + + /* Compute bit costs with sliding window. */ + for (i = 0; i < len; ++i) { + if (i >= window_half) { + /* Remove a byte in the past. */ + size_t c = + i < window_half + 1 ? 0 : data[(pos + i - window_half - 1) & mask]; + size_t last_c = + i < window_half + 2 ? 0 : data[(pos + i - window_half - 2) & mask]; + size_t utf8_pos2 = UTF8Position(last_c, c, max_utf8); + --histogram[utf8_pos2][data[(pos + i - window_half) & mask]]; + --in_window_utf8[utf8_pos2]; + } + if (i + window_half < len) { + /* Add a byte in the future. */ + size_t c = data[(pos + i + window_half - 1) & mask]; + size_t last_c = data[(pos + i + window_half - 2) & mask]; + size_t utf8_pos2 = UTF8Position(last_c, c, max_utf8); + ++histogram[utf8_pos2][data[(pos + i + window_half) & mask]]; + ++in_window_utf8[utf8_pos2]; + } + { + size_t c = i < 1 ? 0 : data[(pos + i - 1) & mask]; + size_t last_c = i < 2 ? 0 : data[(pos + i - 2) & mask]; + size_t utf8_pos = UTF8Position(last_c, c, max_utf8); + size_t masked_pos = (pos + i) & mask; + size_t histo = histogram[utf8_pos][data[masked_pos]]; + double lit_cost; + if (histo == 0) { + histo = 1; + } + lit_cost = FastLog2(in_window_utf8[utf8_pos]) - FastLog2(histo); + lit_cost += 0.02905; + if (lit_cost < 1.0) { + lit_cost *= 0.5; + lit_cost += 0.5; + } + /* Make the first bytes more expensive -- seems to help, not sure why. + Perhaps because the entropy source is changing its properties + rapidly in the beginning of the file, perhaps because the beginning + of the data is a statistical "anomaly". */ + if (i < 2000) { + lit_cost += 0.7 - ((double)(2000 - i) / 2000.0 * 0.35); + } + cost[i] = (float)lit_cost; + } + } +} + +void BrotliEstimateBitCostsForLiterals(size_t pos, size_t len, size_t mask, + const uint8_t *data, float *cost) { + if (BrotliIsMostlyUTF8(data, pos, mask, len, kMinUTF8Ratio)) { + EstimateBitCostsForLiteralsUTF8(pos, len, mask, data, cost); + return; + } else { + size_t histogram[256] = { 0 }; + size_t window_half = 2000; + size_t in_window = BROTLI_MIN(size_t, window_half, len); + + /* Bootstrap histogram. */ + size_t i; + for (i = 0; i < in_window; ++i) { + ++histogram[data[(pos + i) & mask]]; + } + + /* Compute bit costs with sliding window. */ + for (i = 0; i < len; ++i) { + size_t histo; + if (i >= window_half) { + /* Remove a byte in the past. */ + --histogram[data[(pos + i - window_half) & mask]]; + --in_window; + } + if (i + window_half < len) { + /* Add a byte in the future. */ + ++histogram[data[(pos + i + window_half) & mask]]; + ++in_window; + } + histo = histogram[data[(pos + i) & mask]]; + if (histo == 0) { + histo = 1; + } + { + double lit_cost = FastLog2(in_window) - FastLog2(histo); + lit_cost += 0.029; + if (lit_cost < 1.0) { + lit_cost *= 0.5; + lit_cost += 0.5; + } + cost[i] = (float)lit_cost; + } + } + } +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/literal_cost.cc b/thirdparty/brotli/enc/literal_cost.cc deleted file mode 100644 index e6be86fc..00000000 --- a/thirdparty/brotli/enc/literal_cost.cc +++ /dev/null @@ -1,165 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Literal cost model to allow backward reference replacement to be efficient. - -#include "./literal_cost.h" - -#include <math.h> -#include <algorithm> - -#include "./fast_log.h" -#include "./types.h" -#include "./utf8_util.h" - -namespace brotli { - -static size_t UTF8Position(size_t last, size_t c, size_t clamp) { - if (c < 128) { - return 0; // Next one is the 'Byte 1' again. - } else if (c >= 192) { // Next one is the 'Byte 2' of utf-8 encoding. - return std::min<size_t>(1, clamp); - } else { - // Let's decide over the last byte if this ends the sequence. - if (last < 0xe0) { - return 0; // Completed two or three byte coding. - } else { // Next one is the 'Byte 3' of utf-8 encoding. - return std::min<size_t>(2, clamp); - } - } -} - -static size_t DecideMultiByteStatsLevel(size_t pos, size_t len, size_t mask, - const uint8_t *data) { - size_t counts[3] = { 0 }; - size_t max_utf8 = 1; // should be 2, but 1 compresses better. - size_t last_c = 0; - size_t utf8_pos = 0; - for (size_t i = 0; i < len; ++i) { - size_t c = data[(pos + i) & mask]; - utf8_pos = UTF8Position(last_c, c, 2); - ++counts[utf8_pos]; - last_c = c; - } - if (counts[2] < 500) { - max_utf8 = 1; - } - if (counts[1] + counts[2] < 25) { - max_utf8 = 0; - } - return max_utf8; -} - -static void EstimateBitCostsForLiteralsUTF8(size_t pos, size_t len, size_t mask, - const uint8_t *data, float *cost) { - - // max_utf8 is 0 (normal ascii single byte modeling), - // 1 (for 2-byte utf-8 modeling), or 2 (for 3-byte utf-8 modeling). - const size_t max_utf8 = DecideMultiByteStatsLevel(pos, len, mask, data); - size_t histogram[3][256] = { { 0 } }; - size_t window_half = 495; - size_t in_window = std::min(window_half, len); - size_t in_window_utf8[3] = { 0 }; - - // Bootstrap histograms. - size_t last_c = 0; - size_t utf8_pos = 0; - for (size_t i = 0; i < in_window; ++i) { - size_t c = data[(pos + i) & mask]; - ++histogram[utf8_pos][c]; - ++in_window_utf8[utf8_pos]; - utf8_pos = UTF8Position(last_c, c, max_utf8); - last_c = c; - } - - // Compute bit costs with sliding window. - for (size_t i = 0; i < len; ++i) { - if (i >= window_half) { - // Remove a byte in the past. - size_t c = i < window_half + 1 ? - 0 : data[(pos + i - window_half - 1) & mask]; - size_t last_c = i < window_half + 2 ? - 0 : data[(pos + i - window_half - 2) & mask]; - size_t utf8_pos2 = UTF8Position(last_c, c, max_utf8); - --histogram[utf8_pos2][data[(pos + i - window_half) & mask]]; - --in_window_utf8[utf8_pos2]; - } - if (i + window_half < len) { - // Add a byte in the future. - size_t c = data[(pos + i + window_half - 1) & mask]; - size_t last_c = data[(pos + i + window_half - 2) & mask]; - size_t utf8_pos2 = UTF8Position(last_c, c, max_utf8); - ++histogram[utf8_pos2][data[(pos + i + window_half) & mask]]; - ++in_window_utf8[utf8_pos2]; - } - size_t c = i < 1 ? 0 : data[(pos + i - 1) & mask]; - size_t last_c = i < 2 ? 0 : data[(pos + i - 2) & mask]; - size_t utf8_pos = UTF8Position(last_c, c, max_utf8); - size_t masked_pos = (pos + i) & mask; - size_t histo = histogram[utf8_pos][data[masked_pos]]; - if (histo == 0) { - histo = 1; - } - double lit_cost = FastLog2(in_window_utf8[utf8_pos]) - FastLog2(histo); - lit_cost += 0.02905; - if (lit_cost < 1.0) { - lit_cost *= 0.5; - lit_cost += 0.5; - } - // Make the first bytes more expensive -- seems to help, not sure why. - // Perhaps because the entropy source is changing its properties - // rapidly in the beginning of the file, perhaps because the beginning - // of the data is a statistical "anomaly". - if (i < 2000) { - lit_cost += 0.7 - (static_cast<double>(2000 - i) / 2000.0 * 0.35); - } - cost[i] = static_cast<float>(lit_cost); - } -} - -void EstimateBitCostsForLiterals(size_t pos, size_t len, size_t mask, - const uint8_t *data, float *cost) { - if (IsMostlyUTF8(data, pos, mask, len, kMinUTF8Ratio)) { - EstimateBitCostsForLiteralsUTF8(pos, len, mask, data, cost); - return; - } - size_t histogram[256] = { 0 }; - size_t window_half = 2000; - size_t in_window = std::min(window_half, len); - - // Bootstrap histogram. - for (size_t i = 0; i < in_window; ++i) { - ++histogram[data[(pos + i) & mask]]; - } - - // Compute bit costs with sliding window. - for (size_t i = 0; i < len; ++i) { - if (i >= window_half) { - // Remove a byte in the past. - --histogram[data[(pos + i - window_half) & mask]]; - --in_window; - } - if (i + window_half < len) { - // Add a byte in the future. - ++histogram[data[(pos + i + window_half) & mask]]; - ++in_window; - } - size_t histo = histogram[data[(pos + i) & mask]]; - if (histo == 0) { - histo = 1; - } - double lit_cost = FastLog2(in_window) - FastLog2(histo); - lit_cost += 0.029; - if (lit_cost < 1.0) { - lit_cost *= 0.5; - lit_cost += 0.5; - } - cost[i] = static_cast<float>(lit_cost); - } -} - - -} // namespace brotli diff --git a/thirdparty/brotli/enc/literal_cost.h b/thirdparty/brotli/enc/literal_cost.h index 291aa8a1..fa96c9e7 100644 --- a/thirdparty/brotli/enc/literal_cost.h +++ b/thirdparty/brotli/enc/literal_cost.h @@ -4,21 +4,27 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Literal cost model to allow backward reference replacement to be efficient. +/* Literal cost model to allow backward reference replacement to be efficient. +*/ #ifndef BROTLI_ENC_LITERAL_COST_H_ #define BROTLI_ENC_LITERAL_COST_H_ -#include "./types.h" +#include "../common/types.h" +#include "./port.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -// Estimates how many bits the literals in the interval [pos, pos + len) in the -// ringbuffer (data, mask) will take entropy coded and writes these estimates -// to the cost[0..len) array. -void EstimateBitCostsForLiterals(size_t pos, size_t len, size_t mask, - const uint8_t *data, float *cost); +/* Estimates how many bits the literals in the interval [pos, pos + len) in the + ringbuffer (data, mask) will take entropy coded and writes these estimates + to the cost[0..len) array. */ +BROTLI_INTERNAL void BrotliEstimateBitCostsForLiterals( + size_t pos, size_t len, size_t mask, const uint8_t *data, float *cost); -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_LITERAL_COST_H_ +#endif /* BROTLI_ENC_LITERAL_COST_H_ */ diff --git a/thirdparty/brotli/enc/memory.c b/thirdparty/brotli/enc/memory.c new file mode 100644 index 00000000..cd1cbbab --- /dev/null +++ b/thirdparty/brotli/enc/memory.c @@ -0,0 +1,181 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Algorithms for distributing the literals and commands of a metablock between + block types and contexts. */ + +#include "./memory.h" + +#include <assert.h> +#include <stdlib.h> /* exit, free, malloc */ +#include <string.h> /* memcpy */ + +#include "../common/types.h" +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MAX_PERM_ALLOCATED 128 +#define MAX_NEW_ALLOCATED 64 +#define MAX_NEW_FREED 64 + +#define PERM_ALLOCATED_OFFSET 0 +#define NEW_ALLOCATED_OFFSET MAX_PERM_ALLOCATED +#define NEW_FREED_OFFSET (MAX_PERM_ALLOCATED + MAX_NEW_ALLOCATED) + +static void* DefaultAllocFunc(void* opaque, size_t size) { + BROTLI_UNUSED(opaque); + return malloc(size); +} + +static void DefaultFreeFunc(void* opaque, void* address) { + BROTLI_UNUSED(opaque); + free(address); +} + +void BrotliInitMemoryManager( + MemoryManager* m, brotli_alloc_func alloc_func, brotli_free_func free_func, + void* opaque) { + if (!alloc_func) { + m->alloc_func = DefaultAllocFunc; + m->free_func = DefaultFreeFunc; + m->opaque = 0; + } else { + m->alloc_func = alloc_func; + m->free_func = free_func; + m->opaque = opaque; + } +#if !defined(BROTLI_ENCODER_EXIT_ON_OOM) + m->is_oom = BROTLI_FALSE; + m->perm_allocated = 0; + m->new_allocated = 0; + m->new_freed = 0; +#endif /* BROTLI_ENCODER_EXIT_ON_OOM */ +} + +#if defined(BROTLI_ENCODER_EXIT_ON_OOM) + +void* BrotliAllocate(MemoryManager* m, size_t n) { + void* result = m->alloc_func(m->opaque, n); + if (!result) exit(EXIT_FAILURE); + return result; +} + +void BrotliFree(MemoryManager* m, void* p) { + m->free_func(m->opaque, p); +} + +void BrotliWipeOutMemoryManager(MemoryManager* m) { + BROTLI_UNUSED(m); +} + +#else /* BROTLI_ENCODER_EXIT_ON_OOM */ + +static void SortPointers(void** items, const size_t n) { + /* Shell sort. */ + static const size_t gaps[] = {23, 10, 4, 1}; + int g = 0; + for (; g < 4; ++g) { + size_t gap = gaps[g]; + size_t i; + for (i = gap; i < n; ++i) { + size_t j = i; + void* tmp = items[i]; + for (; j >= gap && tmp < items[j - gap]; j -= gap) { + items[j] = items[j - gap]; + } + items[j] = tmp; + } + } +} + +static size_t Annihilate(void** a, size_t a_len, void** b, size_t b_len) { + size_t a_read_index = 0; + size_t b_read_index = 0; + size_t a_write_index = 0; + size_t b_write_index = 0; + size_t annihilated = 0; + while (a_read_index < a_len && b_read_index < b_len) { + if (a[a_read_index] == b[b_read_index]) { + a_read_index++; + b_read_index++; + annihilated++; + } else if (a[a_read_index] < b[b_read_index]) { + a[a_write_index++] = a[a_read_index++]; + } else { + b[b_write_index++] = b[b_read_index++]; + } + } + while (a_read_index < a_len) a[a_write_index++] = a[a_read_index++]; + while (b_read_index < b_len) b[b_write_index++] = b[b_read_index++]; + return annihilated; +} + +static void CollectGarbagePointers(MemoryManager* m) { + size_t annihilated; + SortPointers(m->pointers + NEW_ALLOCATED_OFFSET, m->new_allocated); + SortPointers(m->pointers + NEW_FREED_OFFSET, m->new_freed); + annihilated = Annihilate( + m->pointers + NEW_ALLOCATED_OFFSET, m->new_allocated, + m->pointers + NEW_FREED_OFFSET, m->new_freed); + m->new_allocated -= annihilated; + m->new_freed -= annihilated; + + if (m->new_freed != 0) { + annihilated = Annihilate( + m->pointers + PERM_ALLOCATED_OFFSET, m->perm_allocated, + m->pointers + NEW_FREED_OFFSET, m->new_freed); + m->perm_allocated -= annihilated; + m->new_freed -= annihilated; + assert(m->new_freed == 0); + } + + if (m->new_allocated != 0) { + assert(m->perm_allocated + m->new_allocated <= MAX_PERM_ALLOCATED); + memcpy(m->pointers + PERM_ALLOCATED_OFFSET + m->perm_allocated, + m->pointers + NEW_ALLOCATED_OFFSET, + sizeof(void*) * m->new_allocated); + m->perm_allocated += m->new_allocated; + m->new_allocated = 0; + SortPointers(m->pointers + PERM_ALLOCATED_OFFSET, m->perm_allocated); + } +} + +void* BrotliAllocate(MemoryManager* m, size_t n) { + void* result = m->alloc_func(m->opaque, n); + if (!result) { + m->is_oom = BROTLI_TRUE; + return NULL; + } + if (m->new_allocated == MAX_NEW_ALLOCATED) CollectGarbagePointers(m); + m->pointers[NEW_ALLOCATED_OFFSET + (m->new_allocated++)] = result; + return result; +} + +void BrotliFree(MemoryManager* m, void* p) { + if (!p) return; + m->free_func(m->opaque, p); + if (m->new_freed == MAX_NEW_FREED) CollectGarbagePointers(m); + m->pointers[NEW_FREED_OFFSET + (m->new_freed++)] = p; +} + +void BrotliWipeOutMemoryManager(MemoryManager* m) { + size_t i; + CollectGarbagePointers(m); + /* Now all unfreed pointers are in perm-allocated list. */ + for (i = 0; i < m->perm_allocated; ++i) { + m->free_func(m->opaque, m->pointers[PERM_ALLOCATED_OFFSET + i]); + } + m->perm_allocated = 0; +} + +#endif /* BROTLI_ENCODER_EXIT_ON_OOM */ + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/memory.h b/thirdparty/brotli/enc/memory.h new file mode 100644 index 00000000..e7abe0e1 --- /dev/null +++ b/thirdparty/brotli/enc/memory.h @@ -0,0 +1,62 @@ +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Macros for memory management. */ + +#ifndef BROTLI_ENC_MEMORY_H_ +#define BROTLI_ENC_MEMORY_H_ + +#include "../common/types.h" +#include "./port.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#if !defined(BROTLI_ENCODER_CLEANUP_ON_OOM) && \ + !defined(BROTLI_ENCODER_EXIT_ON_OOM) +#define BROTLI_ENCODER_EXIT_ON_OOM +#endif + +typedef struct MemoryManager { + brotli_alloc_func alloc_func; + brotli_free_func free_func; + void* opaque; +#if !defined(BROTLI_ENCODER_EXIT_ON_OOM) + BROTLI_BOOL is_oom; + size_t perm_allocated; + size_t new_allocated; + size_t new_freed; + void* pointers[256]; +#endif /* BROTLI_ENCODER_EXIT_ON_OOM */ +} MemoryManager; + +BROTLI_INTERNAL void BrotliInitMemoryManager( + MemoryManager* m, brotli_alloc_func alloc_func, brotli_free_func free_func, + void* opaque); + +BROTLI_INTERNAL void* BrotliAllocate(MemoryManager* m, size_t n); +#define BROTLI_ALLOC(M, T, N) ((T*)BrotliAllocate((M), (N) * sizeof(T))) + +BROTLI_INTERNAL void BrotliFree(MemoryManager* m, void* p); +#define BROTLI_FREE(M, P) { \ + BrotliFree((M), (P)); \ + P = NULL; \ +} + +#if defined(BROTLI_ENCODER_EXIT_ON_OOM) +#define BROTLI_IS_OOM(M) (!!0) +#else /* BROTLI_ENCODER_EXIT_ON_OOM */ +#define BROTLI_IS_OOM(M) (!!(M)->is_oom) +#endif /* BROTLI_ENCODER_EXIT_ON_OOM */ + +BROTLI_INTERNAL void BrotliWipeOutMemoryManager(MemoryManager* m); + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_MEMORY_H_ */ diff --git a/thirdparty/brotli/enc/metablock.c b/thirdparty/brotli/enc/metablock.c new file mode 100644 index 00000000..e2e7909e --- /dev/null +++ b/thirdparty/brotli/enc/metablock.c @@ -0,0 +1,515 @@ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Algorithms for distributing the literals and commands of a metablock between + block types and contexts. */ + +#include "./metablock.h" + +#include "../common/constants.h" +#include "../common/types.h" +#include "./bit_cost.h" +#include "./block_splitter.h" +#include "./cluster.h" +#include "./context.h" +#include "./entropy_encode.h" +#include "./histogram.h" +#include "./memory.h" +#include "./port.h" +#include "./quality.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +void BrotliBuildMetaBlock(MemoryManager* m, + const uint8_t* ringbuffer, + const size_t pos, + const size_t mask, + const BrotliEncoderParams* params, + uint8_t prev_byte, + uint8_t prev_byte2, + const Command* cmds, + size_t num_commands, + ContextType literal_context_mode, + MetaBlockSplit* mb) { + /* Histogram ids need to fit in one byte. */ + static const size_t kMaxNumberOfHistograms = 256; + HistogramDistance* distance_histograms; + HistogramLiteral* literal_histograms; + ContextType* literal_context_modes; + size_t num_literal_contexts; + size_t num_distance_contexts; + size_t i; + + BrotliSplitBlock(m, cmds, num_commands, + ringbuffer, pos, mask, params, + &mb->literal_split, + &mb->command_split, + &mb->distance_split); + if (BROTLI_IS_OOM(m)) return; + + literal_context_modes = + BROTLI_ALLOC(m, ContextType, mb->literal_split.num_types); + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < mb->literal_split.num_types; ++i) { + literal_context_modes[i] = literal_context_mode; + } + + num_literal_contexts = + mb->literal_split.num_types << BROTLI_LITERAL_CONTEXT_BITS; + num_distance_contexts = + mb->distance_split.num_types << BROTLI_DISTANCE_CONTEXT_BITS; + literal_histograms = BROTLI_ALLOC(m, HistogramLiteral, num_literal_contexts); + if (BROTLI_IS_OOM(m)) return; + ClearHistogramsLiteral(literal_histograms, num_literal_contexts); + + assert(mb->command_histograms == 0); + mb->command_histograms_size = mb->command_split.num_types; + mb->command_histograms = + BROTLI_ALLOC(m, HistogramCommand, mb->command_histograms_size); + if (BROTLI_IS_OOM(m)) return; + ClearHistogramsCommand(mb->command_histograms, mb->command_histograms_size); + distance_histograms = + BROTLI_ALLOC(m, HistogramDistance, num_distance_contexts); + if (BROTLI_IS_OOM(m)) return; + ClearHistogramsDistance(distance_histograms, num_distance_contexts); + BrotliBuildHistogramsWithContext(cmds, num_commands, + &mb->literal_split, &mb->command_split, &mb->distance_split, + ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_modes, + literal_histograms, mb->command_histograms, distance_histograms); + BROTLI_FREE(m, literal_context_modes); + + assert(mb->literal_context_map == 0); + mb->literal_context_map_size = + mb->literal_split.num_types << BROTLI_LITERAL_CONTEXT_BITS; + mb->literal_context_map = + BROTLI_ALLOC(m, uint32_t, mb->literal_context_map_size); + if (BROTLI_IS_OOM(m)) return; + assert(mb->literal_histograms == 0); + mb->literal_histograms_size = mb->literal_context_map_size; + mb->literal_histograms = + BROTLI_ALLOC(m, HistogramLiteral, mb->literal_histograms_size); + if (BROTLI_IS_OOM(m)) return; + BrotliClusterHistogramsLiteral(m, literal_histograms, + mb->literal_context_map_size, + kMaxNumberOfHistograms, + mb->literal_histograms, + &mb->literal_histograms_size, + mb->literal_context_map); + if (BROTLI_IS_OOM(m)) return; + BROTLI_FREE(m, literal_histograms); + + assert(mb->distance_context_map == 0); + mb->distance_context_map_size = + mb->distance_split.num_types << BROTLI_DISTANCE_CONTEXT_BITS; + mb->distance_context_map = + BROTLI_ALLOC(m, uint32_t, mb->distance_context_map_size); + if (BROTLI_IS_OOM(m)) return; + assert(mb->distance_histograms == 0); + mb->distance_histograms_size = mb->distance_context_map_size; + mb->distance_histograms = + BROTLI_ALLOC(m, HistogramDistance, mb->distance_histograms_size); + if (BROTLI_IS_OOM(m)) return; + BrotliClusterHistogramsDistance(m, distance_histograms, + mb->distance_context_map_size, + kMaxNumberOfHistograms, + mb->distance_histograms, + &mb->distance_histograms_size, + mb->distance_context_map); + if (BROTLI_IS_OOM(m)) return; + BROTLI_FREE(m, distance_histograms); +} + +#define FN(X) X ## Literal +#include "./metablock_inc.h" /* NOLINT(build/include) */ +#undef FN + +#define FN(X) X ## Command +#include "./metablock_inc.h" /* NOLINT(build/include) */ +#undef FN + +#define FN(X) X ## Distance +#include "./metablock_inc.h" /* NOLINT(build/include) */ +#undef FN + +void BrotliBuildMetaBlockGreedy(MemoryManager* m, + const uint8_t* ringbuffer, + size_t pos, + size_t mask, + const Command *commands, + size_t n_commands, + MetaBlockSplit* mb) { + BlockSplitterLiteral lit_blocks; + BlockSplitterCommand cmd_blocks; + BlockSplitterDistance dist_blocks; + size_t num_literals = 0; + size_t i; + for (i = 0; i < n_commands; ++i) { + num_literals += commands[i].insert_len_; + } + + InitBlockSplitterLiteral(m, &lit_blocks, 256, 512, 400.0, num_literals, + &mb->literal_split, &mb->literal_histograms, + &mb->literal_histograms_size); + if (BROTLI_IS_OOM(m)) return; + InitBlockSplitterCommand(m, &cmd_blocks, BROTLI_NUM_COMMAND_SYMBOLS, 1024, + 500.0, n_commands, &mb->command_split, &mb->command_histograms, + &mb->command_histograms_size); + if (BROTLI_IS_OOM(m)) return; + InitBlockSplitterDistance(m, &dist_blocks, 64, 512, 100.0, n_commands, + &mb->distance_split, &mb->distance_histograms, + &mb->distance_histograms_size); + if (BROTLI_IS_OOM(m)) return; + + for (i = 0; i < n_commands; ++i) { + const Command cmd = commands[i]; + size_t j; + BlockSplitterAddSymbolCommand(&cmd_blocks, cmd.cmd_prefix_); + for (j = cmd.insert_len_; j != 0; --j) { + BlockSplitterAddSymbolLiteral(&lit_blocks, ringbuffer[pos & mask]); + ++pos; + } + pos += CommandCopyLen(&cmd); + if (CommandCopyLen(&cmd) && cmd.cmd_prefix_ >= 128) { + BlockSplitterAddSymbolDistance(&dist_blocks, cmd.dist_prefix_); + } + } + + BlockSplitterFinishBlockLiteral(&lit_blocks, /* is_final = */ BROTLI_TRUE); + BlockSplitterFinishBlockCommand(&cmd_blocks, /* is_final = */ BROTLI_TRUE); + BlockSplitterFinishBlockDistance(&dist_blocks, /* is_final = */ BROTLI_TRUE); +} + +/* Greedy block splitter for one block category (literal, command or distance). + Gathers histograms for all context buckets. */ +typedef struct ContextBlockSplitter { + /* Alphabet size of particular block category. */ + size_t alphabet_size_; + size_t num_contexts_; + size_t max_block_types_; + /* We collect at least this many symbols for each block. */ + size_t min_block_size_; + /* We merge histograms A and B if + entropy(A+B) < entropy(A) + entropy(B) + split_threshold_, + where A is the current histogram and B is the histogram of the last or the + second last block type. */ + double split_threshold_; + + size_t num_blocks_; + BlockSplit* split_; /* not owned */ + HistogramLiteral* histograms_; /* not owned */ + size_t* histograms_size_; /* not owned */ + + /* The number of symbols that we want to collect before deciding on whether + or not to merge the block with a previous one or emit a new block. */ + size_t target_block_size_; + /* The number of symbols in the current histogram. */ + size_t block_size_; + /* Offset of the current histogram. */ + size_t curr_histogram_ix_; + /* Offset of the histograms of the previous two block types. */ + size_t last_histogram_ix_[2]; + /* Entropy of the previous two block types. */ + double* last_entropy_; + /* The number of times we merged the current block with the last one. */ + size_t merge_last_count_; +} ContextBlockSplitter; + +static void InitContextBlockSplitter( + MemoryManager* m, ContextBlockSplitter* self, size_t alphabet_size, + size_t num_contexts, size_t min_block_size, double split_threshold, + size_t num_symbols, BlockSplit* split, HistogramLiteral** histograms, + size_t* histograms_size) { + size_t max_num_blocks = num_symbols / min_block_size + 1; + size_t max_num_types; + + self->alphabet_size_ = alphabet_size; + self->num_contexts_ = num_contexts; + self->max_block_types_ = BROTLI_MAX_NUMBER_OF_BLOCK_TYPES / num_contexts; + self->min_block_size_ = min_block_size; + self->split_threshold_ = split_threshold; + self->num_blocks_ = 0; + self->split_ = split; + self->histograms_size_ = histograms_size; + self->target_block_size_ = min_block_size; + self->block_size_ = 0; + self->curr_histogram_ix_ = 0; + self->merge_last_count_ = 0; + + /* We have to allocate one more histogram than the maximum number of block + types for the current histogram when the meta-block is too big. */ + max_num_types = + BROTLI_MIN(size_t, max_num_blocks, self->max_block_types_ + 1); + BROTLI_ENSURE_CAPACITY(m, uint8_t, + split->types, split->types_alloc_size, max_num_blocks); + BROTLI_ENSURE_CAPACITY(m, uint32_t, + split->lengths, split->lengths_alloc_size, max_num_blocks); + if (BROTLI_IS_OOM(m)) return; + split->num_blocks = max_num_blocks; + self->last_entropy_ = BROTLI_ALLOC(m, double, 2 * num_contexts); + if (BROTLI_IS_OOM(m)) return; + assert(*histograms == 0); + *histograms_size = max_num_types * num_contexts; + *histograms = BROTLI_ALLOC(m, HistogramLiteral, *histograms_size); + self->histograms_ = *histograms; + if (BROTLI_IS_OOM(m)) return; + /* Clear only current historgram. */ + ClearHistogramsLiteral(&self->histograms_[0], num_contexts); + self->last_histogram_ix_[0] = self->last_histogram_ix_[1] = 0; +} + +static void CleanupContextBlockSplitter( + MemoryManager* m, ContextBlockSplitter* self) { + BROTLI_FREE(m, self->last_entropy_); +} + +/* Does either of three things: + (1) emits the current block with a new block type; + (2) emits the current block with the type of the second last block; + (3) merges the current block with the last block. */ +static void ContextBlockSplitterFinishBlock( + MemoryManager* m, ContextBlockSplitter* self, BROTLI_BOOL is_final) { + BlockSplit* split = self->split_; + const size_t num_contexts = self->num_contexts_; + double* last_entropy = self->last_entropy_; + HistogramLiteral* histograms = self->histograms_; + + if (self->block_size_ < self->min_block_size_) { + self->block_size_ = self->min_block_size_; + } + if (self->num_blocks_ == 0) { + size_t i; + /* Create first block. */ + split->lengths[0] = (uint32_t)self->block_size_; + split->types[0] = 0; + + for (i = 0; i < num_contexts; ++i) { + last_entropy[i] = + BitsEntropy(histograms[i].data_, self->alphabet_size_); + last_entropy[num_contexts + i] = last_entropy[i]; + } + ++self->num_blocks_; + ++split->num_types; + self->curr_histogram_ix_ += num_contexts; + if (self->curr_histogram_ix_ < *self->histograms_size_) { + ClearHistogramsLiteral( + &self->histograms_[self->curr_histogram_ix_], self->num_contexts_); + } + self->block_size_ = 0; + } else if (self->block_size_ > 0) { + /* Try merging the set of histograms for the current block type with the + respective set of histograms for the last and second last block types. + Decide over the split based on the total reduction of entropy across + all contexts. */ + double* entropy = BROTLI_ALLOC(m, double, num_contexts); + HistogramLiteral* combined_histo = + BROTLI_ALLOC(m, HistogramLiteral, 2 * num_contexts); + double* combined_entropy = BROTLI_ALLOC(m, double, 2 * num_contexts); + double diff[2] = { 0.0 }; + size_t i; + if (BROTLI_IS_OOM(m)) return; + for (i = 0; i < num_contexts; ++i) { + size_t curr_histo_ix = self->curr_histogram_ix_ + i; + size_t j; + entropy[i] = BitsEntropy(histograms[curr_histo_ix].data_, + self->alphabet_size_); + for (j = 0; j < 2; ++j) { + size_t jx = j * num_contexts + i; + size_t last_histogram_ix = self->last_histogram_ix_[j] + i; + combined_histo[jx] = histograms[curr_histo_ix]; + HistogramAddHistogramLiteral(&combined_histo[jx], + &histograms[last_histogram_ix]); + combined_entropy[jx] = BitsEntropy( + &combined_histo[jx].data_[0], self->alphabet_size_); + diff[j] += combined_entropy[jx] - entropy[i] - last_entropy[jx]; + } + } + + if (split->num_types < self->max_block_types_ && + diff[0] > self->split_threshold_ && + diff[1] > self->split_threshold_) { + /* Create new block. */ + split->lengths[self->num_blocks_] = (uint32_t)self->block_size_; + split->types[self->num_blocks_] = (uint8_t)split->num_types; + self->last_histogram_ix_[1] = self->last_histogram_ix_[0]; + self->last_histogram_ix_[0] = split->num_types * num_contexts; + for (i = 0; i < num_contexts; ++i) { + last_entropy[num_contexts + i] = last_entropy[i]; + last_entropy[i] = entropy[i]; + } + ++self->num_blocks_; + ++split->num_types; + self->curr_histogram_ix_ += num_contexts; + if (self->curr_histogram_ix_ < *self->histograms_size_) { + ClearHistogramsLiteral( + &self->histograms_[self->curr_histogram_ix_], self->num_contexts_); + } + self->block_size_ = 0; + self->merge_last_count_ = 0; + self->target_block_size_ = self->min_block_size_; + } else if (diff[1] < diff[0] - 20.0) { + /* Combine this block with second last block. */ + split->lengths[self->num_blocks_] = (uint32_t)self->block_size_; + split->types[self->num_blocks_] = split->types[self->num_blocks_ - 2]; + BROTLI_SWAP(size_t, self->last_histogram_ix_, 0, 1); + for (i = 0; i < num_contexts; ++i) { + histograms[self->last_histogram_ix_[0] + i] = + combined_histo[num_contexts + i]; + last_entropy[num_contexts + i] = last_entropy[i]; + last_entropy[i] = combined_entropy[num_contexts + i]; + HistogramClearLiteral(&histograms[self->curr_histogram_ix_ + i]); + } + ++self->num_blocks_; + self->block_size_ = 0; + self->merge_last_count_ = 0; + self->target_block_size_ = self->min_block_size_; + } else { + /* Combine this block with last block. */ + split->lengths[self->num_blocks_ - 1] += (uint32_t)self->block_size_; + for (i = 0; i < num_contexts; ++i) { + histograms[self->last_histogram_ix_[0] + i] = combined_histo[i]; + last_entropy[i] = combined_entropy[i]; + if (split->num_types == 1) { + last_entropy[num_contexts + i] = last_entropy[i]; + } + HistogramClearLiteral(&histograms[self->curr_histogram_ix_ + i]); + } + self->block_size_ = 0; + if (++self->merge_last_count_ > 1) { + self->target_block_size_ += self->min_block_size_; + } + } + BROTLI_FREE(m, combined_entropy); + BROTLI_FREE(m, combined_histo); + BROTLI_FREE(m, entropy); + } + if (is_final) { + *self->histograms_size_ = split->num_types * num_contexts; + split->num_blocks = self->num_blocks_; + } +} + +/* Adds the next symbol to the current block type and context. When the + current block reaches the target size, decides on merging the block. */ +static void ContextBlockSplitterAddSymbol(MemoryManager* m, + ContextBlockSplitter* self, size_t symbol, size_t context) { + HistogramAddLiteral(&self->histograms_[self->curr_histogram_ix_ + context], + symbol); + ++self->block_size_; + if (self->block_size_ == self->target_block_size_) { + ContextBlockSplitterFinishBlock(m, self, /* is_final = */ BROTLI_FALSE); + if (BROTLI_IS_OOM(m)) return; + } +} + +void BrotliBuildMetaBlockGreedyWithContexts(MemoryManager* m, + const uint8_t* ringbuffer, + size_t pos, + size_t mask, + uint8_t prev_byte, + uint8_t prev_byte2, + ContextType literal_context_mode, + size_t num_contexts, + const uint32_t* static_context_map, + const Command *commands, + size_t n_commands, + MetaBlockSplit* mb) { + ContextBlockSplitter lit_blocks; + BlockSplitterCommand cmd_blocks; + BlockSplitterDistance dist_blocks; + size_t num_literals = 0; + size_t i; + for (i = 0; i < n_commands; ++i) { + num_literals += commands[i].insert_len_; + } + + InitContextBlockSplitter(m, &lit_blocks, 256, num_contexts, 512, 400.0, + num_literals, &mb->literal_split, &mb->literal_histograms, + &mb->literal_histograms_size); + if (BROTLI_IS_OOM(m)) return; + InitBlockSplitterCommand(m, &cmd_blocks, BROTLI_NUM_COMMAND_SYMBOLS, 1024, + 500.0, n_commands, &mb->command_split, &mb->command_histograms, + &mb->command_histograms_size); + if (BROTLI_IS_OOM(m)) return; + InitBlockSplitterDistance(m, &dist_blocks, 64, 512, 100.0, n_commands, + &mb->distance_split, &mb->distance_histograms, + &mb->distance_histograms_size); + if (BROTLI_IS_OOM(m)) return; + + for (i = 0; i < n_commands; ++i) { + const Command cmd = commands[i]; + size_t j; + BlockSplitterAddSymbolCommand(&cmd_blocks, cmd.cmd_prefix_); + for (j = cmd.insert_len_; j != 0; --j) { + size_t context = Context(prev_byte, prev_byte2, literal_context_mode); + uint8_t literal = ringbuffer[pos & mask]; + ContextBlockSplitterAddSymbol( + m, &lit_blocks, literal, static_context_map[context]); + prev_byte2 = prev_byte; + if (BROTLI_IS_OOM(m)) return; + prev_byte = literal; + ++pos; + } + pos += CommandCopyLen(&cmd); + if (CommandCopyLen(&cmd)) { + prev_byte2 = ringbuffer[(pos - 2) & mask]; + prev_byte = ringbuffer[(pos - 1) & mask]; + if (cmd.cmd_prefix_ >= 128) { + BlockSplitterAddSymbolDistance(&dist_blocks, cmd.dist_prefix_); + } + } + } + + ContextBlockSplitterFinishBlock(m, &lit_blocks, /* is_final = */ BROTLI_TRUE); + if (BROTLI_IS_OOM(m)) return; + CleanupContextBlockSplitter(m, &lit_blocks); + BlockSplitterFinishBlockCommand(&cmd_blocks, /* is_final = */ BROTLI_TRUE); + BlockSplitterFinishBlockDistance(&dist_blocks, /* is_final = */ BROTLI_TRUE); + + assert(mb->literal_context_map == 0); + mb->literal_context_map_size = + mb->literal_split.num_types << BROTLI_LITERAL_CONTEXT_BITS; + mb->literal_context_map = + BROTLI_ALLOC(m, uint32_t, mb->literal_context_map_size); + if (BROTLI_IS_OOM(m)) return; + + for (i = 0; i < mb->literal_split.num_types; ++i) { + size_t j; + for (j = 0; j < (1u << BROTLI_LITERAL_CONTEXT_BITS); ++j) { + mb->literal_context_map[(i << BROTLI_LITERAL_CONTEXT_BITS) + j] = + (uint32_t)(i * num_contexts) + static_context_map[j]; + } + } +} + +void BrotliOptimizeHistograms(size_t num_direct_distance_codes, + size_t distance_postfix_bits, + MetaBlockSplit* mb) { + uint8_t good_for_rle[BROTLI_NUM_COMMAND_SYMBOLS]; + size_t num_distance_codes; + size_t i; + for (i = 0; i < mb->literal_histograms_size; ++i) { + BrotliOptimizeHuffmanCountsForRle(256, mb->literal_histograms[i].data_, + good_for_rle); + } + for (i = 0; i < mb->command_histograms_size; ++i) { + BrotliOptimizeHuffmanCountsForRle(BROTLI_NUM_COMMAND_SYMBOLS, + mb->command_histograms[i].data_, + good_for_rle); + } + num_distance_codes = BROTLI_NUM_DISTANCE_SHORT_CODES + + num_direct_distance_codes + (48u << distance_postfix_bits); + for (i = 0; i < mb->distance_histograms_size; ++i) { + BrotliOptimizeHuffmanCountsForRle(num_distance_codes, + mb->distance_histograms[i].data_, + good_for_rle); + } +} + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/metablock.cc b/thirdparty/brotli/enc/metablock.cc deleted file mode 100644 index fc962c5c..00000000 --- a/thirdparty/brotli/enc/metablock.cc +++ /dev/null @@ -1,539 +0,0 @@ -/* Copyright 2015 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Algorithms for distributing the literals and commands of a metablock between -// block types and contexts. - -#include "./metablock.h" - -#include "./block_splitter.h" -#include "./context.h" -#include "./cluster.h" -#include "./histogram.h" - -namespace brotli { - -void BuildMetaBlock(const uint8_t* ringbuffer, - const size_t pos, - const size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - const Command* cmds, - size_t num_commands, - ContextType literal_context_mode, - MetaBlockSplit* mb) { - SplitBlock(cmds, num_commands, - ringbuffer, pos, mask, - &mb->literal_split, - &mb->command_split, - &mb->distance_split); - - std::vector<ContextType> literal_context_modes(mb->literal_split.num_types, - literal_context_mode); - - size_t num_literal_contexts = - mb->literal_split.num_types << kLiteralContextBits; - size_t num_distance_contexts = - mb->distance_split.num_types << kDistanceContextBits; - std::vector<HistogramLiteral> literal_histograms(num_literal_contexts); - mb->command_histograms.resize(mb->command_split.num_types); - std::vector<HistogramDistance> distance_histograms(num_distance_contexts); - BuildHistograms(cmds, num_commands, - mb->literal_split, - mb->command_split, - mb->distance_split, - ringbuffer, - pos, - mask, - prev_byte, - prev_byte2, - literal_context_modes, - &literal_histograms, - &mb->command_histograms, - &distance_histograms); - - // Histogram ids need to fit in one byte. - static const size_t kMaxNumberOfHistograms = 256; - - ClusterHistograms(literal_histograms, - 1u << kLiteralContextBits, - mb->literal_split.num_types, - kMaxNumberOfHistograms, - &mb->literal_histograms, - &mb->literal_context_map); - - ClusterHistograms(distance_histograms, - 1u << kDistanceContextBits, - mb->distance_split.num_types, - kMaxNumberOfHistograms, - &mb->distance_histograms, - &mb->distance_context_map); -} - -// Greedy block splitter for one block category (literal, command or distance). -template<typename HistogramType> -class BlockSplitter { - public: - BlockSplitter(size_t alphabet_size, - size_t min_block_size, - double split_threshold, - size_t num_symbols, - BlockSplit* split, - std::vector<HistogramType>* histograms) - : alphabet_size_(alphabet_size), - min_block_size_(min_block_size), - split_threshold_(split_threshold), - num_blocks_(0), - split_(split), - histograms_(histograms), - target_block_size_(min_block_size), - block_size_(0), - curr_histogram_ix_(0), - merge_last_count_(0) { - size_t max_num_blocks = num_symbols / min_block_size + 1; - // We have to allocate one more histogram than the maximum number of block - // types for the current histogram when the meta-block is too big. - size_t max_num_types = std::min<size_t>(max_num_blocks, kMaxBlockTypes + 1); - split_->lengths.resize(max_num_blocks); - split_->types.resize(max_num_blocks); - histograms_->resize(max_num_types); - last_histogram_ix_[0] = last_histogram_ix_[1] = 0; - } - - // Adds the next symbol to the current histogram. When the current histogram - // reaches the target size, decides on merging the block. - void AddSymbol(size_t symbol) { - (*histograms_)[curr_histogram_ix_].Add(symbol); - ++block_size_; - if (block_size_ == target_block_size_) { - FinishBlock(/* is_final = */ false); - } - } - - // Does either of three things: - // (1) emits the current block with a new block type; - // (2) emits the current block with the type of the second last block; - // (3) merges the current block with the last block. - void FinishBlock(bool is_final) { - if (block_size_ < min_block_size_) { - block_size_ = min_block_size_; - } - if (num_blocks_ == 0) { - // Create first block. - split_->lengths[0] = static_cast<uint32_t>(block_size_); - split_->types[0] = 0; - last_entropy_[0] = - BitsEntropy(&(*histograms_)[0].data_[0], alphabet_size_); - last_entropy_[1] = last_entropy_[0]; - ++num_blocks_; - ++split_->num_types; - ++curr_histogram_ix_; - block_size_ = 0; - } else if (block_size_ > 0) { - double entropy = BitsEntropy(&(*histograms_)[curr_histogram_ix_].data_[0], - alphabet_size_); - HistogramType combined_histo[2]; - double combined_entropy[2]; - double diff[2]; - for (size_t j = 0; j < 2; ++j) { - size_t last_histogram_ix = last_histogram_ix_[j]; - combined_histo[j] = (*histograms_)[curr_histogram_ix_]; - combined_histo[j].AddHistogram((*histograms_)[last_histogram_ix]); - combined_entropy[j] = BitsEntropy( - &combined_histo[j].data_[0], alphabet_size_); - diff[j] = combined_entropy[j] - entropy - last_entropy_[j]; - } - - if (split_->num_types < kMaxBlockTypes && - diff[0] > split_threshold_ && - diff[1] > split_threshold_) { - // Create new block. - split_->lengths[num_blocks_] = static_cast<uint32_t>(block_size_); - split_->types[num_blocks_] = static_cast<uint8_t>(split_->num_types); - last_histogram_ix_[1] = last_histogram_ix_[0]; - last_histogram_ix_[0] = static_cast<uint8_t>(split_->num_types); - last_entropy_[1] = last_entropy_[0]; - last_entropy_[0] = entropy; - ++num_blocks_; - ++split_->num_types; - ++curr_histogram_ix_; - block_size_ = 0; - merge_last_count_ = 0; - target_block_size_ = min_block_size_; - } else if (diff[1] < diff[0] - 20.0) { - // Combine this block with second last block. - split_->lengths[num_blocks_] = static_cast<uint32_t>(block_size_); - split_->types[num_blocks_] = split_->types[num_blocks_ - 2]; - std::swap(last_histogram_ix_[0], last_histogram_ix_[1]); - (*histograms_)[last_histogram_ix_[0]] = combined_histo[1]; - last_entropy_[1] = last_entropy_[0]; - last_entropy_[0] = combined_entropy[1]; - ++num_blocks_; - block_size_ = 0; - (*histograms_)[curr_histogram_ix_].Clear(); - merge_last_count_ = 0; - target_block_size_ = min_block_size_; - } else { - // Combine this block with last block. - split_->lengths[num_blocks_ - 1] += static_cast<uint32_t>(block_size_); - (*histograms_)[last_histogram_ix_[0]] = combined_histo[0]; - last_entropy_[0] = combined_entropy[0]; - if (split_->num_types == 1) { - last_entropy_[1] = last_entropy_[0]; - } - block_size_ = 0; - (*histograms_)[curr_histogram_ix_].Clear(); - if (++merge_last_count_ > 1) { - target_block_size_ += min_block_size_; - } - } - } - if (is_final) { - (*histograms_).resize(split_->num_types); - split_->types.resize(num_blocks_); - split_->lengths.resize(num_blocks_); - } - } - - private: - static const uint16_t kMaxBlockTypes = 256; - - // Alphabet size of particular block category. - const size_t alphabet_size_; - // We collect at least this many symbols for each block. - const size_t min_block_size_; - // We merge histograms A and B if - // entropy(A+B) < entropy(A) + entropy(B) + split_threshold_, - // where A is the current histogram and B is the histogram of the last or the - // second last block type. - const double split_threshold_; - - size_t num_blocks_; - BlockSplit* split_; // not owned - std::vector<HistogramType>* histograms_; // not owned - - // The number of symbols that we want to collect before deciding on whether - // or not to merge the block with a previous one or emit a new block. - size_t target_block_size_; - // The number of symbols in the current histogram. - size_t block_size_; - // Offset of the current histogram. - size_t curr_histogram_ix_; - // Offset of the histograms of the previous two block types. - size_t last_histogram_ix_[2]; - // Entropy of the previous two block types. - double last_entropy_[2]; - // The number of times we merged the current block with the last one. - size_t merge_last_count_; -}; - -void BuildMetaBlockGreedy(const uint8_t* ringbuffer, - size_t pos, - size_t mask, - const Command *commands, - size_t n_commands, - MetaBlockSplit* mb) { - size_t num_literals = 0; - for (size_t i = 0; i < n_commands; ++i) { - num_literals += commands[i].insert_len_; - } - - BlockSplitter<HistogramLiteral> lit_blocks( - 256, 512, 400.0, num_literals, - &mb->literal_split, &mb->literal_histograms); - BlockSplitter<HistogramCommand> cmd_blocks( - kNumCommandPrefixes, 1024, 500.0, n_commands, - &mb->command_split, &mb->command_histograms); - BlockSplitter<HistogramDistance> dist_blocks( - 64, 512, 100.0, n_commands, - &mb->distance_split, &mb->distance_histograms); - - for (size_t i = 0; i < n_commands; ++i) { - const Command cmd = commands[i]; - cmd_blocks.AddSymbol(cmd.cmd_prefix_); - for (size_t j = cmd.insert_len_; j != 0; --j) { - lit_blocks.AddSymbol(ringbuffer[pos & mask]); - ++pos; - } - pos += cmd.copy_len(); - if (cmd.copy_len() && cmd.cmd_prefix_ >= 128) { - dist_blocks.AddSymbol(cmd.dist_prefix_); - } - } - - lit_blocks.FinishBlock(/* is_final = */ true); - cmd_blocks.FinishBlock(/* is_final = */ true); - dist_blocks.FinishBlock(/* is_final = */ true); -} - -// Greedy block splitter for one block category (literal, command or distance). -// Gathers histograms for all context buckets. -template<typename HistogramType> -class ContextBlockSplitter { - public: - ContextBlockSplitter(size_t alphabet_size, - size_t num_contexts, - size_t min_block_size, - double split_threshold, - size_t num_symbols, - BlockSplit* split, - std::vector<HistogramType>* histograms) - : alphabet_size_(alphabet_size), - num_contexts_(num_contexts), - max_block_types_(kMaxBlockTypes / num_contexts), - min_block_size_(min_block_size), - split_threshold_(split_threshold), - num_blocks_(0), - split_(split), - histograms_(histograms), - target_block_size_(min_block_size), - block_size_(0), - curr_histogram_ix_(0), - last_entropy_(2 * num_contexts), - merge_last_count_(0) { - size_t max_num_blocks = num_symbols / min_block_size + 1; - // We have to allocate one more histogram than the maximum number of block - // types for the current histogram when the meta-block is too big. - size_t max_num_types = std::min(max_num_blocks, max_block_types_ + 1); - split_->lengths.resize(max_num_blocks); - split_->types.resize(max_num_blocks); - histograms_->resize(max_num_types * num_contexts); - last_histogram_ix_[0] = last_histogram_ix_[1] = 0; - } - - // Adds the next symbol to the current block type and context. When the - // current block reaches the target size, decides on merging the block. - void AddSymbol(size_t symbol, size_t context) { - (*histograms_)[curr_histogram_ix_ + context].Add(symbol); - ++block_size_; - if (block_size_ == target_block_size_) { - FinishBlock(/* is_final = */ false); - } - } - - // Does either of three things: - // (1) emits the current block with a new block type; - // (2) emits the current block with the type of the second last block; - // (3) merges the current block with the last block. - void FinishBlock(bool is_final) { - if (block_size_ < min_block_size_) { - block_size_ = min_block_size_; - } - if (num_blocks_ == 0) { - // Create first block. - split_->lengths[0] = static_cast<uint32_t>(block_size_); - split_->types[0] = 0; - for (size_t i = 0; i < num_contexts_; ++i) { - last_entropy_[i] = - BitsEntropy(&(*histograms_)[i].data_[0], alphabet_size_); - last_entropy_[num_contexts_ + i] = last_entropy_[i]; - } - ++num_blocks_; - ++split_->num_types; - curr_histogram_ix_ += num_contexts_; - block_size_ = 0; - } else if (block_size_ > 0) { - // Try merging the set of histograms for the current block type with the - // respective set of histograms for the last and second last block types. - // Decide over the split based on the total reduction of entropy across - // all contexts. - std::vector<double> entropy(num_contexts_); - std::vector<HistogramType> combined_histo(2 * num_contexts_); - std::vector<double> combined_entropy(2 * num_contexts_); - double diff[2] = { 0.0 }; - for (size_t i = 0; i < num_contexts_; ++i) { - size_t curr_histo_ix = curr_histogram_ix_ + i; - entropy[i] = BitsEntropy(&(*histograms_)[curr_histo_ix].data_[0], - alphabet_size_); - for (size_t j = 0; j < 2; ++j) { - size_t jx = j * num_contexts_ + i; - size_t last_histogram_ix = last_histogram_ix_[j] + i; - combined_histo[jx] = (*histograms_)[curr_histo_ix]; - combined_histo[jx].AddHistogram((*histograms_)[last_histogram_ix]); - combined_entropy[jx] = BitsEntropy( - &combined_histo[jx].data_[0], alphabet_size_); - diff[j] += combined_entropy[jx] - entropy[i] - last_entropy_[jx]; - } - } - - if (split_->num_types < max_block_types_ && - diff[0] > split_threshold_ && - diff[1] > split_threshold_) { - // Create new block. - split_->lengths[num_blocks_] = static_cast<uint32_t>(block_size_); - split_->types[num_blocks_] = static_cast<uint8_t>(split_->num_types); - last_histogram_ix_[1] = last_histogram_ix_[0]; - last_histogram_ix_[0] = split_->num_types * num_contexts_; - for (size_t i = 0; i < num_contexts_; ++i) { - last_entropy_[num_contexts_ + i] = last_entropy_[i]; - last_entropy_[i] = entropy[i]; - } - ++num_blocks_; - ++split_->num_types; - curr_histogram_ix_ += num_contexts_; - block_size_ = 0; - merge_last_count_ = 0; - target_block_size_ = min_block_size_; - } else if (diff[1] < diff[0] - 20.0) { - // Combine this block with second last block. - split_->lengths[num_blocks_] = static_cast<uint32_t>(block_size_); - split_->types[num_blocks_] = split_->types[num_blocks_ - 2]; - std::swap(last_histogram_ix_[0], last_histogram_ix_[1]); - for (size_t i = 0; i < num_contexts_; ++i) { - (*histograms_)[last_histogram_ix_[0] + i] = - combined_histo[num_contexts_ + i]; - last_entropy_[num_contexts_ + i] = last_entropy_[i]; - last_entropy_[i] = combined_entropy[num_contexts_ + i]; - (*histograms_)[curr_histogram_ix_ + i].Clear(); - } - ++num_blocks_; - block_size_ = 0; - merge_last_count_ = 0; - target_block_size_ = min_block_size_; - } else { - // Combine this block with last block. - split_->lengths[num_blocks_ - 1] += static_cast<uint32_t>(block_size_); - for (size_t i = 0; i < num_contexts_; ++i) { - (*histograms_)[last_histogram_ix_[0] + i] = combined_histo[i]; - last_entropy_[i] = combined_entropy[i]; - if (split_->num_types == 1) { - last_entropy_[num_contexts_ + i] = last_entropy_[i]; - } - (*histograms_)[curr_histogram_ix_ + i].Clear(); - } - block_size_ = 0; - if (++merge_last_count_ > 1) { - target_block_size_ += min_block_size_; - } - } - } - if (is_final) { - (*histograms_).resize(split_->num_types * num_contexts_); - split_->types.resize(num_blocks_); - split_->lengths.resize(num_blocks_); - } - } - - private: - static const int kMaxBlockTypes = 256; - - // Alphabet size of particular block category. - const size_t alphabet_size_; - const size_t num_contexts_; - const size_t max_block_types_; - // We collect at least this many symbols for each block. - const size_t min_block_size_; - // We merge histograms A and B if - // entropy(A+B) < entropy(A) + entropy(B) + split_threshold_, - // where A is the current histogram and B is the histogram of the last or the - // second last block type. - const double split_threshold_; - - size_t num_blocks_; - BlockSplit* split_; // not owned - std::vector<HistogramType>* histograms_; // not owned - - // The number of symbols that we want to collect before deciding on whether - // or not to merge the block with a previous one or emit a new block. - size_t target_block_size_; - // The number of symbols in the current histogram. - size_t block_size_; - // Offset of the current histogram. - size_t curr_histogram_ix_; - // Offset of the histograms of the previous two block types. - size_t last_histogram_ix_[2]; - // Entropy of the previous two block types. - std::vector<double> last_entropy_; - // The number of times we merged the current block with the last one. - size_t merge_last_count_; -}; - -void BuildMetaBlockGreedyWithContexts(const uint8_t* ringbuffer, - size_t pos, - size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - ContextType literal_context_mode, - size_t num_contexts, - const uint32_t* static_context_map, - const Command *commands, - size_t n_commands, - MetaBlockSplit* mb) { - size_t num_literals = 0; - for (size_t i = 0; i < n_commands; ++i) { - num_literals += commands[i].insert_len_; - } - - ContextBlockSplitter<HistogramLiteral> lit_blocks( - 256, num_contexts, 512, 400.0, num_literals, - &mb->literal_split, &mb->literal_histograms); - BlockSplitter<HistogramCommand> cmd_blocks( - kNumCommandPrefixes, 1024, 500.0, n_commands, - &mb->command_split, &mb->command_histograms); - BlockSplitter<HistogramDistance> dist_blocks( - 64, 512, 100.0, n_commands, - &mb->distance_split, &mb->distance_histograms); - - for (size_t i = 0; i < n_commands; ++i) { - const Command cmd = commands[i]; - cmd_blocks.AddSymbol(cmd.cmd_prefix_); - for (size_t j = cmd.insert_len_; j != 0; --j) { - size_t context = Context(prev_byte, prev_byte2, literal_context_mode); - uint8_t literal = ringbuffer[pos & mask]; - lit_blocks.AddSymbol(literal, static_context_map[context]); - prev_byte2 = prev_byte; - prev_byte = literal; - ++pos; - } - pos += cmd.copy_len(); - if (cmd.copy_len()) { - prev_byte2 = ringbuffer[(pos - 2) & mask]; - prev_byte = ringbuffer[(pos - 1) & mask]; - if (cmd.cmd_prefix_ >= 128) { - dist_blocks.AddSymbol(cmd.dist_prefix_); - } - } - } - - lit_blocks.FinishBlock(/* is_final = */ true); - cmd_blocks.FinishBlock(/* is_final = */ true); - dist_blocks.FinishBlock(/* is_final = */ true); - - mb->literal_context_map.resize( - mb->literal_split.num_types << kLiteralContextBits); - for (size_t i = 0; i < mb->literal_split.num_types; ++i) { - for (size_t j = 0; j < (1u << kLiteralContextBits); ++j) { - mb->literal_context_map[(i << kLiteralContextBits) + j] = - static_cast<uint32_t>(i * num_contexts) + static_context_map[j]; - } - } -} - -void OptimizeHistograms(size_t num_direct_distance_codes, - size_t distance_postfix_bits, - MetaBlockSplit* mb) { - uint8_t* good_for_rle = new uint8_t[kNumCommandPrefixes]; - for (size_t i = 0; i < mb->literal_histograms.size(); ++i) { - OptimizeHuffmanCountsForRle(256, &mb->literal_histograms[i].data_[0], - good_for_rle); - } - for (size_t i = 0; i < mb->command_histograms.size(); ++i) { - OptimizeHuffmanCountsForRle(kNumCommandPrefixes, - &mb->command_histograms[i].data_[0], - good_for_rle); - } - size_t num_distance_codes = - kNumDistanceShortCodes + num_direct_distance_codes + - (48u << distance_postfix_bits); - for (size_t i = 0; i < mb->distance_histograms.size(); ++i) { - OptimizeHuffmanCountsForRle(num_distance_codes, - &mb->distance_histograms[i].data_[0], - good_for_rle); - } - delete[] good_for_rle; -} - -} // namespace brotli diff --git a/thirdparty/brotli/enc/metablock.h b/thirdparty/brotli/enc/metablock.h index d1928850..4e128232 100644 --- a/thirdparty/brotli/enc/metablock.h +++ b/thirdparty/brotli/enc/metablock.h @@ -4,77 +4,107 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Algorithms for distributing the literals and commands of a metablock between -// block types and contexts. +/* Algorithms for distributing the literals and commands of a metablock between + block types and contexts. */ #ifndef BROTLI_ENC_METABLOCK_H_ #define BROTLI_ENC_METABLOCK_H_ -#include <vector> - +#include "../common/types.h" +#include "./block_splitter.h" #include "./command.h" +#include "./context.h" #include "./histogram.h" +#include "./memory.h" +#include "./port.h" +#include "./quality.h" -namespace brotli { - -struct BlockSplit { - BlockSplit(void) : num_types(0) {} - - size_t num_types; - std::vector<uint8_t> types; - std::vector<uint32_t> lengths; -}; +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -struct MetaBlockSplit { +typedef struct MetaBlockSplit { BlockSplit literal_split; BlockSplit command_split; BlockSplit distance_split; - std::vector<uint32_t> literal_context_map; - std::vector<uint32_t> distance_context_map; - std::vector<HistogramLiteral> literal_histograms; - std::vector<HistogramCommand> command_histograms; - std::vector<HistogramDistance> distance_histograms; -}; + uint32_t* literal_context_map; + size_t literal_context_map_size; + uint32_t* distance_context_map; + size_t distance_context_map_size; + HistogramLiteral* literal_histograms; + size_t literal_histograms_size; + HistogramCommand* command_histograms; + size_t command_histograms_size; + HistogramDistance* distance_histograms; + size_t distance_histograms_size; +} MetaBlockSplit; + +static BROTLI_INLINE void InitMetaBlockSplit(MetaBlockSplit* mb) { + BrotliInitBlockSplit(&mb->literal_split); + BrotliInitBlockSplit(&mb->command_split); + BrotliInitBlockSplit(&mb->distance_split); + mb->literal_context_map = 0; + mb->literal_context_map_size = 0; + mb->distance_context_map = 0; + mb->distance_context_map_size = 0; + mb->literal_histograms = 0; + mb->literal_histograms_size = 0; + mb->command_histograms = 0; + mb->command_histograms_size = 0; + mb->distance_histograms = 0; + mb->distance_histograms_size = 0; +} + +static BROTLI_INLINE void DestroyMetaBlockSplit( + MemoryManager* m, MetaBlockSplit* mb) { + BrotliDestroyBlockSplit(m, &mb->literal_split); + BrotliDestroyBlockSplit(m, &mb->command_split); + BrotliDestroyBlockSplit(m, &mb->distance_split); + BROTLI_FREE(m, mb->literal_context_map); + BROTLI_FREE(m, mb->distance_context_map); + BROTLI_FREE(m, mb->literal_histograms); + BROTLI_FREE(m, mb->command_histograms); + BROTLI_FREE(m, mb->distance_histograms); +} -// Uses the slow shortest-path block splitter and does context clustering. -void BuildMetaBlock(const uint8_t* ringbuffer, - const size_t pos, - const size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - const Command* cmds, - size_t num_commands, - ContextType literal_context_mode, - MetaBlockSplit* mb); +/* Uses the slow shortest-path block splitter and does context clustering. */ +BROTLI_INTERNAL void BrotliBuildMetaBlock(MemoryManager* m, + const uint8_t* ringbuffer, + const size_t pos, + const size_t mask, + const BrotliEncoderParams* params, + uint8_t prev_byte, + uint8_t prev_byte2, + const Command* cmds, + size_t num_commands, + ContextType literal_context_mode, + MetaBlockSplit* mb); -// Uses a fast greedy block splitter that tries to merge current block with the -// last or the second last block and does not do any context modeling. -void BuildMetaBlockGreedy(const uint8_t* ringbuffer, - size_t pos, - size_t mask, - const Command *commands, - size_t n_commands, - MetaBlockSplit* mb); +/* Uses a fast greedy block splitter that tries to merge current block with the + last or the second last block and does not do any context modeling. */ +BROTLI_INTERNAL void BrotliBuildMetaBlockGreedy(MemoryManager* m, + const uint8_t* ringbuffer, + size_t pos, + size_t mask, + const Command* commands, + size_t n_commands, + MetaBlockSplit* mb); -// Uses a fast greedy block splitter that tries to merge current block with the -// last or the second last block and uses a static context clustering which -// is the same for all block types. -void BuildMetaBlockGreedyWithContexts(const uint8_t* ringbuffer, - size_t pos, - size_t mask, - uint8_t prev_byte, - uint8_t prev_byte2, - ContextType literal_context_mode, - size_t num_contexts, - const uint32_t* static_context_map, - const Command *commands, - size_t n_commands, - MetaBlockSplit* mb); +/* Uses a fast greedy block splitter that tries to merge current block with the + last or the second last block and uses a static context clustering which + is the same for all block types. */ +BROTLI_INTERNAL void BrotliBuildMetaBlockGreedyWithContexts( + MemoryManager* m, const uint8_t* ringbuffer, size_t pos, size_t mask, + uint8_t prev_byte, uint8_t prev_byte2, ContextType literal_context_mode, + size_t num_contexts, const uint32_t* static_context_map, + const Command* commands, size_t n_commands, MetaBlockSplit* mb); -void OptimizeHistograms(size_t num_direct_distance_codes, - size_t distance_postfix_bits, - MetaBlockSplit* mb); +BROTLI_INTERNAL void BrotliOptimizeHistograms(size_t num_direct_distance_codes, + size_t distance_postfix_bits, + MetaBlockSplit* mb); -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_METABLOCK_H_ +#endif /* BROTLI_ENC_METABLOCK_H_ */ diff --git a/thirdparty/brotli/enc/metablock_inc.h b/thirdparty/brotli/enc/metablock_inc.h new file mode 100644 index 00000000..c8bfb812 --- /dev/null +++ b/thirdparty/brotli/enc/metablock_inc.h @@ -0,0 +1,183 @@ +/* NOLINT(build/header_guard) */ +/* Copyright 2015 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* template parameters: FN */ + +#define HistogramType FN(Histogram) + +/* Greedy block splitter for one block category (literal, command or distance). +*/ +typedef struct FN(BlockSplitter) { + /* Alphabet size of particular block category. */ + size_t alphabet_size_; + /* We collect at least this many symbols for each block. */ + size_t min_block_size_; + /* We merge histograms A and B if + entropy(A+B) < entropy(A) + entropy(B) + split_threshold_, + where A is the current histogram and B is the histogram of the last or the + second last block type. */ + double split_threshold_; + + size_t num_blocks_; + BlockSplit* split_; /* not owned */ + HistogramType* histograms_; /* not owned */ + size_t* histograms_size_; /* not owned */ + + /* The number of symbols that we want to collect before deciding on whether + or not to merge the block with a previous one or emit a new block. */ + size_t target_block_size_; + /* The number of symbols in the current histogram. */ + size_t block_size_; + /* Offset of the current histogram. */ + size_t curr_histogram_ix_; + /* Offset of the histograms of the previous two block types. */ + size_t last_histogram_ix_[2]; + /* Entropy of the previous two block types. */ + double last_entropy_[2]; + /* The number of times we merged the current block with the last one. */ + size_t merge_last_count_; +} FN(BlockSplitter); + +static void FN(InitBlockSplitter)( + MemoryManager* m, FN(BlockSplitter)* self, size_t alphabet_size, + size_t min_block_size, double split_threshold, size_t num_symbols, + BlockSplit* split, HistogramType** histograms, size_t* histograms_size) { + size_t max_num_blocks = num_symbols / min_block_size + 1; + /* We have to allocate one more histogram than the maximum number of block + types for the current histogram when the meta-block is too big. */ + size_t max_num_types = + BROTLI_MIN(size_t, max_num_blocks, BROTLI_MAX_NUMBER_OF_BLOCK_TYPES + 1); + self->alphabet_size_ = alphabet_size; + self->min_block_size_ = min_block_size; + self->split_threshold_ = split_threshold; + self->num_blocks_ = 0; + self->split_ = split; + self->histograms_size_ = histograms_size; + self->target_block_size_ = min_block_size; + self->block_size_ = 0; + self->curr_histogram_ix_ = 0; + self->merge_last_count_ = 0; + BROTLI_ENSURE_CAPACITY(m, uint8_t, + split->types, split->types_alloc_size, max_num_blocks); + BROTLI_ENSURE_CAPACITY(m, uint32_t, + split->lengths, split->lengths_alloc_size, max_num_blocks); + if (BROTLI_IS_OOM(m)) return; + self->split_->num_blocks = max_num_blocks; + assert(*histograms == 0); + *histograms_size = max_num_types; + *histograms = BROTLI_ALLOC(m, HistogramType, *histograms_size); + self->histograms_ = *histograms; + if (BROTLI_IS_OOM(m)) return; + /* Clear only current histogram. */ + FN(HistogramClear)(&self->histograms_[0]); + self->last_histogram_ix_[0] = self->last_histogram_ix_[1] = 0; +} + +/* Does either of three things: + (1) emits the current block with a new block type; + (2) emits the current block with the type of the second last block; + (3) merges the current block with the last block. */ +static void FN(BlockSplitterFinishBlock)( + FN(BlockSplitter)* self, BROTLI_BOOL is_final) { + BlockSplit* split = self->split_; + double* last_entropy = self->last_entropy_; + HistogramType* histograms = self->histograms_; + self->block_size_ = + BROTLI_MAX(size_t, self->block_size_, self->min_block_size_); + if (self->num_blocks_ == 0) { + /* Create first block. */ + split->lengths[0] = (uint32_t)self->block_size_; + split->types[0] = 0; + last_entropy[0] = + BitsEntropy(histograms[0].data_, self->alphabet_size_); + last_entropy[1] = last_entropy[0]; + ++self->num_blocks_; + ++split->num_types; + ++self->curr_histogram_ix_; + if (self->curr_histogram_ix_ < *self->histograms_size_) + FN(HistogramClear)(&histograms[self->curr_histogram_ix_]); + self->block_size_ = 0; + } else if (self->block_size_ > 0) { + double entropy = BitsEntropy(histograms[self->curr_histogram_ix_].data_, + self->alphabet_size_); + HistogramType combined_histo[2]; + double combined_entropy[2]; + double diff[2]; + size_t j; + for (j = 0; j < 2; ++j) { + size_t last_histogram_ix = self->last_histogram_ix_[j]; + combined_histo[j] = histograms[self->curr_histogram_ix_]; + FN(HistogramAddHistogram)(&combined_histo[j], + &histograms[last_histogram_ix]); + combined_entropy[j] = BitsEntropy( + &combined_histo[j].data_[0], self->alphabet_size_); + diff[j] = combined_entropy[j] - entropy - last_entropy[j]; + } + + if (split->num_types < BROTLI_MAX_NUMBER_OF_BLOCK_TYPES && + diff[0] > self->split_threshold_ && + diff[1] > self->split_threshold_) { + /* Create new block. */ + split->lengths[self->num_blocks_] = (uint32_t)self->block_size_; + split->types[self->num_blocks_] = (uint8_t)split->num_types; + self->last_histogram_ix_[1] = self->last_histogram_ix_[0]; + self->last_histogram_ix_[0] = (uint8_t)split->num_types; + last_entropy[1] = last_entropy[0]; + last_entropy[0] = entropy; + ++self->num_blocks_; + ++split->num_types; + ++self->curr_histogram_ix_; + if (self->curr_histogram_ix_ < *self->histograms_size_) + FN(HistogramClear)(&histograms[self->curr_histogram_ix_]); + self->block_size_ = 0; + self->merge_last_count_ = 0; + self->target_block_size_ = self->min_block_size_; + } else if (diff[1] < diff[0] - 20.0) { + /* Combine this block with second last block. */ + split->lengths[self->num_blocks_] = (uint32_t)self->block_size_; + split->types[self->num_blocks_] = split->types[self->num_blocks_ - 2]; + BROTLI_SWAP(size_t, self->last_histogram_ix_, 0, 1); + histograms[self->last_histogram_ix_[0]] = combined_histo[1]; + last_entropy[1] = last_entropy[0]; + last_entropy[0] = combined_entropy[1]; + ++self->num_blocks_; + self->block_size_ = 0; + FN(HistogramClear)(&histograms[self->curr_histogram_ix_]); + self->merge_last_count_ = 0; + self->target_block_size_ = self->min_block_size_; + } else { + /* Combine this block with last block. */ + split->lengths[self->num_blocks_ - 1] += (uint32_t)self->block_size_; + histograms[self->last_histogram_ix_[0]] = combined_histo[0]; + last_entropy[0] = combined_entropy[0]; + if (split->num_types == 1) { + last_entropy[1] = last_entropy[0]; + } + self->block_size_ = 0; + FN(HistogramClear)(&histograms[self->curr_histogram_ix_]); + if (++self->merge_last_count_ > 1) { + self->target_block_size_ += self->min_block_size_; + } + } + } + if (is_final) { + *self->histograms_size_ = split->num_types; + split->num_blocks = self->num_blocks_; + } +} + +/* Adds the next symbol to the current histogram. When the current histogram + reaches the target size, decides on merging the block. */ +static void FN(BlockSplitterAddSymbol)(FN(BlockSplitter)* self, size_t symbol) { + FN(HistogramAdd)(&self->histograms_[self->curr_histogram_ix_], symbol); + ++self->block_size_; + if (self->block_size_ == self->target_block_size_) { + FN(BlockSplitterFinishBlock)(self, /* is_final = */ BROTLI_FALSE); + } +} + +#undef HistogramType diff --git a/thirdparty/brotli/enc/port.h b/thirdparty/brotli/enc/port.h index e73df63a..cd908ec2 100644 --- a/thirdparty/brotli/enc/port.h +++ b/thirdparty/brotli/enc/port.h @@ -4,14 +4,16 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Macros for endianness, branch prediction and unaligned loads and stores. +/* Macros for endianness, branch prediction and unaligned loads and stores. */ #ifndef BROTLI_ENC_PORT_H_ #define BROTLI_ENC_PORT_H_ #include <assert.h> -#include <string.h> -#include "./types.h" +#include <string.h> /* memcpy */ + +#include "../common/port.h" +#include "../common/types.h" #if defined OS_LINUX || defined OS_CYGWIN #include <endian.h> @@ -24,9 +26,9 @@ #define __LITTLE_ENDIAN LITTLE_ENDIAN #endif -// define the macro IS_LITTLE_ENDIAN -// using the above endian definitions from endian.h if -// endian.h was included +/* define the macro IS_LITTLE_ENDIAN + using the above endian definitions from endian.h if + endian.h was included */ #ifdef __BYTE_ORDER #if __BYTE_ORDER == __LITTLE_ENDIAN #define IS_LITTLE_ENDIAN @@ -37,49 +39,36 @@ #if defined(__LITTLE_ENDIAN__) #define IS_LITTLE_ENDIAN #endif -#endif // __BYTE_ORDER +#endif /* __BYTE_ORDER */ #if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) #define IS_LITTLE_ENDIAN #endif -// Enable little-endian optimization for x64 architecture on Windows. +/* Enable little-endian optimization for x64 architecture on Windows. */ #if (defined(_WIN32) || defined(_WIN64)) && defined(_M_X64) #define IS_LITTLE_ENDIAN #endif -/* Compatibility with non-clang compilers. */ -#ifndef __has_builtin -#define __has_builtin(x) 0 -#endif - -#if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || \ - (defined(__llvm__) && __has_builtin(__builtin_expect)) -#define PREDICT_FALSE(x) (__builtin_expect(x, 0)) -#define PREDICT_TRUE(x) (__builtin_expect(!!(x), 1)) -#else -#define PREDICT_FALSE(x) (x) -#define PREDICT_TRUE(x) (x) -#endif - -// Portable handling of unaligned loads, stores, and copies. -// On some platforms, like ARM, the copy functions can be more efficient -// then a load and a store. +/* Portable handling of unaligned loads, stores, and copies. + On some platforms, like ARM, the copy functions can be more efficient + then a load and a store. */ #if defined(ARCH_PIII) || \ defined(ARCH_ATHLON) || defined(ARCH_K8) || defined(_ARCH_PPC) -// x86 and x86-64 can perform unaligned loads/stores directly; -// modern PowerPC hardware can also do unaligned integer loads and stores; -// but note: the FPU still sends unaligned loads and stores to a trap handler! +/* x86 and x86-64 can perform unaligned loads/stores directly; + modern PowerPC hardware can also do unaligned integer loads and stores; + but note: the FPU still sends unaligned loads and stores to a trap handler! +*/ -#define BROTLI_UNALIGNED_LOAD32(_p) (*reinterpret_cast<const uint32_t *>(_p)) -#define BROTLI_UNALIGNED_LOAD64(_p) (*reinterpret_cast<const uint64_t *>(_p)) +#define BROTLI_UNALIGNED_LOAD32(_p) (*(const uint32_t *)(_p)) +#define BROTLI_UNALIGNED_LOAD64(_p) (*(const uint64_t *)(_p)) #define BROTLI_UNALIGNED_STORE32(_p, _val) \ - (*reinterpret_cast<uint32_t *>(_p) = (_val)) + (*(uint32_t *)(_p) = (_val)) #define BROTLI_UNALIGNED_STORE64(_p, _val) \ - (*reinterpret_cast<uint64_t *>(_p) = (_val)) + (*(uint64_t *)(_p) = (_val)) #elif defined(__arm__) && \ !defined(__ARM_ARCH_5__) && \ @@ -93,50 +82,87 @@ !defined(__ARM_ARCH_6ZK__) && \ !defined(__ARM_ARCH_6T2__) -// ARMv7 and newer support native unaligned accesses, but only of 16-bit -// and 32-bit values (not 64-bit); older versions either raise a fatal signal, -// do an unaligned read and rotate the words around a bit, or do the reads very -// slowly (trip through kernel mode). +/* ARMv7 and newer support native unaligned accesses, but only of 16-bit + and 32-bit values (not 64-bit); older versions either raise a fatal signal, + do an unaligned read and rotate the words around a bit, or do the reads very + slowly (trip through kernel mode). */ -#define BROTLI_UNALIGNED_LOAD32(_p) (*reinterpret_cast<const uint32_t *>(_p)) +#define BROTLI_UNALIGNED_LOAD32(_p) (*(const uint32_t *)(_p)) #define BROTLI_UNALIGNED_STORE32(_p, _val) \ - (*reinterpret_cast<uint32_t *>(_p) = (_val)) + (*(uint32_t *)(_p) = (_val)) -inline uint64_t BROTLI_UNALIGNED_LOAD64(const void *p) { +static BROTLI_INLINE uint64_t BROTLI_UNALIGNED_LOAD64(const void *p) { uint64_t t; memcpy(&t, p, sizeof t); return t; } -inline void BROTLI_UNALIGNED_STORE64(void *p, uint64_t v) { +static BROTLI_INLINE void BROTLI_UNALIGNED_STORE64(void *p, uint64_t v) { memcpy(p, &v, sizeof v); } #else -// These functions are provided for architectures that don't support -// unaligned loads and stores. +/* These functions are provided for architectures that don't support */ +/* unaligned loads and stores. */ -inline uint32_t BROTLI_UNALIGNED_LOAD32(const void *p) { +static BROTLI_INLINE uint32_t BROTLI_UNALIGNED_LOAD32(const void *p) { uint32_t t; memcpy(&t, p, sizeof t); return t; } -inline uint64_t BROTLI_UNALIGNED_LOAD64(const void *p) { +static BROTLI_INLINE uint64_t BROTLI_UNALIGNED_LOAD64(const void *p) { uint64_t t; memcpy(&t, p, sizeof t); return t; } -inline void BROTLI_UNALIGNED_STORE32(void *p, uint32_t v) { +static BROTLI_INLINE void BROTLI_UNALIGNED_STORE32(void *p, uint32_t v) { memcpy(p, &v, sizeof v); } -inline void BROTLI_UNALIGNED_STORE64(void *p, uint64_t v) { +static BROTLI_INLINE void BROTLI_UNALIGNED_STORE64(void *p, uint64_t v) { memcpy(p, &v, sizeof v); } #endif -#endif // BROTLI_ENC_PORT_H_ +#if !defined(__cplusplus) && !defined(c_plusplus) && __STDC_VERSION__ >= 199901L +#define BROTLI_RESTRICT restrict +#elif BROTLI_GCC_VERSION > 295 || defined(__llvm__) +#define BROTLI_RESTRICT __restrict +#else +#define BROTLI_RESTRICT +#endif + +#define _TEMPLATE(T) \ + static BROTLI_INLINE T brotli_min_ ## T (T a, T b) { return a < b ? a : b; } \ + static BROTLI_INLINE T brotli_max_ ## T (T a, T b) { return a > b ? a : b; } +_TEMPLATE(double) _TEMPLATE(float) _TEMPLATE(int) +_TEMPLATE(size_t) _TEMPLATE(uint32_t) _TEMPLATE(uint8_t) +#undef _TEMPLATE +#define BROTLI_MIN(T, A, B) (brotli_min_ ## T((A), (B))) +#define BROTLI_MAX(T, A, B) (brotli_max_ ## T((A), (B))) + +#define BROTLI_SWAP(T, A, I, J) { \ + T __brotli_swap_tmp = (A)[(I)]; \ + (A)[(I)] = (A)[(J)]; \ + (A)[(J)] = __brotli_swap_tmp; \ +} + +#define BROTLI_ENSURE_CAPACITY(M, T, A, C, R) { \ + if (C < (R)) { \ + size_t _new_size = (C == 0) ? (R) : C; \ + T* new_array; \ + while (_new_size < (R)) _new_size *= 2; \ + new_array = BROTLI_ALLOC((M), T, _new_size); \ + if (!BROTLI_IS_OOM(m) && C != 0) \ + memcpy(new_array, A, C * sizeof(T)); \ + BROTLI_FREE((M), A); \ + A = new_array; \ + C = _new_size; \ + } \ +} + +#endif /* BROTLI_ENC_PORT_H_ */ diff --git a/thirdparty/brotli/enc/prefix.h b/thirdparty/brotli/enc/prefix.h index 86fff8d5..2bc0d198 100644 --- a/thirdparty/brotli/enc/prefix.h +++ b/thirdparty/brotli/enc/prefix.h @@ -4,76 +4,49 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Functions for encoding of integers into prefix codes the amount of extra -// bits, and the actual values of the extra bits. +/* Functions for encoding of integers into prefix codes the amount of extra + bits, and the actual values of the extra bits. */ #ifndef BROTLI_ENC_PREFIX_H_ #define BROTLI_ENC_PREFIX_H_ +#include "../common/constants.h" +#include "../common/port.h" +#include "../common/types.h" #include "./fast_log.h" -#include "./types.h" -namespace brotli { - -static const uint32_t kNumInsertLenPrefixes = 24; -static const uint32_t kNumCopyLenPrefixes = 24; -static const uint32_t kNumCommandPrefixes = 704; -static const uint32_t kNumBlockLenPrefixes = 26; -static const uint32_t kNumDistanceShortCodes = 16; -static const uint32_t kNumDistancePrefixes = 520; - -// Represents the range of values belonging to a prefix code: -// [offset, offset + 2^nbits) -struct PrefixCodeRange { - uint32_t offset; - uint32_t nbits; -}; - -static const PrefixCodeRange kBlockLengthPrefixCode[kNumBlockLenPrefixes] = { - { 1, 2}, { 5, 2}, { 9, 2}, { 13, 2}, - { 17, 3}, { 25, 3}, { 33, 3}, { 41, 3}, - { 49, 4}, { 65, 4}, { 81, 4}, { 97, 4}, - { 113, 5}, { 145, 5}, { 177, 5}, { 209, 5}, - { 241, 6}, { 305, 6}, { 369, 7}, { 497, 8}, - { 753, 9}, { 1265, 10}, {2289, 11}, {4337, 12}, - {8433, 13}, {16625, 24} -}; - -inline void GetBlockLengthPrefixCode(uint32_t len, uint32_t* code, - uint32_t* n_extra, uint32_t* extra) { - *code = 0; - while (*code < 25 && len >= kBlockLengthPrefixCode[*code + 1].offset) { - ++(*code); - } - *n_extra = kBlockLengthPrefixCode[*code].nbits; - *extra = len - kBlockLengthPrefixCode[*code].offset; -} - -inline void PrefixEncodeCopyDistance(size_t distance_code, - size_t num_direct_codes, - size_t postfix_bits, - uint16_t* code, - uint32_t* extra_bits) { - if (distance_code < kNumDistanceShortCodes + num_direct_codes) { - *code = static_cast<uint16_t>(distance_code); +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +static BROTLI_INLINE void PrefixEncodeCopyDistance(size_t distance_code, + size_t num_direct_codes, + size_t postfix_bits, + uint16_t* code, + uint32_t* extra_bits) { + if (distance_code < BROTLI_NUM_DISTANCE_SHORT_CODES + num_direct_codes) { + *code = (uint16_t)distance_code; *extra_bits = 0; return; + } else { + size_t dist = ((size_t)1 << (postfix_bits + 2u)) + + (distance_code - BROTLI_NUM_DISTANCE_SHORT_CODES - num_direct_codes); + size_t bucket = Log2FloorNonZero(dist) - 1; + size_t postfix_mask = (1u << postfix_bits) - 1; + size_t postfix = dist & postfix_mask; + size_t prefix = (dist >> bucket) & 1; + size_t offset = (2 + prefix) << bucket; + size_t nbits = bucket - postfix_bits; + *code = (uint16_t)( + (BROTLI_NUM_DISTANCE_SHORT_CODES + num_direct_codes + + ((2 * (nbits - 1) + prefix) << postfix_bits) + postfix)); + *extra_bits = (uint32_t)( + (nbits << 24) | ((dist - offset) >> postfix_bits)); } - distance_code -= kNumDistanceShortCodes + num_direct_codes; /* >= 0 */ - distance_code += (1u << (postfix_bits + 2u)); /* > 0 */ - size_t bucket = Log2FloorNonZero(distance_code) - 1; - size_t postfix_mask = (1 << postfix_bits) - 1; - size_t postfix = distance_code & postfix_mask; - size_t prefix = (distance_code >> bucket) & 1; - size_t offset = (2 + prefix) << bucket; - size_t nbits = bucket - postfix_bits; - *code = static_cast<uint16_t>( - (kNumDistanceShortCodes + num_direct_codes + - ((2 * (nbits - 1) + prefix) << postfix_bits) + postfix)); - *extra_bits = static_cast<uint32_t>( - (nbits << 24) | ((distance_code - offset) >> postfix_bits)); } -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_PREFIX_H_ +#endif /* BROTLI_ENC_PREFIX_H_ */ diff --git a/thirdparty/brotli/enc/quality.h b/thirdparty/brotli/enc/quality.h new file mode 100755 index 00000000..770747ee --- /dev/null +++ b/thirdparty/brotli/enc/quality.h @@ -0,0 +1,130 @@ +/* Copyright 2016 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Constants and formulas that affect speed-ratio trade-offs and thus define + quality levels. */ + +#ifndef BROTLI_ENC_QUALITY_H_ +#define BROTLI_ENC_QUALITY_H_ + +#include "./encode.h" + +#define FAST_ONE_PASS_COMPRESSION_QUALITY 0 +#define FAST_TWO_PASS_COMPRESSION_QUALITY 1 +#define ZOPFLIFICATION_QUALITY 10 +#define HQ_ZOPFLIFICATION_QUALITY 11 + +#define MAX_QUALITY_FOR_STATIC_ENRTOPY_CODES 2 +#define MIN_QUALITY_FOR_BLOCK_SPLIT 4 +#define MIN_QUALITY_FOR_OPTIMIZE_HISTOGRAMS 4 +#define MIN_QUALITY_FOR_EXTENSIVE_REFERENCE_SEARCH 5 +#define MIN_QUALITY_FOR_CONTEXT_MODELING 5 +#define MIN_QUALITY_FOR_HQ_CONTEXT_MODELING 7 +#define MIN_QUALITY_FOR_HQ_BLOCK_SPLITTING 10 +/* Only for "font" mode. */ +#define MIN_QUALITY_FOR_RECOMPUTE_DISTANCE_PREFIXES 10 + +/* For quality below MIN_QUALITY_FOR_BLOCK_SPLIT there is no block splitting, + so we buffer at most this much literals and commands. */ +#define MAX_NUM_DELAYED_SYMBOLS 0x2fff + +/* Encoding parameters */ +typedef struct BrotliEncoderParams { + BrotliEncoderMode mode; + int quality; + int lgwin; + int lgblock; +} BrotliEncoderParams; + +/* Returns hashtable size for quality levels 0 and 1. */ +static BROTLI_INLINE size_t MaxHashTableSize(int quality) { + return quality == FAST_ONE_PASS_COMPRESSION_QUALITY ? 1 << 15 : 1 << 17; +} + +/* The maximum length for which the zopflification uses distinct distances. */ +#define MAX_ZOPFLI_LEN_QUALITY_10 150 +#define MAX_ZOPFLI_LEN_QUALITY_11 325 + +static BROTLI_INLINE size_t MaxZopfliLen(const BrotliEncoderParams* params) { + return params->quality <= 10 ? + MAX_ZOPFLI_LEN_QUALITY_10 : + MAX_ZOPFLI_LEN_QUALITY_11; +} + +/* Number of best candidates to evaluate to expand zopfli chain. */ +static BROTLI_INLINE size_t MaxZopfliCandidates( + const BrotliEncoderParams* params) { + return params->quality <= 10 ? 1 : 5; +} + +static BROTLI_INLINE void SanitizeParams(BrotliEncoderParams* params) { + params->quality = BROTLI_MIN(int, BROTLI_MAX_QUALITY, + BROTLI_MAX(int, BROTLI_MIN_QUALITY, params->quality)); + if (params->lgwin < kBrotliMinWindowBits) { + params->lgwin = kBrotliMinWindowBits; + } else if (params->lgwin > kBrotliMaxWindowBits) { + params->lgwin = kBrotliMaxWindowBits; + } +} + +/* Returns optimized lg_block value. */ +static BROTLI_INLINE int ComputeLgBlock(const BrotliEncoderParams* params) { + int lgblock = params->lgblock; + if (params->quality == FAST_ONE_PASS_COMPRESSION_QUALITY || + params->quality == FAST_TWO_PASS_COMPRESSION_QUALITY) { + lgblock = params->lgwin; + } else if (params->quality < MIN_QUALITY_FOR_BLOCK_SPLIT) { + lgblock = 14; + } else if (lgblock == 0) { + lgblock = 16; + if (params->quality >= 9 && params->lgwin > lgblock) { + lgblock = BROTLI_MIN(int, 18, params->lgwin); + } + } else { + lgblock = BROTLI_MIN(int, kBrotliMaxInputBlockBits, + BROTLI_MAX(int, kBrotliMinInputBlockBits, lgblock)); + } + return lgblock; +} + +/* Returns log2 of the size of main ring buffer area. + Allocate at least lgwin + 1 bits for the ring buffer so that the newly + added block fits there completely and we still get lgwin bits and at least + read_block_size_bits + 1 bits because the copy tail length needs to be + smaller than ringbuffer size. */ +static BROTLI_INLINE int ComputeRbBits(const BrotliEncoderParams* params) { + return 1 + BROTLI_MAX(int, params->lgwin, params->lgblock); +} + +static BROTLI_INLINE size_t MaxMetablockSize( + const BrotliEncoderParams* params) { + int bits = BROTLI_MIN(int, ComputeRbBits(params), kBrotliMaxInputBlockBits); + return (size_t)1 << bits; +} + +/* When searching for backward references and have not seen matches for a long + time, we can skip some match lookups. Unsuccessful match lookups are very + expensive and this kind of a heuristic speeds up compression quite a lot. + At first 8 byte strides are taken and every second byte is put to hasher. + After 4x more literals stride by 16 bytes, every put 4-th byte to hasher. + Applied only to qualities 2 to 9. */ +static BROTLI_INLINE size_t LiteralSpreeLengthForSparseSearch( + const BrotliEncoderParams* params) { + return params->quality < 9 ? 64 : 512; +} + +static BROTLI_INLINE int ChooseHasher(const BrotliEncoderParams* params) { + if (params->quality > 9) { + return 10; + } else if (params->quality < 5) { + return params->quality; + } else if (params->lgwin <= 16) { + return params->quality < 7 ? 40 : params->quality < 9 ? 41 : 42; + } + return params->quality; +} + +#endif /* BROTLI_ENC_QUALITY_H_ */ diff --git a/thirdparty/brotli/enc/ringbuffer.h b/thirdparty/brotli/enc/ringbuffer.h index 13e1b836..b85bdc9e 100644 --- a/thirdparty/brotli/enc/ringbuffer.h +++ b/thirdparty/brotli/enc/ringbuffer.h @@ -4,142 +4,157 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Sliding window over the input data. +/* Sliding window over the input data. */ #ifndef BROTLI_ENC_RINGBUFFER_H_ #define BROTLI_ENC_RINGBUFFER_H_ -#include <cstdlib> /* free, realloc */ +#include <string.h> /* memcpy */ +#include "../common/types.h" +#include "./memory.h" #include "./port.h" -#include "./types.h" - -namespace brotli { - -// A RingBuffer(window_bits, tail_bits) contains `1 << window_bits' bytes of -// data in a circular manner: writing a byte writes it to: -// `position() % (1 << window_bits)'. -// For convenience, the RingBuffer array contains another copy of the -// first `1 << tail_bits' bytes: -// buffer_[i] == buffer_[i + (1 << window_bits)], if i < (1 << tail_bits), -// and another copy of the last two bytes: -// buffer_[-1] == buffer_[(1 << window_bits) - 1] and -// buffer_[-2] == buffer_[(1 << window_bits) - 2]. -class RingBuffer { - public: - RingBuffer(int window_bits, int tail_bits) - : size_(1u << window_bits), - mask_((1u << window_bits) - 1), - tail_size_(1u << tail_bits), - total_size_(size_ + tail_size_), - cur_size_(0), - pos_(0), - data_(0), - buffer_(0) {} - - ~RingBuffer(void) { - free(data_); - } - - // Allocates or re-allocates data_ to the given length + plus some slack - // region before and after. Fills the slack regions with zeros. - inline void InitBuffer(const uint32_t buflen) { - static const size_t kSlackForEightByteHashingEverywhere = 7; - cur_size_ = buflen; - data_ = static_cast<uint8_t*>(realloc( - data_, 2 + buflen + kSlackForEightByteHashingEverywhere)); - buffer_ = data_ + 2; - buffer_[-2] = buffer_[-1] = 0; - for (size_t i = 0; i < kSlackForEightByteHashingEverywhere; ++i) { - buffer_[cur_size_ + i] = 0; - } - } - - // Push bytes into the ring buffer. - void Write(const uint8_t *bytes, size_t n) { - if (pos_ == 0 && n < tail_size_) { - // Special case for the first write: to process the first block, we don't - // need to allocate the whole ringbuffer and we don't need the tail - // either. However, we do this memory usage optimization only if the - // first write is less than the tail size, which is also the input block - // size, otherwise it is likely that other blocks will follow and we - // will need to reallocate to the full size anyway. - pos_ = static_cast<uint32_t>(n); - InitBuffer(pos_); - memcpy(buffer_, bytes, n); - return; - } - if (cur_size_ < total_size_) { - // Lazily allocate the full buffer. - InitBuffer(total_size_); - // Initialize the last two bytes to zero, so that we don't have to worry - // later when we copy the last two bytes to the first two positions. - buffer_[size_ - 2] = 0; - buffer_[size_ - 1] = 0; - } - const size_t masked_pos = pos_ & mask_; - // The length of the writes is limited so that we do not need to worry - // about a write - WriteTail(bytes, n); - if (PREDICT_TRUE(masked_pos + n <= size_)) { - // A single write fits. - memcpy(&buffer_[masked_pos], bytes, n); - } else { - // Split into two writes. - // Copy into the end of the buffer, including the tail buffer. - memcpy(&buffer_[masked_pos], bytes, - std::min(n, total_size_ - masked_pos)); - // Copy into the beginning of the buffer - memcpy(&buffer_[0], bytes + (size_ - masked_pos), - n - (size_ - masked_pos)); - } - buffer_[-2] = buffer_[size_ - 2]; - buffer_[-1] = buffer_[size_ - 1]; - pos_ += static_cast<uint32_t>(n); - if (pos_ > (1u << 30)) { /* Wrap, but preserve not-a-first-lap feature. */ - pos_ = (pos_ & ((1u << 30) - 1)) | (1u << 30); - } - } - - void Reset(void) { - pos_ = 0; - } - - // Logical cursor position in the ring buffer. - uint32_t position(void) const { return pos_; } - - // Bit mask for getting the physical position for a logical position. - uint32_t mask(void) const { return mask_; } - - uint8_t *start(void) { return &buffer_[0]; } - const uint8_t *start(void) const { return &buffer_[0]; } - - private: - void WriteTail(const uint8_t *bytes, size_t n) { - const size_t masked_pos = pos_ & mask_; - if (PREDICT_FALSE(masked_pos < tail_size_)) { - // Just fill the tail buffer with the beginning data. - const size_t p = size_ + masked_pos; - memcpy(&buffer_[p], bytes, std::min(n, tail_size_ - masked_pos)); - } - } - - // Size of the ringbuffer is (1 << window_bits) + tail_size_. +#include "./quality.h" + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* A RingBuffer(window_bits, tail_bits) contains `1 << window_bits' bytes of + data in a circular manner: writing a byte writes it to: + `position() % (1 << window_bits)'. + For convenience, the RingBuffer array contains another copy of the + first `1 << tail_bits' bytes: + buffer_[i] == buffer_[i + (1 << window_bits)], if i < (1 << tail_bits), + and another copy of the last two bytes: + buffer_[-1] == buffer_[(1 << window_bits) - 1] and + buffer_[-2] == buffer_[(1 << window_bits) - 2]. */ +typedef struct RingBuffer { + /* Size of the ringbuffer is (1 << window_bits) + tail_size_. */ const uint32_t size_; const uint32_t mask_; const uint32_t tail_size_; const uint32_t total_size_; uint32_t cur_size_; - // Position to write in the ring buffer. + /* Position to write in the ring buffer. */ uint32_t pos_; - // The actual ring buffer containing the copy of the last two bytes, the data, - // and the copy of the beginning as a tail. + /* The actual ring buffer containing the copy of the last two bytes, the data, + and the copy of the beginning as a tail. */ uint8_t *data_; - // The start of the ringbuffer. + /* The start of the ringbuffer. */ uint8_t *buffer_; -}; +} RingBuffer; + +static BROTLI_INLINE void RingBufferInit(RingBuffer* rb) { + rb->cur_size_ = 0; + rb->pos_ = 0; + rb->data_ = 0; + rb->buffer_ = 0; +} + +static BROTLI_INLINE void RingBufferSetup( + const BrotliEncoderParams* params, RingBuffer* rb) { + int window_bits = ComputeRbBits(params); + int tail_bits = params->lgblock; + *(uint32_t*)&rb->size_ = 1u << window_bits; + *(uint32_t*)&rb->mask_ = (1u << window_bits) - 1; + *(uint32_t*)&rb->tail_size_ = 1u << tail_bits; + *(uint32_t*)&rb->total_size_ = rb->size_ + rb->tail_size_; +} + +static BROTLI_INLINE void RingBufferFree(MemoryManager* m, RingBuffer* rb) { + BROTLI_FREE(m, rb->data_); +} + +/* Allocates or re-allocates data_ to the given length + plus some slack + region before and after. Fills the slack regions with zeros. */ +static BROTLI_INLINE void RingBufferInitBuffer( + MemoryManager* m, const uint32_t buflen, RingBuffer* rb) { + static const size_t kSlackForEightByteHashingEverywhere = 7; + uint8_t* new_data = BROTLI_ALLOC( + m, uint8_t, 2 + buflen + kSlackForEightByteHashingEverywhere); + size_t i; + if (BROTLI_IS_OOM(m)) return; + if (rb->data_) { + memcpy(new_data, rb->data_, + 2 + rb->cur_size_ + kSlackForEightByteHashingEverywhere); + BROTLI_FREE(m, rb->data_); + } + rb->data_ = new_data; + rb->cur_size_ = buflen; + rb->buffer_ = rb->data_ + 2; + rb->buffer_[-2] = rb->buffer_[-1] = 0; + for (i = 0; i < kSlackForEightByteHashingEverywhere; ++i) { + rb->buffer_[rb->cur_size_ + i] = 0; + } +} + +static BROTLI_INLINE void RingBufferWriteTail( + const uint8_t *bytes, size_t n, RingBuffer* rb) { + const size_t masked_pos = rb->pos_ & rb->mask_; + if (PREDICT_FALSE(masked_pos < rb->tail_size_)) { + /* Just fill the tail buffer with the beginning data. */ + const size_t p = rb->size_ + masked_pos; + memcpy(&rb->buffer_[p], bytes, + BROTLI_MIN(size_t, n, rb->tail_size_ - masked_pos)); + } +} + +/* Push bytes into the ring buffer. */ +static BROTLI_INLINE void RingBufferWrite( + MemoryManager* m, const uint8_t *bytes, size_t n, RingBuffer* rb) { + if (rb->pos_ == 0 && n < rb->tail_size_) { + /* Special case for the first write: to process the first block, we don't + need to allocate the whole ringbuffer and we don't need the tail + either. However, we do this memory usage optimization only if the + first write is less than the tail size, which is also the input block + size, otherwise it is likely that other blocks will follow and we + will need to reallocate to the full size anyway. */ + rb->pos_ = (uint32_t)n; + RingBufferInitBuffer(m, rb->pos_, rb); + if (BROTLI_IS_OOM(m)) return; + memcpy(rb->buffer_, bytes, n); + return; + } + if (rb->cur_size_ < rb->total_size_) { + /* Lazily allocate the full buffer. */ + RingBufferInitBuffer(m, rb->total_size_, rb); + if (BROTLI_IS_OOM(m)) return; + /* Initialize the last two bytes to zero, so that we don't have to worry + later when we copy the last two bytes to the first two positions. */ + rb->buffer_[rb->size_ - 2] = 0; + rb->buffer_[rb->size_ - 1] = 0; + } + { + const size_t masked_pos = rb->pos_ & rb->mask_; + /* The length of the writes is limited so that we do not need to worry + about a write */ + RingBufferWriteTail(bytes, n, rb); + if (PREDICT_TRUE(masked_pos + n <= rb->size_)) { + /* A single write fits. */ + memcpy(&rb->buffer_[masked_pos], bytes, n); + } else { + /* Split into two writes. + Copy into the end of the buffer, including the tail buffer. */ + memcpy(&rb->buffer_[masked_pos], bytes, + BROTLI_MIN(size_t, n, rb->total_size_ - masked_pos)); + /* Copy into the beginning of the buffer */ + memcpy(&rb->buffer_[0], bytes + (rb->size_ - masked_pos), + n - (rb->size_ - masked_pos)); + } + } + rb->buffer_[-2] = rb->buffer_[rb->size_ - 2]; + rb->buffer_[-1] = rb->buffer_[rb->size_ - 1]; + rb->pos_ += (uint32_t)n; + if (rb->pos_ > (1u << 30)) { + /* Wrap, but preserve not-a-first-lap feature. */ + rb->pos_ = (rb->pos_ & ((1u << 30) - 1)) | (1u << 30); + } +} -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_RINGBUFFER_H_ +#endif /* BROTLI_ENC_RINGBUFFER_H_ */ diff --git a/thirdparty/brotli/enc/static_dict.cc b/thirdparty/brotli/enc/static_dict.c index 27177b1b..edfaa84b 100644 --- a/thirdparty/brotli/enc/static_dict.cc +++ b/thirdparty/brotli/enc/static_dict.c @@ -6,88 +6,103 @@ #include "./static_dict.h" -#include <algorithm> - -#include "./dictionary.h" +#include "../common/dictionary.h" #include "./find_match_length.h" +#include "./port.h" #include "./static_dict_lut.h" -#include "./transform.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +static const uint8_t kUppercaseFirst = 10; +static const uint8_t kOmitLastNTransforms[10] = { + 0, 12, 27, 23, 42, 63, 56, 48, 59, 64, +}; -inline uint32_t Hash(const uint8_t *data) { +static BROTLI_INLINE uint32_t Hash(const uint8_t *data) { uint32_t h = BROTLI_UNALIGNED_LOAD32(data) * kDictHashMul32; - // The higher bits contain more mixture from the multiplication, - // so we take our results from there. + /* The higher bits contain more mixture from the multiplication, + so we take our results from there. */ return h >> (32 - kDictNumBits); } -inline void AddMatch(size_t distance, size_t len, size_t len_code, - uint32_t* matches) { - uint32_t match = static_cast<uint32_t>((distance << 5) + len_code); - matches[len] = std::min(matches[len], match); +static BROTLI_INLINE void AddMatch(size_t distance, size_t len, size_t len_code, + uint32_t* matches) { + uint32_t match = (uint32_t)((distance << 5) + len_code); + matches[len] = BROTLI_MIN(uint32_t, matches[len], match); } -inline size_t DictMatchLength(const uint8_t* data, - size_t id, - size_t len, - size_t maxlen) { +static BROTLI_INLINE size_t DictMatchLength(const uint8_t* data, + size_t id, + size_t len, + size_t maxlen) { const size_t offset = kBrotliDictionaryOffsetsByLength[len] + len * id; return FindMatchLengthWithLimit(&kBrotliDictionary[offset], data, - std::min(len, maxlen)); + BROTLI_MIN(size_t, len, maxlen)); } -inline bool IsMatch(DictWord w, const uint8_t* data, size_t max_length) { - if (w.len > max_length) return false; - const size_t offset = kBrotliDictionaryOffsetsByLength[w.len] + w.len * w.idx; - const uint8_t* dict = &kBrotliDictionary[offset]; - if (w.transform == 0) { - // Match against base dictionary word. - return FindMatchLengthWithLimit(dict, data, w.len) == w.len; - } else if (w.transform == 10) { - // Match against uppercase first transform. - // Note that there are only ASCII uppercase words in the lookup table. - return (dict[0] >= 'a' && dict[0] <= 'z' && - (dict[0] ^ 32) == data[0] && - FindMatchLengthWithLimit(&dict[1], &data[1], w.len - 1u) == - w.len - 1u); +static BROTLI_INLINE BROTLI_BOOL IsMatch( + DictWord w, const uint8_t* data, size_t max_length) { + if (w.len > max_length) { + return BROTLI_FALSE; } else { - // Match against uppercase all transform. - // Note that there are only ASCII uppercase words in the lookup table. - for (size_t i = 0; i < w.len; ++i) { - if (dict[i] >= 'a' && dict[i] <= 'z') { - if ((dict[i] ^ 32) != data[i]) return false; - } else { - if (dict[i] != data[i]) return false; + const size_t offset = kBrotliDictionaryOffsetsByLength[w.len] + + (size_t)w.len * (size_t)w.idx; + const uint8_t* dict = &kBrotliDictionary[offset]; + if (w.transform == 0) { + /* Match against base dictionary word. */ + return + TO_BROTLI_BOOL(FindMatchLengthWithLimit(dict, data, w.len) == w.len); + } else if (w.transform == 10) { + /* Match against uppercase first transform. + Note that there are only ASCII uppercase words in the lookup table. */ + return TO_BROTLI_BOOL(dict[0] >= 'a' && dict[0] <= 'z' && + (dict[0] ^ 32) == data[0] && + FindMatchLengthWithLimit(&dict[1], &data[1], w.len - 1u) == + w.len - 1u); + } else { + /* Match against uppercase all transform. + Note that there are only ASCII uppercase words in the lookup table. */ + size_t i; + for (i = 0; i < w.len; ++i) { + if (dict[i] >= 'a' && dict[i] <= 'z') { + if ((dict[i] ^ 32) != data[i]) return BROTLI_FALSE; + } else { + if (dict[i] != data[i]) return BROTLI_FALSE; + } } + return BROTLI_TRUE; } - return true; } } -bool FindAllStaticDictionaryMatches(const uint8_t* data, - size_t min_length, - size_t max_length, - uint32_t* matches) { - bool found_match = false; - size_t key = Hash(data); - size_t bucket = kStaticDictionaryBuckets[key]; - if (bucket != 0) { - size_t num = bucket & 0xff; - size_t offset = bucket >> 8; - for (size_t i = 0; i < num; ++i) { - const DictWord w = kStaticDictionaryWords[offset + i]; - const size_t l = w.len; - const size_t n = 1u << kBrotliDictionarySizeBitsByLength[l]; +BROTLI_BOOL BrotliFindAllStaticDictionaryMatches( + const uint8_t* data, size_t min_length, size_t max_length, + uint32_t* matches) { + BROTLI_BOOL has_found_match = BROTLI_FALSE; + { + size_t offset = kStaticDictionaryBuckets[Hash(data)]; + BROTLI_BOOL end = !offset; + while (!end) { + DictWord w = kStaticDictionaryWords[offset++]; + const size_t l = w.len & 0x7F; + const size_t n = (size_t)1 << kBrotliDictionarySizeBitsByLength[l]; const size_t id = w.idx; + end = !!(w.len & 0x80); + w.len = (uint8_t)l; if (w.transform == 0) { const size_t matchlen = DictMatchLength(data, id, l, max_length); - // Transform "" + kIdentity + "" + const uint8_t* s; + size_t minlen; + size_t maxlen; + size_t len; + /* Transform "" + kIdentity + "" */ if (matchlen == l) { AddMatch(id, l, l, matches); - found_match = true; + has_found_match = BROTLI_TRUE; } - // Transforms "" + kOmitLast1 + "" and "" + kOmitLast1 + "ing " + /* Transforms "" + kOmitLast1 + "" and "" + kOmitLast1 + "ing " */ if (matchlen >= l - 1) { AddMatch(id + 12 * n, l - 1, l, matches); if (l + 2 < max_length && @@ -95,21 +110,21 @@ bool FindAllStaticDictionaryMatches(const uint8_t* data, data[l + 2] == ' ') { AddMatch(id + 49 * n, l + 3, l, matches); } - found_match = true; + has_found_match = BROTLI_TRUE; } - // Transform "" + kOmitLastN + "" (N = 2 .. 9) - size_t minlen = min_length; - if (l > 9) minlen = std::max(minlen, l - 9); - size_t maxlen = std::min(matchlen, l - 2); - for (size_t len = minlen; len <= maxlen; ++len) { + /* Transform "" + kOmitLastN + "" (N = 2 .. 9) */ + minlen = min_length; + if (l > 9) minlen = BROTLI_MAX(size_t, minlen, l - 9); + maxlen = BROTLI_MIN(size_t, matchlen, l - 2); + for (len = minlen; len <= maxlen; ++len) { AddMatch(id + kOmitLastNTransforms[l - len] * n, len, l, matches); - found_match = true; + has_found_match = BROTLI_TRUE; } if (matchlen < l || l + 6 >= max_length) { continue; } - const uint8_t* s = &data[l]; - // Transforms "" + kIdentity + <suffix> + s = &data[l]; + /* Transforms "" + kIdentity + <suffix> */ if (s[0] == ' ') { AddMatch(id + n, l + 1, l, matches); if (s[1] == 'a') { @@ -127,7 +142,7 @@ bool FindAllStaticDictionaryMatches(const uint8_t* data, } else if (s[1] == 'b') { if (s[2] == 'y' && s[3] == ' ') { AddMatch(id + 38 * n, l + 4, l, matches); - } + } } else if (s[1] == 'i') { if (s[2] == 'n') { if (s[3] == ' ') AddMatch(id + 16 * n, l + 4, l, matches); @@ -235,7 +250,7 @@ bool FindAllStaticDictionaryMatches(const uint8_t* data, } else if (s[0] == 'i') { if (s[1] == 'v') { if (s[2] == 'e' && s[3] == ' ') { - AddMatch(id + 92 * n, l + 4, l, matches); + AddMatch(id + 92 * n, l + 4, l, matches); } } else if (s[1] == 'z') { if (s[2] == 'e' && s[3] == ' ') { @@ -256,75 +271,79 @@ bool FindAllStaticDictionaryMatches(const uint8_t* data, } } } else { - // Set t=false for kUppercaseFirst and - // t=true otherwise (kUppercaseAll) transform. - const bool t = w.transform != kUppercaseFirst; + /* Set is_all_caps=0 for kUppercaseFirst and + is_all_caps=1 otherwise (kUppercaseAll) transform. */ + const BROTLI_BOOL is_all_caps = + TO_BROTLI_BOOL(w.transform != kUppercaseFirst); + const uint8_t* s; if (!IsMatch(w, data, max_length)) { continue; } - // Transform "" + kUppercase{First,All} + "" - AddMatch(id + (t ? 44 : 9) * n, l, l, matches); - found_match = true; + /* Transform "" + kUppercase{First,All} + "" */ + AddMatch(id + (is_all_caps ? 44 : 9) * n, l, l, matches); + has_found_match = BROTLI_TRUE; if (l + 1 >= max_length) { continue; } - // Transforms "" + kUppercase{First,All} + <suffix> - const uint8_t* s = &data[l]; + /* Transforms "" + kUppercase{First,All} + <suffix> */ + s = &data[l]; if (s[0] == ' ') { - AddMatch(id + (t ? 68 : 4) * n, l + 1, l, matches); + AddMatch(id + (is_all_caps ? 68 : 4) * n, l + 1, l, matches); } else if (s[0] == '"') { - AddMatch(id + (t ? 87 : 66) * n, l + 1, l, matches); + AddMatch(id + (is_all_caps ? 87 : 66) * n, l + 1, l, matches); if (s[1] == '>') { - AddMatch(id + (t ? 97 : 69) * n, l + 2, l, matches); + AddMatch(id + (is_all_caps ? 97 : 69) * n, l + 2, l, matches); } } else if (s[0] == '.') { - AddMatch(id + (t ? 101 : 79) * n, l + 1, l, matches); + AddMatch(id + (is_all_caps ? 101 : 79) * n, l + 1, l, matches); if (s[1] == ' ') { - AddMatch(id + (t ? 114 : 88) * n, l + 2, l, matches); + AddMatch(id + (is_all_caps ? 114 : 88) * n, l + 2, l, matches); } } else if (s[0] == ',') { - AddMatch(id + (t ? 112 : 99) * n, l + 1, l, matches); + AddMatch(id + (is_all_caps ? 112 : 99) * n, l + 1, l, matches); if (s[1] == ' ') { - AddMatch(id + (t ? 107 : 58) * n, l + 2, l, matches); + AddMatch(id + (is_all_caps ? 107 : 58) * n, l + 2, l, matches); } } else if (s[0] == '\'') { - AddMatch(id + (t ? 94 : 74) * n, l + 1, l, matches); + AddMatch(id + (is_all_caps ? 94 : 74) * n, l + 1, l, matches); } else if (s[0] == '(') { - AddMatch(id + (t ? 113 : 78) * n, l + 1, l, matches); + AddMatch(id + (is_all_caps ? 113 : 78) * n, l + 1, l, matches); } else if (s[0] == '=') { if (s[1] == '"') { - AddMatch(id + (t ? 105 : 104) * n, l + 2, l, matches); + AddMatch(id + (is_all_caps ? 105 : 104) * n, l + 2, l, matches); } else if (s[1] == '\'') { - AddMatch(id + (t ? 116 : 108) * n, l + 2, l, matches); + AddMatch(id + (is_all_caps ? 116 : 108) * n, l + 2, l, matches); } } } } } - // Transforms with prefixes " " and "." + /* Transforms with prefixes " " and "." */ if (max_length >= 5 && (data[0] == ' ' || data[0] == '.')) { - bool is_space = (data[0] == ' '); - key = Hash(&data[1]); - bucket = kStaticDictionaryBuckets[key]; - size_t num = bucket & 0xff; - size_t offset = bucket >> 8; - for (size_t i = 0; i < num; ++i) { - const DictWord w = kStaticDictionaryWords[offset + i]; - const size_t l = w.len; - const size_t n = 1u << kBrotliDictionarySizeBitsByLength[l]; + BROTLI_BOOL is_space = TO_BROTLI_BOOL(data[0] == ' '); + size_t offset = kStaticDictionaryBuckets[Hash(&data[1])]; + BROTLI_BOOL end = !offset; + while (!end) { + DictWord w = kStaticDictionaryWords[offset++]; + const size_t l = w.len & 0x7F; + const size_t n = (size_t)1 << kBrotliDictionarySizeBitsByLength[l]; const size_t id = w.idx; + end = !!(w.len & 0x80); + w.len = (uint8_t)l; if (w.transform == 0) { + const uint8_t* s; if (!IsMatch(w, &data[1], max_length - 1)) { continue; } - // Transforms " " + kIdentity + "" and "." + kIdentity + "" + /* Transforms " " + kIdentity + "" and "." + kIdentity + "" */ AddMatch(id + (is_space ? 6 : 32) * n, l + 1, l, matches); - found_match = true; + has_found_match = BROTLI_TRUE; if (l + 2 >= max_length) { continue; } - // Transforms " " + kIdentity + <suffix> and "." + kIdentity + <suffix> - const uint8_t* s = &data[l + 1]; + /* Transforms " " + kIdentity + <suffix> and "." + kIdentity + <suffix> + */ + s = &data[l + 1]; if (s[0] == ' ') { AddMatch(id + (is_space ? 2 : 77) * n, l + 2, l, matches); } else if (s[0] == '(') { @@ -349,89 +368,91 @@ bool FindAllStaticDictionaryMatches(const uint8_t* data, } } } else if (is_space) { - // Set t=false for kUppercaseFirst and - // t=true otherwise (kUppercaseAll) transform. - const bool t = w.transform != kUppercaseFirst; + /* Set is_all_caps=0 for kUppercaseFirst and + is_all_caps=1 otherwise (kUppercaseAll) transform. */ + const BROTLI_BOOL is_all_caps = + TO_BROTLI_BOOL(w.transform != kUppercaseFirst); + const uint8_t* s; if (!IsMatch(w, &data[1], max_length - 1)) { continue; } - // Transforms " " + kUppercase{First,All} + "" - AddMatch(id + (t ? 85 : 30) * n, l + 1, l, matches); - found_match = true; + /* Transforms " " + kUppercase{First,All} + "" */ + AddMatch(id + (is_all_caps ? 85 : 30) * n, l + 1, l, matches); + has_found_match = BROTLI_TRUE; if (l + 2 >= max_length) { continue; } - // Transforms " " + kUppercase{First,All} + <suffix> - const uint8_t* s = &data[l + 1]; + /* Transforms " " + kUppercase{First,All} + <suffix> */ + s = &data[l + 1]; if (s[0] == ' ') { - AddMatch(id + (t ? 83 : 15) * n, l + 2, l, matches); + AddMatch(id + (is_all_caps ? 83 : 15) * n, l + 2, l, matches); } else if (s[0] == ',') { - if (!t) { + if (!is_all_caps) { AddMatch(id + 109 * n, l + 2, l, matches); - } + } if (s[1] == ' ') { - AddMatch(id + (t ? 111 : 65) * n, l + 3, l, matches); + AddMatch(id + (is_all_caps ? 111 : 65) * n, l + 3, l, matches); } } else if (s[0] == '.') { - AddMatch(id + (t ? 115 : 96) * n, l + 2, l, matches); + AddMatch(id + (is_all_caps ? 115 : 96) * n, l + 2, l, matches); if (s[1] == ' ') { - AddMatch(id + (t ? 117 : 91) * n, l + 3, l, matches); + AddMatch(id + (is_all_caps ? 117 : 91) * n, l + 3, l, matches); } } else if (s[0] == '=') { if (s[1] == '"') { - AddMatch(id + (t ? 110 : 118) * n, l + 3, l, matches); + AddMatch(id + (is_all_caps ? 110 : 118) * n, l + 3, l, matches); } else if (s[1] == '\'') { - AddMatch(id + (t ? 119 : 120) * n, l + 3, l, matches); + AddMatch(id + (is_all_caps ? 119 : 120) * n, l + 3, l, matches); } } } } } if (max_length >= 6) { - // Transforms with prefixes "e ", "s ", ", " and "\xc2\xa0" + /* Transforms with prefixes "e ", "s ", ", " and "\xc2\xa0" */ if ((data[1] == ' ' && (data[0] == 'e' || data[0] == 's' || data[0] == ',')) || (data[0] == 0xc2 && data[1] == 0xa0)) { - key = Hash(&data[2]); - bucket = kStaticDictionaryBuckets[key]; - size_t num = bucket & 0xff; - size_t offset = bucket >> 8; - for (size_t i = 0; i < num; ++i) { - const DictWord w = kStaticDictionaryWords[offset + i]; - const size_t l = w.len; - const size_t n = 1u << kBrotliDictionarySizeBitsByLength[l]; + size_t offset = kStaticDictionaryBuckets[Hash(&data[2])]; + BROTLI_BOOL end = !offset; + while (!end) { + DictWord w = kStaticDictionaryWords[offset++]; + const size_t l = w.len & 0x7F; + const size_t n = (size_t)1 << kBrotliDictionarySizeBitsByLength[l]; const size_t id = w.idx; + end = !!(w.len & 0x80); + w.len = (uint8_t)l; if (w.transform == 0 && IsMatch(w, &data[2], max_length - 2)) { if (data[0] == 0xc2) { AddMatch(id + 102 * n, l + 2, l, matches); - found_match = true; + has_found_match = BROTLI_TRUE; } else if (l + 2 < max_length && data[l + 2] == ' ') { size_t t = data[0] == 'e' ? 18 : (data[0] == 's' ? 7 : 13); AddMatch(id + t * n, l + 3, l, matches); - found_match = true; + has_found_match = BROTLI_TRUE; } } } } } if (max_length >= 9) { - // Transforms with prefixes " the " and ".com/" + /* Transforms with prefixes " the " and ".com/" */ if ((data[0] == ' ' && data[1] == 't' && data[2] == 'h' && data[3] == 'e' && data[4] == ' ') || (data[0] == '.' && data[1] == 'c' && data[2] == 'o' && data[3] == 'm' && data[4] == '/')) { - key = Hash(&data[5]); - bucket = kStaticDictionaryBuckets[key]; - size_t num = bucket & 0xff; - size_t offset = bucket >> 8; - for (size_t i = 0; i < num; ++i) { - const DictWord w = kStaticDictionaryWords[offset + i]; - const size_t l = w.len; - const size_t n = 1u << kBrotliDictionarySizeBitsByLength[l]; + size_t offset = kStaticDictionaryBuckets[Hash(&data[5])]; + BROTLI_BOOL end = !offset; + while (!end) { + DictWord w = kStaticDictionaryWords[offset++]; + const size_t l = w.len & 0x7F; + const size_t n = (size_t)1 << kBrotliDictionarySizeBitsByLength[l]; const size_t id = w.idx; + end = !!(w.len & 0x80); + w.len = (uint8_t)l; if (w.transform == 0 && IsMatch(w, &data[5], max_length - 5)) { AddMatch(id + (data[0] == ' ' ? 41 : 72) * n, l + 5, l, matches); - found_match = true; + has_found_match = BROTLI_TRUE; if (l + 5 < max_length) { const uint8_t* s = &data[l + 5]; if (data[0] == ' ') { @@ -449,7 +470,9 @@ bool FindAllStaticDictionaryMatches(const uint8_t* data, } } } - return found_match; + return has_found_match; } -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/static_dict.h b/thirdparty/brotli/enc/static_dict.h index d293934d..039d0878 100644 --- a/thirdparty/brotli/enc/static_dict.h +++ b/thirdparty/brotli/enc/static_dict.h @@ -4,29 +4,34 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Class to model the static dictionary. +/* Class to model the static dictionary. */ #ifndef BROTLI_ENC_STATIC_DICT_H_ #define BROTLI_ENC_STATIC_DICT_H_ -#include "./types.h" +#include "../common/types.h" +#include "./port.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -static const size_t kMaxDictionaryMatchLen = 37; +#define BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN 37 static const uint32_t kInvalidMatch = 0xfffffff; -// Matches data against static dictionary words, and for each length l, -// for which a match is found, updates matches[l] to be the minimum possible -// (distance << 5) + len_code. -// Prerequisites: -// matches array is at least kMaxDictionaryMatchLen + 1 long -// all elements are initialized to kInvalidMatch -bool FindAllStaticDictionaryMatches(const uint8_t* data, - size_t min_length, - size_t max_length, - uint32_t* matches); - -} // namespace brotli - -#endif // BROTLI_ENC_STATIC_DICT_H_ +/* Matches data against static dictionary words, and for each length l, + for which a match is found, updates matches[l] to be the minimum possible + (distance << 5) + len_code. + Returns 1 if matches have been found, otherwise 0. + Prerequisites: + matches array is at least BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN + 1 long + all elements are initialized to kInvalidMatch */ +BROTLI_INTERNAL BROTLI_BOOL BrotliFindAllStaticDictionaryMatches( + const uint8_t* data, size_t min_length, size_t max_length, + uint32_t* matches); + +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif + +#endif /* BROTLI_ENC_STATIC_DICT_H_ */ diff --git a/thirdparty/brotli/enc/static_dict_lut.h b/thirdparty/brotli/enc/static_dict_lut.h index 489c03a1..8b564f50 100644 --- a/thirdparty/brotli/enc/static_dict_lut.h +++ b/thirdparty/brotli/enc/static_dict_lut.h @@ -4,12052 +4,11238 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Lookup table for static dictionary and transforms. +/* Lookup table for static dictionary and transforms. */ -#ifndef BROTLI_ENC_DICTIONARY_LUT_H_ -#define BROTLI_ENC_DICTIONARY_LUT_H_ +#ifndef BROTLI_ENC_STATIC_DICT_LUT_H_ +#define BROTLI_ENC_STATIC_DICT_LUT_H_ -#include "./types.h" +#include "../common/types.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -static const int kDictNumBits = 15 -;static const uint32_t kDictHashMul32 = 0x1e35a7bd; - -struct DictWord { +typedef struct DictWord { + /* Highest bit is used to indicate end of bucket. */ uint8_t len; uint8_t transform; uint16_t idx; -}; +} DictWord; -static const uint32_t kStaticDictionaryBuckets[] = { - 0x000002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000203, 0x00050e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x001301, 0x000000, 0x000000, 0x000000, 0x001401, 0x000000, 0x001501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x001602, - 0x000000, 0x000000, 0x001804, 0x000000, 0x001c18, 0x000000, 0x003402, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x003606, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x003c0f, 0x004b12, 0x000000, 0x000000, - 0x000000, 0x005d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x005f01, 0x000000, 0x006001, 0x000000, 0x006101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x006202, 0x006405, 0x006902, 0x006b02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x006d01, 0x000000, 0x006e01, - 0x006f01, 0x000000, 0x007005, 0x007506, 0x007b01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x007c03, 0x007f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x008002, 0x000000, 0x000000, 0x008201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x008303, 0x000000, 0x000000, 0x008602, 0x000000, 0x000000, - 0x000000, 0x008801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x008901, - 0x008a03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x008d01, 0x008e01, 0x008f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x009001, 0x000000, 0x000000, 0x000000, 0x009103, 0x009402, 0x009601, 0x009701, - 0x000000, 0x000000, 0x009801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x009901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x009a05, 0x000000, 0x000000, 0x000000, 0x000000, 0x009f16, 0x00b501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00b605, 0x000000, - 0x000000, 0x000000, 0x00bb01, 0x00bc03, 0x000000, 0x000000, 0x00bf02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00c103, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x00c405, 0x00c907, - 0x00d001, 0x000000, 0x000000, 0x00d10e, 0x000000, 0x00df01, 0x000000, 0x000000, - 0x000000, 0x00e006, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x00e601, 0x000000, 0x000000, 0x000000, - 0x00e708, 0x000000, 0x00ef02, 0x000000, 0x000000, 0x00f102, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x00f302, 0x000000, 0x000000, 0x000000, 0x00f503, 0x000000, 0x000000, - 0x00f802, 0x00fa02, 0x00fc05, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x010103, 0x000000, 0x000000, 0x010402, 0x010604, 0x000000, 0x000000, 0x000000, - 0x010a01, 0x000000, 0x000000, 0x010b01, 0x000000, 0x010c02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x010e01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x010f01, 0x000000, - 0x011004, 0x000000, 0x011401, 0x000000, 0x011508, 0x011d01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x011e02, 0x000000, 0x012001, 0x012101, 0x012204, 0x000000, - 0x000000, 0x000000, 0x012601, 0x000000, 0x000000, 0x012701, 0x012801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x012901, 0x000000, 0x000000, 0x000000, 0x012a06, 0x000000, 0x000000, - 0x013013, 0x000000, 0x014303, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x014601, 0x000000, 0x014701, 0x014807, 0x000000, 0x000000, 0x000000, 0x000000, - 0x014f04, 0x000000, 0x000000, 0x015301, 0x000000, 0x015401, 0x015501, 0x015603, - 0x000000, 0x000000, 0x015902, 0x000000, 0x015b01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x015c02, 0x015e04, 0x000000, 0x000000, 0x016208, - 0x000000, 0x016a01, 0x000000, 0x016b04, 0x000000, 0x016f01, 0x017001, 0x000000, - 0x017102, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x017301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x017402, 0x000000, 0x017601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x017701, 0x017811, 0x000000, 0x000000, 0x018901, - 0x018a01, 0x018b02, 0x000000, 0x000000, 0x018d02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x018f08, 0x000000, 0x000000, 0x01970c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x01a301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x01a401, 0x000000, 0x000000, 0x01a501, 0x01a606, 0x000000, 0x000000, 0x01ac06, - 0x01b201, 0x01b306, 0x01b901, 0x000000, 0x000000, 0x01ba01, 0x000000, 0x01bb01, - 0x01bc08, 0x01c403, 0x01c701, 0x000000, 0x01c801, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x01c901, 0x000000, 0x000000, 0x000000, 0x01ca01, 0x000000, - 0x000000, 0x000000, 0x01cb02, 0x000000, 0x01cd01, 0x01ce02, 0x01d001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x01d103, 0x01d401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x01d504, 0x000000, 0x000000, - 0x000000, 0x01d902, 0x000000, 0x01db07, 0x000000, 0x000000, 0x000000, 0x000000, - 0x01e202, 0x000000, 0x01e401, 0x000000, 0x000000, 0x000000, 0x01e502, 0x000000, - 0x000000, 0x01e703, 0x01ea01, 0x01eb05, 0x000000, 0x000000, 0x01f002, 0x01f201, - 0x01f301, 0x000000, 0x01f404, 0x000000, 0x000000, 0x000000, 0x01f801, 0x000000, - 0x000000, 0x01f901, 0x000000, 0x000000, 0x000000, 0x01fa02, 0x000000, 0x000000, - 0x000000, 0x01fc02, 0x000000, 0x000000, 0x000000, 0x000000, 0x01fe01, 0x01ff07, - 0x02060a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x021001, - 0x021104, 0x000000, 0x000000, 0x000000, 0x021509, 0x000000, 0x000000, 0x000000, - 0x000000, 0x021e0a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x022804, 0x000000, 0x000000, 0x000000, 0x000000, - 0x022c03, 0x022f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x023003, 0x000000, 0x023301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x023401, 0x023509, 0x000000, 0x023e2c, 0x000000, 0x026a01, 0x000000, - 0x026b03, 0x000000, 0x000000, 0x026e01, 0x026f01, 0x000000, 0x000000, 0x000000, - 0x027001, 0x000000, 0x000000, 0x027101, 0x027201, 0x000000, 0x000000, 0x027302, - 0x000000, 0x000000, 0x000000, 0x000000, 0x027501, 0x000000, 0x02760a, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x028002, 0x000000, 0x000000, 0x000000, 0x000000, 0x02820d, 0x028f0c, 0x029b05, - 0x000000, 0x000000, 0x000000, 0x02a001, 0x000000, 0x000000, 0x000000, 0x02a108, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x02a905, 0x000000, 0x02ae03, 0x000000, 0x02b103, 0x000000, 0x02b406, 0x02ba01, - 0x02bb04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x02bf01, - 0x02c002, 0x000000, 0x000000, 0x000000, 0x000000, 0x02c203, 0x02c501, 0x000000, - 0x02c60f, 0x000000, 0x000000, 0x000000, 0x000000, 0x02d503, 0x000000, 0x000000, - 0x02d801, 0x000000, 0x000000, 0x000000, 0x02d901, 0x02da15, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x02ef0a, 0x000000, 0x000000, 0x000000, 0x02f901, - 0x000000, 0x02fa04, 0x000000, 0x000000, 0x02fe03, 0x000000, 0x000000, 0x000000, - 0x030104, 0x030501, 0x000000, 0x000000, 0x030601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x030701, - 0x000000, 0x000000, 0x000000, 0x030806, 0x030e02, 0x000000, 0x000000, 0x000000, - 0x031003, 0x031302, 0x000000, 0x000000, 0x000000, 0x000000, 0x031503, 0x000000, - 0x000000, 0x000000, 0x031801, 0x000000, 0x000000, 0x000000, 0x000000, 0x03190a, - 0x000000, 0x000000, 0x03230f, 0x033202, 0x033406, 0x000000, 0x033a07, 0x000000, - 0x000000, 0x000000, 0x034101, 0x000000, 0x000000, 0x034206, 0x000000, 0x000000, - 0x000000, 0x034803, 0x000000, 0x034b06, 0x000000, 0x035101, 0x035208, 0x035a01, - 0x000000, 0x035b0e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x036902, 0x000000, 0x036b01, 0x000000, 0x036c0d, 0x037903, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x037c01, - 0x037d04, 0x038101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x038201, 0x000000, 0x000000, 0x000000, 0x038304, 0x038702, 0x038901, - 0x000000, 0x000000, 0x000000, 0x038a01, 0x000000, 0x038b01, 0x038c01, 0x000000, - 0x038d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x038e05, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x039306, 0x000000, 0x000000, 0x000000, 0x039903, - 0x039c05, 0x000000, 0x03a104, 0x000000, 0x03a509, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x03ae01, 0x000000, 0x000000, 0x03af09, 0x000000, 0x03b801, - 0x03b901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x03ba07, - 0x000000, 0x03c101, 0x03c20d, 0x000000, 0x000000, 0x03cf01, 0x000000, 0x000000, - 0x03d001, 0x03d101, 0x03d201, 0x03d301, 0x000000, 0x03d403, 0x000000, 0x000000, - 0x000000, 0x000000, 0x03d701, 0x000000, 0x000000, 0x03d802, 0x000000, 0x000000, - 0x03da02, 0x03dc02, 0x03de01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x03df01, 0x000000, 0x000000, 0x000000, - 0x03e003, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x03e304, - 0x000000, 0x000000, 0x000000, 0x03e702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x03e903, 0x000000, 0x000000, 0x000000, 0x000000, 0x03ec02, 0x03ee02, - 0x000000, 0x000000, 0x000000, 0x03f001, 0x000000, 0x000000, 0x000000, 0x03f101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x03f201, 0x000000, - 0x03f302, 0x000000, 0x000000, 0x000000, 0x000000, 0x03f502, 0x03f704, 0x000000, - 0x000000, 0x000000, 0x03fb01, 0x000000, 0x03fc01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x03fd02, 0x000000, 0x000000, 0x000000, 0x03ff01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x040001, 0x000000, 0x000000, 0x040101, - 0x040204, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x040602, 0x000000, - 0x040801, 0x000000, 0x000000, 0x000000, 0x000000, 0x040903, 0x000000, 0x000000, - 0x000000, 0x040c03, 0x040f02, 0x000000, 0x000000, 0x000000, 0x041101, 0x04120a, - 0x000000, 0x000000, 0x041c01, 0x000000, 0x041d03, 0x000000, 0x000000, 0x042001, - 0x000000, 0x000000, 0x000000, 0x042102, 0x000000, 0x000000, 0x042301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x042401, 0x000000, - 0x000000, 0x042501, 0x000000, 0x000000, 0x000000, 0x000000, 0x042601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x042701, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x042801, 0x000000, 0x000000, 0x000000, 0x000000, 0x042901, 0x042a02, - 0x000000, 0x000000, 0x000000, 0x042c01, 0x042d02, 0x042f01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x043002, 0x000000, 0x043205, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x043704, 0x043b04, 0x000000, - 0x000000, 0x000000, 0x000000, 0x043f06, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x044501, 0x000000, 0x04460c, 0x000000, 0x045205, 0x000000, - 0x000000, 0x000000, 0x045702, 0x045905, 0x000000, 0x045e03, 0x000000, 0x046104, - 0x000000, 0x000000, 0x046503, 0x000000, 0x046801, 0x000000, 0x046902, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x046b0c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x047701, 0x000000, 0x000000, 0x047801, 0x047902, - 0x000000, 0x047b01, 0x047c01, 0x000000, 0x000000, 0x047d01, 0x047e01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x047f01, 0x000000, 0x048001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x048109, 0x000000, 0x048a01, 0x000000, 0x000000, - 0x000000, 0x048b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x048c02, - 0x000000, 0x048e03, 0x000000, 0x049101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x049201, 0x049301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x049402, 0x049602, 0x049809, 0x000000, 0x04a109, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x04aa1a, 0x000000, 0x000000, 0x04c403, 0x000000, 0x000000, - 0x04c703, 0x000000, 0x000000, 0x04ca01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x04cb01, 0x04cc01, 0x000000, 0x000000, 0x04cd01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x04ce02, - 0x000000, 0x000000, 0x000000, 0x04d00a, 0x000000, 0x000000, 0x04da01, 0x04db02, - 0x04dd02, 0x04df06, 0x000000, 0x000000, 0x000000, 0x000000, 0x04e501, 0x04e603, - 0x04e901, 0x04ea01, 0x000000, 0x000000, 0x000000, 0x04eb01, 0x000000, 0x000000, - 0x04ec01, 0x000000, 0x000000, 0x000000, 0x04ed02, 0x04ef01, 0x000000, 0x000000, - 0x04f001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x04f101, 0x000000, 0x04f206, - 0x000000, 0x000000, 0x000000, 0x000000, 0x04f801, 0x04f902, 0x04fb0d, 0x050802, - 0x000000, 0x000000, 0x050a01, 0x050b01, 0x050c01, 0x000000, 0x000000, 0x050d01, - 0x050e01, 0x050f06, 0x000000, 0x000000, 0x000000, 0x000000, 0x051502, 0x000000, - 0x051707, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x051e01, 0x051f02, 0x000000, 0x052102, 0x000000, 0x052304, - 0x052701, 0x052801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x052901, 0x052a01, 0x052b0b, 0x000000, 0x053601, 0x000000, 0x053705, - 0x000000, 0x000000, 0x000000, 0x000000, 0x053c01, 0x053d04, 0x000000, 0x05410b, - 0x000000, 0x054c01, 0x000000, 0x000000, 0x000000, 0x054d02, 0x054f01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x055001, 0x000000, 0x000000, - 0x000000, 0x055103, 0x055401, 0x000000, 0x05550d, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x056207, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x056902, 0x000000, 0x056b07, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x057208, 0x000000, 0x000000, 0x000000, 0x000000, 0x057a02, - 0x000000, 0x057c02, 0x000000, 0x000000, 0x057e01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x057f01, 0x058001, 0x000000, 0x058102, 0x000000, 0x000000, - 0x000000, 0x058301, 0x058403, 0x05870d, 0x000000, 0x000000, 0x059416, 0x05aa03, - 0x000000, 0x000000, 0x05ad01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x05ae01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x05af03, 0x000000, 0x000000, 0x000000, 0x000000, 0x05b201, - 0x05b301, 0x05b40e, 0x05c202, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x05c403, 0x000000, 0x05c701, 0x000000, 0x05c805, 0x000000, 0x000000, - 0x05cd09, 0x000000, 0x000000, 0x05d601, 0x000000, 0x000000, 0x000000, 0x05d702, - 0x000000, 0x000000, 0x05d901, 0x05da02, 0x05dc13, 0x05ef01, 0x05f005, 0x000000, - 0x000000, 0x000000, 0x05f502, 0x000000, 0x000000, 0x000000, 0x000000, 0x05f701, - 0x05f804, 0x000000, 0x05fc03, 0x05ff01, 0x000000, 0x000000, 0x000000, 0x060001, - 0x06010b, 0x060c01, 0x000000, 0x060d08, 0x061501, 0x06160d, 0x062301, 0x000000, - 0x062402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x062604, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x062a14, 0x000000, 0x063e04, 0x000000, 0x064201, 0x000000, 0x064301, 0x000000, - 0x064403, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x064702, 0x064901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x064a04, 0x000000, 0x064e01, 0x000000, - 0x064f02, 0x065101, 0x000000, 0x065203, 0x000000, 0x000000, 0x06550c, 0x000000, - 0x000000, 0x000000, 0x000000, 0x066101, 0x000000, 0x000000, 0x000000, 0x066206, - 0x000000, 0x000000, 0x000000, 0x066802, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x066a07, 0x000000, 0x000000, - 0x000000, 0x067102, 0x000000, 0x000000, 0x067301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x067401, 0x000000, 0x000000, 0x000000, 0x067501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x067607, 0x000000, 0x067d01, 0x000000, 0x000000, - 0x067e01, 0x067f04, 0x000000, 0x000000, 0x068301, 0x000000, 0x000000, 0x068401, - 0x068502, 0x000000, 0x068701, 0x068801, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x068901, 0x000000, 0x000000, 0x000000, 0x068a01, 0x068b04, 0x068f02, - 0x000000, 0x069105, 0x000000, 0x000000, 0x069611, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x06a701, 0x000000, 0x000000, 0x06a810, 0x000000, 0x000000, - 0x06b80d, 0x000000, 0x000000, 0x000000, 0x000000, 0x06c501, 0x06c602, 0x000000, - 0x000000, 0x000000, 0x000000, 0x06c802, 0x000000, 0x000000, 0x000000, 0x000000, - 0x06ca01, 0x000000, 0x000000, 0x06cb01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x06cc02, 0x06ce02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x06d004, 0x000000, 0x000000, 0x000000, - 0x06d402, 0x000000, 0x000000, 0x000000, 0x06d609, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x06df05, 0x000000, 0x000000, 0x000000, 0x000000, - 0x06e413, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x06f701, 0x000000, - 0x06f802, 0x06fa01, 0x000000, 0x000000, 0x000000, 0x000000, 0x06fb01, 0x06fc01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x06fd01, 0x06fe02, 0x070005, 0x000000, - 0x070501, 0x070602, 0x000000, 0x000000, 0x000000, 0x000000, 0x070802, 0x000000, - 0x070a02, 0x070c01, 0x000000, 0x000000, 0x000000, 0x070d05, 0x071201, 0x000000, - 0x071302, 0x071507, 0x000000, 0x071c01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x071d0b, 0x07280f, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x073709, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x074002, 0x000000, 0x000000, 0x000000, 0x074202, 0x000000, 0x000000, 0x000000, - 0x000000, 0x074405, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x074937, 0x000000, 0x078004, 0x078404, 0x000000, 0x000000, 0x000000, - 0x078801, 0x078901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x078a01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x078b02, 0x000000, 0x000000, 0x000000, 0x078d0c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x079902, 0x000000, 0x000000, - 0x079b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x079d07, 0x000000, 0x07a401, - 0x000000, 0x07a507, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x07ac02, - 0x07ae01, 0x000000, 0x000000, 0x000000, 0x000000, 0x07af01, 0x000000, 0x07b002, - 0x000000, 0x07b201, 0x07b301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x07b402, 0x000000, 0x000000, 0x000000, 0x000000, 0x07b601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x07b703, 0x07ba03, 0x000000, 0x07bd02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x07bf04, 0x07c302, 0x000000, 0x000000, - 0x000000, 0x000000, 0x07c50e, 0x07d304, 0x07d704, 0x000000, 0x000000, 0x000000, - 0x07db01, 0x07dc02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x07de01, 0x000000, 0x07df01, 0x07e004, - 0x000000, 0x000000, 0x000000, 0x000000, 0x07e404, 0x000000, 0x000000, 0x07e804, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x07ec07, 0x07f304, 0x07f702, - 0x000000, 0x07f901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x07fa02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x07fc01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x07fd01, 0x07fe01, - 0x000000, 0x07ff01, 0x08000a, 0x000000, 0x080a04, 0x000000, 0x000000, 0x080e01, - 0x000000, 0x080f01, 0x081001, 0x000000, 0x000000, 0x081103, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x081401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x081501, 0x000000, 0x081601, 0x000000, 0x081708, 0x000000, 0x000000, - 0x000000, 0x000000, 0x081f02, 0x082101, 0x082202, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x082401, 0x000000, 0x082502, 0x082701, 0x082810, 0x083802, - 0x000000, 0x000000, 0x000000, 0x000000, 0x083a09, 0x000000, 0x000000, 0x084301, - 0x084403, 0x000000, 0x084702, 0x000000, 0x000000, 0x084901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x084a02, 0x000000, 0x000000, 0x084c02, 0x084e01, - 0x084f02, 0x000000, 0x000000, 0x000000, 0x085107, 0x000000, 0x000000, 0x000000, - 0x085802, 0x085a01, 0x085b01, 0x085c03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x085f01, 0x086001, 0x000000, - 0x000000, 0x086103, 0x086401, 0x000000, 0x000000, 0x000000, 0x000000, 0x086501, - 0x000000, 0x000000, 0x086607, 0x086d01, 0x000000, 0x086e01, 0x000000, 0x086f01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x087001, 0x087120, - 0x000000, 0x000000, 0x089108, 0x089903, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x089c0c, 0x08a803, 0x000000, 0x08ab01, 0x000000, 0x08ac01, - 0x000000, 0x08ad02, 0x08af0d, 0x000000, 0x000000, 0x000000, 0x000000, 0x08bc01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x08bd01, 0x000000, 0x08be02, - 0x08c001, 0x000000, 0x000000, 0x08c101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x08c209, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x08cb01, 0x000000, 0x000000, 0x08cc04, 0x000000, 0x000000, 0x000000, 0x08d001, - 0x08d102, 0x000000, 0x000000, 0x000000, 0x08d302, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x08d502, 0x000000, 0x08d705, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x08dc01, 0x08dd01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x08de02, - 0x000000, 0x08e004, 0x000000, 0x000000, 0x000000, 0x000000, 0x08e401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x08e501, 0x000000, 0x000000, 0x000000, 0x000000, - 0x08e601, 0x000000, 0x08e703, 0x000000, 0x08ea04, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x08ee02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x08f001, - 0x08f101, 0x000000, 0x000000, 0x000000, 0x000000, 0x08f201, 0x000000, 0x08f301, - 0x000000, 0x000000, 0x000000, 0x08f402, 0x08f601, 0x08f702, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x08f905, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x08fe02, 0x000000, 0x090001, 0x000000, 0x000000, - 0x090101, 0x000000, 0x090206, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x090801, - 0x090901, 0x090a01, 0x090b02, 0x000000, 0x000000, 0x090d01, 0x000000, 0x090e03, - 0x000000, 0x091101, 0x000000, 0x000000, 0x091201, 0x000000, 0x091302, 0x000000, - 0x091509, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x091e01, 0x000000, 0x091f02, 0x092101, 0x092201, 0x000000, 0x09230f, 0x000000, - 0x000000, 0x000000, 0x093214, 0x000000, 0x094607, 0x000000, 0x094d04, 0x095101, - 0x000000, 0x095207, 0x000000, 0x000000, 0x095901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x095a02, 0x000000, 0x095c01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x095d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x095e03, 0x096102, 0x096304, 0x096703, 0x096a02, 0x000000, 0x000000, - 0x000000, 0x096c02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x096e01, 0x000000, 0x000000, 0x096f01, 0x097002, 0x097201, 0x000000, 0x097305, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x097801, 0x000000, 0x000000, - 0x000000, 0x097901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x097a01, 0x097b01, - 0x000000, 0x097c01, 0x000000, 0x000000, 0x097d04, 0x098102, 0x000000, 0x098305, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x098801, 0x098903, - 0x000000, 0x098c01, 0x000000, 0x000000, 0x098d0b, 0x099802, 0x000000, 0x099a03, - 0x000000, 0x000000, 0x099d02, 0x000000, 0x099f0d, 0x000000, 0x09ac01, 0x000000, - 0x09ad08, 0x09b505, 0x000000, 0x000000, 0x000000, 0x09ba02, 0x000000, 0x000000, - 0x09bc01, 0x000000, 0x000000, 0x09bd01, 0x000000, 0x09be12, 0x000000, 0x09d00a, - 0x09da01, 0x000000, 0x000000, 0x000000, 0x000000, 0x09db04, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x09df01, 0x09e001, 0x09e101, 0x000000, - 0x000000, 0x09e202, 0x000000, 0x09e401, 0x000000, 0x000000, 0x09e501, 0x09e601, - 0x000000, 0x09e701, 0x09e801, 0x000000, 0x09e901, 0x000000, 0x09ea01, 0x09eb05, - 0x000000, 0x000000, 0x000000, 0x09f001, 0x09f102, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x09f301, 0x000000, 0x000000, 0x09f401, - 0x000000, 0x09f505, 0x09fa02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x09fc03, 0x000000, 0x09ff01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0a000f, 0x000000, - 0x0a0f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0a1001, 0x0a1101, 0x000000, 0x000000, 0x000000, 0x0a1201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0a1301, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0a1402, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0a1601, 0x000000, 0x0a1704, 0x000000, 0x0a1b02, 0x0a1d01, 0x000000, - 0x000000, 0x000000, 0x0a1e02, 0x000000, 0x000000, 0x000000, 0x000000, 0x0a2001, - 0x0a2101, 0x000000, 0x0a2206, 0x000000, 0x0a2801, 0x0a2901, 0x000000, 0x000000, - 0x0a2a02, 0x000000, 0x0a2c01, 0x000000, 0x000000, 0x000000, 0x0a2d01, 0x0a2e04, - 0x0a3204, 0x000000, 0x0a3602, 0x000000, 0x000000, 0x000000, 0x0a3802, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0a3a01, 0x000000, 0x000000, 0x0a3b01, - 0x000000, 0x000000, 0x000000, 0x0a3c02, 0x000000, 0x0a3e02, 0x000000, 0x0a4003, - 0x000000, 0x000000, 0x0a4301, 0x0a4406, 0x000000, 0x000000, 0x0a4a01, 0x0a4b01, - 0x0a4c02, 0x000000, 0x000000, 0x0a4e03, 0x000000, 0x000000, 0x000000, 0x0a5101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0a5201, 0x000000, 0x0a5305, 0x000000, - 0x0a5806, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0a5e01, - 0x0a5f01, 0x000000, 0x000000, 0x0a6001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0a6101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0a6205, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0a6715, 0x0a7c02, 0x000000, 0x0a7e01, - 0x000000, 0x0a7f01, 0x000000, 0x000000, 0x0a8005, 0x000000, 0x000000, 0x0a8501, - 0x000000, 0x0a8603, 0x000000, 0x000000, 0x0a8903, 0x000000, 0x0a8c05, 0x0a9101, - 0x000000, 0x000000, 0x000000, 0x0a9202, 0x000000, 0x0a9401, 0x0a9501, 0x0a9609, - 0x000000, 0x000000, 0x000000, 0x0a9f0a, 0x0aa905, 0x0aae03, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0ab102, 0x0ab307, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0aba01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0abb01, - 0x000000, 0x000000, 0x0abc01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0abd02, 0x000000, 0x000000, 0x0abf02, 0x0ac104, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0ac504, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ac901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0aca01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0acb03, 0x0ace01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0acf02, 0x000000, 0x000000, 0x0ad101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ad201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ad301, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ad403, 0x0ad707, 0x000000, - 0x000000, 0x0ade01, 0x000000, 0x000000, 0x0adf05, 0x000000, 0x0ae401, 0x000000, - 0x0ae502, 0x000000, 0x000000, 0x000000, 0x0ae701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ae802, - 0x0aea01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0aeb01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0aec02, 0x0aee04, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0af203, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0af501, 0x000000, 0x0af601, 0x0af709, 0x0b0002, 0x0b0202, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0b0401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0b0501, 0x0b0601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0b0704, 0x000000, 0x000000, 0x0b0b06, 0x000000, 0x0b1102, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0b1302, 0x000000, - 0x0b1501, 0x000000, 0x000000, 0x0b1602, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0b1801, 0x000000, 0x000000, - 0x000000, 0x0b1901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0b1a01, - 0x0b1b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x0b1d01, 0x000000, 0x000000, - 0x0b1e02, 0x000000, 0x0b2004, 0x000000, 0x0b2404, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0b2801, 0x000000, 0x000000, 0x000000, 0x000000, 0x0b2901, - 0x000000, 0x0b2a01, 0x000000, 0x000000, 0x0b2b02, 0x000000, 0x0b2d06, 0x0b3307, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0b3a01, 0x000000, 0x0b3b01, 0x000000, - 0x000000, 0x0b3c01, 0x0b3d06, 0x0b4305, 0x0b4801, 0x0b4901, 0x000000, 0x000000, - 0x0b4a01, 0x000000, 0x000000, 0x0b4b0e, 0x000000, 0x000000, 0x000000, 0x0b5906, - 0x0b5f01, 0x000000, 0x0b6003, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0b6312, 0x000000, 0x0b7501, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0b7604, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0b7a01, 0x000000, 0x0b7b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0b7c05, 0x000000, 0x000000, 0x000000, 0x0b8103, 0x000000, - 0x0b8401, 0x000000, 0x000000, 0x0b8504, 0x0b8901, 0x0b8a04, 0x000000, 0x000000, - 0x000000, 0x0b8e02, 0x0b9001, 0x000000, 0x000000, 0x0b9101, 0x000000, 0x0b9201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0b9301, 0x0b9401, - 0x0b9501, 0x0b9602, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0b9801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0b9905, - 0x0b9e07, 0x000000, 0x0ba501, 0x0ba601, 0x0ba705, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0bac01, 0x000000, 0x000000, 0x0bad01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0bae07, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0bb502, 0x000000, - 0x0bb701, 0x0bb801, 0x000000, 0x000000, 0x0bb901, 0x000000, 0x000000, 0x000000, - 0x0bba09, 0x000000, 0x000000, 0x0bc30a, 0x000000, 0x000000, 0x0bcd02, 0x000000, - 0x000000, 0x0bcf01, 0x000000, 0x000000, 0x0bd002, 0x0bd203, 0x000000, 0x000000, - 0x000000, 0x0bd504, 0x000000, 0x000000, 0x000000, 0x000000, 0x0bd901, 0x0bda01, - 0x000000, 0x000000, 0x0bdb03, 0x000000, 0x0bde0a, 0x000000, 0x0be801, 0x000000, - 0x000000, 0x0be901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0bea02, 0x000000, 0x0bec04, 0x000000, 0x000000, 0x000000, 0x000000, 0x0bf001, - 0x000000, 0x0bf105, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0bf60a, 0x000000, 0x000000, 0x0c0001, 0x0c0104, 0x0c0501, - 0x0c0601, 0x000000, 0x0c0706, 0x0c0d01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0c0e05, 0x000000, 0x0c1303, 0x000000, - 0x0c1604, 0x000000, 0x0c1a01, 0x000000, 0x000000, 0x000000, 0x0c1b01, 0x000000, - 0x0c1c01, 0x0c1d14, 0x000000, 0x0c3102, 0x000000, 0x000000, 0x000000, 0x0c3301, - 0x000000, 0x0c3407, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0c3b02, 0x0c3d02, 0x000000, 0x000000, 0x0c3f0b, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0c4a02, 0x000000, 0x000000, 0x0c4c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0c4d01, 0x0c4e01, 0x0c4f06, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0c5502, 0x000000, 0x000000, 0x0c5701, - 0x000000, 0x000000, 0x0c5801, 0x000000, 0x000000, 0x0c5901, 0x000000, 0x0c5a03, - 0x0c5d02, 0x0c5f01, 0x000000, 0x000000, 0x0c6001, 0x0c6101, 0x000000, 0x000000, - 0x0c620b, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0c6d02, 0x000000, 0x0c6f04, 0x000000, 0x000000, 0x0c7306, 0x000000, 0x000000, - 0x0c790a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0c8305, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0c8807, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0c8f01, 0x0c9002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0c9201, 0x000000, 0x000000, 0x0c9302, 0x0c9501, 0x000000, 0x0c9601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0c9701, 0x000000, 0x0c9801, 0x0c9902, - 0x000000, 0x0c9b05, 0x0ca006, 0x000000, 0x0ca602, 0x0ca801, 0x0ca909, 0x000000, - 0x000000, 0x0cb201, 0x0cb301, 0x0cb402, 0x0cb605, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0cbb01, 0x000000, 0x000000, - 0x0cbc06, 0x000000, 0x000000, 0x000000, 0x0cc204, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0cc607, 0x000000, 0x000000, - 0x000000, 0x0ccd04, 0x000000, 0x0cd102, 0x000000, 0x000000, 0x000000, 0x0cd301, - 0x000000, 0x000000, 0x000000, 0x0cd401, 0x0cd501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0cd605, 0x0cdb02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0cdd02, 0x0cdf03, 0x000000, 0x000000, 0x0ce201, 0x0ce301, - 0x0ce401, 0x000000, 0x0ce502, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0ce702, 0x0ce902, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0ceb03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0cee01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0cef02, 0x0cf101, 0x0cf203, 0x000000, 0x0cf501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0cf602, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0cf801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0cf902, 0x000000, 0x000000, 0x0cfb01, 0x0cfc01, 0x000000, 0x000000, 0x0cfd02, - 0x000000, 0x000000, 0x0cff01, 0x0d0002, 0x0d0204, 0x000000, 0x000000, 0x0d0602, - 0x000000, 0x000000, 0x0d0801, 0x000000, 0x0d0905, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0d0e04, 0x0d1201, 0x000000, 0x000000, 0x000000, 0x0d1303, 0x000000, - 0x000000, 0x0d1603, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0d1901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0d1a0a, 0x000000, 0x000000, 0x0d2401, 0x0d2501, - 0x0d2601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0d2701, - 0x0d2801, 0x000000, 0x0d2903, 0x000000, 0x000000, 0x0d2c03, 0x000000, 0x000000, - 0x0d2f01, 0x000000, 0x000000, 0x0d3002, 0x000000, 0x0d3208, 0x0d3a03, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0d3d0c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0d4901, 0x000000, 0x0d4a21, 0x0d6b01, - 0x0d6c02, 0x0d6e02, 0x000000, 0x000000, 0x0d7001, 0x000000, 0x000000, 0x000000, - 0x0d7107, 0x000000, 0x000000, 0x0d7801, 0x000000, 0x000000, 0x000000, 0x0d7901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0d7a01, - 0x000000, 0x000000, 0x0d7b01, 0x000000, 0x0d7c03, 0x0d7f01, 0x000000, 0x0d8001, - 0x000000, 0x000000, 0x0d8101, 0x000000, 0x0d8201, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0d8309, 0x000000, - 0x000000, 0x0d8c01, 0x0d8d05, 0x000000, 0x000000, 0x0d9205, 0x000000, 0x000000, - 0x000000, 0x0d9707, 0x0d9e02, 0x0da001, 0x000000, 0x0da101, 0x000000, 0x000000, - 0x0da208, 0x0daa01, 0x000000, 0x0dab01, 0x000000, 0x000000, 0x0dac01, 0x000000, - 0x000000, 0x000000, 0x0dad0c, 0x000000, 0x0db902, 0x000000, 0x000000, 0x000000, - 0x0dbb01, 0x0dbc01, 0x000000, 0x000000, 0x000000, 0x0dbd02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0dbf01, 0x0dc001, 0x0dc104, 0x000000, 0x000000, 0x0dc504, - 0x0dc901, 0x000000, 0x000000, 0x000000, 0x000000, 0x0dca05, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0dcf03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0dd202, 0x0dd401, 0x000000, 0x000000, 0x0dd502, 0x0dd703, - 0x000000, 0x0dda01, 0x0ddb02, 0x000000, 0x000000, 0x0ddd03, 0x000000, 0x0de001, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0de101, - 0x000000, 0x0de203, 0x000000, 0x0de501, 0x000000, 0x0de604, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0dea12, 0x000000, - 0x0dfc12, 0x000000, 0x000000, 0x000000, 0x0e0e01, 0x000000, 0x000000, 0x000000, - 0x0e0f01, 0x000000, 0x0e1001, 0x000000, 0x0e1101, 0x0e1203, 0x000000, 0x000000, - 0x0e1502, 0x0e1702, 0x000000, 0x0e1901, 0x0e1a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0e1b04, 0x0e1f03, - 0x0e2205, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0e2704, 0x0e2b01, - 0x000000, 0x0e2c05, 0x0e3101, 0x0e3201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0e3301, 0x000000, 0x0e3401, 0x000000, 0x000000, 0x0e350d, - 0x0e4201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0e4301, - 0x0e4403, 0x000000, 0x000000, 0x000000, 0x000000, 0x0e4701, 0x0e4801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0e4901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0e4a02, 0x000000, 0x0e4c02, 0x0e4e01, 0x0e4f01, 0x000000, 0x0e501b, - 0x000000, 0x0e6b02, 0x000000, 0x000000, 0x000000, 0x0e6d02, 0x0e6f02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0e7102, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0e7301, 0x000000, 0x000000, 0x0e7407, 0x000000, - 0x000000, 0x000000, 0x0e7b01, 0x0e7c02, 0x000000, 0x000000, 0x000000, 0x0e7e01, - 0x0e7f0b, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0e8a01, 0x000000, - 0x0e8b01, 0x0e8c01, 0x000000, 0x000000, 0x0e8d02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0e8f01, 0x0e9005, 0x000000, 0x0e9501, 0x0e9602, - 0x0e9806, 0x000000, 0x000000, 0x000000, 0x0e9e02, 0x000000, 0x0ea001, 0x000000, - 0x000000, 0x0ea101, 0x000000, 0x000000, 0x0ea201, 0x0ea309, 0x000000, 0x0eac02, - 0x000000, 0x0eae07, 0x0eb501, 0x0eb601, 0x000000, 0x0eb701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0eb802, 0x000000, 0x000000, 0x0eba03, 0x000000, 0x0ebd01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ebe01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ebf01, 0x000000, 0x0ec009, - 0x0ec902, 0x000000, 0x0ecb01, 0x0ecc02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ece14, 0x000000, 0x0ee203, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ee501, 0x0ee601, 0x0ee704, - 0x0eeb01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0eec04, 0x000000, 0x000000, 0x0ef00a, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0efa0d, 0x000000, 0x000000, 0x0f0701, 0x0f0801, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0f0901, 0x0f0a02, 0x0f0c06, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0f1201, 0x000000, 0x0f1302, 0x0f1501, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x0f160a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0f2001, 0x000000, 0x0f2101, 0x000000, 0x0f220b, 0x0f2d01, - 0x000000, 0x0f2e05, 0x000000, 0x000000, 0x000000, 0x000000, 0x0f3315, 0x0f4801, - 0x000000, 0x0f490b, 0x000000, 0x000000, 0x000000, 0x0f5406, 0x0f5a03, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0f5d07, 0x0f6401, 0x0f6501, 0x000000, 0x000000, - 0x000000, 0x000000, 0x0f6601, 0x000000, 0x000000, 0x000000, 0x0f6701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0f6802, 0x000000, 0x0f6a09, 0x000000, - 0x000000, 0x000000, 0x0f7301, 0x0f7401, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0f7501, 0x000000, 0x0f7606, - 0x0f7c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x0f7d01, 0x000000, 0x000000, - 0x000000, 0x0f7e01, 0x000000, 0x000000, 0x000000, 0x0f7f06, 0x0f8501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x0f8602, 0x0f8801, 0x0f8902, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0f8b05, 0x000000, 0x0f9001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0f9119, 0x0faa06, - 0x000000, 0x000000, 0x0fb001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0fb101, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0fb204, 0x000000, 0x0fb604, 0x000000, 0x000000, - 0x000000, 0x0fba01, 0x0fbb03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0fbe03, 0x0fc101, 0x000000, 0x000000, 0x0fc202, - 0x0fc402, 0x0fc601, 0x0fc713, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0fda01, 0x000000, 0x0fdb01, 0x0fdc01, 0x000000, 0x0fdd01, 0x0fde03, 0x0fe106, - 0x000000, 0x000000, 0x0fe710, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x0ff703, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0ffa03, 0x000000, - 0x000000, 0x000000, 0x000000, 0x0ffd01, 0x0ffe01, 0x000000, 0x000000, 0x0fff02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x100101, 0x100202, 0x000000, - 0x000000, 0x000000, 0x100403, 0x000000, 0x100701, 0x000000, 0x000000, 0x000000, - 0x100803, 0x100b05, 0x000000, 0x101002, 0x000000, 0x000000, 0x101201, 0x10130a, - 0x000000, 0x101d01, 0x000000, 0x000000, 0x101e01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x101f04, 0x102301, 0x102401, 0x000000, - 0x102503, 0x000000, 0x000000, 0x000000, 0x102804, 0x000000, 0x000000, 0x102c03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x102f02, 0x103101, 0x103201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1033a3, 0x000000, 0x000000, 0x10d603, 0x000000, - 0x000000, 0x000000, 0x10d90f, 0x10e802, 0x000000, 0x10ea01, 0x10eb01, 0x000000, - 0x10ec01, 0x000000, 0x10ed01, 0x000000, 0x000000, 0x000000, 0x10ee01, 0x000000, - 0x10ef01, 0x000000, 0x000000, 0x000000, 0x10f005, 0x000000, 0x000000, 0x000000, - 0x10f503, 0x10f801, 0x10f904, 0x10fd01, 0x000000, 0x10fe01, 0x10ff02, 0x000000, - 0x110101, 0x110209, 0x000000, 0x000000, 0x110b05, 0x000000, 0x000000, 0x000000, - 0x000000, 0x111004, 0x000000, 0x000000, 0x000000, 0x111401, 0x000000, 0x111503, - 0x000000, 0x000000, 0x000000, 0x000000, 0x111801, 0x000000, 0x000000, 0x000000, - 0x000000, 0x111902, 0x000000, 0x000000, 0x000000, 0x111b01, 0x000000, 0x000000, - 0x000000, 0x111c01, 0x111d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x111f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x112001, - 0x000000, 0x000000, 0x000000, 0x112105, 0x000000, 0x000000, 0x000000, 0x112607, - 0x112d09, 0x000000, 0x000000, 0x000000, 0x000000, 0x113602, 0x113801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x113901, 0x000000, 0x000000, 0x113a03, 0x000000, - 0x113d01, 0x113e03, 0x114109, 0x000000, 0x114a01, 0x114b02, 0x114d01, 0x000000, - 0x114e11, 0x000000, 0x115f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x116002, 0x000000, 0x000000, 0x000000, 0x116201, 0x116301, 0x000000, 0x116401, - 0x116502, 0x000000, 0x116703, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x116a04, 0x000000, 0x116e03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x117101, 0x000000, 0x117202, 0x000000, 0x117401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x117501, 0x117602, 0x000000, 0x117802, - 0x000000, 0x000000, 0x117a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x117c01, - 0x117d01, 0x000000, 0x000000, 0x000000, 0x117e02, 0x118001, 0x000000, 0x118102, - 0x000000, 0x118302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x118502, 0x000000, 0x000000, 0x118709, 0x000000, 0x000000, 0x11900b, - 0x000000, 0x119b02, 0x000000, 0x000000, 0x119d01, 0x119e09, 0x000000, 0x11a703, - 0x11aa01, 0x000000, 0x11ab01, 0x000000, 0x11ac02, 0x000000, 0x11ae01, 0x000000, - 0x000000, 0x11af02, 0x000000, 0x000000, 0x000000, 0x000000, 0x11b101, 0x000000, - 0x11b201, 0x000000, 0x000000, 0x11b301, 0x000000, 0x000000, 0x000000, 0x11b402, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x11b601, 0x000000, 0x000000, - 0x000000, 0x11b705, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x11bc02, - 0x11be01, 0x11bf01, 0x11c002, 0x11c201, 0x000000, 0x11c302, 0x000000, 0x000000, - 0x000000, 0x000000, 0x11c501, 0x11c602, 0x000000, 0x11c809, 0x000000, 0x000000, - 0x000000, 0x000000, 0x11d109, 0x000000, 0x000000, 0x11da03, 0x000000, 0x000000, - 0x000000, 0x11dd01, 0x000000, 0x000000, 0x000000, 0x11de01, 0x000000, 0x11df01, - 0x000000, 0x11e004, 0x000000, 0x000000, 0x000000, 0x11e401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x11e504, 0x000000, 0x000000, 0x11e902, 0x000000, - 0x000000, 0x000000, 0x11eb09, 0x000000, 0x000000, 0x11f401, 0x000000, 0x11f512, - 0x000000, 0x000000, 0x000000, 0x000000, 0x120701, 0x120801, 0x000000, 0x120901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x120a01, 0x000000, 0x120b01, 0x000000, - 0x000000, 0x120c03, 0x000000, 0x120f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x121020, 0x000000, 0x000000, 0x000000, 0x000000, 0x123002, 0x000000, - 0x123208, 0x000000, 0x123a01, 0x000000, 0x000000, 0x000000, 0x123b02, 0x123d02, - 0x000000, 0x123f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x124003, - 0x12430b, 0x000000, 0x000000, 0x000000, 0x000000, 0x124e0a, 0x000000, 0x000000, - 0x000000, 0x000000, 0x125802, 0x000000, 0x000000, 0x000000, 0x000000, 0x125a02, - 0x000000, 0x125c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x125d04, 0x000000, - 0x000000, 0x126107, 0x000000, 0x000000, 0x126801, 0x000000, 0x000000, 0x000000, - 0x126901, 0x126a01, 0x126b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x126c03, - 0x000000, 0x000000, 0x126f01, 0x000000, 0x127008, 0x127806, 0x127e02, 0x000000, - 0x000000, 0x000000, 0x128002, 0x000000, 0x000000, 0x000000, 0x128201, 0x000000, - 0x000000, 0x000000, 0x128301, 0x000000, 0x000000, 0x000000, 0x128401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x128503, 0x000000, 0x128801, 0x128901, - 0x128a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x128b01, 0x000000, 0x000000, 0x000000, 0x128c02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x128e23, 0x12b101, 0x000000, 0x12b201, 0x000000, - 0x12b308, 0x12bb01, 0x000000, 0x000000, 0x12bc01, 0x12bd01, 0x000000, 0x12be07, - 0x12c501, 0x12c602, 0x000000, 0x000000, 0x000000, 0x000000, 0x12c801, 0x12c901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x12ca01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x12cb01, 0x000000, 0x12cc02, 0x000000, - 0x000000, 0x12ce06, 0x000000, 0x12d401, 0x12d501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x12d601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x12d702, 0x000000, 0x000000, 0x000000, - 0x000000, 0x12d902, 0x000000, 0x000000, 0x000000, 0x12db01, 0x000000, 0x12dc0e, - 0x000000, 0x000000, 0x000000, 0x12ea04, 0x000000, 0x000000, 0x12ee06, 0x000000, - 0x12f402, 0x12f603, 0x12f901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x12fa05, 0x000000, 0x12ff0f, 0x000000, 0x000000, 0x130e01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x130f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x131001, - 0x000000, 0x131101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x131201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x131302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x131501, 0x131601, - 0x131706, 0x131d02, 0x131f06, 0x000000, 0x132503, 0x000000, 0x000000, 0x13280a, - 0x000000, 0x000000, 0x133201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x133301, 0x133402, 0x133602, 0x133805, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x133d01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x133e02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x134001, 0x000000, 0x134101, 0x134207, 0x000000, 0x13490e, 0x000000, - 0x135701, 0x000000, 0x135804, 0x135c03, 0x135f04, 0x136337, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x139a01, 0x139b02, 0x139d01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x139e01, 0x000000, 0x000000, - 0x000000, 0x139f01, 0x000000, 0x000000, 0x000000, 0x13a003, 0x000000, 0x000000, - 0x000000, 0x000000, 0x13a301, 0x000000, 0x000000, 0x000000, 0x000000, 0x13a401, - 0x13a501, 0x13a602, 0x000000, 0x13a801, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x13a901, 0x13aa01, 0x000000, - 0x13ab01, 0x000000, 0x000000, 0x13ac01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x13ad01, 0x000000, 0x000000, 0x13ae02, 0x000000, 0x000000, 0x000000, 0x13b001, - 0x13b102, 0x000000, 0x000000, 0x000000, 0x000000, 0x13b305, 0x13b805, 0x13bd01, - 0x000000, 0x13be02, 0x000000, 0x13c003, 0x000000, 0x000000, 0x000000, 0x13c303, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x13c601, 0x000000, 0x13c701, - 0x13c802, 0x000000, 0x13ca01, 0x000000, 0x000000, 0x000000, 0x13cb08, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x13d301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x13d401, 0x000000, 0x000000, 0x13d502, 0x13d703, - 0x000000, 0x000000, 0x13da02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x13dc0d, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x13e901, 0x13ea02, 0x13ec04, 0x13f002, 0x13f201, 0x000000, - 0x13f301, 0x000000, 0x13f401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x13f507, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x13fc01, 0x13fd03, 0x000000, 0x140001, 0x000000, 0x140108, 0x000000, 0x000000, - 0x140907, 0x000000, 0x000000, 0x000000, 0x14100b, 0x000000, 0x000000, 0x000000, - 0x141b03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x141e03, 0x142101, 0x000000, 0x000000, 0x000000, 0x142201, 0x000000, 0x000000, - 0x142303, 0x142602, 0x142801, 0x000000, 0x000000, 0x000000, 0x000000, 0x142901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x142a01, 0x142b02, 0x000000, 0x142d01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x142e05, 0x000000, 0x000000, 0x000000, 0x143306, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x143901, 0x143a0b, 0x000000, - 0x000000, 0x144501, 0x000000, 0x000000, 0x144601, 0x144702, 0x144904, 0x000000, - 0x000000, 0x144d03, 0x145002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x145203, 0x000000, 0x145503, 0x145804, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x145c01, 0x000000, 0x145d02, 0x145f01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x146001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x146101, 0x14620c, 0x000000, 0x146e0d, - 0x000000, 0x000000, 0x147b05, 0x148005, 0x000000, 0x148501, 0x000000, 0x148602, - 0x000000, 0x000000, 0x148801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x148902, 0x000000, 0x148b0a, 0x149507, 0x000000, 0x149c03, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x149f01, 0x14a001, 0x14a101, 0x14a201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x14a301, 0x000000, 0x14a402, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x14a601, 0x14a701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x14a802, 0x14aa03, 0x000000, 0x000000, 0x14ad01, 0x000000, 0x000000, - 0x14ae09, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x14b702, 0x000000, 0x000000, 0x14b901, 0x14ba01, 0x14bb01, 0x000000, 0x14bc01, - 0x000000, 0x000000, 0x14bd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x14be01, - 0x14bf01, 0x000000, 0x14c003, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x14c301, 0x000000, 0x000000, 0x000000, 0x14c408, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x14cc01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x14cd01, 0x000000, 0x14ce02, - 0x14d003, 0x000000, 0x14d306, 0x000000, 0x000000, 0x000000, 0x000000, 0x14d902, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x14db01, 0x000000, 0x000000, 0x14dc01, 0x000000, 0x000000, 0x000000, 0x14dd01, - 0x000000, 0x14de01, 0x14df01, 0x000000, 0x000000, 0x14e002, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x14e201, 0x14e301, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x14e401, - 0x000000, 0x14e504, 0x000000, 0x14e904, 0x000000, 0x000000, 0x000000, 0x000000, - 0x14ed01, 0x000000, 0x000000, 0x14ee02, 0x000000, 0x000000, 0x14f004, 0x000000, - 0x000000, 0x14f402, 0x000000, 0x14f606, 0x000000, 0x14fc06, 0x000000, 0x000000, - 0x000000, 0x150201, 0x000000, 0x000000, 0x000000, 0x150302, 0x000000, 0x000000, - 0x000000, 0x150502, 0x000000, 0x150701, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x150802, 0x000000, 0x000000, 0x000000, 0x000000, 0x150a01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x150b02, 0x150d03, - 0x151003, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x151301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x151405, 0x151901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x151a01, 0x000000, 0x000000, 0x000000, 0x151b01, 0x151c01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x151d04, 0x000000, 0x000000, 0x000000, 0x000000, 0x152101, - 0x000000, 0x000000, 0x152204, 0x000000, 0x152601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x152712, 0x153904, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x153d02, 0x000000, - 0x153f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x154001, - 0x154101, 0x000000, 0x000000, 0x000000, 0x154201, 0x154303, 0x154601, 0x000000, - 0x000000, 0x154701, 0x154802, 0x154a05, 0x000000, 0x000000, 0x000000, 0x154f01, - 0x155002, 0x000000, 0x000000, 0x000000, 0x155202, 0x000000, 0x000000, 0x000000, - 0x155403, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x155702, - 0x000000, 0x155901, 0x000000, 0x000000, 0x155a03, 0x000000, 0x155d03, 0x000000, - 0x000000, 0x156001, 0x000000, 0x000000, 0x156102, 0x000000, 0x000000, 0x156301, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x156407, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x156b01, 0x000000, 0x000000, 0x156c01, 0x156d02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x156f01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x157012, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x158203, 0x000000, 0x000000, 0x000000, 0x158501, - 0x000000, 0x158601, 0x000000, 0x000000, 0x158701, 0x000000, 0x000000, 0x000000, - 0x158802, 0x000000, 0x158a01, 0x000000, 0x000000, 0x158b01, 0x158c01, 0x000000, - 0x158d04, 0x000000, 0x000000, 0x15910c, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x159d01, 0x159e01, 0x000000, 0x000000, 0x159f02, 0x000000, 0x15a105, - 0x000000, 0x000000, 0x15a601, 0x000000, 0x15a701, 0x000000, 0x000000, 0x15a802, - 0x000000, 0x15aa0a, 0x000000, 0x15b401, 0x000000, 0x000000, 0x15b502, 0x000000, - 0x15b707, 0x15be01, 0x000000, 0x000000, 0x000000, 0x000000, 0x15bf03, 0x000000, - 0x000000, 0x000000, 0x15c202, 0x15c401, 0x000000, 0x15c501, 0x000000, 0x15c602, - 0x000000, 0x000000, 0x000000, 0x000000, 0x15c815, 0x000000, 0x000000, 0x15dd02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x15df09, 0x15e801, 0x000000, 0x000000, 0x000000, 0x000000, 0x15e902, - 0x000000, 0x000000, 0x15eb0c, 0x000000, 0x15f701, 0x000000, 0x15f804, 0x000000, - 0x000000, 0x000000, 0x15fc0c, 0x000000, 0x160801, 0x000000, 0x160901, 0x160a08, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x161201, 0x000000, - 0x000000, 0x000000, 0x161301, 0x161408, 0x000000, 0x161c01, 0x161d10, 0x162d01, - 0x000000, 0x162e06, 0x000000, 0x000000, 0x000000, 0x000000, 0x163401, 0x163504, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x163902, 0x163b0b, 0x000000, - 0x164603, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x164901, 0x000000, - 0x000000, 0x000000, 0x000000, 0x164a01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x164b01, 0x000000, 0x000000, 0x164c01, 0x000000, 0x164d02, - 0x000000, 0x000000, 0x000000, 0x164f15, 0x000000, 0x166401, 0x000000, 0x166501, - 0x166609, 0x000000, 0x000000, 0x166f07, 0x167601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x167702, 0x000000, 0x167903, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x167c01, 0x167d02, 0x000000, 0x167f01, 0x168002, 0x000000, - 0x000000, 0x000000, 0x000000, 0x168201, 0x168301, 0x168401, 0x000000, 0x168501, - 0x000000, 0x168601, 0x168702, 0x000000, 0x168906, 0x000000, 0x000000, 0x000000, - 0x000000, 0x168f04, 0x169302, 0x000000, 0x000000, 0x000000, 0x000000, 0x169502, - 0x000000, 0x000000, 0x000000, 0x000000, 0x169704, 0x000000, 0x000000, 0x169b09, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x16a402, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x16a602, 0x000000, 0x000000, 0x16a80a, 0x000000, - 0x000000, 0x000000, 0x16b205, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x16b70b, 0x000000, 0x000000, 0x16c203, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x16c501, 0x16c601, 0x000000, - 0x000000, 0x16c701, 0x000000, 0x000000, 0x16c802, 0x000000, 0x16ca09, 0x16d301, - 0x16d401, 0x000000, 0x16d504, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x16d902, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x16db03, 0x000000, - 0x16de02, 0x16e002, 0x000000, 0x000000, 0x16e202, 0x000000, 0x16e402, 0x000000, - 0x000000, 0x16e602, 0x000000, 0x16e808, 0x000000, 0x000000, 0x000000, 0x16f002, - 0x16f202, 0x000000, 0x000000, 0x000000, 0x16f402, 0x000000, 0x16f609, 0x000000, - 0x000000, 0x000000, 0x16ff01, 0x000000, 0x000000, 0x170002, 0x170203, 0x000000, - 0x170501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x170602, - 0x000000, 0x17080a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x171204, 0x000000, 0x171601, 0x000000, 0x000000, 0x171701, 0x000000, 0x171809, - 0x172102, 0x172303, 0x000000, 0x172601, 0x172701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x172801, 0x172903, 0x000000, 0x172c10, 0x000000, 0x000000, 0x000000, - 0x000000, 0x173c02, 0x000000, 0x000000, 0x173e02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x174001, 0x000000, 0x000000, - 0x174105, 0x000000, 0x174601, 0x174701, 0x174803, 0x000000, 0x174b0c, 0x000000, - 0x000000, 0x000000, 0x175702, 0x175909, 0x176203, 0x176501, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x176601, 0x000000, 0x176702, 0x000000, 0x000000, - 0x000000, 0x176901, 0x176a01, 0x000000, 0x000000, 0x176b05, 0x000000, 0x000000, - 0x177002, 0x177204, 0x000000, 0x000000, 0x000000, 0x000000, 0x177601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x177701, 0x000000, 0x000000, 0x177801, - 0x000000, 0x177901, 0x000000, 0x000000, 0x000000, 0x177a04, 0x177e02, 0x000000, - 0x178002, 0x000000, 0x178204, 0x000000, 0x178602, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x178801, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x178904, - 0x000000, 0x178d02, 0x000000, 0x000000, 0x178f01, 0x000000, 0x000000, 0x000000, - 0x179005, 0x179502, 0x179701, 0x000000, 0x000000, 0x000000, 0x179804, 0x179c01, - 0x000000, 0x000000, 0x179d07, 0x000000, 0x000000, 0x17a401, 0x000000, 0x000000, - 0x17a501, 0x000000, 0x17a602, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x17a806, 0x000000, 0x17ae01, 0x000000, 0x000000, 0x000000, 0x17af02, - 0x000000, 0x17b105, 0x17b601, 0x17b703, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x17ba01, 0x17bb01, 0x000000, 0x000000, 0x17bc01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x17bd01, 0x17be01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x17bf03, 0x000000, 0x17c201, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x17c304, 0x000000, 0x000000, 0x17c701, 0x000000, 0x17c804, - 0x000000, 0x000000, 0x17cc0c, 0x17d802, 0x000000, 0x000000, 0x17da03, 0x000000, - 0x17dd01, 0x000000, 0x000000, 0x000000, 0x17de0e, 0x17ec01, 0x17ed03, 0x000000, - 0x000000, 0x000000, 0x17f001, 0x000000, 0x000000, 0x000000, 0x000000, 0x17f101, - 0x000000, 0x000000, 0x000000, 0x17f203, 0x17f508, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x17fd02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x17ff02, 0x000000, 0x000000, 0x180105, 0x180602, 0x180803, 0x000000, - 0x180b07, 0x000000, 0x181211, 0x000000, 0x182301, 0x182401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x182502, 0x000000, 0x000000, 0x000000, 0x000000, - 0x18270b, 0x18320b, 0x000000, 0x000000, 0x183d02, 0x000000, 0x183f04, 0x000000, - 0x000000, 0x184301, 0x184401, 0x184501, 0x000000, 0x18460d, 0x000000, 0x000000, - 0x000000, 0x185306, 0x000000, 0x000000, 0x000000, 0x185901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x185a05, 0x185f02, 0x000000, 0x186101, - 0x186201, 0x186306, 0x000000, 0x186905, 0x186e02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x187001, 0x000000, 0x000000, 0x000000, 0x187114, 0x188506, - 0x000000, 0x188b01, 0x000000, 0x000000, 0x000000, 0x188c01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x188d22, 0x000000, - 0x000000, 0x000000, 0x18af02, 0x000000, 0x000000, 0x18b10a, 0x18bb02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x18bd01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x18be02, - 0x000000, 0x000000, 0x18c001, 0x000000, 0x18c101, 0x000000, 0x18c201, 0x18c310, - 0x000000, 0x000000, 0x18d301, 0x18d40c, 0x18e001, 0x000000, 0x000000, 0x000000, - 0x18e101, 0x18e201, 0x18e301, 0x000000, 0x18e403, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x18e706, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x18ed01, 0x18ee01, 0x18ef02, 0x000000, 0x000000, 0x000000, 0x000000, 0x18f103, - 0x000000, 0x18f408, 0x18fc03, 0x18ff0b, 0x190a03, 0x000000, 0x190d01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x190e01, 0x190f01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x191001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x191102, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x191301, 0x000000, 0x191402, 0x191602, 0x191804, - 0x000000, 0x191c01, 0x191d03, 0x000000, 0x192005, 0x192501, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x192601, 0x192701, 0x000000, 0x000000, 0x192803, 0x000000, 0x000000, 0x192b02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x192d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x192e01, 0x192f02, 0x000000, 0x000000, 0x193104, 0x000000, 0x000000, - 0x000000, 0x193501, 0x000000, 0x000000, 0x193606, 0x000000, 0x193c01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x193d01, 0x000000, 0x000000, - 0x193e01, 0x000000, 0x193f01, 0x000000, 0x194002, 0x194201, 0x000000, 0x000000, - 0x000000, 0x19430b, 0x000000, 0x194e01, 0x194f01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x195004, 0x000000, 0x000000, 0x195402, - 0x195606, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x195c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x195d01, 0x195e01, 0x195f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x196109, 0x000000, 0x000000, 0x000000, 0x196a01, 0x196b03, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x196e01, 0x196f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x197001, 0x000000, - 0x000000, 0x000000, 0x197102, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x197301, 0x000000, 0x000000, 0x197401, 0x197501, 0x000000, 0x000000, 0x000000, - 0x197601, 0x197701, 0x197802, 0x000000, 0x197a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x197b04, 0x197f02, 0x000000, 0x198102, 0x000000, 0x000000, 0x19832e, - 0x000000, 0x19b105, 0x000000, 0x000000, 0x000000, 0x19b601, 0x000000, 0x19b703, - 0x000000, 0x000000, 0x000000, 0x19ba03, 0x000000, 0x000000, 0x000000, 0x19bd01, - 0x000000, 0x19be01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x19bf01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x19c001, 0x19c105, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x19c601, 0x19c701, 0x000000, 0x000000, 0x19c801, - 0x19c902, 0x19cb04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x19cf02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x19d101, 0x19d204, 0x000000, 0x19d601, 0x000000, 0x19d702, 0x19d902, - 0x19db11, 0x000000, 0x19ec02, 0x000000, 0x000000, 0x000000, 0x000000, 0x19ee02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x19f001, 0x000000, 0x19f105, 0x000000, - 0x000000, 0x000000, 0x19f60d, 0x000000, 0x1a0303, 0x1a0601, 0x000000, 0x1a0702, - 0x000000, 0x1a0903, 0x1a0c06, 0x000000, 0x1a1201, 0x1a1301, 0x1a1401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1a1501, 0x000000, 0x000000, 0x000000, 0x1a1601, 0x000000, 0x1a170d, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1a240b, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1a2f01, 0x1a3001, 0x1a3105, 0x000000, 0x000000, 0x1a3602, 0x1a3803, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1a3b01, 0x000000, 0x000000, 0x000000, - 0x1a3c02, 0x000000, 0x1a3e05, 0x1a4301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1a4401, 0x1a4502, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1a4701, 0x1a4806, 0x1a4e02, 0x000000, 0x1a5005, - 0x1a5501, 0x000000, 0x000000, 0x1a5607, 0x1a5d01, 0x000000, 0x1a5e01, 0x000000, - 0x000000, 0x1a5f01, 0x1a6001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1a6102, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1a6307, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1a6a01, 0x000000, - 0x000000, 0x1a6b01, 0x1a6c05, 0x000000, 0x000000, 0x000000, 0x1a7106, 0x000000, - 0x000000, 0x000000, 0x1a7704, 0x1a7b01, 0x000000, 0x1a7c02, 0x000000, 0x000000, - 0x000000, 0x1a7e01, 0x000000, 0x1a7f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1a8007, - 0x000000, 0x000000, 0x000000, 0x1a8701, 0x000000, 0x000000, 0x000000, 0x1a8809, - 0x000000, 0x000000, 0x1a9101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1a9201, 0x000000, 0x000000, 0x000000, 0x1a9308, 0x000000, 0x000000, 0x000000, - 0x1a9b0b, 0x000000, 0x000000, 0x1aa601, 0x000000, 0x1aa70f, 0x1ab60d, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1ac302, 0x000000, 0x000000, 0x1ac502, 0x000000, - 0x1ac701, 0x1ac80a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1ad201, 0x000000, 0x1ad302, 0x1ad502, 0x1ad701, - 0x000000, 0x000000, 0x000000, 0x1ad801, 0x1ad901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1ada02, 0x000000, 0x000000, 0x1adc01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1add01, 0x000000, 0x000000, - 0x000000, 0x1ade01, 0x000000, 0x1adf07, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1ae601, 0x000000, - 0x1ae703, 0x1aea02, 0x1aec02, 0x000000, 0x1aee04, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1af202, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1af409, 0x000000, 0x000000, 0x000000, 0x000000, 0x1afd01, - 0x000000, 0x1afe01, 0x000000, 0x000000, 0x1aff01, 0x000000, 0x000000, 0x1b0001, - 0x1b0101, 0x000000, 0x000000, 0x000000, 0x1b0201, 0x000000, 0x000000, 0x000000, - 0x1b0303, 0x1b0605, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1b0b01, 0x000000, 0x1b0c01, 0x000000, 0x000000, 0x000000, 0x1b0d01, 0x1b0e01, - 0x1b0f01, 0x000000, 0x1b1001, 0x000000, 0x1b1101, 0x000000, 0x000000, 0x1b1204, - 0x1b1601, 0x000000, 0x1b1703, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b1a01, - 0x1b1b01, 0x1b1c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1b1d06, 0x1b2301, 0x1b2403, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1b2702, 0x1b2909, 0x1b3202, 0x1b3401, 0x1b3501, - 0x000000, 0x000000, 0x1b3601, 0x1b3701, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b3801, 0x000000, 0x000000, - 0x1b3909, 0x1b4201, 0x000000, 0x000000, 0x1b4303, 0x000000, 0x000000, 0x1b4601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b4704, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b4b02, 0x1b4d02, 0x1b4f03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b5211, - 0x000000, 0x000000, 0x000000, 0x1b6307, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b6a02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b6c01, 0x000000, - 0x000000, 0x1b6d01, 0x1b6e05, 0x1b7302, 0x000000, 0x1b7503, 0x1b7805, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b7d01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1b7e07, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1b8501, 0x000000, - 0x1b8601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1b8704, 0x1b8b02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1b8d06, 0x000000, 0x1b9301, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1b9404, 0x000000, 0x1b9802, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1b9a02, 0x1b9c01, 0x000000, 0x1b9d01, 0x1b9e01, 0x1b9f06, 0x000000, - 0x000000, 0x1ba502, 0x000000, 0x1ba701, 0x1ba802, 0x000000, 0x1baa01, 0x000000, - 0x000000, 0x000000, 0x1bab03, 0x1bae01, 0x1baf02, 0x000000, 0x000000, 0x1bb103, - 0x000000, 0x1bb40e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1bc201, 0x000000, 0x000000, 0x1bc302, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1bc504, 0x000000, 0x1bc901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1bca01, - 0x000000, 0x1bcb01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1bcc01, - 0x000000, 0x000000, 0x1bcd06, 0x000000, 0x000000, 0x1bd301, 0x000000, 0x1bd401, - 0x000000, 0x000000, 0x1bd502, 0x000000, 0x000000, 0x000000, 0x000000, 0x1bd701, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1bd801, 0x000000, 0x1bd902, - 0x000000, 0x1bdb01, 0x1bdc01, 0x000000, 0x000000, 0x1bdd05, 0x000000, 0x000000, - 0x1be209, 0x000000, 0x1beb02, 0x1bed02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1bef01, 0x000000, 0x000000, 0x000000, 0x1bf003, 0x1bf301, 0x1bf401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1bf505, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1bfa02, - 0x1bfc04, 0x1c0002, 0x000000, 0x1c0201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1c0301, 0x000000, 0x1c0408, - 0x1c0c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1c0d03, 0x1c1002, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1c120e, 0x000000, 0x1c2003, 0x1c2302, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1c2501, 0x1c2604, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1c2a05, 0x1c2f02, 0x000000, 0x1c3108, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1c3902, 0x1c3b02, 0x1c3d02, 0x1c3f01, 0x1c4002, - 0x1c4202, 0x1c4401, 0x000000, 0x000000, 0x000000, 0x000000, 0x1c4503, 0x1c4801, - 0x000000, 0x1c4905, 0x000000, 0x000000, 0x1c4e13, 0x000000, 0x000000, 0x000000, - 0x1c6117, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1c7801, 0x000000, 0x000000, 0x1c7901, 0x1c7a01, 0x000000, 0x000000, 0x1c7b05, - 0x000000, 0x1c8003, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1c8301, 0x000000, 0x1c8401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1c8503, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1c8802, 0x000000, 0x000000, 0x000000, 0x000000, 0x1c8a01, 0x000000, 0x1c8b02, - 0x000000, 0x1c8d19, 0x000000, 0x1ca602, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1ca806, 0x000000, 0x1cae04, 0x1cb201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1cb301, 0x000000, 0x1cb401, 0x1cb502, - 0x1cb702, 0x1cb903, 0x000000, 0x000000, 0x000000, 0x000000, 0x1cbc01, 0x000000, - 0x1cbd08, 0x1cc501, 0x000000, 0x1cc601, 0x1cc705, 0x000000, 0x000000, 0x1ccc01, - 0x000000, 0x000000, 0x000000, 0x1ccd02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1ccf01, 0x000000, 0x000000, 0x000000, 0x1cd001, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1cd101, 0x000000, 0x1cd201, - 0x1cd303, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1cd603, 0x000000, - 0x000000, 0x1cd90c, 0x000000, 0x000000, 0x000000, 0x000000, 0x1ce501, 0x000000, - 0x000000, 0x000000, 0x1ce601, 0x1ce701, 0x000000, 0x1ce801, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1ce903, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1cec01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1ced0f, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1cfc06, 0x1d0202, 0x1d0406, 0x000000, 0x000000, 0x000000, - 0x1d0a01, 0x000000, 0x000000, 0x1d0b01, 0x000000, 0x000000, 0x000000, 0x1d0c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1d0d05, 0x1d1203, - 0x000000, 0x1d1502, 0x000000, 0x1d1708, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1d1f01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1d2004, 0x000000, 0x000000, 0x1d2401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1d2501, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1d2603, 0x1d2906, 0x1d2f04, 0x000000, - 0x1d330e, 0x000000, 0x000000, 0x1d4101, 0x000000, 0x1d4202, 0x000000, 0x000000, - 0x1d4405, 0x000000, 0x000000, 0x000000, 0x1d4901, 0x1d4a09, 0x000000, 0x000000, - 0x1d5304, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1d5701, 0x000000, - 0x000000, 0x000000, 0x1d5801, 0x1d5902, 0x1d5b02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1d5d01, 0x000000, 0x000000, 0x1d5e02, 0x1d6001, 0x1d6104, 0x000000, - 0x000000, 0x000000, 0x1d6503, 0x000000, 0x000000, 0x1d6802, 0x000000, 0x000000, - 0x1d6a05, 0x000000, 0x1d6f02, 0x000000, 0x1d7101, 0x000000, 0x1d7202, 0x000000, - 0x000000, 0x1d7401, 0x1d7504, 0x1d7901, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1d7a01, 0x000000, 0x1d7b02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1d7d02, 0x000000, 0x000000, 0x1d7f01, 0x1d8001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1d8109, 0x1d8a0a, 0x000000, 0x1d9401, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1d9502, 0x1d9702, 0x000000, 0x1d9903, 0x1d9c02, 0x1d9e01, - 0x000000, 0x000000, 0x000000, 0x1d9f03, 0x000000, 0x1da202, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1da405, 0x000000, 0x000000, 0x000000, 0x1da901, - 0x000000, 0x000000, 0x1daa05, 0x000000, 0x000000, 0x1daf02, 0x1db108, 0x1db902, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1dbb01, 0x000000, 0x1dbc01, - 0x1dbd01, 0x000000, 0x000000, 0x1dbe01, 0x000000, 0x000000, 0x1dbf04, 0x000000, - 0x1dc301, 0x000000, 0x1dc401, 0x1dc501, 0x000000, 0x1dc603, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1dc901, 0x000000, 0x000000, 0x000000, 0x000000, 0x1dca02, - 0x1dcc02, 0x1dce02, 0x000000, 0x000000, 0x1dd006, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1dd601, 0x000000, 0x1dd702, 0x1dd901, 0x000000, 0x000000, - 0x1dda01, 0x000000, 0x000000, 0x000000, 0x000000, 0x1ddb01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1ddc10, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1dec01, 0x1ded01, 0x1dee02, 0x1df001, 0x000000, - 0x1df101, 0x000000, 0x1df211, 0x000000, 0x1e0304, 0x1e0702, 0x1e0901, 0x000000, - 0x1e0a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1e0b08, - 0x000000, 0x000000, 0x1e1307, 0x000000, 0x1e1a01, 0x000000, 0x1e1b01, 0x000000, - 0x1e1c0c, 0x000000, 0x1e2801, 0x000000, 0x000000, 0x000000, 0x1e2902, 0x000000, - 0x1e2b05, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1e3002, - 0x1e3201, 0x000000, 0x1e3301, 0x000000, 0x1e3402, 0x1e3604, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1e3a02, 0x000000, 0x000000, - 0x1e3c04, 0x1e4003, 0x000000, 0x1e4303, 0x000000, 0x000000, 0x000000, 0x1e4601, - 0x000000, 0x000000, 0x000000, 0x1e4701, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1e4803, 0x000000, 0x000000, 0x1e4b01, 0x000000, - 0x1e4c02, 0x000000, 0x1e4e01, 0x000000, 0x1e4f01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x1e5007, 0x1e5701, 0x000000, 0x000000, 0x1e5801, 0x000000, 0x000000, - 0x1e5901, 0x000000, 0x000000, 0x1e5a01, 0x000000, 0x000000, 0x1e5b01, 0x000000, - 0x000000, 0x1e5c05, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1e6105, - 0x1e6601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1e6701, 0x1e6805, - 0x000000, 0x1e6d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x1e6f06, 0x000000, - 0x1e7501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1e760b, 0x000000, - 0x1e8103, 0x000000, 0x000000, 0x1e8401, 0x000000, 0x1e8502, 0x000000, 0x1e8702, - 0x000000, 0x1e8906, 0x1e8f01, 0x1e9001, 0x1e9102, 0x000000, 0x1e9302, 0x1e950a, - 0x000000, 0x000000, 0x000000, 0x1e9f02, 0x000000, 0x1ea101, 0x000000, 0x1ea201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1ea302, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1ea50a, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1eaf01, 0x1eb001, 0x1eb104, 0x1eb503, 0x000000, 0x1eb801, - 0x000000, 0x000000, 0x1eb92f, 0x000000, 0x000000, 0x1ee801, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1ee901, 0x000000, 0x000000, 0x1eea02, 0x1eec01, 0x1eed01, - 0x1eee01, 0x000000, 0x1eef01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1ef001, 0x1ef102, 0x000000, 0x1ef301, 0x000000, 0x000000, - 0x1ef402, 0x000000, 0x000000, 0x1ef603, 0x000000, 0x1ef905, 0x1efe02, 0x000000, - 0x000000, 0x1f0002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1f0201, 0x000000, 0x1f0301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1f0404, 0x000000, 0x000000, 0x000000, 0x000000, 0x1f0804, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1f0c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1f0d03, 0x000000, 0x1f100f, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1f1f01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1f2003, 0x1f2314, 0x1f3701, 0x000000, 0x1f3801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1f390d, 0x000000, 0x000000, 0x000000, 0x000000, 0x1f4601, - 0x1f4702, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1f4902, 0x000000, 0x000000, - 0x000000, 0x1f4b06, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x1f510a, 0x000000, 0x1f5b01, 0x1f5c01, 0x000000, 0x000000, - 0x1f5d02, 0x000000, 0x000000, 0x1f5f01, 0x1f6001, 0x000000, 0x000000, 0x1f6102, - 0x1f6301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1f6406, 0x000000, 0x000000, 0x000000, 0x1f6a09, - 0x1f7307, 0x1f7a01, 0x1f7b01, 0x000000, 0x000000, 0x1f7c01, 0x000000, 0x000000, - 0x000000, 0x1f7d01, 0x000000, 0x1f7e01, 0x000000, 0x1f7f02, 0x000000, 0x1f8102, - 0x1f830c, 0x000000, 0x000000, 0x000000, 0x1f8f01, 0x1f9008, 0x000000, 0x1f9803, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1f9b01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x1f9c11, 0x1fad01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1fae01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1faf03, 0x1fb202, 0x000000, 0x1fb403, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x1fb701, - 0x1fb801, 0x1fb906, 0x1fbf01, 0x1fc001, 0x1fc101, 0x1fc208, 0x000000, 0x000000, - 0x1fca05, 0x000000, 0x000000, 0x1fcf01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x1fd001, 0x1fd107, 0x1fd801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x1fd903, 0x000000, 0x1fdc03, 0x1fdf02, 0x1fe102, - 0x000000, 0x1fe301, 0x1fe401, 0x000000, 0x000000, 0x000000, 0x000000, 0x1fe501, - 0x1fe60c, 0x000000, 0x000000, 0x1ff206, 0x000000, 0x000000, 0x000000, 0x1ff801, - 0x000000, 0x000000, 0x000000, 0x1ff901, 0x000000, 0x000000, 0x1ffa01, 0x000000, - 0x000000, 0x000000, 0x1ffb10, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x200b06, 0x000000, 0x000000, 0x000000, 0x000000, 0x201103, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x201401, 0x000000, 0x201501, 0x000000, 0x000000, - 0x201603, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x201901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x201a02, 0x000000, 0x201c01, 0x000000, 0x000000, 0x201d03, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x202008, - 0x000000, 0x000000, 0x000000, 0x202809, 0x000000, 0x000000, 0x203105, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x203601, 0x000000, 0x203704, 0x203b04, 0x000000, 0x203f01, - 0x204004, 0x000000, 0x000000, 0x204403, 0x000000, 0x204701, 0x204802, 0x000000, - 0x000000, 0x000000, 0x000000, 0x204a02, 0x000000, 0x000000, 0x000000, 0x204c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x204d08, 0x000000, 0x000000, 0x000000, 0x205501, 0x000000, 0x205604, - 0x205a02, 0x000000, 0x000000, 0x205c01, 0x205d03, 0x206003, 0x206301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x206402, 0x206604, 0x206a01, 0x206b01, 0x206c03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x206f03, 0x20720e, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x208001, - 0x000000, 0x000000, 0x000000, 0x208101, 0x208202, 0x208401, 0x208501, 0x208605, - 0x000000, 0x000000, 0x208b06, 0x209102, 0x000000, 0x000000, 0x20930a, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x209d01, 0x000000, 0x000000, 0x209e03, - 0x000000, 0x20a101, 0x20a205, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x20a70c, 0x20b305, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x20b803, 0x000000, 0x000000, 0x000000, 0x000000, - 0x20bb03, 0x000000, 0x000000, 0x000000, 0x20be01, 0x000000, 0x20bf02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x20c106, 0x20c702, 0x000000, 0x000000, 0x20c902, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x20cb01, - 0x20cc01, 0x000000, 0x20cd01, 0x000000, 0x20ce01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x20cf01, 0x000000, 0x20d009, 0x20d901, 0x20da01, 0x000000, - 0x20db01, 0x20dc09, 0x20e501, 0x000000, 0x000000, 0x000000, 0x000000, 0x20e601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x20e701, 0x000000, 0x000000, 0x20e810, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x20f801, - 0x20f901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x20fa01, - 0x000000, 0x000000, 0x20fb03, 0x000000, 0x20fe04, 0x000000, 0x000000, 0x000000, - 0x000000, 0x210207, 0x000000, 0x210904, 0x000000, 0x210d06, 0x000000, 0x000000, - 0x211301, 0x000000, 0x211401, 0x000000, 0x000000, 0x000000, 0x211503, 0x000000, - 0x211806, 0x211e01, 0x211f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x212002, - 0x212201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x212306, 0x000000, 0x000000, 0x212901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x212a02, 0x212c01, 0x212d22, 0x000000, - 0x214f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x215104, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x215504, 0x215902, 0x215b01, 0x000000, 0x000000, 0x215c04, 0x000000, - 0x000000, 0x21600c, 0x000000, 0x216c0c, 0x000000, 0x000000, 0x217801, 0x217901, - 0x000000, 0x000000, 0x217a03, 0x217d01, 0x217e04, 0x218204, 0x000000, 0x218608, - 0x000000, 0x000000, 0x000000, 0x000000, 0x218e0f, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x219d01, 0x000000, 0x219e01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x219f01, 0x000000, 0x000000, 0x21a001, 0x000000, 0x000000, 0x000000, - 0x21a101, 0x000000, 0x000000, 0x000000, 0x21a202, 0x000000, 0x000000, 0x21a404, - 0x21a804, 0x21ac01, 0x000000, 0x000000, 0x21ad01, 0x000000, 0x21ae01, 0x000000, - 0x21af01, 0x21b00c, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x21bc01, 0x21bd01, 0x21be0b, 0x21c902, 0x000000, - 0x000000, 0x000000, 0x000000, 0x21cb02, 0x21cd01, 0x21ce01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x21cf01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x21d001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x21d101, 0x000000, 0x000000, 0x21d201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x21d301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x21d402, - 0x21d601, 0x21d701, 0x000000, 0x000000, 0x000000, 0x000000, 0x21d804, 0x000000, - 0x21dc02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x21de03, 0x21e10a, 0x000000, 0x21eb02, 0x000000, 0x21ed03, 0x000000, 0x000000, - 0x000000, 0x21f001, 0x000000, 0x000000, 0x000000, 0x21f110, 0x000000, 0x220104, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x220501, 0x000000, 0x220602, 0x220801, 0x22090a, - 0x221303, 0x221601, 0x221705, 0x221c03, 0x221f01, 0x000000, 0x222002, 0x222203, - 0x000000, 0x000000, 0x000000, 0x000000, 0x222501, 0x222602, 0x222809, 0x223102, - 0x000000, 0x000000, 0x000000, 0x000000, 0x223301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x223403, 0x223702, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x223901, 0x223a01, 0x223b02, 0x000000, 0x223d03, 0x224001, - 0x224103, 0x224401, 0x000000, 0x224505, 0x000000, 0x224a01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x224b01, 0x000000, 0x000000, 0x224c02, 0x000000, 0x000000, - 0x224e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x224f01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x225001, 0x000000, 0x000000, 0x000000, 0x000000, 0x225102, 0x000000, 0x000000, - 0x000000, 0x000000, 0x225302, 0x22550d, 0x000000, 0x000000, 0x000000, 0x22620a, - 0x000000, 0x226c01, 0x226d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x226e01, 0x226f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x227104, 0x000000, - 0x000000, 0x000000, 0x000000, 0x227506, 0x227b01, 0x227c02, 0x000000, 0x227e02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x228001, 0x000000, 0x000000, 0x000000, - 0x228101, 0x000000, 0x000000, 0x000000, 0x228201, 0x000000, 0x228301, 0x000000, - 0x000000, 0x000000, 0x228401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x228501, 0x228601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x228701, 0x000000, - 0x000000, 0x000000, 0x228801, 0x000000, 0x228904, 0x000000, 0x000000, 0x000000, - 0x228d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x228e01, 0x000000, 0x228f10, 0x000000, 0x000000, 0x229f02, 0x000000, 0x000000, - 0x22a104, 0x000000, 0x000000, 0x22a502, 0x22a701, 0x000000, 0x000000, 0x22a801, - 0x22a901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x22aa01, - 0x000000, 0x22ab14, 0x000000, 0x000000, 0x000000, 0x000000, 0x22bf04, 0x22c301, - 0x000000, 0x000000, 0x000000, 0x000000, 0x22c403, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x22c703, 0x000000, 0x22ca04, 0x000000, 0x000000, 0x000000, - 0x000000, 0x22ce01, 0x22cf01, 0x22d001, 0x000000, 0x000000, 0x000000, 0x22d101, - 0x000000, 0x22d201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x22d30d, 0x000000, - 0x000000, 0x000000, 0x22e001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x22e102, 0x000000, 0x22e30b, - 0x000000, 0x22ee02, 0x000000, 0x000000, 0x000000, 0x22f002, 0x22f202, 0x000000, - 0x000000, 0x000000, 0x000000, 0x22f401, 0x000000, 0x22f504, 0x000000, 0x22f903, - 0x22fc0d, 0x000000, 0x000000, 0x230901, 0x000000, 0x000000, 0x000000, 0x000000, - 0x230a19, 0x000000, 0x232301, 0x000000, 0x000000, 0x000000, 0x000000, 0x232403, - 0x232701, 0x000000, 0x000000, 0x000000, 0x000000, 0x232801, 0x232902, 0x000000, - 0x232b05, 0x23300f, 0x233f03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x234237, - 0x237901, 0x000000, 0x000000, 0x237a06, 0x238001, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x238102, 0x000000, 0x000000, 0x000000, 0x238301, - 0x000000, 0x000000, 0x238402, 0x000000, 0x238601, 0x000000, 0x000000, 0x238701, - 0x238804, 0x238c01, 0x238d0a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x239702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x239906, 0x000000, 0x000000, 0x239f01, 0x000000, 0x23a001, - 0x23a101, 0x000000, 0x000000, 0x000000, 0x23a201, 0x23a301, 0x000000, 0x000000, - 0x23a401, 0x000000, 0x000000, 0x23a501, 0x000000, 0x23a602, 0x000000, 0x000000, - 0x23a802, 0x23aa01, 0x000000, 0x000000, 0x000000, 0x23ab04, 0x000000, 0x000000, - 0x23af08, 0x000000, 0x23b704, 0x000000, 0x000000, 0x23bb01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x23bc03, 0x000000, 0x23bf0b, 0x23ca02, - 0x000000, 0x000000, 0x23cc01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x23cd03, 0x000000, 0x23d001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x23d102, 0x000000, 0x000000, 0x000000, 0x000000, 0x23d302, - 0x000000, 0x23d501, 0x23d601, 0x23d701, 0x000000, 0x23d809, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x23e101, 0x000000, - 0x23e201, 0x000000, 0x000000, 0x000000, 0x23e301, 0x23e401, 0x000000, 0x000000, - 0x23e501, 0x000000, 0x000000, 0x000000, 0x000000, 0x23e602, 0x000000, 0x000000, - 0x000000, 0x23e804, 0x000000, 0x000000, 0x000000, 0x000000, 0x23ec01, 0x23ed0a, - 0x000000, 0x000000, 0x000000, 0x23f703, 0x23fa05, 0x000000, 0x000000, 0x000000, - 0x000000, 0x23ff01, 0x240003, 0x000000, 0x240301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x240401, 0x240501, 0x240601, 0x000000, 0x240701, 0x240802, 0x000000, - 0x000000, 0x240a01, 0x000000, 0x240b01, 0x240c01, 0x000000, 0x000000, 0x240d02, - 0x000000, 0x240f01, 0x000000, 0x241001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x241101, 0x241202, 0x000000, 0x000000, 0x241401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x241502, 0x241701, - 0x000000, 0x000000, 0x241803, 0x000000, 0x000000, 0x000000, 0x000000, 0x241b03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x241e01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x241f01, - 0x000000, 0x000000, 0x000000, 0x242001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x242101, 0x000000, 0x000000, 0x000000, 0x000000, 0x242201, 0x000000, - 0x000000, 0x242303, 0x242601, 0x000000, 0x000000, 0x000000, 0x242701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x242801, 0x000000, - 0x000000, 0x242901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x242a03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x242d01, 0x242e02, - 0x000000, 0x000000, 0x243001, 0x243102, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x243303, 0x243602, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x243803, - 0x000000, 0x000000, 0x000000, 0x243b01, 0x243c02, 0x243e01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x243f0d, 0x000000, 0x000000, - 0x244c04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x245004, 0x245407, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x245b01, 0x245c04, 0x246008, 0x246801, 0x246904, - 0x000000, 0x246d01, 0x246e96, 0x000000, 0x000000, 0x250402, 0x000000, 0x250603, - 0x000000, 0x000000, 0x000000, 0x000000, 0x250901, 0x000000, 0x000000, 0x000000, - 0x250a01, 0x000000, 0x250b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x250c01, 0x000000, 0x000000, 0x250d03, - 0x000000, 0x000000, 0x000000, 0x251001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x251101, 0x251202, 0x000000, 0x000000, 0x000000, 0x000000, 0x251402, 0x000000, - 0x251601, 0x251704, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x251b02, 0x000000, 0x251d02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x251f03, 0x252202, 0x000000, 0x252402, 0x000000, 0x252602, - 0x000000, 0x000000, 0x252802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x252a01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x252b01, 0x252c0f, 0x000000, 0x000000, 0x000000, 0x000000, - 0x253b01, 0x000000, 0x000000, 0x253c05, 0x000000, 0x000000, 0x254101, 0x000000, - 0x254201, 0x254301, 0x000000, 0x000000, 0x000000, 0x000000, 0x254401, 0x000000, - 0x000000, 0x000000, 0x254502, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x254701, 0x254801, 0x000000, 0x254901, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x254a01, 0x254b02, 0x000000, - 0x000000, 0x000000, 0x254d07, 0x000000, 0x255401, 0x000000, 0x255503, 0x000000, - 0x255802, 0x000000, 0x255a07, 0x256102, 0x000000, 0x256302, 0x256501, 0x256602, - 0x000000, 0x000000, 0x000000, 0x25680f, 0x257704, 0x000000, 0x000000, 0x257b02, - 0x000000, 0x000000, 0x000000, 0x257d02, 0x000000, 0x257f01, 0x000000, 0x258007, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x25871e, 0x000000, - 0x25a501, 0x25a602, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x25a802, 0x000000, 0x000000, 0x25aa01, 0x25ab01, 0x25ac01, 0x25ad02, - 0x000000, 0x000000, 0x000000, 0x25af02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x25b104, 0x25b501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x25b601, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x25b701, 0x000000, 0x25b801, 0x000000, 0x000000, - 0x000000, 0x000000, 0x25b901, 0x000000, 0x000000, 0x25ba05, 0x000000, 0x000000, - 0x25bf01, 0x000000, 0x000000, 0x25c002, 0x000000, 0x25c202, 0x25c402, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x25c602, 0x000000, 0x25c808, 0x25d001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x25d101, 0x25d201, 0x25d302, 0x000000, 0x000000, - 0x000000, 0x000000, 0x25d50c, 0x25e102, 0x000000, 0x000000, 0x25e301, 0x25e401, - 0x25e501, 0x000000, 0x25e60e, 0x25f401, 0x000000, 0x000000, 0x000000, 0x000000, - 0x25f508, 0x000000, 0x25fd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x25fe01, - 0x000000, 0x000000, 0x000000, 0x25ff0e, 0x000000, 0x260d02, 0x000000, 0x260f06, - 0x000000, 0x000000, 0x000000, 0x261504, 0x000000, 0x261901, 0x261a01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x261b01, 0x000000, 0x261c0b, 0x262701, - 0x000000, 0x262801, 0x000000, 0x000000, 0x000000, 0x262901, 0x262a02, 0x000000, - 0x262c01, 0x000000, 0x262d01, 0x000000, 0x262e01, 0x000000, 0x000000, 0x000000, - 0x262f01, 0x263007, 0x263702, 0x000000, 0x000000, 0x000000, 0x263903, 0x000000, - 0x263c04, 0x000000, 0x000000, 0x000000, 0x000000, 0x264001, 0x26410e, 0x000000, - 0x000000, 0x000000, 0x264f03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x265201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x265308, 0x000000, 0x265b03, - 0x000000, 0x265e05, 0x000000, 0x266302, 0x000000, 0x000000, 0x000000, 0x000000, - 0x266503, 0x000000, 0x000000, 0x266803, 0x266b04, 0x000000, 0x000000, 0x000000, - 0x266f01, 0x000000, 0x000000, 0x000000, 0x267001, 0x000000, 0x000000, 0x267103, - 0x000000, 0x267402, 0x000000, 0x000000, 0x000000, 0x267601, 0x267707, 0x000000, - 0x000000, 0x267e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x267f07, 0x268602, 0x268801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x268901, 0x268a01, 0x268b05, 0x269002, 0x269205, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x269706, 0x000000, - 0x269d01, 0x000000, 0x000000, 0x000000, 0x269e04, 0x000000, 0x000000, 0x26a20f, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x26b101, - 0x26b201, 0x26b301, 0x000000, 0x000000, 0x000000, 0x26b401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x26b503, 0x000000, 0x000000, 0x000000, - 0x000000, 0x26b801, 0x000000, 0x000000, 0x000000, 0x000000, 0x26b908, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x26c101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x26c202, 0x26c405, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x26c901, 0x000000, 0x000000, 0x000000, 0x26ca01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x26cb07, 0x000000, 0x26d201, - 0x000000, 0x000000, 0x26d316, 0x26e904, 0x26ed03, 0x000000, 0x26f001, 0x26f104, - 0x000000, 0x000000, 0x26f505, 0x000000, 0x26fa02, 0x26fc01, 0x26fd03, 0x000000, - 0x000000, 0x000000, 0x270002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x270201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x270305, 0x270801, 0x000000, 0x000000, 0x270903, 0x000000, 0x000000, - 0x000000, 0x270c07, 0x000000, 0x271303, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x27160c, 0x272201, 0x272302, 0x272509, 0x000000, 0x000000, 0x000000, - 0x272e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x272f02, 0x000000, - 0x000000, 0x273102, 0x000000, 0x273302, 0x000000, 0x000000, 0x000000, 0x000000, - 0x273501, 0x000000, 0x273601, 0x273701, 0x273801, 0x273901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x273a02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x273c09, 0x274501, 0x000000, 0x000000, 0x000000, 0x000000, 0x274602, - 0x000000, 0x000000, 0x274801, 0x274901, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x274a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x274b03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x274e03, 0x000000, 0x275104, 0x000000, 0x000000, 0x000000, - 0x275502, 0x000000, 0x275704, 0x000000, 0x000000, 0x275b01, 0x275c07, 0x000000, - 0x000000, 0x276303, 0x000000, 0x276603, 0x276901, 0x276a03, 0x000000, 0x000000, - 0x000000, 0x276d03, 0x277001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x277105, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x277601, 0x000000, 0x277704, 0x000000, 0x277b0c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x278702, 0x000000, 0x000000, - 0x000000, 0x278903, 0x000000, 0x000000, 0x278c02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x278e01, 0x278f06, 0x000000, 0x000000, 0x279501, 0x000000, 0x279601, - 0x279701, 0x000000, 0x27980a, 0x000000, 0x000000, 0x27a202, 0x000000, 0x27a401, - 0x27a506, 0x000000, 0x000000, 0x27ab02, 0x000000, 0x27ad01, 0x27ae01, 0x27af08, - 0x27b703, 0x000000, 0x000000, 0x27ba02, 0x000000, 0x27bc03, 0x000000, 0x000000, - 0x000000, 0x27bf01, 0x000000, 0x000000, 0x000000, 0x000000, 0x27c001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x27c110, 0x000000, 0x000000, 0x000000, 0x000000, - 0x27d108, 0x000000, 0x27d901, 0x000000, 0x000000, 0x27da01, 0x27db01, 0x000000, - 0x27dc01, 0x27dd01, 0x000000, 0x27de02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x27e004, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x27e404, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x27e80c, - 0x000000, 0x27f401, 0x000000, 0x27f501, 0x27f601, 0x000000, 0x000000, 0x27f705, - 0x000000, 0x000000, 0x27fc01, 0x27fd06, 0x280306, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x280902, 0x000000, 0x280b03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x280e02, 0x000000, 0x000000, 0x281001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x281101, 0x000000, 0x281201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x281318, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x282b04, 0x282f01, 0x283001, 0x000000, 0x000000, 0x000000, 0x283106, 0x000000, - 0x283701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x283801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x283901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x283a04, 0x283e03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x284101, 0x000000, 0x000000, 0x000000, 0x284201, 0x000000, 0x284303, - 0x000000, 0x000000, 0x000000, 0x000000, 0x284604, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x284a02, 0x284c01, 0x000000, 0x000000, - 0x000000, 0x284d01, 0x284e02, 0x000000, 0x285005, 0x000000, 0x285502, 0x000000, - 0x285701, 0x000000, 0x000000, 0x000000, 0x000000, 0x285802, 0x000000, 0x000000, - 0x285a01, 0x000000, 0x285b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x285d01, 0x000000, 0x000000, 0x285e03, 0x286101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x28620a, 0x286c02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x286e02, 0x000000, 0x287009, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x287906, 0x000000, 0x287f01, 0x000000, - 0x288003, 0x000000, 0x000000, 0x000000, 0x288301, 0x288401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x288501, 0x000000, 0x000000, 0x000000, 0x288601, - 0x000000, 0x28870a, 0x000000, 0x000000, 0x289102, 0x289302, 0x289501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x289601, 0x000000, - 0x000000, 0x289702, 0x289902, 0x000000, 0x000000, 0x289b01, 0x000000, 0x289c06, - 0x000000, 0x28a201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x28a301, 0x000000, 0x28a405, 0x28a901, 0x000000, 0x000000, - 0x28aa01, 0x000000, 0x28ab09, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x28b401, 0x28b501, 0x28b602, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x28b802, 0x000000, - 0x000000, 0x28ba03, 0x000000, 0x000000, 0x28bd02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x28bf01, 0x000000, 0x28c001, 0x28c102, 0x000000, 0x000000, - 0x000000, 0x000000, 0x28c301, 0x28c401, 0x000000, 0x28c501, 0x000000, 0x28c605, - 0x000000, 0x28cb02, 0x28cd02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x28cf01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x28d002, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x28d202, 0x000000, - 0x28d401, 0x000000, 0x000000, 0x000000, 0x28d503, 0x28d802, 0x000000, 0x000000, - 0x28da0a, 0x000000, 0x28e403, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x28e709, 0x28f001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x28f101, - 0x28f209, 0x000000, 0x28fb07, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x290203, 0x000000, 0x000000, - 0x000000, 0x290508, 0x000000, 0x000000, 0x290d0b, 0x000000, 0x291803, 0x291b01, - 0x000000, 0x000000, 0x291c01, 0x291d02, 0x291f02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x292103, 0x000000, 0x000000, - 0x000000, 0x000000, 0x292401, 0x000000, 0x292501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x292601, - 0x292708, 0x000000, 0x000000, 0x292f09, 0x000000, 0x293803, 0x293b01, 0x000000, - 0x293c02, 0x293e03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x294101, - 0x294201, 0x294301, 0x000000, 0x294401, 0x000000, 0x000000, 0x000000, 0x294501, - 0x000000, 0x294608, 0x000000, 0x000000, 0x000000, 0x000000, 0x294e01, 0x000000, - 0x000000, 0x294f02, 0x000000, 0x295107, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x295801, 0x295901, - 0x295a02, 0x295c01, 0x000000, 0x295d04, 0x000000, 0x000000, 0x296104, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x296503, 0x000000, 0x000000, 0x296801, - 0x000000, 0x000000, 0x000000, 0x296901, 0x000000, 0x296a01, 0x000000, 0x296b01, - 0x000000, 0x296c02, 0x000000, 0x000000, 0x296e13, 0x000000, 0x298101, 0x000000, - 0x298202, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x298401, 0x298501, - 0x29860f, 0x000000, 0x000000, 0x000000, 0x299501, 0x000000, 0x000000, 0x000000, - 0x299603, 0x000000, 0x299901, 0x000000, 0x299a01, 0x000000, 0x000000, 0x000000, - 0x299b01, 0x299c02, 0x299e03, 0x000000, 0x29a101, 0x000000, 0x000000, 0x29a208, - 0x000000, 0x29aa02, 0x000000, 0x000000, 0x000000, 0x000000, 0x29ac01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x29ad01, 0x000000, 0x000000, 0x000000, 0x29ae01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x29af01, 0x29b001, 0x000000, 0x29b102, 0x000000, 0x000000, 0x000000, - 0x29b302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x29b504, - 0x000000, 0x29b90a, 0x000000, 0x000000, 0x29c305, 0x000000, 0x29c801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x29c902, 0x000000, 0x000000, 0x000000, 0x29cb03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x29ce01, 0x000000, 0x29cf01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x29d00a, - 0x000000, 0x29da03, 0x29dd02, 0x29df02, 0x000000, 0x000000, 0x29e101, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x29e203, - 0x000000, 0x000000, 0x000000, 0x000000, 0x29e501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x29e603, 0x29e90d, 0x29f601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x29f701, 0x000000, 0x000000, 0x29f803, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x29fb02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x29fd02, 0x000000, 0x000000, 0x29ff01, 0x2a0003, 0x000000, - 0x000000, 0x000000, 0x2a0302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2a0501, 0x000000, 0x000000, 0x000000, 0x2a060a, 0x000000, 0x2a1003, - 0x000000, 0x000000, 0x2a1301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2a1404, 0x000000, 0x000000, 0x000000, 0x2a1802, 0x000000, 0x000000, - 0x2a1a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2a1b04, 0x2a1f05, 0x000000, 0x000000, 0x000000, 0x2a2402, 0x000000, - 0x000000, 0x000000, 0x2a2604, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2a2a01, 0x000000, 0x000000, 0x2a2b0c, - 0x000000, 0x2a3701, 0x000000, 0x2a3801, 0x000000, 0x000000, 0x000000, 0x2a3902, - 0x000000, 0x000000, 0x000000, 0x2a3b02, 0x000000, 0x000000, 0x2a3d01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2a3e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x2a3f01, 0x2a4002, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2a4201, 0x000000, 0x2a4301, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2a4401, 0x2a4501, 0x2a4603, 0x000000, 0x2a4917, 0x2a6001, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2a6102, 0x000000, 0x000000, 0x2a6301, - 0x000000, 0x2a6403, 0x000000, 0x000000, 0x2a6701, 0x000000, 0x000000, 0x2a6801, - 0x2a6901, 0x2a6a01, 0x2a6b03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2a6e03, 0x000000, 0x2a7101, 0x2a7205, 0x2a7712, 0x2a8901, 0x000000, - 0x000000, 0x2a8a01, 0x2a8b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2a8c03, 0x000000, 0x000000, 0x000000, 0x2a8f03, 0x2a9201, 0x000000, 0x000000, - 0x2a9302, 0x2a9501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2a9602, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2a9801, 0x000000, 0x2a9902, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2a9b03, 0x2a9e01, 0x000000, 0x2a9f04, 0x000000, - 0x000000, 0x2aa301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2aa401, - 0x000000, 0x2aa505, 0x000000, 0x000000, 0x000000, 0x2aaa01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2aab04, 0x000000, 0x000000, 0x2aaf01, 0x2ab001, - 0x000000, 0x000000, 0x2ab102, 0x000000, 0x000000, 0x000000, 0x2ab307, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2aba06, 0x000000, 0x000000, 0x2ac002, 0x000000, - 0x000000, 0x000000, 0x2ac201, 0x000000, 0x000000, 0x2ac30a, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2acd02, 0x000000, 0x2acf02, 0x2ad102, 0x000000, 0x000000, - 0x2ad302, 0x000000, 0x000000, 0x000000, 0x2ad501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2ad601, - 0x000000, 0x000000, 0x000000, 0x2ad705, 0x000000, 0x000000, 0x000000, 0x2adc02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2ade01, 0x000000, 0x000000, - 0x000000, 0x2adf02, 0x2ae104, 0x000000, 0x000000, 0x2ae502, 0x2ae703, 0x2aea01, - 0x000000, 0x000000, 0x2aeb01, 0x000000, 0x2aec02, 0x000000, 0x000000, 0x2aee01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2aef01, 0x000000, 0x000000, 0x000000, - 0x2af002, 0x000000, 0x2af201, 0x000000, 0x000000, 0x000000, 0x2af301, 0x2af401, - 0x000000, 0x000000, 0x000000, 0x2af501, 0x000000, 0x2af602, 0x000000, 0x2af809, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b0102, 0x2b0301, - 0x000000, 0x2b0403, 0x2b0701, 0x2b0802, 0x000000, 0x000000, 0x2b0a01, 0x2b0b01, - 0x2b0c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b0d01, 0x000000, 0x000000, - 0x2b0e06, 0x2b1402, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b1603, 0x000000, - 0x000000, 0x000000, 0x2b1915, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b2e01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b2f04, 0x2b3301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b3403, 0x000000, 0x000000, - 0x2b3701, 0x2b3801, 0x000000, 0x2b3903, 0x000000, 0x2b3c10, 0x000000, 0x2b4c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b4d02, 0x000000, 0x000000, - 0x000000, 0x2b4f06, 0x000000, 0x000000, 0x000000, 0x2b5501, 0x000000, 0x000000, - 0x000000, 0x2b5601, 0x2b5701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2b5801, 0x2b5901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2b5a03, 0x000000, 0x000000, 0x2b5d06, 0x2b6301, 0x000000, 0x000000, - 0x000000, 0x2b6405, 0x000000, 0x2b6905, 0x2b6e0c, 0x000000, 0x2b7a0b, 0x000000, - 0x000000, 0x000000, 0x2b8501, 0x000000, 0x000000, 0x2b8603, 0x000000, 0x2b8901, - 0x000000, 0x2b8a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2b8b01, 0x000000, 0x2b8c03, 0x2b8f01, 0x2b9001, 0x2b9102, 0x000000, - 0x2b9301, 0x000000, 0x2b9401, 0x000000, 0x000000, 0x000000, 0x2b9501, 0x000000, - 0x000000, 0x2b9601, 0x2b9703, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2b9a01, - 0x000000, 0x000000, 0x2b9b02, 0x2b9d06, 0x000000, 0x000000, 0x000000, 0x2ba302, - 0x2ba502, 0x000000, 0x000000, 0x000000, 0x2ba706, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2bad01, 0x2bae01, 0x000000, 0x000000, 0x000000, 0x2baf03, - 0x2bb201, 0x000000, 0x000000, 0x2bb301, 0x2bb405, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2bb906, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2bbf02, 0x2bc101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2bc201, 0x000000, 0x2bc301, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2bc401, 0x000000, 0x000000, 0x000000, 0x2bc501, - 0x000000, 0x2bc602, 0x000000, 0x000000, 0x2bc802, 0x000000, 0x2bca03, 0x000000, - 0x2bcd11, 0x000000, 0x000000, 0x2bde3e, 0x000000, 0x000000, 0x000000, 0x2c1c02, - 0x2c1e01, 0x000000, 0x000000, 0x2c1f01, 0x2c2005, 0x2c2505, 0x000000, 0x000000, - 0x000000, 0x2c2a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x2c2c01, 0x2c2d01, - 0x000000, 0x2c2e02, 0x000000, 0x000000, 0x000000, 0x2c3001, 0x000000, 0x2c3114, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2c4504, 0x000000, 0x2c4901, 0x000000, - 0x000000, 0x000000, 0x2c4a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2c4b01, 0x000000, 0x2c4c01, 0x2c4d02, 0x000000, 0x2c4f01, 0x000000, 0x2c5003, - 0x000000, 0x000000, 0x000000, 0x2c5301, 0x2c5401, 0x000000, 0x000000, 0x2c5505, - 0x000000, 0x000000, 0x000000, 0x2c5a01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2c5b01, 0x000000, 0x2c5c0d, 0x2c6901, 0x000000, 0x000000, - 0x2c6a03, 0x000000, 0x2c6d02, 0x2c6f01, 0x000000, 0x000000, 0x000000, 0x2c7001, - 0x000000, 0x000000, 0x2c7105, 0x2c7603, 0x000000, 0x2c790d, 0x2c8601, 0x000000, - 0x2c8706, 0x2c8d02, 0x000000, 0x000000, 0x000000, 0x2c8f01, 0x000000, 0x000000, - 0x2c9003, 0x2c9305, 0x000000, 0x000000, 0x000000, 0x000000, 0x2c9801, 0x000000, - 0x000000, 0x000000, 0x2c9903, 0x000000, 0x2c9c05, 0x000000, 0x2ca103, 0x2ca401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2ca507, 0x000000, 0x2cac01, - 0x000000, 0x2cad02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2caf0d, - 0x2cbc01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2cbd01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2cbe01, 0x000000, 0x000000, 0x2cbf04, - 0x2cc301, 0x2cc402, 0x2cc606, 0x000000, 0x2ccc04, 0x000000, 0x2cd001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2cd101, 0x000000, 0x000000, 0x000000, 0x2cd201, - 0x000000, 0x2cd301, 0x2cd403, 0x2cd701, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2cd803, 0x000000, 0x000000, 0x2cdb03, 0x000000, 0x000000, 0x2cde0a, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2ce805, 0x000000, 0x000000, 0x2ced07, 0x000000, 0x2cf401, 0x000000, - 0x000000, 0x2cf501, 0x2cf602, 0x2cf802, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2cfa01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2cfb04, 0x000000, 0x2cff01, 0x2d0008, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2d0801, 0x2d0901, 0x2d0a03, 0x2d0d09, 0x000000, 0x000000, - 0x2d1604, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2d1a01, 0x000000, - 0x2d1b04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2d1f04, 0x2d2301, - 0x000000, 0x2d2402, 0x000000, 0x000000, 0x2d2601, 0x000000, 0x2d2701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2d2802, 0x000000, 0x000000, - 0x2d2a01, 0x2d2b01, 0x000000, 0x2d2c02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2d2e02, 0x000000, 0x000000, 0x000000, 0x2d3005, 0x000000, 0x2d3501, 0x000000, - 0x2d3602, 0x000000, 0x000000, 0x000000, 0x2d3801, 0x000000, 0x2d3902, 0x000000, - 0x000000, 0x000000, 0x2d3b01, 0x2d3c01, 0x000000, 0x000000, 0x000000, 0x2d3d02, - 0x2d3f03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2d4201, 0x000000, 0x2d4303, 0x2d4604, 0x000000, 0x2d4a01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2d4b01, 0x000000, - 0x2d4c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x2d4d03, 0x2d5001, 0x000000, - 0x000000, 0x000000, 0x2d5101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2d5201, 0x2d5302, 0x000000, - 0x2d5502, 0x000000, 0x000000, 0x2d5702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2d5901, 0x000000, 0x000000, 0x2d5a02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2d5c09, 0x000000, 0x2d6501, 0x000000, 0x000000, 0x000000, 0x2d6602, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2d6801, 0x000000, 0x000000, 0x2d6901, 0x2d6a01, - 0x2d6b02, 0x2d6d09, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2d7607, 0x000000, 0x000000, 0x2d7d02, 0x000000, 0x2d7f01, 0x2d8001, 0x000000, - 0x2d8101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2d8201, 0x000000, 0x000000, 0x2d8301, 0x2d8403, 0x2d8715, - 0x000000, 0x000000, 0x2d9c02, 0x2d9e01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2d9f01, 0x000000, 0x000000, 0x2da004, 0x000000, 0x2da403, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2da71c, 0x000000, - 0x000000, 0x000000, 0x2dc303, 0x000000, 0x2dc602, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2dc803, 0x000000, 0x000000, 0x2dcb13, 0x2dde02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2de003, - 0x2de302, 0x2de501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2de601, - 0x000000, 0x000000, 0x000000, 0x2de702, 0x2de901, 0x000000, 0x2dea04, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2dee01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2def01, 0x000000, 0x000000, - 0x000000, 0x2df005, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2df501, 0x2df605, 0x000000, 0x2dfb01, 0x2dfc01, 0x000000, 0x2dfd01, 0x000000, - 0x000000, 0x2dfe02, 0x000000, 0x2e0001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2e0102, - 0x2e0303, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2e0601, 0x000000, 0x2e0701, 0x000000, 0x000000, 0x000000, 0x2e0801, 0x000000, - 0x000000, 0x000000, 0x2e0902, 0x000000, 0x000000, 0x000000, 0x000000, 0x2e0b01, - 0x000000, 0x000000, 0x2e0c02, 0x2e0e01, 0x2e0f03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2e1227, 0x2e3901, 0x2e3a01, 0x2e3b01, 0x000000, 0x000000, 0x2e3c01, - 0x000000, 0x000000, 0x000000, 0x2e3d08, 0x000000, 0x000000, 0x2e4505, 0x2e4a01, - 0x000000, 0x2e4b11, 0x000000, 0x2e5c02, 0x000000, 0x000000, 0x000000, 0x2e5e01, - 0x000000, 0x000000, 0x000000, 0x2e5f02, 0x2e6101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2e6201, 0x000000, 0x2e6301, 0x2e6406, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2e6a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2e6b01, 0x000000, 0x2e6c01, 0x000000, 0x2e6d01, 0x000000, 0x000000, - 0x2e6e07, 0x000000, 0x2e7501, 0x2e7602, 0x2e780c, 0x2e8401, 0x2e8502, 0x000000, - 0x2e8706, 0x2e8d02, 0x000000, 0x000000, 0x2e8f02, 0x000000, 0x2e9102, 0x2e9303, - 0x2e9601, 0x2e9701, 0x000000, 0x000000, 0x000000, 0x000000, 0x2e9805, 0x000000, - 0x2e9d07, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2ea402, 0x2ea601, - 0x2ea701, 0x000000, 0x2ea803, 0x000000, 0x000000, 0x000000, 0x000000, 0x2eab01, - 0x2eac04, 0x000000, 0x000000, 0x000000, 0x000000, 0x2eb001, 0x000000, 0x2eb101, - 0x000000, 0x2eb201, 0x000000, 0x2eb301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2eb402, 0x000000, 0x000000, 0x2eb602, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2eb811, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2ec901, 0x000000, 0x000000, 0x000000, 0x2eca01, - 0x2ecb06, 0x2ed101, 0x2ed205, 0x000000, 0x2ed701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2ed801, 0x000000, 0x000000, 0x000000, 0x2ed905, 0x000000, - 0x2ede05, 0x2ee301, 0x2ee401, 0x2ee505, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2eea01, 0x000000, 0x000000, 0x2eeb02, 0x2eed01, 0x000000, 0x000000, - 0x2eee04, 0x000000, 0x000000, 0x2ef209, 0x2efb01, 0x000000, 0x000000, 0x2efc03, - 0x000000, 0x000000, 0x2eff01, 0x2f0001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2f0107, 0x000000, 0x2f0802, 0x2f0a01, 0x000000, 0x000000, 0x2f0b02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2f0d08, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2f1501, 0x2f1601, - 0x000000, 0x2f1704, 0x000000, 0x000000, 0x000000, 0x2f1b04, 0x2f1f01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2f2002, 0x2f2201, 0x2f2306, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2f2901, - 0x000000, 0x000000, 0x000000, 0x2f2a01, 0x2f2b03, 0x000000, 0x000000, 0x000000, - 0x2f2e02, 0x000000, 0x2f3005, 0x2f3501, 0x2f3601, 0x000000, 0x000000, 0x2f3701, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2f3803, 0x000000, 0x2f3b05, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2f4001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x2f4104, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2f4501, 0x2f4601, 0x2f4707, 0x2f4e03, 0x000000, 0x000000, - 0x2f5102, 0x2f5302, 0x000000, 0x000000, 0x000000, 0x2f5501, 0x000000, 0x000000, - 0x000000, 0x2f5601, 0x2f5708, 0x2f5f02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2f6101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2f6201, - 0x000000, 0x000000, 0x000000, 0x2f6302, 0x2f6503, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2f6802, 0x000000, 0x2f6a02, 0x000000, 0x2f6c01, 0x000000, 0x000000, - 0x2f6d02, 0x000000, 0x000000, 0x000000, 0x2f6f01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2f7003, 0x000000, 0x2f7305, 0x000000, 0x2f7801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2f7911, 0x2f8a02, 0x2f8c02, 0x000000, 0x000000, - 0x000000, 0x2f8e03, 0x000000, 0x000000, 0x000000, 0x000000, 0x2f9105, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2f9601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x2f9702, - 0x000000, 0x000000, 0x000000, 0x2f9901, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x2f9a01, 0x2f9b01, 0x000000, 0x000000, 0x2f9c07, 0x000000, 0x2fa301, - 0x000000, 0x2fa401, 0x000000, 0x000000, 0x2fa503, 0x000000, 0x2fa802, 0x000000, - 0x000000, 0x000000, 0x000000, 0x2faa06, 0x000000, 0x2fb001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2fb101, 0x2fb201, 0x2fb301, 0x2fb404, 0x000000, 0x2fb801, - 0x2fb904, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2fbd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2fbe06, 0x000000, 0x000000, 0x2fc404, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2fc801, 0x000000, 0x000000, 0x000000, 0x000000, 0x2fc902, - 0x000000, 0x000000, 0x2fcb06, 0x2fd101, 0x000000, 0x000000, 0x000000, 0x2fd201, - 0x000000, 0x000000, 0x000000, 0x2fd309, 0x2fdc01, 0x000000, 0x2fdd02, 0x2fdf01, - 0x000000, 0x2fe012, 0x000000, 0x000000, 0x2ff202, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x2ff401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x2ff50b, 0x000000, 0x300001, 0x000000, 0x000000, 0x300102, 0x000000, 0x300301, - 0x300401, 0x000000, 0x000000, 0x300501, 0x000000, 0x300601, 0x000000, 0x000000, - 0x300701, 0x000000, 0x300801, 0x000000, 0x300903, 0x000000, 0x000000, 0x000000, - 0x000000, 0x300c08, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x30141d, - 0x000000, 0x303102, 0x303301, 0x000000, 0x000000, 0x000000, 0x000000, 0x303401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x303501, 0x303601, 0x000000, 0x303701, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x303801, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x303902, 0x000000, - 0x000000, 0x000000, 0x000000, 0x303b02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x303d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x303e04, 0x000000, 0x304201, 0x304301, 0x30440a, 0x000000, 0x000000, 0x304e03, - 0x305101, 0x305201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x305304, - 0x305703, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x305a03, 0x000000, 0x305d01, 0x000000, 0x305e01, 0x000000, 0x000000, - 0x305f09, 0x000000, 0x000000, 0x000000, 0x000000, 0x306801, 0x000000, 0x000000, - 0x306904, 0x000000, 0x000000, 0x000000, 0x000000, 0x306d05, 0x307201, 0x000000, - 0x000000, 0x307306, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x307901, - 0x000000, 0x000000, 0x000000, 0x307a01, 0x000000, 0x000000, 0x000000, 0x307b08, - 0x000000, 0x000000, 0x000000, 0x000000, 0x308301, 0x000000, 0x308402, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x308602, 0x000000, 0x308804, 0x308c02, - 0x000000, 0x000000, 0x000000, 0x308e01, 0x308f02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x309101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x309201, - 0x309301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x309401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x309507, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x309c05, 0x000000, 0x000000, 0x000000, 0x30a101, 0x30a201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x30a317, 0x30ba12, - 0x000000, 0x000000, 0x30cc01, 0x30cd01, 0x000000, 0x000000, 0x000000, 0x30ce01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x30cf06, 0x30d507, 0x30dc01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x30dd02, 0x000000, 0x30df01, 0x30e001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x30e101, 0x000000, 0x000000, 0x000000, 0x30e205, - 0x000000, 0x30e704, 0x000000, 0x000000, 0x000000, 0x30eb03, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x30ee01, 0x000000, - 0x000000, 0x000000, 0x30ef01, 0x000000, 0x000000, 0x000000, 0x30f001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x30f105, 0x000000, 0x30f601, 0x000000, - 0x000000, 0x30f702, 0x000000, 0x30f902, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x30fb08, 0x000000, 0x310302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x310501, 0x000000, 0x000000, 0x000000, 0x310601, 0x310702, 0x000000, 0x000000, - 0x000000, 0x310901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x310a07, 0x000000, 0x000000, 0x311103, 0x000000, 0x311401, - 0x000000, 0x311503, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x311802, 0x000000, - 0x000000, 0x000000, 0x311a03, 0x311d03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x312001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x312101, 0x312218, 0x313a05, 0x000000, 0x313f03, - 0x000000, 0x000000, 0x314201, 0x000000, 0x314303, 0x000000, 0x31460a, 0x000000, - 0x315002, 0x000000, 0x000000, 0x000000, 0x000000, 0x315213, 0x316502, 0x000000, - 0x316709, 0x000000, 0x000000, 0x31700d, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x317d01, 0x000000, 0x000000, 0x317e02, 0x000000, 0x318004, - 0x318402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x318602, 0x000000, 0x318801, 0x000000, - 0x31890b, 0x319401, 0x000000, 0x319503, 0x000000, 0x319804, 0x000000, 0x319c02, - 0x000000, 0x000000, 0x000000, 0x319e01, 0x319f03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x31a21e, 0x31c002, 0x000000, 0x000000, 0x31c201, 0x000000, 0x000000, - 0x31c302, 0x000000, 0x000000, 0x31c501, 0x31c602, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x31c801, 0x000000, - 0x31c901, 0x31ca01, 0x000000, 0x31cb0b, 0x000000, 0x000000, 0x31d608, 0x31de06, - 0x000000, 0x000000, 0x000000, 0x000000, 0x31e401, 0x000000, 0x31e504, 0x31e901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x31ea01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x31eb0d, 0x31f81f, 0x000000, - 0x321701, 0x000000, 0x32180b, 0x000000, 0x322303, 0x000000, 0x000000, 0x000000, - 0x000000, 0x322603, 0x000000, 0x322901, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x322a02, 0x322c01, 0x000000, 0x322d01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x322e03, 0x000000, 0x000000, 0x323102, 0x323301, 0x323401, 0x000000, 0x000000, - 0x000000, 0x323501, 0x000000, 0x000000, 0x000000, 0x323601, 0x000000, 0x323702, - 0x000000, 0x323901, 0x000000, 0x000000, 0x323a03, 0x000000, 0x323d01, 0x000000, - 0x323e03, 0x000000, 0x000000, 0x324103, 0x000000, 0x324403, 0x324701, 0x324802, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x324a02, 0x000000, 0x324c01, 0x000000, 0x000000, 0x324d06, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x325301, 0x325403, 0x325701, 0x000000, 0x325804, 0x000000, 0x000000, 0x000000, - 0x000000, 0x325c02, 0x000000, 0x000000, 0x000000, 0x325e01, 0x325f02, 0x326104, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x326507, - 0x000000, 0x326c01, 0x326d10, 0x000000, 0x327d02, 0x000000, 0x327f01, 0x000000, - 0x000000, 0x000000, 0x328001, 0x000000, 0x328101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x328201, 0x000000, 0x328301, 0x328401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x328508, 0x000000, 0x328d02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x328f02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x329102, 0x000000, 0x000000, - 0x329301, 0x000000, 0x000000, 0x329401, 0x000000, 0x000000, 0x000000, 0x000000, - 0x329501, 0x000000, 0x000000, 0x000000, 0x000000, 0x329601, 0x000000, 0x329701, - 0x000000, 0x329801, 0x000000, 0x000000, 0x000000, 0x329904, 0x329d01, 0x329e01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x329f04, 0x32a302, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x32a504, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x32a901, 0x000000, 0x32aa01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x32ab0a, 0x000000, - 0x000000, 0x32b502, 0x000000, 0x000000, 0x000000, 0x32b701, 0x32b801, 0x000000, - 0x32b90a, 0x32c301, 0x32c404, 0x32c801, 0x32c902, 0x000000, 0x000000, 0x000000, - 0x000000, 0x32cb01, 0x000000, 0x000000, 0x32cc02, 0x000000, 0x000000, 0x32ce02, - 0x32d008, 0x000000, 0x32d803, 0x000000, 0x000000, 0x000000, 0x32db01, 0x000000, - 0x32dc01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x32dd02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x32df03, 0x32e201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x32e301, 0x000000, 0x000000, 0x32e403, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x32e705, 0x000000, - 0x32ec03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x32ef01, - 0x000000, 0x000000, 0x32f002, 0x000000, 0x000000, 0x000000, 0x32f201, 0x32f302, - 0x32f501, 0x000000, 0x000000, 0x000000, 0x000000, 0x32f602, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x32f805, 0x32fd02, 0x000000, - 0x32ff04, 0x000000, 0x000000, 0x330301, 0x330406, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x330a01, 0x000000, 0x000000, 0x330b03, 0x000000, 0x330e06, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x331401, 0x331501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x331601, 0x331701, 0x331801, 0x000000, - 0x331903, 0x000000, 0x000000, 0x000000, 0x331c01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x331d01, 0x000000, 0x331e01, 0x331f06, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x332505, 0x000000, 0x332a01, - 0x000000, 0x332b01, 0x000000, 0x000000, 0x000000, 0x332c18, 0x000000, 0x334401, - 0x334502, 0x334701, 0x334801, 0x000000, 0x000000, 0x334901, 0x000000, 0x334a03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x334d10, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x335d12, 0x000000, 0x336f01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x337001, 0x000000, - 0x000000, 0x337104, 0x000000, 0x000000, 0x000000, 0x000000, 0x337502, 0x000000, - 0x000000, 0x000000, 0x337701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x337801, 0x000000, 0x337905, 0x337e04, 0x338202, 0x000000, 0x000000, 0x000000, - 0x338401, 0x000000, 0x000000, 0x338501, 0x000000, 0x000000, 0x33860f, 0x000000, - 0x000000, 0x339501, 0x000000, 0x000000, 0x000000, 0x339605, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x339b07, 0x000000, 0x000000, 0x33a20d, 0x33af09, 0x000000, 0x000000, 0x000000, - 0x33b808, 0x000000, 0x33c004, 0x33c402, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x33c604, 0x33ca01, 0x000000, 0x33cb01, 0x33cc01, 0x000000, 0x33cd0a, - 0x000000, 0x33d704, 0x000000, 0x000000, 0x000000, 0x000000, 0x33db01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x33dc16, 0x33f202, 0x000000, 0x000000, 0x33f401, - 0x33f501, 0x000000, 0x000000, 0x33f602, 0x000000, 0x000000, 0x33f805, 0x000000, - 0x33fd01, 0x000000, 0x000000, 0x000000, 0x33fe0e, 0x000000, 0x000000, 0x000000, - 0x000000, 0x340c03, 0x000000, 0x340f01, 0x000000, 0x000000, 0x000000, 0x341001, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x341101, 0x000000, - 0x000000, 0x341204, 0x000000, 0x341607, 0x000000, 0x000000, 0x341d01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x341e0b, 0x000000, 0x342908, 0x000000, - 0x343104, 0x000000, 0x343501, 0x343602, 0x343802, 0x000000, 0x000000, 0x343a01, - 0x343b01, 0x000000, 0x343c01, 0x343d02, 0x000000, 0x343f04, 0x000000, 0x344301, - 0x344405, 0x344901, 0x000000, 0x344a01, 0x344b01, 0x000000, 0x344c02, 0x344e04, - 0x345206, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x345808, 0x346001, - 0x000000, 0x34610a, 0x000000, 0x000000, 0x000000, 0x000000, 0x346b02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x346d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x346e02, 0x000000, 0x000000, 0x000000, 0x000000, 0x347002, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x347201, 0x000000, 0x000000, 0x000000, - 0x347302, 0x000000, 0x000000, 0x347508, 0x347d01, 0x000000, 0x347e06, 0x000000, - 0x348403, 0x000000, 0x348701, 0x348802, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x348a06, 0x000000, 0x349001, 0x000000, 0x000000, 0x000000, - 0x000000, 0x349101, 0x349201, 0x000000, 0x349304, 0x000000, 0x000000, 0x000000, - 0x000000, 0x349701, 0x349801, 0x349904, 0x349d01, 0x000000, 0x349e01, 0x349f02, - 0x34a101, 0x34a201, 0x000000, 0x34a302, 0x000000, 0x000000, 0x34a501, 0x34a602, - 0x000000, 0x34a806, 0x000000, 0x000000, 0x000000, 0x000000, 0x34ae03, 0x000000, - 0x34b103, 0x000000, 0x34b401, 0x000000, 0x000000, 0x34b501, 0x000000, 0x000000, - 0x34b601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x34b701, - 0x34b803, 0x000000, 0x34bb10, 0x000000, 0x000000, 0x34cb06, 0x34d103, 0x000000, - 0x000000, 0x34d403, 0x34d702, 0x000000, 0x000000, 0x000000, 0x34d905, 0x34de02, - 0x000000, 0x34e002, 0x34e201, 0x000000, 0x34e303, 0x000000, 0x34e601, 0x000000, - 0x34e701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x34e802, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x34ea02, 0x000000, - 0x000000, 0x000000, 0x34ec06, 0x34f201, 0x000000, 0x000000, 0x000000, 0x34f301, - 0x34f401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x34f505, 0x000000, 0x34fa01, 0x000000, 0x000000, 0x000000, 0x000000, 0x34fb02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x34fd03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x350002, - 0x000000, 0x000000, 0x350202, 0x000000, 0x000000, 0x000000, 0x000000, 0x350405, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x350903, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x350c05, 0x000000, 0x351109, 0x000000, 0x351a05, 0x000000, 0x351f01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x352002, 0x352201, 0x000000, 0x352301, 0x352401, 0x352501, 0x35260a, 0x000000, - 0x000000, 0x353001, 0x353105, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x353602, 0x000000, 0x353802, 0x353a02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x353c05, 0x000000, - 0x000000, 0x000000, 0x354104, 0x000000, 0x000000, 0x000000, 0x354510, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x355502, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x355703, 0x000000, 0x355a01, 0x000000, 0x000000, 0x355b02, - 0x000000, 0x000000, 0x355d01, 0x000000, 0x000000, 0x000000, 0x355e01, 0x000000, - 0x355f04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x356301, 0x000000, - 0x356402, 0x356601, 0x000000, 0x000000, 0x356703, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x356a0a, 0x357401, 0x000000, 0x357501, 0x000000, - 0x000000, 0x000000, 0x357605, 0x000000, 0x000000, 0x000000, 0x357b02, 0x357d03, - 0x358005, 0x000000, 0x000000, 0x000000, 0x358503, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x358802, 0x000000, 0x000000, 0x000000, 0x000000, 0x358a07, - 0x000000, 0x000000, 0x000000, 0x359101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x359201, 0x000000, 0x359301, - 0x359402, 0x000000, 0x000000, 0x359605, 0x359b06, 0x35a101, 0x35a201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x35a302, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x35a502, - 0x000000, 0x35a701, 0x000000, 0x000000, 0x35a801, 0x35a909, 0x35b204, 0x000000, - 0x35b601, 0x000000, 0x000000, 0x35b701, 0x000000, 0x000000, 0x000000, 0x35b804, - 0x000000, 0x35bc05, 0x000000, 0x000000, 0x35c101, 0x35c201, 0x000000, 0x35c301, - 0x35c401, 0x000000, 0x35c501, 0x000000, 0x000000, 0x35c601, 0x000000, 0x000000, - 0x000000, 0x35c701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x35c803, 0x000000, 0x000000, 0x35cb03, 0x000000, 0x35ce01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x35cf02, 0x35d109, 0x35da0a, 0x000000, 0x000000, 0x000000, 0x35e401, - 0x000000, 0x35e503, 0x000000, 0x35e803, 0x000000, 0x35eb02, 0x35ed0a, 0x000000, - 0x000000, 0x000000, 0x000000, 0x35f701, 0x35f811, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x360902, 0x000000, 0x360b02, 0x000000, 0x000000, 0x360d01, - 0x000000, 0x000000, 0x360e01, 0x000000, 0x360f02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x361101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x361202, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x36140d, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x362102, 0x000000, 0x000000, 0x362301, 0x000000, 0x000000, 0x362401, 0x000000, - 0x000000, 0x362501, 0x362605, 0x000000, 0x362b01, 0x000000, 0x362c01, 0x362d02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x362f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x363005, - 0x363508, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x363d02, 0x000000, 0x363f01, 0x364001, 0x364101, - 0x000000, 0x000000, 0x364203, 0x364503, 0x000000, 0x364802, 0x364a01, 0x364b04, - 0x364f02, 0x000000, 0x000000, 0x365103, 0x000000, 0x000000, 0x000000, 0x365401, - 0x000000, 0x000000, 0x000000, 0x365501, 0x000000, 0x000000, 0x000000, 0x365601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x365705, 0x365c01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x365d01, 0x000000, 0x365e01, 0x000000, 0x000000, - 0x365f01, 0x000000, 0x000000, 0x000000, 0x366001, 0x000000, 0x000000, 0x366102, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x366303, - 0x000000, 0x366605, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x366b01, - 0x000000, 0x366c01, 0x000000, 0x366d01, 0x000000, 0x000000, 0x366e09, 0x000000, - 0x36770a, 0x000000, 0x000000, 0x000000, 0x368101, 0x000000, 0x000000, 0x368201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x368301, 0x000000, 0x36840a, 0x000000, - 0x368e02, 0x369001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x369114, 0x36a501, - 0x000000, 0x36a603, 0x36a901, 0x000000, 0x36aa01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x36ab03, 0x000000, 0x000000, 0x36ae13, 0x000000, 0x000000, 0x000000, - 0x36c101, 0x000000, 0x36c202, 0x000000, 0x36c414, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x36d802, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x36da03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x36dd02, 0x000000, 0x000000, 0x000000, 0x36df01, 0x36e002, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x36e201, 0x000000, 0x000000, 0x36e304, 0x36e707, 0x000000, 0x36ee01, - 0x000000, 0x36ef02, 0x36f101, 0x000000, 0x000000, 0x36f201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x36f304, - 0x000000, 0x000000, 0x000000, 0x36f702, 0x000000, 0x36f901, 0x36fa01, 0x000000, - 0x36fb03, 0x36fe06, 0x370401, 0x370501, 0x370606, 0x370c02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x370e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x370f01, 0x371001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x371104, 0x000000, 0x371501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x371601, 0x000000, 0x000000, 0x000000, 0x371701, 0x000000, - 0x000000, 0x371802, 0x000000, 0x000000, 0x000000, 0x371a01, 0x371b01, 0x000000, - 0x000000, 0x371c08, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x372401, 0x000000, 0x000000, 0x000000, 0x000000, 0x372501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x372601, 0x000000, 0x000000, 0x372701, - 0x000000, 0x000000, 0x372801, 0x000000, 0x372905, 0x372e01, 0x000000, 0x372f08, - 0x373702, 0x000000, 0x000000, 0x373902, 0x000000, 0x373b01, 0x000000, 0x000000, - 0x000000, 0x373c01, 0x373d04, 0x000000, 0x000000, 0x000000, 0x000000, 0x374103, - 0x000000, 0x000000, 0x374402, 0x000000, 0x374601, 0x000000, 0x000000, 0x000000, - 0x374701, 0x000000, 0x000000, 0x374801, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x374902, 0x000000, 0x374b01, - 0x374c02, 0x000000, 0x000000, 0x374e02, 0x000000, 0x375001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x375101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x37520a, 0x000000, 0x000000, 0x375c01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x375d02, 0x000000, 0x000000, 0x375f02, 0x000000, - 0x000000, 0x376101, 0x000000, 0x000000, 0x376202, 0x376401, 0x000000, 0x000000, - 0x376503, 0x376802, 0x376a03, 0x000000, 0x376d07, 0x000000, 0x000000, 0x377401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x377501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x377601, 0x377704, 0x000000, 0x000000, 0x000000, - 0x377b04, 0x000000, 0x000000, 0x377f17, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x379603, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x379901, 0x000000, 0x000000, 0x379a05, 0x000000, 0x000000, 0x000000, - 0x379f01, 0x37a005, 0x000000, 0x000000, 0x000000, 0x37a501, 0x000000, 0x000000, - 0x000000, 0x37a603, 0x000000, 0x37a901, 0x000000, 0x000000, 0x37aa03, 0x000000, - 0x000000, 0x37ad02, 0x000000, 0x000000, 0x37af04, 0x000000, 0x000000, 0x000000, - 0x37b301, 0x000000, 0x37b401, 0x000000, 0x000000, 0x000000, 0x000000, 0x37b505, - 0x37ba02, 0x37bc08, 0x000000, 0x000000, 0x37c401, 0x000000, 0x000000, 0x37c501, - 0x000000, 0x37c603, 0x37c901, 0x000000, 0x000000, 0x000000, 0x37ca01, 0x000000, - 0x000000, 0x000000, 0x37cb01, 0x37cc01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x37cd02, 0x000000, 0x000000, 0x000000, 0x37cf01, 0x000000, 0x000000, 0x000000, - 0x37d001, 0x000000, 0x37d103, 0x000000, 0x37d408, 0x37dc01, 0x37dd02, 0x37df01, - 0x37e002, 0x000000, 0x37e201, 0x000000, 0x37e301, 0x37e402, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x37e601, 0x37e705, 0x000000, 0x000000, 0x37ec01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x37ed02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x37ef01, 0x000000, 0x000000, 0x000000, 0x000000, 0x37f001, - 0x37f104, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x37f503, 0x37f801, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x37f901, 0x37fa01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x37fb01, 0x000000, 0x000000, 0x000000, - 0x37fc04, 0x000000, 0x000000, 0x380003, 0x380301, 0x000000, 0x380401, 0x000000, - 0x000000, 0x380503, 0x000000, 0x380801, 0x380901, 0x000000, 0x000000, 0x380a0f, - 0x000000, 0x381902, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x381b01, - 0x381c06, 0x382202, 0x000000, 0x382401, 0x000000, 0x000000, 0x382505, 0x000000, - 0x382a15, 0x000000, 0x383f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x384004, 0x000000, 0x000000, 0x384401, 0x000000, 0x384502, 0x000000, 0x384701, - 0x384808, 0x000000, 0x000000, 0x000000, 0x385007, 0x000000, 0x000000, 0x385706, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x385d01, 0x000000, 0x000000, 0x000000, 0x385e04, 0x000000, 0x000000, - 0x386205, 0x000000, 0x386702, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x386901, 0x000000, 0x000000, 0x386a03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x386d08, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x387503, 0x000000, 0x387803, 0x000000, 0x387b06, 0x000000, - 0x000000, 0x388101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x388202, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x388408, 0x000000, - 0x388c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x388d04, - 0x389101, 0x000000, 0x000000, 0x000000, 0x389202, 0x000000, 0x000000, 0x000000, - 0x389401, 0x389501, 0x000000, 0x000000, 0x000000, 0x389601, 0x389701, 0x389803, - 0x389b01, 0x389c01, 0x389d01, 0x389e01, 0x389f01, 0x38a002, 0x000000, 0x38a202, - 0x000000, 0x38a401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x38a505, 0x000000, 0x38aa05, 0x38af01, - 0x38b001, 0x38b101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x38b20b, 0x38bd04, 0x38c107, - 0x000000, 0x38c807, 0x000000, 0x38cf03, 0x000000, 0x38d201, 0x000000, 0x000000, - 0x38d302, 0x38d501, 0x38d601, 0x000000, 0x000000, 0x38d701, 0x000000, 0x000000, - 0x000000, 0x38d801, 0x000000, 0x38d902, 0x000000, 0x000000, 0x000000, 0x000000, - 0x38db08, 0x38e301, 0x000000, 0x000000, 0x38e401, 0x38e502, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x38e701, 0x000000, 0x000000, 0x38e802, - 0x000000, 0x000000, 0x000000, 0x38ea05, 0x38ef01, 0x000000, 0x000000, 0x38f001, - 0x38f101, 0x38f201, 0x000000, 0x000000, 0x38f302, 0x000000, 0x000000, 0x000000, - 0x000000, 0x38f501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x38f604, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x38fa01, 0x000000, 0x38fb0c, 0x000000, - 0x000000, 0x390701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x390803, 0x000000, - 0x000000, 0x390b01, 0x390c06, 0x391202, 0x000000, 0x391402, 0x000000, 0x000000, - 0x000000, 0x000000, 0x39160c, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x392201, 0x000000, 0x392303, 0x000000, 0x000000, 0x000000, 0x000000, - 0x392602, 0x000000, 0x392801, 0x392901, 0x000000, 0x000000, 0x000000, 0x000000, - 0x392a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x392b03, 0x000000, 0x000000, 0x392e03, 0x393102, 0x000000, 0x000000, - 0x000000, 0x000000, 0x393301, 0x000000, 0x000000, 0x000000, 0x000000, 0x393401, - 0x393507, 0x000000, 0x393c01, 0x000000, 0x000000, 0x393d04, 0x000000, 0x394103, - 0x000000, 0x394404, 0x000000, 0x000000, 0x000000, 0x394803, 0x000000, 0x000000, - 0x000000, 0x394b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x394c01, 0x000000, 0x000000, 0x394d0a, 0x000000, - 0x000000, 0x000000, 0x395701, 0x000000, 0x000000, 0x395801, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x395901, 0x395a03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x395d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x395e0a, 0x396802, - 0x000000, 0x000000, 0x000000, 0x000000, 0x396a06, 0x397006, 0x397601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x397701, 0x000000, 0x000000, 0x000000, 0x397806, 0x000000, 0x000000, - 0x000000, 0x000000, 0x397e01, 0x000000, 0x397f01, 0x398005, 0x398502, 0x000000, - 0x000000, 0x000000, 0x398701, 0x398802, 0x000000, 0x000000, 0x000000, 0x000000, - 0x398a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x398c03, 0x398f01, 0x399003, 0x000000, 0x000000, 0x399302, 0x399502, 0x000000, - 0x000000, 0x000000, 0x399709, 0x39a002, 0x000000, 0x000000, 0x000000, 0x000000, - 0x39a203, 0x39a502, 0x39a701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x39a801, 0x39a903, 0x39ac06, 0x39b201, 0x000000, 0x39b301, 0x000000, 0x39b401, - 0x39b501, 0x000000, 0x000000, 0x39b601, 0x000000, 0x000000, 0x39b701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x39b802, 0x000000, 0x39ba03, 0x000000, 0x000000, - 0x39bd03, 0x000000, 0x000000, 0x39c001, 0x39c102, 0x39c307, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x39ca03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x39cd05, 0x000000, 0x39d201, 0x39d302, 0x39d503, 0x000000, - 0x000000, 0x000000, 0x39d801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x39d901, 0x000000, 0x000000, 0x000000, 0x000000, 0x39da01, 0x000000, - 0x39db03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x39de01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x39df02, - 0x000000, 0x39e101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x39e201, 0x000000, 0x39e303, 0x000000, 0x39e601, 0x000000, 0x000000, 0x000000, - 0x39e702, 0x000000, 0x000000, 0x39e901, 0x39ea03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x39ed03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x39f00c, - 0x000000, 0x39fc01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x39fd01, - 0x000000, 0x000000, 0x39fe18, 0x3a1602, 0x000000, 0x3a1803, 0x000000, 0x3a1b01, - 0x000000, 0x3a1c01, 0x3a1d02, 0x3a1f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3a2001, 0x000000, 0x3a210c, 0x3a2d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3a2e0c, 0x000000, 0x3a3a01, 0x000000, 0x3a3b03, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3a3e09, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3a470b, 0x000000, 0x000000, 0x3a5201, 0x000000, 0x3a5302, - 0x3a5501, 0x3a5601, 0x000000, 0x000000, 0x3a5709, 0x000000, 0x3a6002, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3a6201, 0x000000, - 0x000000, 0x3a6301, 0x3a6402, 0x3a6601, 0x000000, 0x000000, 0x3a670c, 0x000000, - 0x000000, 0x000000, 0x3a7309, 0x3a7c11, 0x000000, 0x000000, 0x3a8d05, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3a9203, 0x000000, 0x000000, 0x3a9503, 0x3a9801, - 0x000000, 0x000000, 0x3a9912, 0x3aab01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3aac01, 0x000000, 0x3aad01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3aae02, 0x000000, 0x000000, 0x3ab004, 0x3ab404, 0x3ab801, 0x000000, - 0x000000, 0x000000, 0x3ab901, 0x000000, 0x000000, 0x000000, 0x3aba08, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3ac201, 0x3ac301, 0x000000, 0x000000, - 0x000000, 0x3ac401, 0x3ac502, 0x3ac702, 0x3ac90f, 0x000000, 0x3ad801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3ad909, 0x000000, 0x000000, 0x3ae207, 0x3ae902, - 0x3aeb01, 0x000000, 0x000000, 0x3aec01, 0x3aed02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3aef01, 0x000000, 0x000000, - 0x000000, 0x3af005, 0x000000, 0x000000, 0x000000, 0x000000, 0x3af502, 0x000000, - 0x3af701, 0x000000, 0x3af803, 0x000000, 0x3afb02, 0x000000, 0x000000, 0x3afd03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3b0001, 0x000000, 0x000000, 0x3b0103, 0x000000, 0x3b0404, 0x3b0802, 0x000000, - 0x000000, 0x000000, 0x3b0a03, 0x000000, 0x3b0d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3b0e01, 0x000000, 0x000000, 0x3b0f03, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3b1206, 0x3b1801, 0x000000, 0x000000, - 0x000000, 0x3b1901, 0x000000, 0x3b1a03, 0x000000, 0x000000, 0x3b1d01, 0x000000, - 0x3b1e02, 0x000000, 0x000000, 0x000000, 0x3b2001, 0x3b2101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3b2201, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3b230e, 0x000000, 0x000000, 0x3b3108, 0x3b3907, 0x000000, - 0x3b4001, 0x3b4105, 0x000000, 0x3b4602, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3b4801, 0x000000, 0x3b4901, 0x3b4a04, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3b4e02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3b5002, 0x3b5207, 0x000000, 0x3b5901, 0x3b5a01, 0x3b5b08, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3b6302, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3b6501, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3b6606, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3b6c01, 0x000000, 0x3b6d12, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3b7f02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3b8104, 0x000000, 0x3b8502, 0x3b8708, 0x000000, 0x3b8f02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3b9101, 0x3b9201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3b9303, 0x000000, 0x000000, - 0x000000, 0x3b9607, 0x3b9d04, 0x3ba101, 0x000000, 0x000000, 0x000000, 0x3ba20a, - 0x000000, 0x000000, 0x000000, 0x3bac02, 0x3bae01, 0x000000, 0x000000, 0x000000, - 0x3baf01, 0x3bb001, 0x3bb103, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3bb404, 0x000000, 0x000000, 0x000000, 0x000000, 0x3bb802, 0x000000, 0x000000, - 0x3bba05, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3bbf01, 0x3bc007, 0x000000, 0x000000, 0x3bc702, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3bc901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3bca01, 0x3bcb01, 0x000000, 0x3bcc02, 0x000000, 0x000000, 0x3bce01, 0x000000, - 0x000000, 0x3bcf01, 0x3bd001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3bd103, - 0x3bd401, 0x000000, 0x000000, 0x000000, 0x3bd501, 0x3bd601, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3bd701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3bd803, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3bdb01, 0x000000, 0x3bdc01, 0x3bdd04, 0x000000, 0x3be104, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3be501, 0x000000, 0x3be606, 0x000000, 0x3bec01, - 0x000000, 0x000000, 0x3bed01, 0x000000, 0x000000, 0x3bee01, 0x3bef01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3bf002, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3bf201, 0x000000, 0x000000, 0x3bf301, 0x3bf401, 0x3bf506, 0x000000, 0x3bfb01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3bfc01, 0x000000, 0x3bfd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3bfe01, 0x3bff04, 0x3c0310, 0x000000, 0x3c130c, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3c1f01, 0x000000, 0x000000, 0x3c2002, - 0x000000, 0x3c2201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3c2301, 0x000000, 0x000000, 0x3c2401, 0x3c2501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3c2601, 0x000000, 0x3c2702, 0x000000, 0x000000, 0x000000, 0x3c2903, 0x000000, - 0x3c2c05, 0x3c3101, 0x000000, 0x000000, 0x000000, 0x000000, 0x3c3201, 0x000000, - 0x000000, 0x000000, 0x3c3304, 0x000000, 0x3c370c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3c4307, 0x000000, 0x3c4a03, 0x000000, - 0x000000, 0x3c4d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x3c4e01, 0x000000, - 0x000000, 0x000000, 0x3c4f01, 0x000000, 0x000000, 0x000000, 0x3c5008, 0x3c5802, - 0x3c5a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3c5b03, 0x000000, 0x000000, 0x3c5e01, 0x000000, 0x000000, 0x000000, 0x3c5f02, - 0x000000, 0x000000, 0x3c6102, 0x000000, 0x3c6301, 0x3c6401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3c6502, 0x3c6701, 0x000000, 0x3c6801, 0x000000, - 0x000000, 0x3c6901, 0x000000, 0x000000, 0x3c6a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3c6b0d, 0x000000, 0x000000, 0x000000, 0x000000, 0x3c7803, - 0x000000, 0x000000, 0x3c7b01, 0x000000, 0x3c7c01, 0x3c7d01, 0x000000, 0x000000, - 0x000000, 0x3c7e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3c7f04, - 0x000000, 0x3c8306, 0x3c8901, 0x000000, 0x000000, 0x000000, 0x3c8a01, 0x000000, - 0x000000, 0x000000, 0x3c8b01, 0x000000, 0x3c8c0b, 0x000000, 0x000000, 0x3c970a, - 0x000000, 0x3ca102, 0x000000, 0x000000, 0x000000, 0x3ca301, 0x000000, 0x3ca401, - 0x3ca501, 0x000000, 0x000000, 0x3ca612, 0x000000, 0x000000, 0x3cb801, 0x3cb902, - 0x000000, 0x3cbb04, 0x3cbf01, 0x000000, 0x3cc001, 0x000000, 0x000000, 0x000000, - 0x3cc101, 0x000000, 0x3cc202, 0x000000, 0x3cc408, 0x3ccc08, 0x3cd404, 0x3cd801, - 0x3cd904, 0x000000, 0x3cdd01, 0x000000, 0x3cde03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3ce102, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3ce301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3ce404, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3ce801, - 0x3ce901, 0x000000, 0x000000, 0x000000, 0x000000, 0x3cea01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3ceb01, 0x000000, 0x000000, 0x000000, - 0x3cec03, 0x000000, 0x000000, 0x000000, 0x000000, 0x3cef01, 0x000000, 0x000000, - 0x3cf001, 0x000000, 0x000000, 0x000000, 0x000000, 0x3cf101, 0x3cf201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3cf305, 0x000000, 0x3cf803, - 0x000000, 0x000000, 0x3cfb01, 0x000000, 0x000000, 0x3cfc02, 0x000000, 0x000000, - 0x3cfe02, 0x3d0001, 0x3d0102, 0x000000, 0x000000, 0x3d0310, 0x000000, 0x3d1301, - 0x3d140c, 0x000000, 0x000000, 0x3d2001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3d2101, 0x000000, 0x000000, 0x3d2205, 0x000000, - 0x000000, 0x000000, 0x3d2702, 0x000000, 0x3d2906, 0x000000, 0x000000, 0x000000, - 0x3d2f01, 0x000000, 0x000000, 0x3d3003, 0x000000, 0x000000, 0x3d3301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3d3405, 0x000000, 0x000000, 0x3d3901, - 0x000000, 0x000000, 0x3d3a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x3d3b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3d3c01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3d3d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3d3e02, 0x000000, - 0x000000, 0x3d4005, 0x000000, 0x3d4501, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3d4601, 0x000000, 0x3d4702, 0x000000, 0x000000, 0x3d4907, 0x000000, 0x000000, - 0x000000, 0x3d5002, 0x000000, 0x3d5201, 0x3d5301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3d5401, 0x000000, - 0x3d5501, 0x3d5601, 0x000000, 0x3d5701, 0x000000, 0x3d5802, 0x000000, 0x3d5a02, - 0x000000, 0x3d5c03, 0x000000, 0x3d5f04, 0x3d6301, 0x000000, 0x3d6401, 0x000000, - 0x3d6502, 0x3d6704, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3d6b01, - 0x000000, 0x000000, 0x000000, 0x3d6c01, 0x000000, 0x3d6d0e, 0x000000, 0x000000, - 0x000000, 0x3d7b05, 0x000000, 0x3d8001, 0x3d8101, 0x000000, 0x000000, 0x3d8201, - 0x000000, 0x3d8301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3d8403, - 0x000000, 0x000000, 0x000000, 0x3d8701, 0x000000, 0x3d8806, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3d8e06, 0x000000, 0x000000, 0x000000, - 0x3d9402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3d9604, 0x000000, 0x000000, 0x000000, 0x3d9a0d, 0x000000, - 0x000000, 0x3da701, 0x000000, 0x000000, 0x000000, 0x000000, 0x3da805, 0x3dad01, - 0x3dae01, 0x000000, 0x000000, 0x3daf0f, 0x000000, 0x000000, 0x000000, 0x3dbe04, - 0x000000, 0x3dc207, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3dc901, 0x000000, - 0x000000, 0x000000, 0x3dca02, 0x000000, 0x000000, 0x000000, 0x000000, 0x3dcc01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3dcd02, 0x3dcf03, 0x000000, - 0x000000, 0x3dd202, 0x000000, 0x000000, 0x3dd402, 0x3dd601, 0x000000, 0x3dd701, - 0x000000, 0x000000, 0x3dd802, 0x000000, 0x3dda03, 0x3ddd01, 0x3dde04, 0x3de201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3de301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3de406, 0x3dea05, 0x3def02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3df102, 0x3df301, 0x000000, 0x3df403, 0x000000, 0x000000, - 0x000000, 0x3df701, 0x000000, 0x000000, 0x000000, 0x000000, 0x3df801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3df906, 0x000000, 0x3dff04, - 0x000000, 0x000000, 0x3e0301, 0x000000, 0x000000, 0x000000, 0x000000, 0x3e0401, - 0x3e0505, 0x3e0a02, 0x3e0c03, 0x000000, 0x000000, 0x3e0f01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3e1001, 0x3e1102, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3e1301, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3e1401, 0x000000, 0x000000, - 0x3e1501, 0x000000, 0x000000, 0x000000, 0x3e1601, 0x000000, 0x3e1701, 0x3e1801, - 0x000000, 0x3e1903, 0x3e1c01, 0x3e1d09, 0x000000, 0x3e2604, 0x3e2a01, 0x000000, - 0x3e2b08, 0x000000, 0x3e330b, 0x3e3e02, 0x000000, 0x3e400d, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3e4d08, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3e5503, 0x000000, 0x000000, 0x000000, 0x3e5805, - 0x000000, 0x000000, 0x3e5d01, 0x000000, 0x3e5e0a, 0x000000, 0x000000, 0x3e6801, - 0x000000, 0x000000, 0x3e6903, 0x000000, 0x000000, 0x3e6c01, 0x3e6d01, 0x3e6e03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3e7104, - 0x000000, 0x000000, 0x000000, 0x3e7501, 0x000000, 0x3e7604, 0x3e7a03, 0x3e7d01, - 0x000000, 0x3e7e01, 0x000000, 0x3e7f08, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3e8701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3e8802, 0x3e8a02, 0x000000, 0x3e8c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3e8d01, 0x000000, 0x000000, 0x3e8e08, 0x3e9601, 0x3e9701, 0x3e9801, 0x000000, - 0x000000, 0x3e9904, 0x000000, 0x3e9d02, 0x000000, 0x3e9f01, 0x000000, 0x3ea002, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3ea201, 0x3ea301, - 0x3ea402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3ea602, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3ea802, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x3eaa01, 0x3eab03, 0x000000, 0x000000, 0x3eae01, 0x000000, 0x000000, - 0x000000, 0x3eaf01, 0x000000, 0x000000, 0x3eb001, 0x3eb102, 0x3eb303, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x3eb601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3eb702, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3eb902, 0x3ebb01, 0x3ebc02, - 0x000000, 0x000000, 0x3ebe01, 0x000000, 0x000000, 0x3ebf03, 0x000000, 0x000000, - 0x000000, 0x3ec201, 0x3ec301, 0x000000, 0x000000, 0x3ec409, 0x3ecd01, 0x000000, - 0x000000, 0x000000, 0x3ece01, 0x000000, 0x000000, 0x000000, 0x3ecf01, 0x000000, - 0x3ed007, 0x000000, 0x000000, 0x000000, 0x3ed701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3ed804, 0x3edc04, 0x000000, 0x3ee006, 0x000000, 0x3ee601, 0x000000, 0x3ee701, - 0x3ee897, 0x000000, 0x000000, 0x3f7f03, 0x000000, 0x000000, 0x3f8201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3f8301, 0x3f8401, - 0x000000, 0x000000, 0x3f8501, 0x000000, 0x000000, 0x3f8605, 0x000000, 0x3f8b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3f8c01, - 0x000000, 0x000000, 0x3f8d03, 0x3f9001, 0x000000, 0x3f9101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3f9201, 0x3f9301, 0x3f9403, 0x3f9701, 0x000000, 0x000000, - 0x000000, 0x3f9803, 0x3f9b02, 0x000000, 0x000000, 0x000000, 0x3f9d03, 0x000000, - 0x3fa001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3fa101, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fa201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fa301, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3fa402, 0x3fa602, 0x3fa805, 0x000000, 0x3fad02, 0x000000, 0x3faf01, 0x000000, - 0x3fb001, 0x000000, 0x3fb101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fb201, - 0x3fb304, 0x3fb701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x3fb802, 0x3fba03, 0x000000, 0x3fbd03, 0x000000, 0x000000, 0x000000, 0x3fc005, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fc507, - 0x3fcc03, 0x3fcf01, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fd003, 0x3fd305, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fd801, 0x000000, 0x000000, - 0x3fd901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3fda01, 0x000000, 0x000000, 0x3fdb01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3fdc01, 0x000000, 0x000000, 0x000000, 0x3fdd07, 0x000000, - 0x3fe402, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fe601, 0x3fe702, 0x000000, - 0x000000, 0x000000, 0x000000, 0x3fe901, 0x3fea01, 0x3feb01, 0x3fec01, 0x000000, - 0x000000, 0x3fed01, 0x000000, 0x000000, 0x000000, 0x000000, 0x3fee01, 0x3fef01, - 0x000000, 0x3ff005, 0x3ff502, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x3ff702, 0x000000, 0x000000, 0x000000, 0x000000, 0x3ff901, - 0x3ffa01, 0x000000, 0x3ffb01, 0x000000, 0x000000, 0x000000, 0x3ffc02, 0x3ffe07, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x400509, 0x000000, 0x000000, - 0x000000, 0x400e03, 0x000000, 0x401102, 0x401302, 0x401501, 0x401602, 0x000000, - 0x000000, 0x000000, 0x401802, 0x401a01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x401b01, 0x000000, 0x401c02, 0x401e08, 0x402601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x402704, 0x000000, 0x000000, 0x000000, 0x402b06, 0x403101, - 0x40320e, 0x404001, 0x000000, 0x404101, 0x404202, 0x000000, 0x000000, 0x000000, - 0x404401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x404502, 0x000000, 0x000000, 0x404702, 0x404901, 0x000000, 0x000000, 0x404a01, - 0x000000, 0x000000, 0x404b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x404d01, - 0x000000, 0x404e03, 0x000000, 0x000000, 0x40510d, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x405e01, 0x000000, 0x000000, 0x405f01, 0x000000, 0x406003, - 0x406301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x406404, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x406802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x406a07, 0x000000, 0x000000, 0x407105, 0x000000, 0x000000, 0x407602, 0x000000, - 0x407801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x407902, 0x000000, 0x000000, 0x000000, 0x407b01, 0x407c02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x407e02, - 0x408003, 0x000000, 0x000000, 0x000000, 0x408301, 0x000000, 0x408402, 0x000000, - 0x40860a, 0x000000, 0x409002, 0x000000, 0x000000, 0x409203, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x409507, 0x000000, 0x000000, 0x409c01, - 0x409d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x409e04, 0x40a201, 0x40a303, 0x000000, 0x000000, 0x000000, - 0x40a601, 0x000000, 0x40a701, 0x000000, 0x000000, 0x000000, 0x40a805, 0x000000, - 0x000000, 0x40ad04, 0x000000, 0x000000, 0x40b103, 0x40b405, 0x000000, 0x000000, - 0x000000, 0x40b903, 0x000000, 0x000000, 0x000000, 0x40bc0c, 0x40c801, 0x000000, - 0x000000, 0x000000, 0x40c901, 0x40ca08, 0x40d201, 0x000000, 0x40d302, 0x000000, - 0x40d502, 0x000000, 0x000000, 0x000000, 0x40d701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x40d802, 0x000000, 0x000000, 0x000000, 0x000000, 0x40da01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x40db08, - 0x40e301, 0x000000, 0x000000, 0x000000, 0x000000, 0x40e405, 0x000000, 0x40e916, - 0x000000, 0x000000, 0x000000, 0x40ff01, 0x000000, 0x000000, 0x410004, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x410401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x410505, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x410a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x410c01, 0x410d01, - 0x000000, 0x000000, 0x000000, 0x410e01, 0x000000, 0x000000, 0x410f0b, 0x411a04, - 0x000000, 0x000000, 0x000000, 0x000000, 0x411e01, 0x000000, 0x411f01, 0x000000, - 0x000000, 0x000000, 0x412003, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x41230a, 0x000000, 0x412d03, 0x000000, 0x000000, 0x000000, 0x000000, 0x413001, - 0x000000, 0x413102, 0x000000, 0x413301, 0x000000, 0x413401, 0x000000, 0x413502, - 0x000000, 0x413709, 0x000000, 0x000000, 0x000000, 0x414002, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x414202, 0x000000, 0x000000, 0x000000, - 0x414402, 0x000000, 0x000000, 0x000000, 0x000000, 0x414601, 0x000000, 0x414701, - 0x414802, 0x000000, 0x000000, 0x000000, 0x414a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x414b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x414d06, 0x415302, 0x000000, 0x000000, 0x415501, - 0x415601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x415701, 0x000000, 0x415801, 0x000000, 0x000000, 0x415901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x415a01, 0x000000, 0x000000, 0x000000, 0x415b02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x415d04, 0x416105, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x416602, 0x000000, - 0x000000, 0x416804, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x416c03, - 0x000000, 0x416f04, 0x000000, 0x000000, 0x000000, 0x000000, 0x417302, 0x000000, - 0x000000, 0x417501, 0x000000, 0x417601, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x417702, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x417907, 0x000000, 0x418001, 0x000000, 0x418102, 0x000000, 0x418305, - 0x000000, 0x000000, 0x000000, 0x418803, 0x418b01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x418c01, 0x000000, 0x000000, 0x418d02, 0x000000, - 0x418f01, 0x000000, 0x000000, 0x419002, 0x419205, 0x419702, 0x000000, 0x000000, - 0x419904, 0x000000, 0x000000, 0x000000, 0x419d0b, 0x000000, 0x000000, 0x41a805, - 0x000000, 0x000000, 0x41ad02, 0x41af01, 0x41b002, 0x000000, 0x41b201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x41b310, 0x000000, 0x000000, 0x41c303, 0x41c602, 0x000000, 0x000000, - 0x41c80a, 0x41d206, 0x41d801, 0x000000, 0x000000, 0x41d901, 0x41da01, 0x000000, - 0x000000, 0x41db02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x41dd01, 0x000000, 0x41de01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x41df0c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x41eb05, 0x000000, 0x41f001, 0x41f103, - 0x000000, 0x41f401, 0x41f501, 0x000000, 0x41f602, 0x000000, 0x000000, 0x000000, - 0x41f802, 0x41fa03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x41fd01, - 0x41fe02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x420001, 0x000000, 0x42010f, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x42100b, 0x000000, 0x000000, 0x421b01, - 0x421c01, 0x421d01, 0x000000, 0x000000, 0x421e0a, 0x000000, 0x000000, 0x000000, - 0x422801, 0x422902, 0x000000, 0x000000, 0x000000, 0x422b01, 0x422c01, 0x000000, - 0x000000, 0x000000, 0x422d03, 0x423001, 0x000000, 0x423103, 0x423401, 0x423502, - 0x000000, 0x000000, 0x000000, 0x423703, 0x423a0a, 0x000000, 0x000000, 0x000000, - 0x424404, 0x000000, 0x424806, 0x000000, 0x000000, 0x424e01, 0x000000, 0x000000, - 0x424f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x425103, 0x000000, 0x000000, - 0x425402, 0x000000, 0x425606, 0x425c01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x425d01, 0x000000, 0x000000, 0x425e02, 0x000000, 0x000000, 0x000000, 0x426001, - 0x000000, 0x426102, 0x426304, 0x426702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x426902, 0x426b02, 0x000000, 0x426d01, 0x000000, 0x000000, 0x426e01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x426f05, 0x427401, 0x427507, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x427c0a, 0x000000, 0x428602, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x428803, 0x428b02, 0x000000, 0x428d01, 0x000000, 0x000000, 0x428e06, 0x000000, - 0x429401, 0x000000, 0x000000, 0x429501, 0x429601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x429701, 0x000000, 0x429801, 0x429901, 0x000000, 0x429a02, 0x429c01, - 0x000000, 0x429d01, 0x000000, 0x429e08, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x42a601, 0x000000, 0x000000, 0x42a701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x42a803, 0x000000, 0x000000, 0x42ab04, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x42af01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x42b001, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x42b106, - 0x000000, 0x42b701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x42b802, - 0x42ba01, 0x42bb01, 0x000000, 0x000000, 0x000000, 0x42bc07, 0x000000, 0x000000, - 0x000000, 0x000000, 0x42c301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x42c402, 0x000000, 0x42c607, 0x42cd01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x42ce02, 0x000000, - 0x000000, 0x42d002, 0x000000, 0x42d207, 0x000000, 0x000000, 0x000000, 0x000000, - 0x42d901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x42da0a, 0x42e402, - 0x42e601, 0x000000, 0x000000, 0x42e701, 0x000000, 0x000000, 0x000000, 0x42e801, - 0x42e901, 0x000000, 0x42ea01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x42eb03, 0x42ee0a, 0x42f801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x42f901, 0x000000, 0x42fa01, 0x000000, 0x42fb01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x42fc01, 0x42fd01, - 0x000000, 0x42fe02, 0x430002, 0x000000, 0x430208, 0x000000, 0x000000, 0x000000, - 0x000000, 0x430a08, 0x431203, 0x000000, 0x431505, 0x000000, 0x000000, 0x000000, - 0x000000, 0x431a03, 0x000000, 0x000000, 0x431d03, 0x432001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x432102, 0x000000, 0x000000, 0x432301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x432402, 0x432603, - 0x000000, 0x432901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x432a01, 0x432b07, 0x433201, 0x433301, 0x000000, - 0x000000, 0x43340c, 0x434001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x434101, 0x000000, 0x000000, 0x000000, 0x000000, 0x434201, 0x000000, 0x434301, - 0x000000, 0x434409, 0x000000, 0x000000, 0x434d06, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x435302, 0x000000, 0x435501, 0x435602, 0x000000, 0x000000, - 0x000000, 0x435803, 0x435b01, 0x000000, 0x000000, 0x435c03, 0x000000, 0x435f03, - 0x000000, 0x000000, 0x436201, 0x000000, 0x43630c, 0x000000, 0x000000, 0x436f02, - 0x000000, 0x437102, 0x000000, 0x000000, 0x000000, 0x437303, 0x000000, 0x000000, - 0x000000, 0x000000, 0x437601, 0x437701, 0x000000, 0x437816, 0x000000, 0x438e07, - 0x000000, 0x439503, 0x000000, 0x439801, 0x000000, 0x000000, 0x000000, 0x439902, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x439b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x439c01, 0x000000, 0x439d03, 0x43a001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x43a101, 0x43a202, 0x000000, 0x43a401, 0x000000, 0x000000, 0x000000, 0x000000, - 0x43a502, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x43a70e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x43b50a, - 0x000000, 0x43bf04, 0x43c302, 0x000000, 0x000000, 0x000000, 0x43c501, 0x43c602, - 0x000000, 0x000000, 0x43c801, 0x000000, 0x000000, 0x43c901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x43ca01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x43cb01, 0x43cc02, - 0x000000, 0x000000, 0x43ce0c, 0x000000, 0x000000, 0x000000, 0x43da01, 0x000000, - 0x43db15, 0x000000, 0x000000, 0x000000, 0x43f001, 0x000000, 0x000000, 0x000000, - 0x000000, 0x43f101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x43f204, - 0x000000, 0x000000, 0x43f602, 0x000000, 0x000000, 0x000000, 0x43f810, 0x440801, - 0x000000, 0x440901, 0x000000, 0x440a03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x440d01, 0x440e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x440f04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x441301, 0x441404, - 0x441804, 0x000000, 0x000000, 0x000000, 0x441c04, 0x000000, 0x000000, 0x442001, - 0x000000, 0x000000, 0x44210b, 0x000000, 0x000000, 0x442c01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x442d02, 0x442f06, - 0x443504, 0x000000, 0x000000, 0x443902, 0x000000, 0x000000, 0x443b01, 0x000000, - 0x000000, 0x443c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x443d05, 0x000000, - 0x444204, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x444604, 0x000000, - 0x000000, 0x000000, 0x444a01, 0x444b01, 0x000000, 0x444c01, 0x000000, 0x444d05, - 0x000000, 0x445201, 0x445301, 0x000000, 0x000000, 0x445401, 0x000000, 0x445501, - 0x445601, 0x000000, 0x000000, 0x000000, 0x445701, 0x000000, 0x000000, 0x000000, - 0x445805, 0x000000, 0x000000, 0x000000, 0x445d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x445e02, 0x000000, 0x446002, 0x000000, 0x446205, 0x000000, - 0x000000, 0x000000, 0x446701, 0x446801, 0x446901, 0x000000, 0x000000, 0x446a04, - 0x000000, 0x000000, 0x000000, 0x446e03, 0x000000, 0x000000, 0x000000, 0x447101, - 0x000000, 0x000000, 0x447204, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x447601, 0x000000, 0x000000, 0x000000, - 0x447706, 0x000000, 0x000000, 0x000000, 0x447d02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x447f03, 0x000000, 0x000000, 0x000000, 0x448201, 0x000000, 0x448303, - 0x448606, 0x448c07, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x449302, 0x000000, 0x000000, 0x449501, 0x000000, 0x449601, - 0x000000, 0x000000, 0x449703, 0x000000, 0x000000, 0x000000, 0x449a01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x449b01, 0x000000, 0x000000, - 0x449c01, 0x449d01, 0x000000, 0x449e02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x44a001, 0x44a105, 0x000000, 0x44a606, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x44ac01, 0x000000, 0x000000, 0x000000, 0x44ad01, 0x44ae03, 0x000000, - 0x44b101, 0x000000, 0x000000, 0x44b201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x44b308, 0x000000, 0x000000, 0x000000, 0x000000, - 0x44bb01, 0x44bc01, 0x000000, 0x000000, 0x44bd02, 0x44bf01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x44c003, 0x000000, 0x000000, 0x000000, - 0x44c301, 0x000000, 0x000000, 0x44c402, 0x000000, 0x000000, 0x44c605, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x44cb06, 0x000000, 0x000000, 0x44d103, 0x000000, 0x44d401, - 0x44d501, 0x000000, 0x000000, 0x000000, 0x000000, 0x44d601, 0x000000, 0x000000, - 0x44d706, 0x000000, 0x000000, 0x44dd01, 0x000000, 0x000000, 0x44de02, 0x44e001, - 0x44e101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x44e201, 0x000000, 0x000000, 0x44e301, 0x000000, 0x000000, 0x44e401, 0x000000, - 0x44e502, 0x000000, 0x44e701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x44e802, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x44ea02, 0x000000, 0x000000, 0x000000, 0x000000, 0x44ec01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x44ed10, 0x44fd01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x44fe01, 0x44ff01, 0x000000, 0x450001, 0x450103, 0x000000, 0x000000, - 0x000000, 0x450402, 0x450602, 0x450806, 0x000000, 0x450e05, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x451302, 0x000000, 0x000000, - 0x000000, 0x45151c, 0x000000, 0x453106, 0x000000, 0x000000, 0x453702, 0x453904, - 0x453d02, 0x000000, 0x000000, 0x453f01, 0x000000, 0x000000, 0x454003, 0x000000, - 0x000000, 0x000000, 0x454301, 0x000000, 0x454401, 0x000000, 0x454501, 0x000000, - 0x000000, 0x000000, 0x454602, 0x000000, 0x000000, 0x000000, 0x000000, 0x454802, - 0x000000, 0x000000, 0x000000, 0x000000, 0x454a02, 0x000000, 0x000000, 0x000000, - 0x454c01, 0x454d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x454e01, 0x454f01, - 0x455004, 0x000000, 0x000000, 0x000000, 0x455401, 0x000000, 0x455501, 0x455601, - 0x455702, 0x455907, 0x456001, 0x456101, 0x000000, 0x456203, 0x000000, 0x456506, - 0x000000, 0x456b03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x456e01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x456f01, - 0x000000, 0x000000, 0x457001, 0x000000, 0x000000, 0x457101, 0x457203, 0x000000, - 0x457501, 0x457601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x457725, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x459c01, 0x000000, 0x000000, 0x000000, - 0x459d01, 0x000000, 0x000000, 0x000000, 0x459e02, 0x45a001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x45a105, 0x45a601, 0x45a701, 0x45a80c, 0x000000, - 0x000000, 0x45b401, 0x000000, 0x000000, 0x000000, 0x45b502, 0x000000, 0x000000, - 0x000000, 0x45b702, 0x45b904, 0x45bd01, 0x000000, 0x45be04, 0x000000, 0x000000, - 0x45c201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x45c301, - 0x45c409, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x45cd01, 0x45ce01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x45cf07, 0x000000, 0x000000, 0x000000, - 0x45d602, 0x000000, 0x000000, 0x000000, 0x45d802, 0x45da01, 0x000000, 0x45db01, - 0x000000, 0x45dc01, 0x000000, 0x000000, 0x45dd01, 0x000000, 0x000000, 0x45de04, - 0x45e23e, 0x462001, 0x000000, 0x000000, 0x000000, 0x000000, 0x462101, 0x000000, - 0x000000, 0x46220d, 0x000000, 0x462f04, 0x000000, 0x000000, 0x463302, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x463502, 0x000000, 0x000000, 0x000000, - 0x000000, 0x463702, 0x463905, 0x000000, 0x000000, 0x463e14, 0x000000, 0x000000, - 0x000000, 0x000000, 0x465204, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x465602, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x465801, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x465902, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x465b02, 0x000000, 0x000000, - 0x465d01, 0x000000, 0x000000, 0x000000, 0x465e01, 0x000000, 0x000000, 0x000000, - 0x465f01, 0x000000, 0x46600d, 0x000000, 0x000000, 0x000000, 0x466d01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x466e05, 0x000000, - 0x000000, 0x467301, 0x467401, 0x46750b, 0x000000, 0x000000, 0x468007, 0x468701, - 0x000000, 0x468801, 0x468901, 0x000000, 0x468a03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x468d02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x468f03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x469201, 0x000000, 0x000000, 0x000000, 0x469307, - 0x000000, 0x000000, 0x469a03, 0x000000, 0x000000, 0x469d0f, 0x46ac01, 0x46ad03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x46b001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x46b102, 0x46b308, - 0x000000, 0x000000, 0x000000, 0x46bb03, 0x000000, 0x46be01, 0x000000, 0x000000, - 0x46bf01, 0x000000, 0x46c002, 0x000000, 0x000000, 0x46c201, 0x46c302, 0x000000, - 0x46c503, 0x000000, 0x000000, 0x000000, 0x000000, 0x46c802, 0x000000, 0x000000, - 0x000000, 0x000000, 0x46ca01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x46cb01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x46cc01, 0x46cd01, 0x000000, 0x46ce01, 0x000000, 0x000000, 0x46cf07, - 0x46d60f, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x46e501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x46e601, 0x46e704, 0x000000, 0x000000, 0x46eb08, 0x46f302, 0x000000, 0x46f505, - 0x46fa01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x46fb0b, 0x470601, 0x000000, 0x470701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x470802, 0x000000, 0x470a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x470b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x470c01, 0x000000, 0x000000, 0x470d01, 0x000000, - 0x000000, 0x470e01, 0x470f02, 0x000000, 0x000000, 0x471101, 0x471201, 0x471301, - 0x000000, 0x000000, 0x000000, 0x471406, 0x000000, 0x471a01, 0x000000, 0x471b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x471c02, 0x000000, 0x000000, 0x000000, - 0x471e01, 0x471f06, 0x000000, 0x000000, 0x472501, 0x000000, 0x000000, 0x000000, - 0x472601, 0x472704, 0x000000, 0x000000, 0x000000, 0x472b02, 0x000000, 0x000000, - 0x472d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x472e02, 0x000000, - 0x473006, 0x473603, 0x000000, 0x473901, 0x000000, 0x473a05, 0x000000, 0x000000, - 0x000000, 0x000000, 0x473f01, 0x000000, 0x000000, 0x474001, 0x474101, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x474208, 0x474a02, 0x000000, 0x474c01, - 0x000000, 0x474d0c, 0x000000, 0x000000, 0x000000, 0x475903, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x475c01, 0x475d01, 0x475e02, 0x476008, - 0x476801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x476901, 0x000000, 0x476a01, - 0x000000, 0x476b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x476c02, 0x000000, 0x476e02, 0x477001, 0x000000, 0x000000, 0x477112, 0x000000, - 0x000000, 0x000000, 0x000000, 0x478302, 0x000000, 0x000000, 0x000000, 0x478501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x478601, 0x000000, 0x478701, 0x478802, - 0x000000, 0x478a01, 0x000000, 0x000000, 0x478b04, 0x478f0b, 0x000000, 0x479a01, - 0x000000, 0x479b04, 0x000000, 0x479f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x47a003, 0x000000, 0x47a301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x47a403, 0x000000, 0x47a701, 0x47a801, - 0x000000, 0x47a902, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x47ab03, - 0x000000, 0x47ae05, 0x000000, 0x000000, 0x47b301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x47b40a, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x47be01, 0x000000, 0x000000, 0x000000, 0x47bf01, 0x000000, 0x47c001, - 0x000000, 0x47c101, 0x47c242, 0x000000, 0x000000, 0x000000, 0x480407, 0x480b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x480c05, 0x481101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x481201, 0x000000, 0x481301, 0x000000, - 0x000000, 0x000000, 0x481402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x481601, 0x000000, 0x000000, 0x000000, 0x481701, 0x000000, 0x481803, 0x000000, - 0x481b01, 0x000000, 0x000000, 0x481c05, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x482101, 0x000000, 0x000000, 0x482206, - 0x000000, 0x000000, 0x000000, 0x000000, 0x482803, 0x000000, 0x000000, 0x000000, - 0x482b01, 0x000000, 0x482c01, 0x000000, 0x000000, 0x000000, 0x482d01, 0x482e01, - 0x482f05, 0x000000, 0x000000, 0x000000, 0x483401, 0x000000, 0x000000, 0x000000, - 0x483502, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x483702, - 0x483901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x483a04, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x483e01, 0x000000, 0x000000, - 0x483f09, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x484810, - 0x000000, 0x485801, 0x000000, 0x485901, 0x485a02, 0x000000, 0x000000, 0x000000, - 0x485c01, 0x485d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x485e05, - 0x000000, 0x000000, 0x000000, 0x000000, 0x486301, 0x486401, 0x000000, 0x486501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x486602, 0x486801, - 0x000000, 0x486902, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x486b01, 0x486c01, 0x486d01, 0x486e03, 0x000000, 0x487107, 0x000000, 0x000000, - 0x000000, 0x000000, 0x487803, 0x487b02, 0x000000, 0x000000, 0x487d0b, 0x000000, - 0x000000, 0x488802, 0x488a01, 0x000000, 0x000000, 0x000000, 0x488b02, 0x000000, - 0x488d0c, 0x000000, 0x000000, 0x000000, 0x000000, 0x489902, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x489b01, 0x000000, 0x000000, 0x489c01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x489d02, 0x000000, 0x489f02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x48a102, 0x000000, 0x000000, 0x000000, - 0x48a301, 0x000000, 0x000000, 0x48a401, 0x48a503, 0x000000, 0x000000, 0x48a801, - 0x000000, 0x000000, 0x000000, 0x000000, 0x48a901, 0x000000, 0x000000, 0x000000, - 0x48aa01, 0x48ab01, 0x000000, 0x48ac03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x48af03, 0x000000, 0x000000, 0x48b201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x48b304, 0x000000, 0x48b701, - 0x000000, 0x000000, 0x48b802, 0x48ba09, 0x000000, 0x000000, 0x000000, 0x48c301, - 0x000000, 0x000000, 0x000000, 0x48c401, 0x000000, 0x000000, 0x48c501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x48c601, 0x000000, - 0x48c703, 0x000000, 0x000000, 0x48ca02, 0x48cc04, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x48d002, 0x48d205, 0x48d704, 0x000000, 0x48db01, - 0x000000, 0x000000, 0x48dc02, 0x000000, 0x48de01, 0x48df01, 0x000000, 0x000000, - 0x000000, 0x48e009, 0x000000, 0x000000, 0x48e908, 0x48f103, 0x000000, 0x000000, - 0x000000, 0x000000, 0x48f407, 0x48fb01, 0x48fc01, 0x000000, 0x000000, 0x48fd04, - 0x000000, 0x000000, 0x490105, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x490601, 0x490701, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x490803, 0x000000, - 0x000000, 0x490b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x490d06, 0x000000, 0x491301, 0x000000, 0x000000, 0x491401, 0x000000, 0x491501, - 0x000000, 0x000000, 0x491603, 0x000000, 0x491904, 0x000000, 0x000000, 0x491d01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x491e03, 0x000000, - 0x000000, 0x492104, 0x000000, 0x492505, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x492a08, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x493202, - 0x493401, 0x000000, 0x000000, 0x493501, 0x000000, 0x493601, 0x493702, 0x493902, - 0x493b04, 0x000000, 0x493f01, 0x494001, 0x000000, 0x000000, 0x494109, 0x494a02, - 0x000000, 0x494c01, 0x000000, 0x000000, 0x000000, 0x494d03, 0x000000, 0x000000, - 0x000000, 0x495004, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x495405, - 0x495901, 0x495a02, 0x495c03, 0x000000, 0x000000, 0x495f03, 0x496201, 0x000000, - 0x496305, 0x000000, 0x496802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x496a05, 0x000000, 0x000000, 0x496f01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x497003, 0x497302, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x497505, 0x000000, 0x000000, 0x000000, 0x497a04, - 0x497e01, 0x497f09, 0x000000, 0x000000, 0x000000, 0x000000, 0x498802, 0x000000, - 0x000000, 0x498a02, 0x498c01, 0x000000, 0x000000, 0x498d01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x498e01, 0x000000, 0x000000, 0x498f01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x499007, 0x000000, 0x499701, 0x000000, 0x499801, 0x000000, - 0x499901, 0x000000, 0x000000, 0x000000, 0x000000, 0x499a01, 0x000000, 0x499b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x499c01, 0x499d02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x499f05, 0x000000, 0x000000, 0x000000, 0x49a407, - 0x49ab02, 0x000000, 0x000000, 0x49ad04, 0x49b101, 0x000000, 0x000000, 0x49b202, - 0x49b405, 0x000000, 0x000000, 0x49b907, 0x49c00a, 0x49ca01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x49cb03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x49ce01, 0x000000, 0x49cf04, 0x000000, 0x000000, 0x000000, 0x49d301, - 0x000000, 0x000000, 0x000000, 0x49d401, 0x000000, 0x49d50d, 0x49e201, 0x49e303, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x49e601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x49e701, 0x000000, - 0x000000, 0x000000, 0x49e808, 0x49f001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x49f102, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x49f302, - 0x000000, 0x000000, 0x000000, 0x000000, 0x49f508, 0x49fd09, 0x000000, 0x000000, - 0x000000, 0x4a0606, 0x4a0c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x4a0d01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4a0e01, 0x4a0f01, 0x000000, 0x000000, - 0x4a1001, 0x000000, 0x000000, 0x4a1101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4a1201, 0x4a1301, 0x000000, 0x000000, 0x000000, 0x4a1402, 0x000000, 0x4a1601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4a1701, 0x000000, 0x4a1801, 0x000000, 0x4a1903, 0x4a1c03, 0x4a1f01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4a2004, 0x000000, - 0x000000, 0x000000, 0x4a2409, 0x000000, 0x000000, 0x000000, 0x4a2d08, 0x000000, - 0x4a3501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4a3604, 0x4a3a02, - 0x000000, 0x000000, 0x4a3c01, 0x000000, 0x000000, 0x000000, 0x4a3d02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4a3f03, 0x4a4207, 0x000000, - 0x000000, 0x4a4901, 0x000000, 0x000000, 0x4a4a05, 0x000000, 0x4a4f07, 0x000000, - 0x4a5601, 0x4a5707, 0x000000, 0x4a5e02, 0x000000, 0x4a6009, 0x4a6901, 0x000000, - 0x000000, 0x000000, 0x4a6a04, 0x4a6e01, 0x4a6f03, 0x000000, 0x4a7204, 0x4a7601, - 0x4a7718, 0x000000, 0x000000, 0x4a8f05, 0x000000, 0x000000, 0x000000, 0x4a9401, - 0x4a9501, 0x000000, 0x000000, 0x000000, 0x000000, 0x4a9601, 0x000000, 0x4a9701, - 0x000000, 0x000000, 0x000000, 0x4a9801, 0x000000, 0x000000, 0x4a9901, 0x000000, - 0x4a9a01, 0x4a9b03, 0x000000, 0x000000, 0x4a9e08, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4aa601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4aa704, 0x000000, 0x000000, 0x000000, 0x4aab01, - 0x4aac04, 0x000000, 0x4ab001, 0x4ab101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4ab201, 0x4ab301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4ab401, 0x4ab502, 0x000000, 0x4ab701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4ab801, 0x4ab901, 0x4aba01, 0x4abb0e, 0x000000, 0x000000, 0x4ac901, - 0x000000, 0x000000, 0x4aca09, 0x4ad302, 0x4ad518, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4aed03, 0x4af002, 0x000000, - 0x000000, 0x4af206, 0x000000, 0x000000, 0x000000, 0x4af801, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4af903, 0x000000, 0x4afc01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4afd04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4b0101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4b0202, 0x000000, - 0x4b0405, 0x4b0903, 0x000000, 0x000000, 0x000000, 0x4b0c05, 0x000000, 0x4b1105, - 0x000000, 0x000000, 0x000000, 0x4b1606, 0x4b1c01, 0x000000, 0x000000, 0x4b1d01, - 0x000000, 0x000000, 0x4b1e01, 0x4b1f01, 0x4b2006, 0x4b2601, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4b2708, 0x000000, 0x4b2f01, 0x4b3005, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4b3502, 0x000000, 0x4b3702, 0x4b3901, 0x4b3a02, - 0x000000, 0x000000, 0x4b3c05, 0x000000, 0x4b4106, 0x000000, 0x000000, 0x000000, - 0x4b4706, 0x000000, 0x4b4d03, 0x4b5001, 0x4b5101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4b5201, 0x000000, 0x000000, 0x4b5301, 0x000000, 0x000000, 0x4b5402, - 0x4b5601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4b5703, - 0x4b5a01, 0x000000, 0x4b5b05, 0x000000, 0x000000, 0x000000, 0x000000, 0x4b6001, - 0x000000, 0x4b6104, 0x000000, 0x000000, 0x000000, 0x000000, 0x4b6501, 0x4b6601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4b6701, 0x4b6809, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4b7101, 0x000000, 0x000000, 0x4b7206, 0x000000, 0x000000, - 0x4b7801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4b790b, 0x000000, 0x4b8401, 0x000000, 0x4b8501, 0x4b8601, 0x000000, 0x4b8701, - 0x4b8809, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4b9107, 0x000000, 0x000000, 0x4b9801, - 0x000000, 0x4b9908, 0x4ba104, 0x000000, 0x4ba501, 0x4ba602, 0x000000, 0x000000, - 0x4ba806, 0x000000, 0x4bae02, 0x000000, 0x4bb003, 0x4bb308, 0x4bbb01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4bbc01, 0x4bbd02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4bbf0a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4bc90a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4bd301, 0x000000, 0x000000, 0x4bd409, 0x4bdd02, 0x000000, 0x4bdf01, - 0x000000, 0x000000, 0x000000, 0x4be003, 0x000000, 0x000000, 0x000000, 0x4be303, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4be601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4be710, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4bf70b, 0x4c0202, 0x000000, 0x000000, 0x4c0401, 0x000000, 0x4c0501, 0x4c0604, - 0x000000, 0x4c0a07, 0x4c1108, 0x4c190c, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4c2507, 0x000000, 0x000000, 0x000000, 0x000000, 0x4c2c01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4c2d02, 0x4c2f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4c3001, 0x000000, 0x000000, 0x000000, 0x000000, 0x4c3101, 0x4c3201, - 0x000000, 0x000000, 0x000000, 0x4c3303, 0x000000, 0x000000, 0x4c3603, 0x000000, - 0x000000, 0x4c3901, 0x000000, 0x4c3a01, 0x000000, 0x4c3b02, 0x000000, 0x4c3d0c, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4c4907, 0x000000, 0x4c5001, 0x4c5105, 0x000000, 0x4c5603, - 0x4c5901, 0x000000, 0x4c5a04, 0x4c5e01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4c5f01, 0x4c6002, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4c6201, 0x000000, 0x000000, 0x4c6304, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4c6701, 0x4c6801, 0x000000, 0x000000, 0x4c6903, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4c6c02, 0x4c6e01, 0x000000, 0x4c6f01, 0x000000, - 0x000000, 0x000000, 0x4c7001, 0x4c7108, 0x000000, 0x4c7902, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4c7b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x4c7c03, - 0x4c7f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4c8001, 0x4c8101, 0x000000, 0x000000, 0x000000, 0x4c8201, 0x4c8301, 0x000000, - 0x4c8403, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4c8701, - 0x4c8806, 0x4c8e01, 0x000000, 0x4c8f04, 0x000000, 0x000000, 0x4c9301, 0x000000, - 0x000000, 0x4c9401, 0x000000, 0x4c9502, 0x4c9702, 0x4c9903, 0x000000, 0x4c9c01, - 0x4c9d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4c9f01, - 0x4ca001, 0x000000, 0x000000, 0x4ca101, 0x000000, 0x000000, 0x4ca201, 0x000000, - 0x000000, 0x000000, 0x4ca301, 0x4ca40a, 0x4cae01, 0x000000, 0x000000, 0x4caf02, - 0x4cb102, 0x4cb307, 0x000000, 0x4cba01, 0x000000, 0x000000, 0x4cbb0e, 0x4cc901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4cca10, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4cda02, 0x4cdc02, 0x000000, 0x000000, 0x000000, 0x000000, 0x4cde04, 0x000000, - 0x4ce201, 0x000000, 0x4ce303, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4ce601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4ce701, 0x4ce803, 0x4ceb03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4cee02, 0x4cf001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4cf101, 0x4cf201, 0x000000, 0x000000, 0x4cf302, - 0x000000, 0x4cf501, 0x000000, 0x000000, 0x4cf601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4cf704, 0x4cfb02, 0x000000, 0x4cfd03, 0x000000, - 0x4d0002, 0x000000, 0x000000, 0x000000, 0x4d0203, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4d0502, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4d0702, 0x000000, 0x4d0903, 0x000000, 0x000000, 0x4d0c05, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4d1101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4d1203, 0x000000, 0x4d1501, 0x4d1604, 0x4d1a01, 0x000000, - 0x000000, 0x4d1b01, 0x000000, 0x4d1c05, 0x000000, 0x000000, 0x000000, 0x4d2101, - 0x000000, 0x000000, 0x4d2218, 0x000000, 0x4d3a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4d3b03, 0x4d3e03, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4d4101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4d4201, 0x000000, 0x000000, 0x4d430a, 0x4d4d01, - 0x000000, 0x4d4e01, 0x000000, 0x000000, 0x4d4f01, 0x000000, 0x000000, 0x000000, - 0x4d5003, 0x000000, 0x000000, 0x4d5301, 0x4d5402, 0x000000, 0x000000, 0x000000, - 0x4d5602, 0x000000, 0x000000, 0x000000, 0x4d5802, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4d5a01, 0x000000, 0x4d5b01, 0x000000, 0x4d5c02, 0x000000, 0x000000, - 0x4d5e01, 0x000000, 0x000000, 0x000000, 0x4d5f01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4d6007, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4d6705, 0x000000, 0x4d6c01, - 0x000000, 0x4d6d08, 0x4d7501, 0x4d7602, 0x000000, 0x000000, 0x000000, 0x4d7805, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4d7d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x4d7e04, - 0x000000, 0x000000, 0x4d8202, 0x000000, 0x000000, 0x000000, 0x000000, 0x4d8402, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4d8601, 0x000000, 0x000000, 0x4d8701, - 0x000000, 0x4d8802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x4d8a03, 0x000000, 0x000000, 0x000000, 0x4d8d0a, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4d9701, - 0x000000, 0x4d9801, 0x000000, 0x4d9902, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4d9b02, 0x000000, 0x000000, 0x4d9d01, 0x000000, - 0x000000, 0x4d9e01, 0x000000, 0x000000, 0x4d9f01, 0x4da002, 0x4da205, 0x000000, - 0x4da702, 0x4da902, 0x4dab01, 0x000000, 0x000000, 0x4dac01, 0x4dad02, 0x4daf02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4db102, 0x4db301, 0x4db401, 0x000000, - 0x000000, 0x4db501, 0x000000, 0x000000, 0x000000, 0x4db601, 0x000000, 0x4db706, - 0x4dbd01, 0x000000, 0x000000, 0x4dbe02, 0x000000, 0x000000, 0x4dc001, 0x000000, - 0x000000, 0x000000, 0x4dc102, 0x000000, 0x4dc301, 0x000000, 0x4dc402, 0x4dc602, - 0x000000, 0x000000, 0x000000, 0x4dc807, 0x4dcf12, 0x000000, 0x4de101, 0x4de201, - 0x4de302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4de501, 0x000000, 0x4de602, 0x000000, 0x4de806, 0x000000, 0x000000, 0x000000, - 0x4dee01, 0x4def02, 0x4df106, 0x4df705, 0x000000, 0x4dfc06, 0x000000, 0x4e0204, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4e0601, 0x000000, 0x4e070e, - 0x000000, 0x4e1501, 0x000000, 0x000000, 0x4e1602, 0x000000, 0x4e1802, 0x000000, - 0x4e1a03, 0x000000, 0x000000, 0x000000, 0x4e1d01, 0x4e1e02, 0x4e2002, 0x000000, - 0x4e2202, 0x4e2406, 0x000000, 0x4e2a01, 0x4e2b02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4e2d06, 0x000000, 0x4e3301, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4e3402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4e3601, 0x4e3701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4e3802, - 0x000000, 0x000000, 0x4e3a02, 0x000000, 0x000000, 0x4e3c03, 0x000000, 0x000000, - 0x4e3f0c, 0x000000, 0x000000, 0x000000, 0x000000, 0x4e4b01, 0x4e4c03, 0x000000, - 0x4e4f01, 0x4e5001, 0x000000, 0x000000, 0x4e5102, 0x000000, 0x4e5302, 0x000000, - 0x000000, 0x4e5503, 0x4e5802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4e5a02, 0x000000, 0x000000, 0x4e5c01, - 0x000000, 0x4e5d02, 0x000000, 0x4e5f02, 0x000000, 0x000000, 0x4e6101, 0x000000, - 0x000000, 0x4e6202, 0x000000, 0x000000, 0x000000, 0x000000, 0x4e6401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4e6501, 0x4e6601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4e6701, 0x000000, 0x000000, 0x4e6801, 0x4e6901, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4e6a03, 0x000000, 0x4e6d02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4e6f01, 0x000000, 0x4e700e, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4e7e03, 0x000000, 0x4e8109, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4e8a05, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4e8f01, - 0x000000, 0x000000, 0x000000, 0x4e9001, 0x4e9101, 0x000000, 0x000000, 0x000000, - 0x4e9208, 0x4e9a01, 0x4e9b07, 0x000000, 0x000000, 0x000000, 0x4ea202, 0x4ea401, - 0x4ea502, 0x000000, 0x000000, 0x000000, 0x000000, 0x4ea701, 0x000000, 0x000000, - 0x4ea801, 0x4ea90c, 0x4eb502, 0x000000, 0x4eb701, 0x000000, 0x000000, 0x000000, - 0x4eb801, 0x000000, 0x000000, 0x4eb904, 0x000000, 0x000000, 0x000000, 0x4ebd05, - 0x000000, 0x4ec201, 0x000000, 0x000000, 0x4ec302, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4ec502, 0x000000, 0x4ec702, 0x000000, - 0x4ec905, 0x000000, 0x4ece03, 0x000000, 0x000000, 0x4ed12d, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4efe01, 0x000000, 0x000000, 0x000000, 0x000000, 0x4eff02, - 0x000000, 0x4f0104, 0x000000, 0x000000, 0x4f0501, 0x000000, 0x4f0601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4f0701, 0x000000, 0x000000, 0x4f0801, 0x4f090a, - 0x000000, 0x4f1303, 0x000000, 0x4f1602, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4f1801, 0x000000, 0x000000, 0x000000, 0x4f1901, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4f1a02, 0x000000, 0x4f1c01, 0x000000, 0x4f1d02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4f1f08, 0x000000, 0x000000, 0x4f2702, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4f290c, 0x000000, 0x000000, 0x000000, - 0x4f3501, 0x000000, 0x000000, 0x4f3603, 0x4f3901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4f3a01, 0x000000, 0x4f3b01, 0x000000, 0x4f3c02, 0x000000, - 0x4f3e03, 0x4f4102, 0x000000, 0x000000, 0x000000, 0x000000, 0x4f4301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4f4404, 0x4f4802, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4f4a01, 0x000000, 0x4f4b03, 0x4f4e04, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4f5201, 0x000000, 0x000000, - 0x4f5301, 0x000000, 0x4f5401, 0x000000, 0x4f5502, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4f5702, 0x000000, 0x000000, 0x000000, 0x4f5901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4f5a01, 0x4f5b06, 0x000000, 0x4f6111, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4f7203, 0x000000, - 0x000000, 0x000000, 0x4f750a, 0x000000, 0x000000, 0x000000, 0x000000, 0x4f7f0a, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4f8903, 0x000000, 0x000000, 0x4f8c0a, 0x000000, 0x4f9602, - 0x4f9801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4f9901, 0x4f9a01, 0x000000, 0x4f9b01, - 0x000000, 0x000000, 0x4f9c01, 0x000000, 0x4f9d01, 0x000000, 0x4f9e05, 0x000000, - 0x4fa302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4fa502, - 0x4fa701, 0x4fa802, 0x000000, 0x000000, 0x4faa01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x4fab02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4fad11, 0x4fbe02, 0x000000, 0x000000, 0x000000, - 0x4fc003, 0x000000, 0x000000, 0x4fc306, 0x000000, 0x000000, 0x4fc902, 0x4fcb03, - 0x000000, 0x4fce01, 0x000000, 0x000000, 0x4fcf01, 0x000000, 0x4fd001, 0x4fd101, - 0x4fd205, 0x000000, 0x000000, 0x000000, 0x000000, 0x4fd702, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4fd901, 0x000000, 0x4fda03, 0x000000, 0x4fdd02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x4fdf03, 0x000000, 0x4fe201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x4fe301, 0x4fe401, 0x000000, 0x000000, 0x4fe503, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x4fe801, 0x000000, 0x4fe907, 0x000000, 0x000000, - 0x000000, 0x4ff004, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4ff404, - 0x000000, 0x000000, 0x000000, 0x4ff803, 0x000000, 0x4ffb01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x4ffc08, 0x000000, - 0x000000, 0x500401, 0x000000, 0x000000, 0x500501, 0x000000, 0x000000, 0x500609, - 0x000000, 0x500f01, 0x000000, 0x501001, 0x000000, 0x000000, 0x501101, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x501201, 0x501301, 0x000000, 0x501413, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x502707, 0x502e02, 0x000000, 0x50300a, 0x000000, 0x000000, - 0x000000, 0x000000, 0x503a01, 0x000000, 0x000000, 0x503b03, 0x000000, 0x000000, - 0x000000, 0x503e03, 0x000000, 0x000000, 0x000000, 0x504102, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x50430f, 0x000000, 0x000000, 0x505201, 0x000000, - 0x000000, 0x505302, 0x000000, 0x505517, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x506c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x506d03, 0x000000, - 0x000000, 0x507001, 0x507101, 0x000000, 0x000000, 0x000000, 0x000000, 0x507202, - 0x000000, 0x507401, 0x507514, 0x000000, 0x000000, 0x000000, 0x508902, 0x508b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x508c06, 0x000000, 0x000000, 0x000000, - 0x000000, 0x509201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x509301, - 0x000000, 0x000000, 0x000000, 0x509401, 0x000000, 0x509509, 0x000000, 0x000000, - 0x509e44, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x50e202, 0x000000, - 0x000000, 0x50e404, 0x000000, 0x000000, 0x000000, 0x50e801, 0x50e90a, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x50f301, 0x50f401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x50f502, 0x50f701, 0x50f804, 0x000000, 0x50fc01, 0x000000, - 0x50fd01, 0x000000, 0x50fe01, 0x50ff01, 0x000000, 0x510007, 0x000000, 0x000000, - 0x510701, 0x000000, 0x510803, 0x000000, 0x510b01, 0x000000, 0x000000, 0x510c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x510d04, 0x000000, 0x000000, 0x000000, 0x000000, 0x511107, 0x000000, 0x000000, - 0x000000, 0x511802, 0x000000, 0x000000, 0x511a03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x511d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x511e01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x511f01, 0x000000, 0x512008, 0x512808, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x513001, 0x000000, 0x000000, 0x000000, 0x513109, 0x513a06, - 0x514001, 0x000000, 0x514105, 0x000000, 0x514601, 0x000000, 0x000000, 0x514702, - 0x000000, 0x000000, 0x514901, 0x000000, 0x000000, 0x514a01, 0x000000, 0x514b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x514c05, 0x000000, 0x000000, - 0x515102, 0x515301, 0x515401, 0x000000, 0x000000, 0x000000, 0x515501, 0x000000, - 0x515603, 0x000000, 0x000000, 0x000000, 0x515903, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x515c01, 0x515d01, 0x515e01, 0x000000, - 0x515f04, 0x516303, 0x000000, 0x000000, 0x516601, 0x000000, 0x000000, 0x516702, - 0x516901, 0x000000, 0x516a01, 0x000000, 0x516b0a, 0x000000, 0x517501, 0x000000, - 0x000000, 0x000000, 0x517601, 0x000000, 0x000000, 0x000000, 0x000000, 0x51770d, - 0x000000, 0x000000, 0x000000, 0x518402, 0x000000, 0x000000, 0x518602, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x518803, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x518b04, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x518f02, 0x000000, 0x000000, 0x519101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x519201, 0x519306, 0x000000, 0x000000, 0x519901, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x519a0e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x51a801, 0x000000, - 0x51a904, 0x51ad02, 0x000000, 0x000000, 0x51af03, 0x51b201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x51b301, 0x000000, 0x51b402, 0x000000, 0x51b601, - 0x51b702, 0x51b905, 0x000000, 0x51be01, 0x000000, 0x51bf01, 0x51c001, 0x51c105, - 0x000000, 0x000000, 0x51c604, 0x000000, 0x000000, 0x51ca02, 0x000000, 0x000000, - 0x51cc02, 0x000000, 0x000000, 0x000000, 0x51ce03, 0x000000, 0x000000, 0x000000, - 0x51d101, 0x51d203, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x51d504, - 0x000000, 0x51d901, 0x000000, 0x000000, 0x51da09, 0x51e303, 0x000000, 0x000000, - 0x51e606, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x51ec02, 0x51ee09, - 0x000000, 0x000000, 0x000000, 0x51f703, 0x000000, 0x51fa01, 0x51fb01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x51fc06, 0x000000, 0x000000, 0x000000, - 0x520203, 0x000000, 0x520501, 0x000000, 0x520601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x520701, 0x520807, 0x000000, 0x000000, 0x000000, 0x000000, 0x520f02, - 0x000000, 0x521106, 0x000000, 0x521701, 0x000000, 0x000000, 0x000000, 0x521801, - 0x521903, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x521c05, 0x522101, - 0x522201, 0x522301, 0x000000, 0x000000, 0x522401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x522501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x522601, 0x522705, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x522c01, - 0x000000, 0x000000, 0x522d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x522e02, 0x000000, 0x523005, 0x000000, - 0x523501, 0x523602, 0x000000, 0x000000, 0x000000, 0x523804, 0x523c04, 0x000000, - 0x000000, 0x524007, 0x524701, 0x524801, 0x000000, 0x000000, 0x524901, 0x524a02, - 0x000000, 0x000000, 0x000000, 0x524c02, 0x000000, 0x000000, 0x000000, 0x524e01, - 0x524f01, 0x000000, 0x000000, 0x525001, 0x000000, 0x525104, 0x000000, 0x000000, - 0x525501, 0x000000, 0x000000, 0x000000, 0x000000, 0x525601, 0x000000, 0x000000, - 0x525701, 0x525805, 0x000000, 0x000000, 0x525d01, 0x525e02, 0x000000, 0x526002, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x526202, - 0x000000, 0x526401, 0x000000, 0x526501, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x526601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x526702, 0x000000, 0x526901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x526a01, 0x000000, 0x000000, 0x526b01, - 0x526c01, 0x526d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x526e01, - 0x000000, 0x526f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x527003, - 0x527301, 0x527403, 0x000000, 0x000000, 0x527701, 0x527802, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x527a07, 0x528101, 0x528202, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x528404, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x528802, 0x528a03, 0x000000, - 0x000000, 0x528d03, 0x000000, 0x000000, 0x000000, 0x529005, 0x529501, 0x000000, - 0x529601, 0x000000, 0x000000, 0x529701, 0x000000, 0x529801, 0x529906, 0x000000, - 0x529f02, 0x52a101, 0x52a201, 0x52a304, 0x000000, 0x000000, 0x000000, 0x52a701, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x52a803, 0x000000, - 0x52ab02, 0x000000, 0x52ad04, 0x000000, 0x000000, 0x000000, 0x000000, 0x52b101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x52b201, 0x000000, 0x000000, 0x52b302, - 0x000000, 0x52b501, 0x000000, 0x52b601, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x52b703, 0x52ba09, 0x52c301, 0x000000, 0x000000, 0x000000, 0x52c401, - 0x000000, 0x000000, 0x52c502, 0x000000, 0x000000, 0x000000, 0x52c701, 0x000000, - 0x000000, 0x52c805, 0x000000, 0x000000, 0x000000, 0x52cd0e, 0x000000, 0x52db01, - 0x000000, 0x000000, 0x52dc02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x52de01, 0x52df07, 0x000000, 0x000000, 0x52e602, 0x52e801, 0x000000, - 0x52e901, 0x000000, 0x000000, 0x000000, 0x000000, 0x52ea01, 0x52eb01, 0x000000, - 0x000000, 0x52ec01, 0x000000, 0x000000, 0x000000, 0x000000, 0x52ed06, 0x52f301, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x52f401, 0x000000, 0x000000, - 0x52f501, 0x52f611, 0x000000, 0x000000, 0x000000, 0x000000, 0x530701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x530802, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x530a04, 0x000000, 0x000000, 0x000000, - 0x530e09, 0x000000, 0x531702, 0x000000, 0x531908, 0x000000, 0x532101, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x53220b, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x532d03, 0x000000, 0x000000, 0x533001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x533101, 0x000000, 0x000000, 0x000000, 0x533201, 0x000000, 0x533302, 0x53350e, - 0x000000, 0x534302, 0x000000, 0x534504, 0x534901, 0x534a01, 0x000000, 0x534b02, - 0x000000, 0x534d01, 0x000000, 0x000000, 0x000000, 0x534e01, 0x534f18, 0x000000, - 0x000000, 0x000000, 0x536702, 0x000000, 0x000000, 0x536907, 0x537001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x537101, 0x000000, 0x000000, 0x000000, - 0x537203, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x537501, 0x000000, 0x000000, 0x537605, 0x537b02, 0x537d01, - 0x000000, 0x000000, 0x000000, 0x537e02, 0x538001, 0x000000, 0x538102, 0x000000, - 0x000000, 0x000000, 0x538301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x538401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x538501, 0x000000, 0x538601, 0x000000, - 0x000000, 0x538701, 0x000000, 0x000000, 0x538804, 0x000000, 0x000000, 0x000000, - 0x000000, 0x538c01, 0x538d07, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x539401, 0x539501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x539601, 0x000000, 0x539702, 0x000000, - 0x000000, 0x000000, 0x000000, 0x539901, 0x000000, 0x000000, 0x000000, 0x539a01, - 0x539b01, 0x000000, 0x539c01, 0x539d01, 0x000000, 0x000000, 0x000000, 0x539e01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x539f01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x53a00c, 0x000000, 0x53ac01, 0x000000, 0x53ad03, 0x000000, 0x000000, - 0x000000, 0x53b003, 0x53b301, 0x000000, 0x000000, 0x000000, 0x000000, 0x53b404, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x53b801, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x53b909, 0x000000, 0x53c201, 0x000000, 0x53c305, 0x53c803, 0x000000, 0x53cb01, - 0x000000, 0x53cc01, 0x53cd03, 0x000000, 0x000000, 0x000000, 0x53d001, 0x000000, - 0x000000, 0x53d102, 0x000000, 0x000000, 0x000000, 0x53d301, 0x53d403, 0x000000, - 0x000000, 0x53d709, 0x000000, 0x000000, 0x000000, 0x53e005, 0x53e501, 0x000000, - 0x000000, 0x53e602, 0x000000, 0x000000, 0x53e802, 0x53ea01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x53eb01, 0x000000, - 0x000000, 0x53ec01, 0x53ed02, 0x000000, 0x000000, 0x53ef23, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x541202, 0x000000, 0x000000, 0x541401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x541503, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x541801, 0x541901, - 0x000000, 0x000000, 0x541a02, 0x000000, 0x000000, 0x541c06, 0x000000, 0x000000, - 0x542219, 0x543b03, 0x000000, 0x543e08, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x544602, 0x000000, 0x000000, 0x000000, - 0x000000, 0x54480e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x54560d, - 0x000000, 0x000000, 0x546301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x546401, 0x000000, 0x54650b, 0x000000, - 0x000000, 0x547001, 0x547101, 0x547201, 0x547303, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x547608, 0x000000, 0x000000, 0x000000, 0x000000, 0x547e04, - 0x000000, 0x548204, 0x000000, 0x000000, 0x000000, 0x000000, 0x548607, 0x548d07, - 0x549409, 0x549d01, 0x000000, 0x000000, 0x549e01, 0x549f02, 0x000000, 0x54a101, - 0x000000, 0x000000, 0x54a203, 0x000000, 0x54a502, 0x54a701, 0x54a801, 0x000000, - 0x54a909, 0x54b201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x54b30a, - 0x000000, 0x54bd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x54be05, 0x54c303, - 0x000000, 0x54c601, 0x000000, 0x54c705, 0x000000, 0x000000, 0x54cc01, 0x000000, - 0x000000, 0x000000, 0x54cd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x54ce01, 0x000000, 0x000000, 0x000000, 0x54cf05, - 0x000000, 0x54d40d, 0x000000, 0x54e101, 0x000000, 0x000000, 0x000000, 0x54e202, - 0x54e404, 0x000000, 0x000000, 0x000000, 0x000000, 0x54e804, 0x54ec01, 0x54ed05, - 0x000000, 0x54f202, 0x000000, 0x000000, 0x000000, 0x54f401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x54f502, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x54f701, 0x000000, 0x000000, 0x000000, 0x000000, 0x54f802, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x54fa01, 0x54fb01, 0x000000, - 0x54fc03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x54ff03, - 0x000000, 0x000000, 0x550201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x550302, 0x000000, 0x000000, 0x550501, - 0x000000, 0x000000, 0x550606, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x550c01, 0x000000, 0x550d01, 0x000000, - 0x000000, 0x550e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x550f01, 0x000000, - 0x000000, 0x551003, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x551307, 0x551a01, 0x551b03, 0x551e06, 0x000000, - 0x000000, 0x000000, 0x552408, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x552c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x552d01, 0x000000, 0x552e02, - 0x553001, 0x000000, 0x553101, 0x553206, 0x000000, 0x553802, 0x553a01, 0x553b03, - 0x000000, 0x553e01, 0x000000, 0x553f01, 0x000000, 0x000000, 0x554001, 0x000000, - 0x000000, 0x554106, 0x554701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x55480f, 0x555701, 0x555812, 0x000000, 0x000000, 0x556a03, 0x556d01, 0x556e02, - 0x557001, 0x000000, 0x000000, 0x000000, 0x557101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x557203, 0x000000, - 0x557501, 0x000000, 0x000000, 0x000000, 0x557602, 0x000000, 0x557805, 0x557d01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x557e01, 0x000000, 0x000000, 0x557f06, - 0x558501, 0x558602, 0x558804, 0x000000, 0x558c03, 0x000000, 0x558f02, 0x000000, - 0x000000, 0x559103, 0x000000, 0x000000, 0x000000, 0x559401, 0x559501, 0x559601, - 0x000000, 0x000000, 0x559701, 0x000000, 0x000000, 0x559801, 0x559901, 0x559a04, - 0x000000, 0x559e02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x55a001, 0x000000, 0x000000, 0x55a10b, 0x55ac06, 0x55b205, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x55b701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x55b802, 0x000000, 0x55ba02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x55bc01, 0x000000, 0x000000, - 0x000000, 0x55bd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x55be01, - 0x000000, 0x55bf02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x55c103, 0x55c401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x55c501, 0x000000, 0x55c603, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x55c901, 0x55ca01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x55cb01, 0x55cc04, 0x000000, 0x000000, - 0x55d001, 0x55d104, 0x000000, 0x000000, 0x000000, 0x55d506, 0x000000, 0x000000, - 0x55db01, 0x55dc01, 0x000000, 0x55dd03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x55e003, 0x000000, 0x55e304, 0x000000, 0x55e707, 0x000000, 0x55ee02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x55f001, 0x000000, - 0x55f101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x55f201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x55f304, 0x000000, 0x000000, - 0x000000, 0x55f701, 0x000000, 0x55f806, 0x55fe01, 0x000000, 0x000000, 0x55ff01, - 0x000000, 0x000000, 0x000000, 0x560002, 0x560201, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x560301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x560410, 0x561402, 0x000000, 0x561601, 0x000000, 0x000000, 0x000000, - 0x561708, 0x000000, 0x000000, 0x000000, 0x561f01, 0x562004, 0x000000, 0x000000, - 0x562402, 0x562601, 0x562703, 0x562a01, 0x000000, 0x000000, 0x562b01, 0x562c03, - 0x000000, 0x000000, 0x562f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x563107, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x563801, - 0x000000, 0x000000, 0x000000, 0x563901, 0x563a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x563b01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x563c07, 0x56430f, 0x565205, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x565703, 0x000000, 0x000000, 0x565a01, 0x000000, - 0x565b01, 0x000000, 0x565c01, 0x000000, 0x565d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x565e08, 0x566601, 0x000000, 0x566702, - 0x566903, 0x000000, 0x000000, 0x000000, 0x000000, 0x566c03, 0x000000, 0x000000, - 0x000000, 0x566f01, 0x56700c, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x567c01, 0x000000, 0x000000, 0x000000, 0x567d02, 0x000000, 0x000000, - 0x567f02, 0x568102, 0x000000, 0x568301, 0x568402, 0x568603, 0x568908, 0x000000, - 0x000000, 0x000000, 0x569102, 0x000000, 0x000000, 0x000000, 0x000000, 0x56930d, - 0x56a002, 0x000000, 0x000000, 0x000000, 0x000000, 0x56a203, 0x000000, 0x56a501, - 0x56a601, 0x000000, 0x000000, 0x56a704, 0x56ab02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x56ad04, 0x000000, 0x56b107, - 0x56b807, 0x000000, 0x000000, 0x56bf01, 0x000000, 0x56c003, 0x000000, 0x56c303, - 0x000000, 0x000000, 0x56c608, 0x000000, 0x56ce08, 0x56d601, 0x000000, 0x000000, - 0x56d702, 0x000000, 0x56d901, 0x000000, 0x000000, 0x56da01, 0x56db01, 0x000000, - 0x56dc03, 0x000000, 0x56df01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x56e001, 0x000000, 0x000000, 0x000000, 0x56e104, 0x56e501, 0x56e60c, 0x000000, - 0x000000, 0x000000, 0x56f209, 0x56fb01, 0x000000, 0x56fc01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x56fd01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x56fe01, 0x000000, 0x56ff05, 0x000000, 0x570401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x570502, 0x570703, 0x570a03, 0x570d01, - 0x000000, 0x000000, 0x570e02, 0x571001, 0x000000, 0x000000, 0x571103, 0x000000, - 0x571402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x571606, 0x000000, 0x571c01, 0x571d03, 0x000000, - 0x000000, 0x000000, 0x572003, 0x000000, 0x572307, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x572a02, - 0x000000, 0x000000, 0x000000, 0x572c11, 0x000000, 0x573d01, 0x000000, 0x000000, - 0x000000, 0x573e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x573f02, - 0x000000, 0x574106, 0x574703, 0x000000, 0x574a02, 0x574c01, 0x000000, 0x574d07, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x575401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x575501, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x575601, 0x575701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x575805, 0x575d03, 0x000000, 0x000000, 0x576001, 0x000000, - 0x576103, 0x576402, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x576602, - 0x000000, 0x576801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x576903, - 0x000000, 0x000000, 0x000000, 0x000000, 0x576c01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x576d01, 0x000000, 0x576e08, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x577601, 0x000000, 0x000000, - 0x577703, 0x577a01, 0x577b06, 0x578103, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x578401, 0x000000, 0x000000, 0x578502, 0x000000, 0x000000, 0x578701, - 0x000000, 0x000000, 0x578801, 0x57890e, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x579702, 0x000000, 0x000000, 0x000000, 0x000000, 0x579901, - 0x000000, 0x000000, 0x000000, 0x579a01, 0x000000, 0x579b04, 0x000000, 0x579f03, - 0x000000, 0x57a207, 0x57a901, 0x57aa01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x57ab02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x57ad08, 0x000000, - 0x57b501, 0x000000, 0x57b60a, 0x000000, 0x000000, 0x000000, 0x57c005, 0x000000, - 0x57c501, 0x000000, 0x57c601, 0x000000, 0x000000, 0x000000, 0x000000, 0x57c701, - 0x57c80e, 0x000000, 0x57d601, 0x000000, 0x000000, 0x000000, 0x57d701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x57d80a, 0x000000, 0x000000, 0x57e20f, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x57f101, 0x000000, 0x000000, - 0x57f201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x57f301, 0x000000, 0x000000, 0x000000, 0x57f403, 0x57f70e, 0x000000, 0x000000, - 0x000000, 0x580501, 0x000000, 0x000000, 0x580601, 0x000000, 0x000000, 0x580704, - 0x000000, 0x580b0d, 0x581802, 0x000000, 0x581a06, 0x000000, 0x000000, 0x000000, - 0x000000, 0x582001, 0x000000, 0x000000, 0x582104, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x582501, 0x000000, 0x000000, 0x000000, 0x000000, 0x582601, 0x582707, 0x000000, - 0x000000, 0x582e04, 0x000000, 0x583203, 0x000000, 0x583501, 0x583602, 0x583801, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x583901, 0x000000, 0x000000, - 0x583a03, 0x000000, 0x000000, 0x583d01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x583e01, 0x000000, 0x583f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x584009, 0x000000, 0x584902, 0x000000, 0x000000, 0x584b05, 0x000000, - 0x000000, 0x585009, 0x000000, 0x000000, 0x585901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x585a05, 0x000000, 0x585f01, 0x58600d, 0x000000, - 0x000000, 0x586d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x586e01, - 0x000000, 0x000000, 0x586f04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x587301, 0x000000, 0x587402, 0x587605, 0x000000, 0x000000, - 0x000000, 0x000000, 0x587b01, 0x587c01, 0x000000, 0x000000, 0x000000, 0x587d01, - 0x000000, 0x587e01, 0x000000, 0x000000, 0x000000, 0x587f11, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x589002, 0x589201, 0x589302, 0x000000, 0x000000, 0x589501, 0x58960c, 0x000000, - 0x58a202, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x58a403, 0x000000, 0x000000, 0x58a703, 0x000000, 0x58aa08, 0x58b201, 0x58b30a, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x58bd01, 0x000000, 0x58be04, 0x000000, 0x000000, 0x000000, 0x000000, 0x58c201, - 0x000000, 0x000000, 0x000000, 0x58c301, 0x58c401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x58c502, 0x58c701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x58c802, 0x000000, 0x000000, - 0x58ca01, 0x000000, 0x000000, 0x000000, 0x000000, 0x58cb03, 0x58ce01, 0x58cf03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x58d20a, 0x000000, 0x58dc02, 0x000000, - 0x000000, 0x58de07, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x58e502, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x58e704, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x58eb01, 0x58ec01, 0x58ed02, 0x000000, 0x58ef01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x58f001, 0x58f101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x58f201, 0x000000, 0x000000, 0x58f303, 0x58f601, - 0x000000, 0x58f701, 0x58f803, 0x58fb02, 0x000000, 0x000000, 0x58fd02, 0x58ff03, - 0x000000, 0x590202, 0x000000, 0x590407, 0x590b02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x590d04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x591101, 0x000000, 0x591201, 0x591301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x591405, - 0x000000, 0x000000, 0x591901, 0x591a03, 0x591d02, 0x591f09, 0x000000, 0x592801, - 0x592905, 0x000000, 0x592e02, 0x593001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x593102, 0x000000, 0x593302, - 0x593501, 0x000000, 0x593601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x593707, 0x000000, 0x593e09, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x594701, 0x594801, 0x000000, 0x594901, 0x594a03, 0x000000, 0x000000, 0x594d02, - 0x000000, 0x000000, 0x594f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x595001, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x595101, 0x000000, 0x595201, 0x595301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x595402, 0x000000, 0x595601, 0x000000, 0x595701, - 0x000000, 0x595808, 0x596001, 0x596102, 0x596301, 0x596401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x596501, 0x596607, 0x000000, - 0x596d01, 0x000000, 0x596e05, 0x000000, 0x000000, 0x000000, 0x597301, 0x000000, - 0x597403, 0x000000, 0x000000, 0x000000, 0x000000, 0x597701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x597802, 0x597a08, 0x000000, 0x000000, 0x000000, 0x598202, - 0x598401, 0x000000, 0x000000, 0x598502, 0x000000, 0x000000, 0x000000, 0x598709, - 0x000000, 0x000000, 0x000000, 0x599001, 0x59910b, 0x000000, 0x000000, 0x000000, - 0x599c01, 0x599d01, 0x000000, 0x000000, 0x000000, 0x599e01, 0x000000, 0x000000, - 0x000000, 0x599f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x59a101, 0x000000, 0x59a207, 0x000000, 0x000000, 0x59a902, 0x000000, - 0x59ab06, 0x000000, 0x000000, 0x59b101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x59b201, 0x000000, 0x000000, 0x59b301, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x59b403, 0x000000, - 0x59b701, 0x000000, 0x000000, 0x000000, 0x59b801, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x59b901, 0x000000, 0x59ba07, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x59c101, 0x000000, 0x000000, 0x59c208, 0x000000, 0x59ca02, - 0x000000, 0x000000, 0x59cc01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x59cd0f, 0x000000, 0x59dc01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x59dd01, 0x59de01, 0x59df0f, 0x000000, 0x000000, - 0x59ee01, 0x59ef05, 0x59f401, 0x000000, 0x000000, 0x000000, 0x000000, 0x59f502, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x59f703, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x59fa03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x59fd0a, 0x000000, 0x000000, 0x000000, 0x5a0701, 0x000000, 0x5a0803, 0x5a0b01, - 0x5a0c07, 0x5a1301, 0x5a1402, 0x000000, 0x5a1604, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5a1a01, 0x5a1b01, 0x000000, 0x000000, 0x000000, 0x5a1c04, 0x5a2036, - 0x000000, 0x000000, 0x000000, 0x5a5601, 0x000000, 0x5a5701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5a5809, 0x000000, 0x5a6103, 0x5a6408, 0x000000, - 0x5a6c01, 0x000000, 0x000000, 0x5a6d02, 0x000000, 0x000000, 0x000000, 0x5a6f02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5a7103, 0x000000, 0x000000, 0x000000, 0x000000, 0x5a7402, 0x5a7601, 0x5a7714, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5a8b01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5a8c07, 0x000000, 0x000000, 0x5a9301, 0x000000, 0x5a9406, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5a9a01, 0x000000, 0x000000, 0x5a9b03, 0x5a9e03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5aa102, 0x000000, 0x5aa303, 0x000000, 0x5aa602, 0x000000, 0x5aa801, - 0x5aa911, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5aba02, - 0x5abc01, 0x000000, 0x000000, 0x5abd04, 0x5ac104, 0x5ac507, 0x000000, 0x000000, - 0x000000, 0x5acc01, 0x5acd02, 0x5acf01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5ad005, 0x5ad50b, 0x000000, 0x000000, 0x000000, 0x5ae003, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5ae308, 0x000000, 0x5aeb01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5aec14, 0x000000, 0x5b0001, 0x000000, - 0x5b0101, 0x000000, 0x000000, 0x000000, 0x000000, 0x5b0203, 0x000000, 0x5b0501, - 0x000000, 0x000000, 0x5b0609, 0x5b0f02, 0x000000, 0x000000, 0x5b1106, 0x000000, - 0x5b1704, 0x000000, 0x000000, 0x000000, 0x000000, 0x5b1b01, 0x000000, 0x5b1c03, - 0x000000, 0x5b1f06, 0x000000, 0x5b2503, 0x000000, 0x000000, 0x000000, 0x5b2806, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5b2e01, 0x5b2f02, 0x5b3102, 0x000000, - 0x5b3305, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5b3802, 0x000000, 0x000000, 0x000000, 0x000000, 0x5b3a01, 0x000000, - 0x5b3b02, 0x5b3d01, 0x000000, 0x000000, 0x000000, 0x5b3e01, 0x5b3f01, 0x000000, - 0x5b4006, 0x000000, 0x5b4602, 0x000000, 0x5b4804, 0x000000, 0x000000, 0x5b4c05, - 0x000000, 0x5b5101, 0x5b5203, 0x000000, 0x5b5501, 0x5b5604, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5b5a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5b5b02, 0x5b5d03, 0x000000, 0x000000, 0x5b6005, - 0x5b6501, 0x000000, 0x000000, 0x000000, 0x5b6601, 0x000000, 0x000000, 0x000000, - 0x5b6701, 0x000000, 0x000000, 0x000000, 0x000000, 0x5b680e, 0x000000, 0x000000, - 0x000000, 0x5b7601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5b7706, 0x000000, 0x5b7d15, 0x000000, 0x5b9201, 0x5b9304, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5b9706, 0x000000, 0x5b9d02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5b9f02, 0x000000, 0x000000, - 0x5ba106, 0x5ba701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5ba805, 0x000000, 0x000000, 0x000000, 0x5bad01, 0x5bae01, 0x000000, 0x000000, - 0x5baf01, 0x000000, 0x000000, 0x000000, 0x5bb017, 0x5bc701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5bc802, 0x000000, - 0x5bca03, 0x000000, 0x000000, 0x5bcd01, 0x000000, 0x000000, 0x5bce0a, 0x000000, - 0x000000, 0x5bd802, 0x000000, 0x000000, 0x5bda02, 0x000000, 0x000000, 0x000000, - 0x5bdc01, 0x000000, 0x000000, 0x000000, 0x000000, 0x5bdd01, 0x5bde02, 0x5be003, - 0x5be301, 0x000000, 0x5be403, 0x5be70b, 0x5bf202, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5bf403, 0x000000, 0x000000, 0x5bf70c, 0x000000, 0x000000, - 0x5c0301, 0x000000, 0x000000, 0x5c0402, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5c0601, 0x000000, 0x5c0701, 0x000000, 0x000000, 0x5c0805, 0x000000, - 0x000000, 0x5c0d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c0f01, - 0x5c1001, 0x5c1101, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c1203, 0x000000, - 0x5c1501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5c1604, 0x000000, 0x5c1a02, 0x000000, - 0x000000, 0x5c1c06, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5c2209, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5c2b02, 0x5c2d04, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c3104, 0x5c3501, - 0x000000, 0x000000, 0x5c3601, 0x000000, 0x5c3706, 0x000000, 0x000000, 0x000000, - 0x5c3d02, 0x5c3f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c4101, - 0x000000, 0x000000, 0x5c4202, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c4405, - 0x5c4901, 0x000000, 0x5c4a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5c4c01, 0x000000, 0x5c4d04, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5c5102, 0x000000, 0x5c5302, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5c5502, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c571b, - 0x5c7202, 0x000000, 0x5c740c, 0x000000, 0x000000, 0x000000, 0x5c8001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c8101, 0x000000, - 0x5c8201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5c8301, 0x000000, - 0x000000, 0x000000, 0x5c8404, 0x5c8804, 0x000000, 0x5c8c01, 0x5c8d06, 0x5c9302, - 0x000000, 0x5c9507, 0x000000, 0x5c9c03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5c9f02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5ca101, 0x000000, 0x000000, 0x5ca203, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5ca502, 0x000000, 0x000000, 0x5ca702, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5ca904, 0x000000, 0x000000, 0x000000, 0x5cad03, 0x5cb00c, 0x000000, - 0x5cbc05, 0x5cc102, 0x000000, 0x5cc301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5cc401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5cc501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5cc602, 0x000000, 0x5cc804, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5ccc08, 0x5cd405, 0x000000, 0x000000, 0x000000, 0x5cd901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5cda01, - 0x000000, 0x5cdb09, 0x5ce40f, 0x000000, 0x000000, 0x5cf302, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5cf501, 0x000000, 0x5cf603, 0x000000, 0x000000, 0x000000, - 0x5cf904, 0x000000, 0x000000, 0x5cfd01, 0x000000, 0x5cfe01, 0x000000, 0x000000, - 0x5cff01, 0x000000, 0x5d000a, 0x000000, 0x5d0a02, 0x000000, 0x000000, 0x000000, - 0x5d0c06, 0x000000, 0x5d1202, 0x000000, 0x000000, 0x000000, 0x5d1401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5d1502, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5d1701, 0x5d1801, 0x5d1901, - 0x5d1a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x5d1c01, 0x5d1d08, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5d2501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5d2620, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5d4602, 0x5d4801, 0x000000, 0x000000, 0x5d4901, 0x5d4a0c, 0x5d5604, - 0x000000, 0x5d5a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x5d5c01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5d5d01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5d5e02, 0x5d6001, 0x000000, 0x5d6101, 0x000000, - 0x5d620b, 0x5d6d01, 0x5d6e01, 0x5d6f02, 0x000000, 0x5d7102, 0x000000, 0x5d7303, - 0x000000, 0x5d7607, 0x000000, 0x5d7d03, 0x000000, 0x5d8004, 0x5d8401, 0x000000, - 0x5d8504, 0x5d8909, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5d9201, - 0x5d9302, 0x5d9501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5d9603, 0x000000, 0x5d9903, 0x5d9c01, 0x000000, 0x5d9d01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5d9e01, 0x5d9f05, 0x000000, 0x000000, 0x5da401, 0x000000, - 0x000000, 0x5da501, 0x000000, 0x000000, 0x000000, 0x000000, 0x5da601, 0x000000, - 0x5da701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5da803, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5dab04, - 0x000000, 0x000000, 0x5daf01, 0x000000, 0x5db002, 0x000000, 0x000000, 0x5db201, - 0x000000, 0x000000, 0x5db302, 0x5db501, 0x5db601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5db702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5db904, 0x000000, 0x000000, 0x000000, - 0x5dbd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5dbe04, 0x000000, 0x000000, 0x5dc201, 0x000000, 0x5dc302, - 0x000000, 0x5dc501, 0x000000, 0x000000, 0x000000, 0x5dc601, 0x000000, 0x000000, - 0x5dc701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5dc801, 0x000000, 0x000000, 0x5dc901, 0x000000, 0x000000, 0x5dca02, 0x000000, - 0x000000, 0x5dcc01, 0x5dcd01, 0x000000, 0x000000, 0x5dce01, 0x5dcf0b, 0x5dda01, - 0x000000, 0x5ddb01, 0x5ddc01, 0x000000, 0x5ddd03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5de001, 0x5de101, 0x000000, 0x5de201, 0x000000, 0x000000, - 0x5de308, 0x000000, 0x000000, 0x5deb04, 0x000000, 0x5def01, 0x5df00e, 0x5dfe04, - 0x5e0201, 0x000000, 0x5e0302, 0x5e0501, 0x000000, 0x000000, 0x5e0607, 0x5e0d09, - 0x5e1603, 0x000000, 0x5e1905, 0x000000, 0x000000, 0x000000, 0x5e1e03, 0x000000, - 0x5e2103, 0x5e2403, 0x5e2702, 0x5e2901, 0x000000, 0x5e2a01, 0x000000, 0x000000, - 0x000000, 0x5e2b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x5e2d01, 0x5e2e02, - 0x000000, 0x5e3002, 0x000000, 0x000000, 0x5e3205, 0x5e3704, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5e3b01, 0x000000, 0x5e3c01, 0x000000, - 0x5e3d01, 0x000000, 0x5e3e08, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5e4601, 0x000000, 0x000000, 0x5e4701, 0x000000, 0x5e4805, 0x5e4d04, 0x000000, - 0x000000, 0x000000, 0x5e5101, 0x000000, 0x000000, 0x5e5202, 0x5e5405, 0x5e5909, - 0x000000, 0x5e6202, 0x000000, 0x000000, 0x000000, 0x5e6401, 0x5e6501, 0x5e6602, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5e6801, 0x5e6905, 0x5e6e03, 0x000000, 0x000000, 0x000000, - 0x5e7101, 0x000000, 0x000000, 0x5e7202, 0x000000, 0x000000, 0x5e7403, 0x000000, - 0x5e770d, 0x5e8404, 0x000000, 0x5e8803, 0x5e8b02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5e8d06, 0x5e9308, 0x5e9b04, 0x000000, 0x000000, - 0x000000, 0x5e9f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5ea108, 0x000000, 0x5ea901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5eaa01, 0x000000, 0x5eab03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5eae01, 0x5eaf01, 0x5eb007, - 0x000000, 0x000000, 0x5eb701, 0x000000, 0x000000, 0x5eb802, 0x000000, 0x5eba02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5ebc0f, 0x000000, - 0x5ecb01, 0x000000, 0x000000, 0x000000, 0x5ecc02, 0x000000, 0x5ece01, 0x5ecf01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5ed001, 0x000000, 0x000000, 0x5ed105, - 0x000000, 0x000000, 0x5ed601, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5ed70d, 0x000000, 0x5ee401, 0x5ee502, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5ee71b, 0x000000, 0x000000, 0x5f0206, - 0x000000, 0x000000, 0x000000, 0x5f0801, 0x5f0901, 0x5f0a08, 0x5f120c, 0x000000, - 0x5f1e12, 0x000000, 0x000000, 0x5f3001, 0x5f3101, 0x000000, 0x000000, 0x000000, - 0x5f3201, 0x000000, 0x000000, 0x000000, 0x000000, 0x5f3301, 0x5f3401, 0x5f3504, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5f3901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5f3a02, 0x000000, 0x5f3c02, 0x000000, 0x5f3e06, 0x5f4401, - 0x000000, 0x5f4504, 0x000000, 0x000000, 0x5f4901, 0x5f4a05, 0x5f4f01, 0x000000, - 0x000000, 0x000000, 0x5f5001, 0x5f5104, 0x000000, 0x5f5505, 0x000000, 0x000000, - 0x000000, 0x5f5a04, 0x000000, 0x000000, 0x000000, 0x5f5e01, 0x000000, 0x5f5f01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5f6002, 0x000000, 0x5f6203, - 0x000000, 0x5f6501, 0x000000, 0x5f6605, 0x5f6b07, 0x000000, 0x5f7204, 0x000000, - 0x000000, 0x000000, 0x5f7601, 0x000000, 0x000000, 0x000000, 0x5f7702, 0x5f7904, - 0x5f7d01, 0x000000, 0x000000, 0x000000, 0x5f7e01, 0x5f7f01, 0x5f8003, 0x5f8301, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5f8404, 0x5f8801, 0x000000, 0x000000, - 0x5f8901, 0x5f8a01, 0x5f8b05, 0x000000, 0x5f9005, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5f9501, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5f9602, - 0x000000, 0x5f9801, 0x5f9901, 0x5f9a01, 0x5f9b02, 0x000000, 0x5f9d02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5f9f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5fa001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x5fa103, 0x5fa401, 0x000000, 0x000000, 0x000000, 0x000000, 0x5fa502, - 0x000000, 0x000000, 0x000000, 0x5fa706, 0x000000, 0x000000, 0x000000, 0x5fad03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5fb001, 0x000000, 0x000000, 0x5fb101, - 0x000000, 0x000000, 0x000000, 0x5fb207, 0x5fb901, 0x000000, 0x000000, 0x000000, - 0x5fba04, 0x000000, 0x000000, 0x5fbe02, 0x000000, 0x000000, 0x5fc001, 0x5fc103, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5fc401, 0x000000, 0x5fc502, - 0x000000, 0x5fc701, 0x000000, 0x5fc803, 0x5fcb01, 0x5fcc02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5fce01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5fcf09, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x5fd802, 0x5fda01, 0x000000, 0x5fdb08, 0x000000, - 0x000000, 0x000000, 0x5fe301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5fe401, 0x5fe503, 0x000000, 0x000000, 0x000000, 0x5fe801, 0x5fe901, 0x000000, - 0x5fea01, 0x000000, 0x5feb02, 0x000000, 0x5fed02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5fef01, 0x000000, 0x000000, 0x000000, 0x5ff001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x5ff105, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x5ff602, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x5ff805, 0x000000, 0x000000, 0x000000, 0x5ffd01, 0x000000, 0x5ffe02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x600004, 0x600403, 0x000000, 0x600701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x600801, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x600901, 0x000000, 0x000000, 0x600a01, 0x000000, 0x600b02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x600d01, 0x600e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x600f02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x601102, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x601301, - 0x601405, 0x000000, 0x000000, 0x000000, 0x000000, 0x601901, 0x601a01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x601b01, 0x000000, 0x000000, 0x601c05, 0x000000, - 0x602101, 0x000000, 0x000000, 0x602201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x602303, 0x602601, 0x602708, 0x602f03, 0x000000, 0x000000, 0x000000, 0x60320b, - 0x000000, 0x603d01, 0x603e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x603f0f, - 0x000000, 0x000000, 0x000000, 0x604e01, 0x604f01, 0x605005, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x605501, 0x000000, - 0x605601, 0x605701, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x605802, - 0x000000, 0x000000, 0x000000, 0x000000, 0x605a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x605b01, 0x605c01, 0x000000, 0x605d04, 0x606101, - 0x000000, 0x000000, 0x000000, 0x606203, 0x000000, 0x606501, 0x000000, 0x000000, - 0x606602, 0x000000, 0x000000, 0x000000, 0x606802, 0x000000, 0x606a01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x606b01, 0x000000, 0x606c01, 0x000000, 0x000000, - 0x606d02, 0x000000, 0x000000, 0x606f01, 0x607001, 0x000000, 0x000000, 0x000000, - 0x000000, 0x607101, 0x607206, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x607801, 0x000000, 0x60790b, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x608401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x608502, 0x000000, 0x608701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x608801, 0x608901, 0x000000, 0x608a01, - 0x000000, 0x608b02, 0x608d01, 0x000000, 0x608e01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x608f05, 0x000000, 0x000000, 0x60940d, 0x000000, 0x000000, 0x60a10b, - 0x000000, 0x60ac01, 0x60ad02, 0x000000, 0x000000, 0x000000, 0x60af01, 0x000000, - 0x000000, 0x000000, 0x60b005, 0x000000, 0x000000, 0x000000, 0x60b504, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x60b901, 0x000000, 0x60ba01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x60bb01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x60bc02, 0x60be01, 0x60bf04, 0x000000, - 0x60c301, 0x000000, 0x000000, 0x000000, 0x000000, 0x60c404, 0x000000, 0x000000, - 0x000000, 0x000000, 0x60c808, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x60d001, 0x000000, 0x60d102, 0x60d301, 0x000000, 0x000000, 0x000000, 0x60d405, - 0x000000, 0x000000, 0x000000, 0x000000, 0x60d904, 0x60dd01, 0x000000, 0x60de01, - 0x60df03, 0x000000, 0x000000, 0x000000, 0x60e201, 0x000000, 0x60e302, 0x60e501, - 0x000000, 0x60e603, 0x000000, 0x000000, 0x000000, 0x60e911, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x60fa01, 0x60fb07, 0x000000, 0x610201, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x610303, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x610604, 0x000000, 0x610a01, 0x610b03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x610e01, 0x000000, 0x000000, 0x610f01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x611001, 0x000000, 0x611101, 0x611201, - 0x000000, 0x000000, 0x000000, 0x611301, 0x000000, 0x611401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x611501, - 0x000000, 0x61160d, 0x000000, 0x000000, 0x61230f, 0x000000, 0x000000, 0x000000, - 0x613201, 0x000000, 0x000000, 0x000000, 0x61330b, 0x000000, 0x613e02, 0x614002, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x614201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x61430d, 0x000000, 0x615001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x615103, 0x000000, 0x000000, 0x61540d, - 0x616101, 0x616201, 0x000000, 0x000000, 0x000000, 0x616307, 0x000000, 0x000000, - 0x616a03, 0x000000, 0x000000, 0x616d03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x617005, 0x617501, 0x000000, - 0x617602, 0x000000, 0x000000, 0x617801, 0x000000, 0x000000, 0x000000, 0x617905, - 0x000000, 0x617e02, 0x000000, 0x000000, 0x000000, 0x618001, 0x000000, 0x000000, - 0x618102, 0x000000, 0x618304, 0x618702, 0x618902, 0x618b04, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x618f01, 0x000000, 0x000000, 0x000000, 0x619005, - 0x000000, 0x619501, 0x000000, 0x000000, 0x619601, 0x000000, 0x000000, 0x619709, - 0x000000, 0x000000, 0x000000, 0x61a001, 0x000000, 0x000000, 0x000000, 0x61a107, - 0x000000, 0x000000, 0x61a802, 0x000000, 0x000000, 0x000000, 0x61aa0f, 0x000000, - 0x000000, 0x61b905, 0x000000, 0x000000, 0x61be0b, 0x000000, 0x000000, 0x000000, - 0x61c901, 0x000000, 0x000000, 0x61ca01, 0x61cb01, 0x000000, 0x61cc02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x61ce01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x61cf02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x61d101, 0x000000, 0x000000, 0x61d202, - 0x61d404, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x61d802, - 0x000000, 0x000000, 0x61da01, 0x000000, 0x61db01, 0x61dc01, 0x000000, 0x000000, - 0x61dd01, 0x000000, 0x000000, 0x000000, 0x61de02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x61e002, 0x61e201, 0x000000, 0x000000, 0x61e304, 0x61e701, 0x000000, - 0x61e804, 0x61ec01, 0x61ed02, 0x000000, 0x000000, 0x000000, 0x000000, 0x61ef01, - 0x000000, 0x61f011, 0x000000, 0x620102, 0x000000, 0x000000, 0x620301, 0x620408, - 0x620c04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x621003, - 0x621305, 0x000000, 0x000000, 0x621802, 0x000000, 0x000000, 0x621a01, 0x621b01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x621c03, 0x000000, - 0x000000, 0x000000, 0x621f01, 0x622004, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x622401, 0x000000, 0x000000, 0x000000, 0x622504, - 0x000000, 0x622904, 0x622d05, 0x000000, 0x623204, 0x000000, 0x623608, 0x000000, - 0x000000, 0x000000, 0x623e0a, 0x000000, 0x624802, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x624a0b, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x625501, 0x000000, 0x625620, 0x000000, 0x627602, 0x000000, 0x000000, 0x000000, - 0x627804, 0x000000, 0x000000, 0x000000, 0x000000, 0x627c06, 0x000000, 0x628204, - 0x000000, 0x628602, 0x000000, 0x628802, 0x000000, 0x000000, 0x000000, 0x628a01, - 0x000000, 0x000000, 0x000000, 0x628b01, 0x000000, 0x000000, 0x000000, 0x628c02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x628e02, - 0x629004, 0x000000, 0x000000, 0x000000, 0x000000, 0x629402, 0x629604, 0x000000, - 0x000000, 0x000000, 0x629a09, 0x000000, 0x000000, 0x000000, 0x62a305, 0x000000, - 0x62a801, 0x62a902, 0x000000, 0x000000, 0x000000, 0x000000, 0x62ab05, 0x62b003, - 0x000000, 0x62b305, 0x000000, 0x000000, 0x62b833, 0x62eb01, 0x000000, 0x62ec01, - 0x000000, 0x62ed01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x62ee01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x62ef04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x62f301, - 0x000000, 0x000000, 0x000000, 0x62f403, 0x000000, 0x000000, 0x000000, 0x62f701, - 0x62f801, 0x62f905, 0x000000, 0x000000, 0x62fe07, 0x000000, 0x630502, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x630702, 0x000000, - 0x630915, 0x000000, 0x631e04, 0x000000, 0x632205, 0x000000, 0x000000, 0x000000, - 0x000000, 0x632702, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x632902, 0x000000, 0x632b02, 0x000000, 0x632d09, - 0x000000, 0x000000, 0x633602, 0x000000, 0x000000, 0x633801, 0x000000, 0x000000, - 0x000000, 0x633905, 0x000000, 0x000000, 0x000000, 0x633e06, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x634402, 0x634602, 0x000000, 0x000000, 0x634802, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x634a02, 0x000000, 0x000000, - 0x000000, 0x634c03, 0x000000, 0x000000, 0x000000, 0x634f09, 0x000000, 0x000000, - 0x000000, 0x000000, 0x635802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x635a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x635b01, 0x000000, 0x000000, 0x000000, 0x635c03, - 0x000000, 0x000000, 0x635f02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x636101, 0x000000, 0x000000, 0x636203, 0x000000, 0x636503, 0x000000, - 0x000000, 0x636801, 0x000000, 0x000000, 0x000000, 0x636902, 0x000000, 0x000000, - 0x000000, 0x000000, 0x636b01, 0x000000, 0x636c01, 0x636d01, 0x636e01, 0x000000, - 0x000000, 0x000000, 0x636f01, 0x000000, 0x637002, 0x000000, 0x000000, 0x000000, - 0x637202, 0x000000, 0x637407, 0x000000, 0x637b01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x637c02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x637e03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x638101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x638202, 0x000000, 0x000000, 0x000000, 0x000000, 0x638406, - 0x000000, 0x000000, 0x000000, 0x000000, 0x638a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x638b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x638c0c, - 0x000000, 0x639801, 0x000000, 0x000000, 0x639906, 0x000000, 0x639f06, 0x000000, - 0x63a502, 0x000000, 0x63a701, 0x000000, 0x000000, 0x63a801, 0x63a903, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x63ac01, 0x63ad01, 0x63ae01, - 0x000000, 0x63af01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x63b001, 0x000000, 0x63b105, 0x63b607, 0x63bd02, 0x000000, 0x63bf01, - 0x000000, 0x63c00b, 0x000000, 0x000000, 0x63cb02, 0x63cd01, 0x000000, 0x000000, - 0x63ce01, 0x000000, 0x63cf02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x63d101, 0x000000, 0x63d201, 0x000000, 0x63d301, 0x63d40b, 0x63df02, 0x000000, - 0x000000, 0x000000, 0x63e101, 0x63e203, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x63e505, 0x000000, 0x000000, 0x000000, 0x000000, 0x63ea02, - 0x000000, 0x000000, 0x000000, 0x63ec01, 0x000000, 0x000000, 0x000000, 0x63ed06, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x63f301, 0x000000, 0x000000, 0x000000, 0x000000, 0x63f401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x63f501, 0x000000, 0x63f601, 0x63f701, 0x63f801, - 0x000000, 0x63f902, 0x000000, 0x000000, 0x000000, 0x63fb01, 0x000000, 0x63fc12, - 0x640e03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x641101, 0x000000, - 0x000000, 0x000000, 0x000000, 0x641204, 0x641606, 0x000000, 0x000000, 0x641c02, - 0x000000, 0x000000, 0x641e04, 0x000000, 0x000000, 0x000000, 0x642201, 0x64230d, - 0x000000, 0x000000, 0x643005, 0x000000, 0x000000, 0x000000, 0x000000, 0x643507, - 0x000000, 0x000000, 0x000000, 0x643c02, 0x643e08, 0x000000, 0x000000, 0x644607, - 0x000000, 0x000000, 0x644d14, 0x646101, 0x000000, 0x646203, 0x646501, 0x646601, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x646702, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x646904, 0x000000, - 0x000000, 0x646d01, 0x000000, 0x646e01, 0x000000, 0x646f03, 0x000000, 0x647201, - 0x647301, 0x647401, 0x000000, 0x000000, 0x64750a, 0x647f04, 0x648302, 0x000000, - 0x000000, 0x000000, 0x648503, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x648802, 0x000000, 0x000000, 0x648a01, - 0x000000, 0x000000, 0x000000, 0x648b01, 0x000000, 0x648c04, 0x649001, 0x000000, - 0x649102, 0x000000, 0x649318, 0x64ab06, 0x64b102, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x64b301, 0x000000, 0x000000, 0x000000, 0x000000, 0x64b401, - 0x000000, 0x64b502, 0x64b701, 0x64b804, 0x000000, 0x000000, 0x000000, 0x64bc08, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x64c404, 0x64c807, - 0x000000, 0x000000, 0x000000, 0x64cf01, 0x64d002, 0x000000, 0x000000, 0x64d203, - 0x64d501, 0x64d602, 0x000000, 0x000000, 0x64d803, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x64db0c, 0x000000, 0x000000, - 0x000000, 0x000000, 0x64e701, 0x64e80d, 0x000000, 0x000000, 0x000000, 0x64f501, - 0x000000, 0x000000, 0x000000, 0x64f601, 0x64f701, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x64f801, 0x64f901, - 0x000000, 0x000000, 0x64fa01, 0x000000, 0x000000, 0x64fb0a, 0x000000, 0x650501, - 0x000000, 0x000000, 0x000000, 0x650602, 0x650802, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x650a01, 0x650b01, 0x000000, 0x650c05, - 0x651101, 0x000000, 0x651201, 0x000000, 0x651301, 0x651401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x651518, 0x652d01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x652e01, 0x652f01, 0x653003, 0x000000, 0x000000, - 0x000000, 0x653301, 0x653401, 0x000000, 0x000000, 0x000000, 0x000000, 0x653502, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x653701, - 0x000000, 0x653801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x653902, 0x000000, 0x000000, 0x653b01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x653c0a, 0x654601, 0x000000, 0x000000, 0x000000, - 0x000000, 0x654702, 0x000000, 0x000000, 0x654903, 0x000000, 0x000000, 0x000000, - 0x654c05, 0x000000, 0x000000, 0x655104, 0x655503, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x655805, 0x000000, 0x655d06, 0x000000, - 0x656305, 0x000000, 0x000000, 0x656801, 0x656901, 0x000000, 0x000000, 0x656a01, - 0x000000, 0x656b01, 0x656c01, 0x656d01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x656e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x656f01, 0x000000, - 0x000000, 0x000000, 0x657002, 0x657202, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x657402, 0x657603, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x657903, 0x000000, 0x657c01, 0x000000, 0x000000, 0x000000, - 0x657d02, 0x000000, 0x000000, 0x000000, 0x657f09, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x658809, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x659103, 0x000000, 0x000000, 0x000000, 0x659401, 0x000000, - 0x000000, 0x000000, 0x659501, 0x659607, 0x000000, 0x000000, 0x659d01, 0x659e01, - 0x659f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x65a001, - 0x65a102, 0x65a302, 0x000000, 0x65a501, 0x65a601, 0x000000, 0x000000, 0x000000, - 0x65a704, 0x65ab01, 0x000000, 0x65ac04, 0x65b001, 0x65b10a, 0x65bb02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x65bd01, 0x000000, 0x000000, 0x65be02, - 0x000000, 0x000000, 0x65c001, 0x000000, 0x65c101, 0x000000, 0x65c202, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x65c401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x65c505, 0x65ca01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x65cb06, 0x000000, 0x65d101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x65d202, 0x000000, 0x65d402, 0x000000, 0x000000, 0x65d602, 0x000000, 0x000000, - 0x000000, 0x65d801, 0x000000, 0x65d903, 0x65dc01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x65dd01, 0x000000, 0x000000, 0x000000, 0x65de0b, 0x000000, 0x65e904, - 0x000000, 0x000000, 0x65ed01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x65ee01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x65ef05, - 0x65f406, 0x000000, 0x65fa0f, 0x660902, 0x000000, 0x660b01, 0x000000, 0x000000, - 0x660c0b, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x661705, - 0x661c0e, 0x662a09, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x663302, 0x663501, 0x000000, 0x000000, 0x000000, - 0x663603, 0x000000, 0x663901, 0x663a01, 0x000000, 0x000000, 0x663b02, 0x000000, - 0x000000, 0x663d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x663e01, - 0x000000, 0x000000, 0x000000, 0x663f01, 0x664090, 0x000000, 0x66d001, 0x66d101, - 0x000000, 0x66d201, 0x000000, 0x000000, 0x66d301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x66d406, 0x000000, 0x66da04, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x66de0f, 0x000000, 0x000000, - 0x000000, 0x66ed1d, 0x000000, 0x000000, 0x000000, 0x670a03, 0x000000, 0x000000, - 0x670d01, 0x670e02, 0x671007, 0x000000, 0x000000, 0x67170e, 0x672505, 0x000000, - 0x000000, 0x000000, 0x000000, 0x672a01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x672b08, 0x000000, 0x000000, 0x673303, 0x000000, 0x000000, 0x673601, - 0x000000, 0x673702, 0x673906, 0x673f03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x674201, 0x000000, 0x674305, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x674803, 0x000000, 0x674b02, 0x000000, - 0x000000, 0x000000, 0x674d01, 0x000000, 0x000000, 0x000000, 0x000000, 0x674e02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x675001, 0x000000, 0x675102, 0x675301, - 0x000000, 0x675401, 0x675501, 0x000000, 0x000000, 0x000000, 0x675601, 0x000000, - 0x000000, 0x000000, 0x675702, 0x000000, 0x000000, 0x675902, 0x000000, 0x000000, - 0x675b03, 0x000000, 0x675e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x675f06, 0x676503, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x676801, 0x000000, - 0x000000, 0x676901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x676a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x676c08, 0x000000, 0x677401, 0x000000, 0x000000, 0x677501, 0x000000, - 0x677601, 0x000000, 0x000000, 0x677705, 0x677c01, 0x677d01, 0x000000, 0x000000, - 0x677e02, 0x000000, 0x678007, 0x678702, 0x678901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x678a02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x678c01, 0x000000, 0x000000, 0x678d02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x678f01, 0x000000, 0x679002, 0x679203, 0x000000, 0x000000, 0x000000, - 0x679501, 0x000000, 0x000000, 0x000000, 0x679605, 0x000000, 0x679b02, 0x679d01, - 0x000000, 0x000000, 0x000000, 0x679e05, 0x000000, 0x67a301, 0x000000, 0x67a404, - 0x67a815, 0x67bd01, 0x000000, 0x000000, 0x000000, 0x67be0c, 0x000000, 0x000000, - 0x000000, 0x67ca02, 0x000000, 0x000000, 0x67cc0f, 0x000000, 0x67db05, 0x000000, - 0x67e00a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x67ea01, - 0x000000, 0x67eb02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x67ed01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x67ee02, 0x67f002, 0x67f203, 0x67f502, - 0x000000, 0x000000, 0x000000, 0x67f704, 0x67fb01, 0x000000, 0x67fc06, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x680202, 0x000000, 0x680401, 0x000000, - 0x000000, 0x680502, 0x000000, 0x000000, 0x68070b, 0x681201, 0x000000, 0x000000, - 0x000000, 0x681302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x681501, 0x681603, 0x000000, 0x000000, 0x000000, - 0x681906, 0x000000, 0x000000, 0x681f07, 0x000000, 0x000000, 0x000000, 0x000000, - 0x682607, 0x682d01, 0x682e0e, 0x000000, 0x000000, 0x000000, 0x683c01, 0x683d01, - 0x683e02, 0x000000, 0x684037, 0x000000, 0x000000, 0x000000, 0x000000, 0x687701, - 0x000000, 0x687802, 0x000000, 0x687a01, 0x687b01, 0x000000, 0x687c01, 0x687d01, - 0x687e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x687f03, 0x688201, 0x000000, - 0x000000, 0x000000, 0x68830d, 0x689005, 0x000000, 0x000000, 0x000000, 0x689501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x689602, 0x000000, 0x689801, - 0x689908, 0x000000, 0x68a101, 0x000000, 0x000000, 0x000000, 0x68a201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x68a301, 0x000000, 0x000000, 0x68a402, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x68a601, 0x000000, 0x68a701, - 0x68a801, 0x000000, 0x000000, 0x000000, 0x68a903, 0x000000, 0x68ac01, 0x68ad02, - 0x000000, 0x000000, 0x000000, 0x68af03, 0x000000, 0x000000, 0x68b201, 0x000000, - 0x68b301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x68b403, 0x000000, 0x000000, 0x68b701, 0x000000, 0x000000, - 0x68b803, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x68bb0d, 0x000000, 0x68c801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x68c901, 0x000000, 0x000000, 0x68ca02, 0x68cc05, 0x68d101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x68d20e, 0x000000, 0x000000, 0x68e002, - 0x000000, 0x68e201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x68e301, 0x000000, 0x68e404, 0x68e801, 0x000000, - 0x68e901, 0x000000, 0x68ea11, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x68fb02, 0x000000, 0x68fd04, 0x690101, 0x690207, 0x000000, - 0x000000, 0x000000, 0x000000, 0x690904, 0x690d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x690e01, 0x690f04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x69130b, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x691e02, 0x692001, 0x692101, 0x692201, 0x692303, 0x692602, 0x000000, 0x000000, - 0x000000, 0x692801, 0x692903, 0x000000, 0x000000, 0x692c03, 0x000000, 0x000000, - 0x000000, 0x692f01, 0x000000, 0x000000, 0x693001, 0x693101, 0x000000, 0x000000, - 0x000000, 0x693201, 0x000000, 0x693301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x693404, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x693806, 0x000000, 0x000000, 0x693e01, 0x000000, 0x000000, 0x693f02, 0x000000, - 0x000000, 0x000000, 0x69410a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x694b02, 0x000000, 0x694d05, 0x000000, 0x000000, 0x695202, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x695404, - 0x000000, 0x695801, 0x695902, 0x695b01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x695c01, 0x000000, 0x695d04, 0x000000, 0x696102, 0x000000, 0x696302, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x696504, 0x000000, - 0x696901, 0x696a03, 0x000000, 0x696d0d, 0x000000, 0x000000, 0x000000, 0x000000, - 0x697a03, 0x697d01, 0x000000, 0x000000, 0x697e03, 0x698102, 0x698301, 0x698401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x698501, 0x698603, 0x698901, 0x000000, 0x698a06, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x699001, 0x000000, 0x000000, 0x000000, 0x699103, 0x000000, - 0x000000, 0x000000, 0x000000, 0x699401, 0x699501, 0x699603, 0x699902, 0x000000, - 0x000000, 0x699b01, 0x699c01, 0x000000, 0x000000, 0x000000, 0x699d04, 0x69a102, - 0x000000, 0x000000, 0x000000, 0x69a301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x69a401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x69a501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x69a602, 0x69a801, 0x000000, 0x69a901, 0x000000, 0x000000, - 0x000000, 0x69aa01, 0x69ab03, 0x000000, 0x69ae01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x69af02, 0x69b101, 0x69b202, 0x000000, 0x69b403, 0x000000, 0x69b705, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x69bc01, 0x000000, 0x000000, 0x69bd02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x69bf04, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x69c302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x69c501, 0x000000, - 0x69c602, 0x000000, 0x000000, 0x000000, 0x69c801, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x69c901, 0x000000, 0x69ca03, 0x69cd01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x69ce01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x69cf02, 0x69d104, 0x000000, 0x69d501, 0x000000, 0x000000, 0x69d604, - 0x000000, 0x69da03, 0x69dd01, 0x000000, 0x000000, 0x000000, 0x69de02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x69e001, 0x000000, 0x000000, 0x000000, 0x69e101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x69e201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x69e309, 0x69ec01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x69ed06, 0x000000, 0x000000, 0x69f302, 0x000000, 0x69f504, 0x000000, - 0x000000, 0x69f901, 0x69fa10, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6a0a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x6a0b01, 0x6a0c01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6a0d01, 0x6a0e01, 0x000000, 0x6a0f07, - 0x000000, 0x6a1605, 0x000000, 0x000000, 0x000000, 0x6a1b0b, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6a260e, 0x000000, 0x6a3402, - 0x000000, 0x000000, 0x6a3602, 0x000000, 0x6a3802, 0x000000, 0x6a3a03, 0x000000, - 0x6a3d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6a3f02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6a4101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6a4201, 0x000000, 0x000000, 0x6a4302, 0x000000, 0x000000, 0x6a4501, 0x000000, - 0x6a4602, 0x000000, 0x000000, 0x000000, 0x000000, 0x6a4804, 0x000000, 0x000000, - 0x000000, 0x6a4c03, 0x000000, 0x000000, 0x6a4f03, 0x6a5201, 0x6a5302, 0x6a5501, - 0x6a5601, 0x000000, 0x6a5701, 0x000000, 0x6a5801, 0x6a5907, 0x000000, 0x000000, - 0x6a6002, 0x000000, 0x000000, 0x000000, 0x000000, 0x6a6202, 0x000000, 0x6a6401, - 0x000000, 0x6a6501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6a6603, 0x000000, 0x6a6901, 0x6a6a07, 0x000000, 0x6a7101, 0x000000, 0x000000, - 0x000000, 0x6a7202, 0x000000, 0x6a7401, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6a7501, 0x6a7603, 0x6a7901, 0x000000, 0x000000, 0x000000, 0x6a7a08, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6a8209, 0x000000, - 0x6a8b02, 0x6a8d12, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6a9f01, 0x6aa004, 0x6aa401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6aa50a, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6aaf01, 0x6ab005, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6ab502, 0x000000, 0x6ab709, 0x000000, 0x6ac001, 0x000000, - 0x6ac101, 0x6ac201, 0x000000, 0x6ac308, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6acb08, 0x000000, 0x000000, 0x000000, 0x6ad302, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6ad501, 0x000000, 0x6ad604, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6ada03, 0x000000, 0x000000, 0x6add01, 0x6ade02, 0x6ae004, - 0x000000, 0x000000, 0x000000, 0x6ae402, 0x000000, 0x6ae609, 0x000000, 0x6aef02, - 0x6af101, 0x000000, 0x000000, 0x6af211, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6b0301, 0x000000, 0x6b0407, 0x6b0b04, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6b0f2d, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6b3c03, 0x000000, 0x000000, 0x000000, 0x6b3f02, 0x000000, 0x000000, 0x000000, - 0x6b4101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6b4201, 0x000000, 0x000000, 0x000000, 0x6b4301, 0x000000, 0x000000, 0x6b4404, - 0x000000, 0x6b4802, 0x6b4a02, 0x000000, 0x000000, 0x6b4c01, 0x000000, 0x6b4d01, - 0x000000, 0x6b4e06, 0x000000, 0x6b5405, 0x6b5902, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6b5b01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6b5c08, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6b6401, 0x000000, 0x6b6508, 0x6b6d09, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6b7615, 0x6b8b01, 0x000000, 0x000000, 0x000000, 0x6b8c0c, 0x6b9801, 0x000000, - 0x000000, 0x000000, 0x6b9901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6b9a02, 0x000000, 0x000000, - 0x6b9c01, 0x6b9d01, 0x000000, 0x6b9e04, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6ba210, 0x000000, 0x000000, 0x6bb202, 0x000000, - 0x6bb401, 0x6bb501, 0x6bb602, 0x6bb801, 0x000000, 0x6bb901, 0x000000, 0x000000, - 0x6bba06, 0x6bc001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6bc102, - 0x000000, 0x000000, 0x6bc301, 0x6bc407, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6bcb04, 0x000000, 0x000000, 0x6bcf08, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6bd702, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6bd908, 0x000000, 0x000000, 0x000000, 0x6be102, - 0x000000, 0x000000, 0x6be30b, 0x000000, 0x000000, 0x000000, 0x6bee01, 0x000000, - 0x000000, 0x6bef02, 0x6bf102, 0x000000, 0x6bf302, 0x6bf505, 0x000000, 0x000000, - 0x000000, 0x6bfa01, 0x000000, 0x6bfb05, 0x6c0002, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6c0209, 0x6c0b01, 0x000000, 0x6c0c01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6c0d02, 0x000000, 0x000000, - 0x6c0f01, 0x000000, 0x6c1004, 0x000000, 0x000000, 0x000000, 0x6c1402, 0x000000, - 0x6c1602, 0x000000, 0x000000, 0x000000, 0x6c1801, 0x6c1908, 0x000000, 0x000000, - 0x000000, 0x6c211d, 0x000000, 0x000000, 0x000000, 0x6c3e01, 0x000000, 0x6c3f01, - 0x6c4006, 0x6c4601, 0x6c4708, 0x000000, 0x000000, 0x6c4f01, 0x000000, 0x6c5002, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6c5201, 0x000000, 0x000000, 0x6c5301, 0x000000, 0x6c5405, 0x000000, - 0x6c5904, 0x000000, 0x000000, 0x000000, 0x6c5d01, 0x000000, 0x000000, 0x000000, - 0x6c5e01, 0x6c5f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6c6001, 0x6c6101, 0x000000, 0x000000, 0x000000, 0x6c6201, 0x6c6303, 0x6c6601, - 0x6c6710, 0x000000, 0x000000, 0x000000, 0x6c7702, 0x6c7904, 0x000000, 0x000000, - 0x000000, 0x6c7d01, 0x6c7e01, 0x000000, 0x6c7f01, 0x6c8004, 0x000000, 0x000000, - 0x6c8403, 0x000000, 0x6c8702, 0x000000, 0x6c8905, 0x000000, 0x000000, 0x6c8e01, - 0x000000, 0x6c8f01, 0x6c900b, 0x6c9b08, 0x000000, 0x6ca301, 0x6ca401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6ca50b, - 0x000000, 0x6cb002, 0x000000, 0x6cb201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6cb321, 0x6cd401, 0x6cd502, 0x000000, 0x000000, 0x000000, 0x6cd701, 0x000000, - 0x000000, 0x000000, 0x6cd813, 0x6ceb05, 0x000000, 0x6cf001, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6cf101, 0x000000, 0x6cf201, 0x000000, 0x000000, - 0x000000, 0x6cf305, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6cf801, - 0x6cf901, 0x000000, 0x000000, 0x6cfa02, 0x000000, 0x000000, 0x000000, 0x6cfc04, - 0x6d000f, 0x000000, 0x000000, 0x6d0f01, 0x000000, 0x000000, 0x6d1001, 0x000000, - 0x6d1109, 0x000000, 0x000000, 0x000000, 0x6d1a03, 0x6d1d07, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6d2401, 0x000000, 0x6d2503, 0x000000, 0x6d2802, 0x000000, 0x6d2a07, 0x6d3106, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6d3703, 0x6d3a01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6d3b01, 0x6d3c02, - 0x000000, 0x000000, 0x000000, 0x6d3e02, 0x000000, 0x6d4006, 0x6d4601, 0x000000, - 0x6d4701, 0x6d4804, 0x000000, 0x6d4c02, 0x000000, 0x6d4e44, 0x6d9201, 0x6d9304, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6d9702, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6d9901, 0x6d9a02, 0x000000, 0x000000, - 0x6d9c02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6d9e03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6da103, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6da401, 0x6da502, - 0x6da701, 0x000000, 0x6da801, 0x000000, 0x000000, 0x6da901, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6daa03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6dad07, 0x000000, 0x000000, 0x000000, 0x000000, 0x6db401, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6db502, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6db702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6db907, 0x000000, 0x6dc011, 0x6dd101, - 0x6dd201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6dd302, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6dd50b, 0x000000, - 0x6de002, 0x000000, 0x6de204, 0x000000, 0x000000, 0x6de605, 0x000000, 0x000000, - 0x000000, 0x6deb01, 0x6dec05, 0x000000, 0x000000, 0x000000, 0x6df106, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6df703, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6dfa02, 0x6dfc04, 0x6e0005, 0x000000, 0x000000, 0x000000, 0x000000, 0x6e0501, - 0x000000, 0x6e0605, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6e0b01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6e0c02, 0x000000, 0x000000, 0x6e0e03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6e110a, 0x6e1b02, 0x000000, 0x6e1d01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6e1e02, 0x000000, 0x6e200d, 0x6e2d01, 0x000000, 0x000000, - 0x6e2e02, 0x6e3002, 0x000000, 0x6e3202, 0x000000, 0x6e3402, 0x000000, 0x000000, - 0x000000, 0x6e3601, 0x6e3701, 0x6e3805, 0x000000, 0x6e3d01, 0x000000, 0x6e3e02, - 0x6e4001, 0x000000, 0x000000, 0x000000, 0x6e4101, 0x000000, 0x6e4202, 0x6e4403, - 0x6e4703, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6e4a06, 0x000000, 0x6e5001, 0x000000, 0x000000, 0x6e5101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6e5202, 0x000000, 0x000000, 0x000000, - 0x6e5403, 0x000000, 0x000000, 0x000000, 0x6e5702, 0x6e5901, 0x000000, 0x6e5a01, - 0x6e5b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6e5c01, - 0x000000, 0x000000, 0x6e5d01, 0x6e5e01, 0x000000, 0x000000, 0x6e5f02, 0x000000, - 0x000000, 0x6e6101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6e6201, - 0x000000, 0x000000, 0x6e6301, 0x000000, 0x000000, 0x6e6401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6e6501, 0x6e6601, 0x000000, 0x000000, 0x6e6702, 0x000000, - 0x000000, 0x000000, 0x6e6902, 0x000000, 0x6e6b01, 0x6e6c01, 0x000000, 0x6e6d02, - 0x6e6f02, 0x6e7103, 0x000000, 0x6e7401, 0x6e7501, 0x000000, 0x000000, 0x000000, - 0x6e7601, 0x000000, 0x6e7701, 0x6e7802, 0x6e7a09, 0x000000, 0x6e8302, 0x000000, - 0x6e8503, 0x000000, 0x6e8802, 0x000000, 0x000000, 0x000000, 0x000000, 0x6e8a01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6e8b01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6e8c01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6e8d01, 0x6e8e01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6e8f01, 0x000000, 0x000000, 0x6e9007, 0x000000, 0x6e9701, 0x000000, - 0x6e9801, 0x6e9901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x6e9a05, 0x000000, 0x000000, 0x000000, 0x6e9f01, 0x6ea007, 0x000000, 0x000000, - 0x6ea701, 0x000000, 0x000000, 0x000000, 0x6ea809, 0x6eb101, 0x000000, 0x6eb205, - 0x000000, 0x000000, 0x6eb703, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6eba01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6ebb3f, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x6efa01, 0x000000, 0x6efb01, 0x6efc03, 0x000000, 0x6eff04, - 0x000000, 0x000000, 0x000000, 0x6f0301, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6f0402, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f0601, 0x000000, - 0x000000, 0x000000, 0x6f0704, 0x000000, 0x000000, 0x6f0b01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6f0c02, 0x000000, 0x000000, 0x000000, 0x6f0e03, - 0x6f1118, 0x000000, 0x6f2906, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f2f01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6f3002, 0x000000, 0x6f3204, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6f3603, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6f3906, 0x000000, 0x6f3f01, 0x000000, 0x6f4004, 0x000000, 0x000000, - 0x6f4401, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f4502, 0x6f4701, 0x000000, - 0x000000, 0x6f4803, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f4b03, 0x000000, - 0x000000, 0x000000, 0x6f4e02, 0x000000, 0x6f5002, 0x000000, 0x6f5201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x6f5302, 0x000000, 0x000000, 0x6f5501, 0x6f5605, - 0x000000, 0x000000, 0x000000, 0x6f5b02, 0x000000, 0x000000, 0x000000, 0x6f5d02, - 0x000000, 0x000000, 0x6f5f01, 0x6f6001, 0x6f6107, 0x6f6805, 0x000000, 0x6f6d01, - 0x000000, 0x6f6e01, 0x6f6f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f7003, - 0x000000, 0x000000, 0x6f7305, 0x000000, 0x000000, 0x6f7801, 0x6f7901, 0x000000, - 0x000000, 0x000000, 0x6f7a09, 0x000000, 0x6f8305, 0x000000, 0x6f8801, 0x6f8906, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x6f8f03, 0x6f9201, 0x000000, 0x000000, - 0x6f9301, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f9401, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f9502, 0x6f9701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f9801, 0x000000, 0x000000, - 0x000000, 0x6f9902, 0x000000, 0x6f9b01, 0x6f9c02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6f9e01, 0x000000, 0x000000, 0x000000, 0x000000, 0x6f9f05, 0x6fa407, - 0x6fab01, 0x000000, 0x000000, 0x6fac01, 0x000000, 0x000000, 0x000000, 0x6fad05, - 0x6fb203, 0x000000, 0x6fb503, 0x000000, 0x000000, 0x6fb804, 0x000000, 0x000000, - 0x6fbc09, 0x000000, 0x000000, 0x000000, 0x000000, 0x6fc501, 0x6fc604, 0x6fca01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6fcb06, 0x000000, - 0x6fd102, 0x000000, 0x000000, 0x6fd303, 0x000000, 0x6fd601, 0x000000, 0x6fd703, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6fda02, 0x000000, - 0x000000, 0x000000, 0x6fdc01, 0x6fdd01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x6fde04, 0x000000, 0x6fe209, 0x000000, 0x000000, 0x6feb0a, 0x000000, - 0x000000, 0x000000, 0x6ff508, 0x000000, 0x6ffd01, 0x6ffe01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x6fff01, - 0x700002, 0x700201, 0x70030f, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x701204, 0x000000, 0x000000, 0x000000, 0x701601, 0x000000, - 0x000000, 0x000000, 0x701701, 0x000000, 0x701801, 0x701907, 0x000000, 0x702002, - 0x000000, 0x702201, 0x702302, 0x702501, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x702611, 0x703708, 0x000000, 0x000000, 0x000000, - 0x703f01, 0x000000, 0x000000, 0x000000, 0x704001, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x704101, 0x000000, - 0x704202, 0x000000, 0x704401, 0x000000, 0x000000, 0x704503, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x704804, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x704c01, 0x704d02, 0x704f02, 0x705102, 0x705301, 0x000000, 0x705402, 0x000000, - 0x000000, 0x000000, 0x000000, 0x705601, 0x705702, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x705902, 0x000000, 0x000000, 0x000000, 0x705b02, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x705d01, 0x000000, - 0x705e01, 0x705f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x706001, 0x706101, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x706201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x706301, 0x000000, 0x706409, - 0x000000, 0x706d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x706f01, 0x000000, 0x707001, 0x000000, 0x707101, 0x000000, 0x000000, 0x000000, - 0x70720a, 0x000000, 0x000000, 0x000000, 0x707c02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x707e02, 0x000000, 0x000000, 0x708001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x708103, 0x000000, 0x708401, 0x000000, 0x000000, - 0x708501, 0x000000, 0x000000, 0x708601, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x708702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x708902, 0x708b04, 0x000000, 0x000000, 0x708f03, 0x709202, 0x000000, - 0x000000, 0x709405, 0x000000, 0x709910, 0x000000, 0x000000, 0x000000, 0x70a90a, - 0x70b301, 0x000000, 0x000000, 0x70b401, 0x000000, 0x70b501, 0x70b602, 0x000000, - 0x000000, 0x000000, 0x70b801, 0x000000, 0x000000, 0x000000, 0x70b909, 0x000000, - 0x70c201, 0x70c301, 0x70c405, 0x000000, 0x000000, 0x000000, 0x70c906, 0x70cf02, - 0x70d108, 0x70d902, 0x70db03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x70de03, 0x000000, 0x000000, 0x000000, 0x70e101, 0x70e201, - 0x000000, 0x000000, 0x000000, 0x70e304, 0x000000, 0x000000, 0x70e702, 0x000000, - 0x70e901, 0x000000, 0x000000, 0x000000, 0x000000, 0x70ea01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x70eb02, 0x000000, 0x000000, 0x000000, - 0x70ed04, 0x000000, 0x70f101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x70f201, 0x70f303, 0x70f601, 0x000000, 0x000000, 0x70f701, - 0x000000, 0x70f803, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x70fb02, 0x000000, 0x000000, 0x000000, 0x000000, 0x70fd03, - 0x710001, 0x000000, 0x000000, 0x000000, 0x710106, 0x000000, 0x710703, 0x000000, - 0x710a03, 0x000000, 0x000000, 0x000000, 0x000000, 0x710d0e, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x711b0a, 0x000000, 0x000000, 0x000000, - 0x712501, 0x000000, 0x000000, 0x000000, 0x000000, 0x712601, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x712703, - 0x000000, 0x712a04, 0x000000, 0x712e01, 0x712f06, 0x000000, 0x713501, 0x713601, - 0x000000, 0x000000, 0x713705, 0x713c07, 0x714301, 0x714401, 0x714501, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x714601, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x714701, 0x000000, 0x714808, 0x000000, 0x000000, - 0x000000, 0x715002, 0x000000, 0x000000, 0x71520a, 0x000000, 0x000000, 0x715c03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x715f01, 0x000000, 0x716001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x71610a, 0x000000, 0x000000, 0x000000, - 0x716b01, 0x000000, 0x000000, 0x000000, 0x716c01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x716d07, 0x000000, 0x717402, 0x000000, 0x717604, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x717a03, - 0x000000, 0x000000, 0x000000, 0x717d02, 0x717f06, 0x718508, 0x000000, 0x718d0c, - 0x719901, 0x000000, 0x000000, 0x000000, 0x719a01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x719b01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x719c03, 0x719f02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x71a107, 0x71a806, 0x000000, 0x000000, 0x000000, - 0x71ae02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x71b002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x71b202, - 0x000000, 0x71b406, 0x000000, 0x000000, 0x000000, 0x71ba05, 0x000000, 0x000000, - 0x71bf12, 0x000000, 0x000000, 0x71d102, 0x71d30c, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x71df08, 0x000000, - 0x71e70e, 0x71f502, 0x000000, 0x71f704, 0x000000, 0x000000, 0x71fb01, 0x000000, - 0x71fc2f, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x722b01, 0x000000, 0x000000, 0x722c01, 0x000000, 0x000000, 0x722d04, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x723107, 0x000000, 0x000000, 0x000000, 0x723804, 0x000000, - 0x723c03, 0x000000, 0x723f02, 0x000000, 0x724106, 0x724718, 0x725f02, 0x000000, - 0x726103, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x726401, 0x000000, 0x000000, 0x726505, 0x726a01, 0x726b02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x726d01, 0x000000, 0x726e01, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x726f01, 0x727001, 0x727102, 0x727302, 0x000000, 0x727502, - 0x000000, 0x000000, 0x727703, 0x727a05, 0x000000, 0x727f0a, 0x000000, 0x000000, - 0x000000, 0x728901, 0x000000, 0x000000, 0x728a01, 0x000000, 0x000000, 0x728b02, - 0x728d02, 0x728f07, 0x000000, 0x729603, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x729901, 0x729a02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x729c02, 0x729e01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x729f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x72a001, 0x000000, - 0x000000, 0x000000, 0x000000, 0x72a101, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x72a201, 0x72a301, 0x72a405, 0x000000, - 0x000000, 0x72a901, 0x000000, 0x000000, 0x72aa02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x72ac07, 0x000000, 0x000000, - 0x000000, 0x000000, 0x72b301, 0x000000, 0x72b401, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x72b502, 0x000000, 0x000000, 0x72b70a, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x72c103, 0x000000, 0x72c405, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x72c903, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x72cc01, 0x000000, 0x000000, 0x000000, 0x72cd01, 0x000000, - 0x000000, 0x72ce06, 0x72d401, 0x000000, 0x72d50e, 0x72e302, 0x72e504, 0x72e901, - 0x72ea01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x72eb03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x72ee0c, 0x000000, 0x000000, 0x000000, 0x72fa02, 0x000000, 0x000000, 0x000000, - 0x72fc02, 0x000000, 0x000000, 0x72fe02, 0x000000, 0x730002, 0x000000, 0x000000, - 0x000000, 0x000000, 0x730203, 0x000000, 0x730504, 0x730902, 0x730b04, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x730f05, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x731403, 0x000000, 0x000000, 0x000000, 0x731704, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x731b05, - 0x000000, 0x73200d, 0x000000, 0x000000, 0x000000, 0x732d04, 0x000000, 0x000000, - 0x000000, 0x733101, 0x000000, 0x000000, 0x000000, 0x733201, 0x733305, 0x000000, - 0x000000, 0x733801, 0x000000, 0x000000, 0x000000, 0x733901, 0x000000, 0x733a03, - 0x000000, 0x733d03, 0x734004, 0x000000, 0x734401, 0x000000, 0x000000, 0x000000, - 0x734502, 0x000000, 0x000000, 0x000000, 0x734704, 0x000000, 0x000000, 0x000000, - 0x734b02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x734d01, 0x000000, 0x734e01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x734f01, 0x735008, 0x735801, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x735901, 0x000000, 0x000000, 0x735a07, - 0x736102, 0x000000, 0x736302, 0x000000, 0x000000, 0x000000, 0x736501, 0x000000, - 0x736601, 0x736703, 0x736a01, 0x000000, 0x000000, 0x736b01, 0x000000, 0x000000, - 0x000000, 0x736c01, 0x000000, 0x000000, 0x000000, 0x736d02, 0x000000, 0x000000, - 0x736f06, 0x000000, 0x000000, 0x000000, 0x000000, 0x737503, 0x737801, 0x000000, - 0x737902, 0x737b01, 0x000000, 0x000000, 0x737c01, 0x000000, 0x000000, 0x737d0c, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x738906, 0x738f02, 0x739105, 0x739602, 0x000000, 0x000000, - 0x000000, 0x000000, 0x739801, 0x739903, 0x000000, 0x000000, 0x739c10, 0x000000, - 0x000000, 0x73ac01, 0x000000, 0x73ad01, 0x000000, 0x73ae01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x73af01, 0x73b008, 0x000000, 0x000000, 0x73b807, 0x000000, - 0x000000, 0x000000, 0x73bf01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x73c001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x73c101, 0x73c202, 0x73c401, 0x000000, 0x73c503, 0x000000, 0x73c802, 0x73ca01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x73cb01, 0x000000, - 0x73cc04, 0x000000, 0x73d001, 0x000000, 0x000000, 0x000000, 0x73d103, 0x000000, - 0x73d403, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x73d703, - 0x73da01, 0x000000, 0x000000, 0x73db01, 0x000000, 0x000000, 0x000000, 0x73dc03, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x73df07, 0x000000, 0x000000, - 0x000000, 0x73e602, 0x73e802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x73ea02, 0x000000, 0x73ec02, 0x73ee05, 0x000000, 0x000000, - 0x73f301, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x73f402, 0x000000, - 0x000000, 0x000000, 0x73f601, 0x000000, 0x000000, 0x000000, 0x73f701, 0x000000, - 0x73f801, 0x73f90a, 0x740301, 0x000000, 0x740401, 0x000000, 0x000000, 0x000000, - 0x740504, 0x000000, 0x74090e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x741701, 0x000000, 0x741806, 0x000000, 0x741e06, 0x000000, - 0x742401, 0x742510, 0x000000, 0x74350b, 0x744002, 0x000000, 0x744201, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x744301, 0x000000, 0x000000, 0x744406, - 0x000000, 0x000000, 0x000000, 0x744a01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x744b01, 0x000000, 0x000000, 0x000000, 0x744c01, 0x744d01, 0x744e2f, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x747d02, 0x000000, 0x000000, 0x000000, 0x747f01, 0x000000, - 0x748002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x748202, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x748403, - 0x000000, 0x748702, 0x748901, 0x000000, 0x000000, 0x748a02, 0x000000, 0x000000, - 0x748c01, 0x748d05, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x749201, 0x000000, 0x000000, 0x000000, - 0x000000, 0x749301, 0x749404, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x749814, 0x000000, 0x000000, 0x74ac03, - 0x74af12, 0x74c10f, 0x74d002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x74d20e, 0x74e001, 0x000000, 0x74e101, 0x000000, 0x000000, 0x74e203, 0x74e512, - 0x74f702, 0x74f901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x74fa01, 0x74fb03, 0x000000, 0x000000, 0x000000, 0x74fe02, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x750003, 0x000000, 0x000000, 0x750301, - 0x000000, 0x750405, 0x000000, 0x000000, 0x750909, 0x000000, 0x000000, 0x000000, - 0x000000, 0x751201, 0x000000, 0x000000, 0x000000, 0x751306, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x751901, 0x000000, 0x751a0d, 0x75270f, 0x753601, - 0x753702, 0x753903, 0x000000, 0x000000, 0x000000, 0x753c01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x753d02, 0x753f01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x754006, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x754608, 0x754e02, 0x000000, - 0x000000, 0x755001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x755104, 0x000000, 0x755501, 0x000000, - 0x755601, 0x000000, 0x75571b, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x757201, 0x757301, 0x000000, 0x000000, 0x000000, 0x757403, 0x000000, - 0x757701, 0x000000, 0x000000, 0x000000, 0x757802, 0x000000, 0x000000, 0x000000, - 0x000000, 0x757a04, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x757e01, 0x000000, 0x000000, 0x757f02, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x758102, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x758306, 0x758901, 0x000000, - 0x000000, 0x758a07, 0x000000, 0x000000, 0x000000, 0x000000, 0x759114, 0x75a501, - 0x000000, 0x75a602, 0x000000, 0x75a809, 0x75b101, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x75b201, 0x75b301, 0x75b402, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x75b601, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x75b701, - 0x000000, 0x000000, 0x75b801, 0x75b901, 0x000000, 0x000000, 0x000000, 0x75ba07, - 0x75c101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x75c201, 0x000000, - 0x000000, 0x75c303, 0x75c611, 0x000000, 0x000000, 0x000000, 0x75d704, 0x000000, - 0x75db01, 0x75dc07, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x75e301, 0x75e40b, 0x000000, 0x75ef02, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x75f102, 0x75f303, 0x000000, - 0x000000, 0x75f603, 0x000000, 0x000000, 0x75f901, 0x000000, 0x000000, 0x000000, - 0x000000, 0x75fa0a, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x760403, 0x000000, 0x000000, 0x000000, - 0x760701, 0x000000, 0x000000, 0x760801, 0x000000, 0x000000, 0x000000, 0x760901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x760a01, 0x000000, 0x760b02, 0x000000, - 0x760d05, 0x761204, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x761602, - 0x000000, 0x000000, 0x761802, 0x761a03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x761d02, 0x000000, 0x761f03, 0x762202, 0x762405, 0x000000, 0x762902, 0x762b11, - 0x000000, 0x000000, 0x000000, 0x763c02, 0x000000, 0x000000, 0x763e01, 0x763f06, - 0x000000, 0x000000, 0x000000, 0x764502, 0x764702, 0x000000, 0x000000, 0x764902, - 0x000000, 0x764b0a, 0x000000, 0x765501, 0x000000, 0x000000, 0x000000, 0x000000, - 0x765601, 0x765702, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x765901, - 0x765a03, 0x765d02, 0x765f02, 0x76610a, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x766b01, 0x766c01, 0x000000, 0x000000, 0x000000, 0x766d01, - 0x000000, 0x000000, 0x000000, 0x766e01, 0x000000, 0x766f02, 0x767104, 0x767501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x767605, 0x000000, 0x767b10, - 0x768b01, 0x768c07, 0x000000, 0x000000, 0x769301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x769401, 0x000000, 0x769501, - 0x000000, 0x769601, 0x769705, 0x000000, 0x000000, 0x769c01, 0x769d0c, 0x76a901, - 0x000000, 0x000000, 0x000000, 0x000000, 0x76aa02, 0x000000, 0x000000, 0x76ac04, - 0x000000, 0x76b003, 0x000000, 0x76b309, 0x76bc04, 0x000000, 0x000000, 0x000000, - 0x76c002, 0x000000, 0x000000, 0x000000, 0x000000, 0x76c201, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x76c301, 0x000000, 0x000000, 0x76c401, 0x000000, - 0x76c502, 0x76c701, 0x000000, 0x76c801, 0x000000, 0x76c907, 0x000000, 0x000000, - 0x000000, 0x76d001, 0x000000, 0x000000, 0x76d101, 0x76d201, 0x000000, 0x76d304, - 0x000000, 0x76d703, 0x000000, 0x000000, 0x000000, 0x76da03, 0x76dd02, 0x76df01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x76e003, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x76e301, 0x000000, 0x76e401, 0x76e503, 0x000000, - 0x76e801, 0x76e903, 0x000000, 0x000000, 0x000000, 0x76ec07, 0x000000, 0x000000, - 0x000000, 0x000000, 0x76f304, 0x76f701, 0x76f801, 0x000000, 0x000000, 0x000000, - 0x76f906, 0x000000, 0x76ff03, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x770202, 0x000000, 0x770408, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x770c07, 0x000000, 0x000000, 0x771301, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x771401, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x771501, 0x77160a, 0x772001, 0x772107, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x772803, 0x000000, - 0x772b01, 0x000000, 0x000000, 0x000000, 0x772c01, 0x772d04, 0x000000, 0x773102, - 0x773307, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x773a01, 0x000000, 0x773b01, 0x000000, - 0x773c0c, 0x000000, 0x000000, 0x000000, 0x000000, 0x774801, 0x000000, 0x000000, - 0x77490f, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x775802, 0x000000, - 0x000000, 0x775a01, 0x775b02, 0x775d01, 0x775e01, 0x775f01, 0x000000, 0x000000, - 0x776001, 0x000000, 0x776101, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x776207, 0x776901, 0x776a0f, 0x000000, 0x777901, - 0x777a03, 0x000000, 0x000000, 0x777d04, 0x000000, 0x000000, 0x778111, 0x000000, - 0x000000, 0x000000, 0x000000, 0x779201, 0x77930b, 0x779e0b, 0x77a902, 0x000000, - 0x000000, 0x77ab04, 0x77af0f, 0x77be01, 0x77bf01, 0x000000, 0x77c001, 0x000000, - 0x000000, 0x77c10b, 0x77cc01, 0x000000, 0x77cd06, 0x000000, 0x77d302, 0x77d501, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x77d610, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x77e603, 0x000000, 0x000000, 0x77e902, 0x000000, - 0x000000, 0x000000, 0x000000, 0x77eb01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x77ec01, 0x000000, 0x77ed01, 0x77ee04, 0x000000, 0x000000, 0x000000, 0x000000, - 0x77f202, 0x000000, 0x000000, 0x000000, 0x77f401, 0x000000, 0x000000, 0x77f509, - 0x77fe0a, 0x780802, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x780a02, 0x000000, 0x000000, 0x780c01, 0x000000, - 0x000000, 0x000000, 0x780d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x780f01, 0x781003, 0x000000, 0x000000, 0x000000, 0x781303, 0x000000, 0x000000, - 0x000000, 0x781603, 0x000000, 0x781901, 0x000000, 0x781a01, 0x781b03, 0x000000, - 0x000000, 0x781e01, 0x781f01, 0x782001, 0x000000, 0x000000, 0x000000, 0x782106, - 0x000000, 0x000000, 0x782703, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x782a01, 0x000000, 0x782b02, 0x000000, 0x000000, 0x782d03, - 0x000000, 0x783001, 0x783101, 0x783203, 0x783503, 0x783802, 0x000000, 0x000000, - 0x783a01, 0x783b01, 0x783c09, 0x000000, 0x000000, 0x000000, 0x000000, 0x784502, - 0x000000, 0x000000, 0x000000, 0x784712, 0x000000, 0x000000, 0x000000, 0x000000, - 0x785902, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x785b07, 0x786204, 0x000000, 0x000000, 0x786601, 0x786701, 0x000000, 0x786802, - 0x000000, 0x786a01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x786b02, 0x000000, 0x000000, 0x786d04, 0x000000, 0x000000, 0x000000, 0x787101, - 0x000000, 0x787202, 0x000000, 0x787401, 0x787507, 0x000000, 0x787c01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x787d01, 0x787e02, 0x000000, 0x000000, - 0x788002, 0x000000, 0x788201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x788306, 0x788901, 0x000000, 0x000000, 0x788a06, 0x000000, 0x789001, 0x000000, - 0x000000, 0x789102, 0x000000, 0x000000, 0x789301, 0x000000, 0x000000, 0x78940c, - 0x000000, 0x000000, 0x000000, 0x78a002, 0x78a206, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x78a802, 0x000000, 0x78aa03, 0x000000, 0x000000, 0x000000, - 0x000000, 0x78ad01, 0x000000, 0x78ae02, 0x000000, 0x78b001, 0x000000, 0x78b106, - 0x000000, 0x000000, 0x000000, 0x78b702, 0x78b903, 0x000000, 0x78bc01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x78bd05, 0x000000, 0x000000, - 0x000000, 0x78c212, 0x78d409, 0x78dd01, 0x000000, 0x000000, 0x000000, 0x000000, - 0x78de02, 0x000000, 0x000000, 0x78e001, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x78e101, 0x000000, 0x000000, 0x78e208, 0x000000, 0x000000, - 0x78ea01, 0x78eb04, 0x000000, 0x000000, 0x78ef01, 0x000000, 0x000000, 0x78f001, - 0x78f104, 0x78f503, 0x000000, 0x000000, 0x78f805, 0x78fd02, 0x000000, 0x000000, - 0x000000, 0x78ff01, 0x000000, 0x000000, 0x790001, 0x000000, 0x790104, 0x79050c, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x791101, - 0x791203, 0x791502, 0x000000, 0x791701, 0x000000, 0x000000, 0x791802, 0x000000, - 0x000000, 0x791a02, 0x791c01, 0x000000, 0x000000, 0x791d05, 0x792203, 0x000000, - 0x000000, 0x792502, 0x000000, 0x792702, 0x000000, 0x000000, 0x000000, 0x000000, - 0x792902, 0x000000, 0x000000, 0x792b03, 0x792e01, 0x792f01, 0x793002, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x793201, 0x793301, 0x793403, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x793704, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x793b01, 0x793c01, 0x793d03, 0x000000, 0x000000, 0x000000, - 0x794002, 0x794202, 0x794402, 0x000000, 0x794601, 0x000000, 0x000000, 0x000000, - 0x794701, 0x000000, 0x794804, 0x000000, 0x000000, 0x000000, 0x794c01, 0x794d01, - 0x794e08, 0x000000, 0x000000, 0x795603, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x795902, 0x000000, 0x795b03, 0x795e01, 0x000000, 0x000000, 0x000000, - 0x795f01, 0x796002, 0x000000, 0x000000, 0x000000, 0x000000, 0x796201, 0x000000, - 0x000000, 0x796301, 0x000000, 0x000000, 0x000000, 0x796402, 0x796601, 0x000000, - 0x796707, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x796e37, 0x000000, 0x79a502, 0x000000, 0x79a701, - 0x000000, 0x000000, 0x79a801, 0x79a901, 0x79aa02, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x79ac02, 0x000000, 0x79ae01, 0x79af0a, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x79b909, 0x79c203, - 0x79c501, 0x79c601, 0x000000, 0x000000, 0x000000, 0x79c703, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x79ca07, 0x000000, 0x000000, - 0x000000, 0x79d106, 0x000000, 0x000000, 0x000000, 0x79d703, 0x79da01, 0x000000, - 0x000000, 0x79db02, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x79dd01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x79de06, 0x000000, 0x000000, 0x000000, 0x79e406, 0x000000, 0x000000, 0x000000, - 0x000000, 0x79ea04, 0x79ee10, 0x000000, 0x000000, 0x000000, 0x000000, 0x79fe01, - 0x000000, 0x79ff01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x7a0003, 0x7a0311, 0x7a1401, 0x000000, - 0x7a1501, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a1602, - 0x000000, 0x000000, 0x7a1801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x7a1901, 0x7a1a01, 0x000000, 0x000000, - 0x7a1b01, 0x000000, 0x7a1c01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7a1d01, 0x7a1e01, 0x000000, 0x000000, 0x7a1f02, 0x000000, 0x7a2101, 0x000000, - 0x7a220e, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a3001, 0x000000, - 0x7a3102, 0x000000, 0x7a3301, 0x000000, 0x000000, 0x7a3402, 0x7a3601, 0x7a3702, - 0x000000, 0x000000, 0x7a3902, 0x000000, 0x000000, 0x000000, 0x7a3b03, 0x7a3e04, - 0x000000, 0x7a4201, 0x000000, 0x7a4302, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x7a4501, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a4601, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a4701, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x7a4803, 0x7a4b01, 0x7a4c06, 0x7a5202, 0x000000, - 0x7a5406, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a5a01, 0x000000, - 0x7a5b01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a5c02, 0x7a5e04, - 0x000000, 0x000000, 0x7a6202, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7a6403, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a6701, 0x000000, - 0x000000, 0x7a6801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7a6901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a6a03, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a6d03, 0x000000, 0x000000, - 0x000000, 0x000000, 0x7a7002, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x7a7201, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x7a7302, 0x000000, 0x000000, 0x7a7501, 0x7a7601, 0x000000, - 0x7a7702, 0x000000, 0x000000, 0x7a7901, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7a7a01, 0x000000, 0x000000, 0x7a7b07, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a8209, 0x000000, - 0x7a8b01, 0x000000, 0x000000, 0x7a8c03, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7a8f0c, 0x000000, 0x7a9b01, - 0x000000, 0x7a9c03, 0x000000, 0x7a9f09, 0x000000, 0x7aa804, 0x000000, 0x7aac02, - 0x7aae01, 0x7aaf01, 0x000000, 0x7ab004, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x7ab402, 0x7ab601, 0x000000, 0x000000, 0x000000, 0x7ab702, - 0x7ab904, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7abd01, - 0x7abe01, 0x000000, 0x000000, 0x7abf01, 0x000000, 0x7ac007, 0x7ac701, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7ac801, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x7ac901, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7aca03, 0x000000, 0x000000, 0x000000, 0x000000, 0x7acd04, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7ad102, 0x000000, 0x7ad304, 0x000000, 0x7ad703, 0x000000, 0x000000, 0x7ada01, - 0x000000, 0x000000, 0x000000, 0x000000, 0x7adb09, 0x000000, 0x7ae404, 0x7ae801, - 0x000000, 0x000000, 0x7ae901, 0x000000, 0x000000, 0x7aea01, 0x000000, 0x000000, - 0x7aeb01, 0x000000, 0x000000, 0x000000, 0x7aec04, 0x7af003, 0x000000, 0x7af30d, - 0x000000, 0x000000, 0x000000, 0x000000, 0x7b0001, 0x7b0102, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b0301, 0x7b0401, 0x7b0507, - 0x000000, 0x000000, 0x000000, 0x000000, 0x7b0c03, 0x7b0f01, 0x7b1004, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7b1401, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b1501, 0x000000, 0x000000, - 0x7b1602, 0x000000, 0x000000, 0x7b1801, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b1908, 0x000000, 0x7b210e, - 0x7b2f03, 0x7b3201, 0x7b3301, 0x000000, 0x7b3405, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x000000, 0x7b3907, 0x7b4006, 0x7b4601, 0x000000, 0x000000, - 0x000000, 0x7b4701, 0x7b4801, 0x7b4902, 0x000000, 0x000000, 0x7b4b03, 0x7b4e02, - 0x000000, 0x7b5001, 0x000000, 0x000000, 0x000000, 0x7b5101, 0x000000, 0x000000, - 0x000000, 0x000000, 0x7b5201, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x7b5302, 0x7b5506, 0x7b5b01, 0x7b5c01, 0x000000, 0x000000, 0x7b5d02, - 0x7b5f01, 0x7b6001, 0x7b6109, 0x7b6a01, 0x000000, 0x7b6b01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x7b6c02, 0x000000, 0x7b6e01, 0x000000, 0x7b6f01, 0x7b7002, - 0x000000, 0x000000, 0x7b7201, 0x7b7304, 0x000000, 0x000000, 0x7b7702, 0x7b7901, - 0x000000, 0x000000, 0x000000, 0x7b7a04, 0x000000, 0x7b7e01, 0x000000, 0x000000, - 0x000000, 0x000000, 0x7b7f01, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x7b8001, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b8103, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b8401, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7b8503, 0x7b8802, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b8a0e, 0x000000, - 0x7b9801, 0x000000, 0x000000, 0x7b9901, 0x000000, 0x000000, 0x7b9a01, 0x000000, - 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x7b9b02, 0x000000, 0x7b9d02, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b9f04, - 0x000000, 0x000000, 0x000000, 0x7ba305, 0x000000, 0x000000, 0x000000, 0x7ba813, - 0x000000, 0x000000, 0x7bbb0d, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, - 0x000000, 0x000000, 0x7bc802, 0x7bca01, 0x7bcb02, 0x000000, 0x7bcd02, 0x000000, - 0x000000, 0x000000, 0x7bcf06, 0x000000, 0x7bd501, 0x000000, 0x7bd602, 0x000000, -}; +static const int kDictNumBits = 15; +static const uint32_t kDictHashMul32 = 0x1e35a7bd; + +static const uint16_t kStaticDictionaryBuckets[32768] = { + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, + 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, 0x0000, 0x0000, 0x0000, + 0x0015, 0x0000, 0x0016, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0017, 0x0000, 0x0000, 0x0019, 0x0000, 0x001d, 0x0000, 0x0035, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x003d, 0x004c, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x0000, 0x0061, 0x0000, 0x0062, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0063, 0x0065, 0x006a, 0x006c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006e, 0x0000, 0x006f, 0x0070, 0x0000, + 0x0071, 0x0076, 0x007c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x0080, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0081, 0x0000, 0x0000, 0x0083, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0084, 0x0000, 0x0000, 0x0087, 0x0000, 0x0000, + 0x0000, 0x0089, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x008a, 0x008b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x008e, 0x008f, 0x0090, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0091, 0x0000, 0x0000, 0x0000, 0x0092, 0x0095, + 0x0097, 0x0098, 0x0000, 0x0000, 0x0099, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x009a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x009b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x00a0, 0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x00b7, 0x0000, 0x0000, 0x0000, 0x00bc, 0x00bd, 0x0000, 0x0000, 0x00c0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c2, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x00c5, 0x00ca, 0x00d1, 0x0000, 0x0000, 0x00d2, + 0x0000, 0x00e0, 0x0000, 0x0000, 0x0000, 0x00e1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x0000, 0x0000, 0x0000, + 0x00e8, 0x0000, 0x00f0, 0x0000, 0x0000, 0x00f2, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f4, 0x0000, 0x0000, + 0x0000, 0x00f6, 0x0000, 0x0000, 0x00f9, 0x00fb, 0x00fd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0102, 0x0000, 0x0000, 0x0105, 0x0107, 0x0000, 0x0000, 0x0000, + 0x010b, 0x0000, 0x0000, 0x010c, 0x0000, 0x010d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x010f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0110, 0x0000, 0x0111, 0x0000, 0x0115, 0x0000, 0x0116, 0x011e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x011f, 0x0000, 0x0121, 0x0122, 0x0123, 0x0000, + 0x0000, 0x0000, 0x0127, 0x0000, 0x0000, 0x0128, 0x0129, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012a, 0x0000, 0x0000, + 0x0000, 0x012b, 0x0000, 0x0000, 0x0131, 0x0000, 0x0144, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0147, 0x0000, 0x0148, 0x0149, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0150, 0x0000, 0x0000, 0x0154, 0x0000, 0x0155, 0x0156, 0x0157, 0x0000, 0x0000, + 0x015a, 0x0000, 0x015c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x015d, + 0x015f, 0x0000, 0x0000, 0x0163, 0x0000, 0x016b, 0x0000, 0x016c, 0x0000, 0x0170, + 0x0171, 0x0000, 0x0172, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0174, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0175, 0x0000, 0x0177, 0x0000, 0x0000, 0x0000, 0x0000, 0x0178, + 0x0179, 0x0000, 0x0000, 0x018a, 0x018b, 0x018c, 0x0000, 0x0000, 0x018e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0190, 0x0000, 0x0000, 0x0198, 0x0000, 0x0000, 0x0000, + 0x0000, 0x01a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x01a5, 0x0000, + 0x0000, 0x01a6, 0x01a7, 0x0000, 0x0000, 0x01ad, 0x01b3, 0x01b4, 0x01ba, 0x0000, + 0x0000, 0x01bb, 0x0000, 0x01bc, 0x01bd, 0x01c5, 0x01c8, 0x0000, 0x01c9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x01ca, 0x0000, 0x0000, 0x0000, 0x01cb, 0x0000, + 0x0000, 0x0000, 0x01cc, 0x0000, 0x01ce, 0x01cf, 0x01d1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x01d2, 0x01d5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x01d6, 0x0000, 0x0000, 0x0000, 0x01da, 0x0000, 0x01dc, 0x0000, 0x0000, + 0x0000, 0x0000, 0x01e3, 0x0000, 0x01e5, 0x0000, 0x0000, 0x0000, 0x01e6, 0x0000, + 0x0000, 0x01e8, 0x01eb, 0x01ec, 0x0000, 0x0000, 0x01f1, 0x01f3, 0x01f4, 0x0000, + 0x01f5, 0x0000, 0x0000, 0x0000, 0x01f9, 0x0000, 0x0000, 0x01fa, 0x0000, 0x0000, + 0x0000, 0x01fb, 0x0000, 0x0000, 0x0000, 0x01fd, 0x0000, 0x0000, 0x0000, 0x0000, + 0x01ff, 0x0200, 0x0207, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0211, + 0x0212, 0x0000, 0x0000, 0x0000, 0x0216, 0x0000, 0x0000, 0x0000, 0x0000, 0x021f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0229, + 0x0000, 0x0000, 0x0000, 0x0000, 0x022d, 0x0230, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0231, 0x0000, 0x0234, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0235, 0x0236, 0x0000, 0x023f, 0x0000, 0x026b, 0x0000, 0x026c, 0x0000, + 0x0000, 0x026f, 0x0270, 0x0000, 0x0000, 0x0000, 0x0271, 0x0000, 0x0000, 0x0272, + 0x0273, 0x0000, 0x0000, 0x0274, 0x0000, 0x0000, 0x0000, 0x0000, 0x0276, 0x0000, + 0x0277, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0281, 0x0000, 0x0000, 0x0000, 0x0000, 0x0283, 0x0290, 0x029c, 0x0000, 0x0000, + 0x0000, 0x02a1, 0x0000, 0x0000, 0x0000, 0x02a2, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x02aa, 0x0000, 0x02af, 0x0000, 0x02b2, 0x0000, + 0x02b5, 0x02bb, 0x02bc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x02c0, + 0x02c1, 0x0000, 0x0000, 0x0000, 0x0000, 0x02c3, 0x02c6, 0x0000, 0x02c7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x02d6, 0x0000, 0x0000, 0x02d9, 0x0000, 0x0000, 0x0000, + 0x02da, 0x02db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x02f0, 0x0000, 0x0000, + 0x0000, 0x02fa, 0x0000, 0x02fb, 0x0000, 0x0000, 0x02ff, 0x0000, 0x0000, 0x0000, + 0x0302, 0x0306, 0x0000, 0x0000, 0x0307, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0308, 0x0000, 0x0000, 0x0000, 0x0309, + 0x030f, 0x0000, 0x0000, 0x0000, 0x0311, 0x0314, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0316, 0x0000, 0x0000, 0x0000, 0x0319, 0x0000, 0x0000, 0x0000, 0x0000, 0x031a, + 0x0000, 0x0000, 0x0324, 0x0333, 0x0335, 0x0000, 0x033b, 0x0000, 0x0000, 0x0000, + 0x0342, 0x0000, 0x0000, 0x0343, 0x0000, 0x0000, 0x0000, 0x0349, 0x0000, 0x034c, + 0x0000, 0x0352, 0x0353, 0x035b, 0x0000, 0x035c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x036a, 0x0000, 0x036c, 0x0000, 0x036d, 0x037a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x037d, 0x037e, 0x0382, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0383, 0x0000, 0x0000, 0x0000, 0x0384, + 0x0388, 0x038a, 0x0000, 0x0000, 0x0000, 0x038b, 0x0000, 0x038c, 0x038d, 0x0000, + 0x038e, 0x0000, 0x0000, 0x0000, 0x0000, 0x038f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0394, 0x0000, 0x0000, 0x0000, 0x039a, 0x039d, 0x0000, 0x03a2, 0x0000, + 0x03a6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03af, 0x0000, 0x0000, 0x03b0, + 0x0000, 0x03b9, 0x03ba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03bb, + 0x0000, 0x03c2, 0x03c3, 0x0000, 0x0000, 0x03d0, 0x0000, 0x0000, 0x03d1, 0x03d2, + 0x03d3, 0x03d4, 0x0000, 0x03d5, 0x0000, 0x0000, 0x0000, 0x0000, 0x03d8, 0x0000, + 0x0000, 0x03d9, 0x0000, 0x0000, 0x03db, 0x03dd, 0x03df, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03e0, 0x0000, 0x0000, 0x0000, + 0x03e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03e4, 0x0000, 0x0000, + 0x0000, 0x03e8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03ea, 0x0000, 0x0000, + 0x0000, 0x0000, 0x03ed, 0x03ef, 0x0000, 0x0000, 0x0000, 0x03f1, 0x0000, 0x0000, + 0x0000, 0x03f2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03f3, 0x0000, + 0x03f4, 0x0000, 0x0000, 0x0000, 0x0000, 0x03f6, 0x03f8, 0x0000, 0x0000, 0x0000, + 0x03fc, 0x0000, 0x03fd, 0x0000, 0x0000, 0x0000, 0x0000, 0x03fe, 0x0000, 0x0000, + 0x0000, 0x0400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0401, 0x0000, + 0x0000, 0x0402, 0x0403, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0407, 0x0000, + 0x0409, 0x0000, 0x0000, 0x0000, 0x0000, 0x040a, 0x0000, 0x0000, 0x0000, 0x040d, + 0x0410, 0x0000, 0x0000, 0x0000, 0x0412, 0x0413, 0x0000, 0x0000, 0x041d, 0x0000, + 0x041e, 0x0000, 0x0000, 0x0421, 0x0000, 0x0000, 0x0000, 0x0422, 0x0000, 0x0000, + 0x0424, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0425, 0x0000, + 0x0000, 0x0426, 0x0000, 0x0000, 0x0000, 0x0000, 0x0427, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0428, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0429, 0x0000, 0x0000, + 0x0000, 0x0000, 0x042a, 0x042b, 0x0000, 0x0000, 0x0000, 0x042d, 0x042e, 0x0430, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0431, 0x0000, 0x0433, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0438, 0x043c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0440, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0446, 0x0000, + 0x0447, 0x0000, 0x0453, 0x0000, 0x0000, 0x0000, 0x0458, 0x045a, 0x0000, 0x045f, + 0x0000, 0x0462, 0x0000, 0x0000, 0x0466, 0x0000, 0x0469, 0x0000, 0x046a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x046c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0478, 0x0000, 0x0000, 0x0479, 0x047a, 0x0000, 0x047c, 0x047d, 0x0000, + 0x0000, 0x047e, 0x047f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0480, 0x0000, 0x0481, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0482, 0x0000, 0x048b, 0x0000, 0x0000, + 0x0000, 0x048c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x048d, 0x0000, 0x048f, + 0x0000, 0x0492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0493, 0x0494, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0495, 0x0497, 0x0499, + 0x0000, 0x04a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x04ab, 0x0000, 0x0000, 0x04c5, 0x0000, 0x0000, 0x04c8, 0x0000, + 0x0000, 0x04cb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x04cc, 0x04cd, 0x0000, + 0x0000, 0x04ce, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x04cf, 0x0000, 0x0000, 0x0000, 0x04d1, 0x0000, 0x0000, 0x04db, 0x04dc, + 0x04de, 0x04e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x04e6, 0x04e7, 0x04ea, 0x04eb, + 0x0000, 0x0000, 0x0000, 0x04ec, 0x0000, 0x0000, 0x04ed, 0x0000, 0x0000, 0x0000, + 0x04ee, 0x04f0, 0x0000, 0x0000, 0x04f1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x04f2, 0x0000, 0x04f3, + 0x0000, 0x0000, 0x0000, 0x0000, 0x04f9, 0x04fa, 0x04fc, 0x0509, 0x0000, 0x0000, + 0x050b, 0x050c, 0x050d, 0x0000, 0x0000, 0x050e, 0x050f, 0x0510, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0516, 0x0000, 0x0518, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x051f, 0x0520, 0x0000, 0x0522, 0x0000, 0x0524, + 0x0528, 0x0529, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x052a, + 0x052b, 0x052c, 0x0000, 0x0537, 0x0000, 0x0538, 0x0000, 0x0000, 0x0000, 0x0000, + 0x053d, 0x053e, 0x0000, 0x0542, 0x0000, 0x054d, 0x0000, 0x0000, 0x0000, 0x054e, + 0x0550, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0551, 0x0000, 0x0000, + 0x0000, 0x0552, 0x0555, 0x0000, 0x0556, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0563, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x056a, 0x0000, 0x056c, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0573, 0x0000, 0x0000, 0x0000, 0x0000, 0x057b, 0x0000, 0x057d, + 0x0000, 0x0000, 0x057f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0580, 0x0581, + 0x0000, 0x0582, 0x0000, 0x0000, 0x0000, 0x0584, 0x0585, 0x0588, 0x0000, 0x0000, + 0x0595, 0x05ab, 0x0000, 0x0000, 0x05ae, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x05af, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x05b0, 0x0000, 0x0000, 0x0000, 0x0000, 0x05b3, 0x05b4, 0x05b5, 0x05c3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x05c5, 0x0000, 0x05c8, 0x0000, 0x05c9, + 0x0000, 0x0000, 0x05ce, 0x0000, 0x0000, 0x05d7, 0x0000, 0x0000, 0x0000, 0x05d8, + 0x0000, 0x0000, 0x05da, 0x05db, 0x05dd, 0x05f0, 0x05f1, 0x0000, 0x0000, 0x0000, + 0x05f6, 0x0000, 0x0000, 0x0000, 0x0000, 0x05f8, 0x05f9, 0x0000, 0x05fd, 0x0600, + 0x0000, 0x0000, 0x0000, 0x0601, 0x0602, 0x060d, 0x0000, 0x060e, 0x0616, 0x0617, + 0x0624, 0x0000, 0x0625, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0627, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x062b, 0x0000, + 0x063f, 0x0000, 0x0643, 0x0000, 0x0644, 0x0000, 0x0645, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0648, 0x064a, 0x0000, 0x0000, 0x0000, 0x0000, 0x064b, 0x0000, + 0x064f, 0x0000, 0x0650, 0x0652, 0x0000, 0x0653, 0x0000, 0x0000, 0x0656, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0662, 0x0000, 0x0000, 0x0000, 0x0663, 0x0000, 0x0000, + 0x0000, 0x0669, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x066b, 0x0000, 0x0000, 0x0000, 0x0672, 0x0000, 0x0000, 0x0674, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0675, 0x0000, 0x0000, 0x0000, 0x0676, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0677, 0x0000, 0x067e, 0x0000, 0x0000, 0x067f, 0x0680, + 0x0000, 0x0000, 0x0684, 0x0000, 0x0000, 0x0685, 0x0686, 0x0000, 0x0688, 0x0689, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x068a, 0x0000, 0x0000, 0x0000, 0x068b, + 0x068c, 0x0690, 0x0000, 0x0692, 0x0000, 0x0000, 0x0697, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x06a8, 0x0000, 0x0000, 0x06a9, 0x0000, 0x0000, 0x06b9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x06c6, 0x06c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x06c9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x06cb, 0x0000, 0x0000, 0x06cc, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x06cd, 0x06cf, + 0x0000, 0x0000, 0x0000, 0x0000, 0x06d1, 0x0000, 0x0000, 0x0000, 0x06d5, 0x0000, + 0x0000, 0x0000, 0x06d7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x06e0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x06e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x06f8, 0x0000, 0x06f9, 0x06fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x06fc, 0x06fd, + 0x0000, 0x0000, 0x0000, 0x0000, 0x06fe, 0x06ff, 0x0701, 0x0000, 0x0706, 0x0707, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0709, 0x0000, 0x070b, 0x070d, 0x0000, 0x0000, + 0x0000, 0x070e, 0x0713, 0x0000, 0x0714, 0x0716, 0x0000, 0x071d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x071e, 0x0729, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0738, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0741, 0x0000, + 0x0000, 0x0000, 0x0743, 0x0000, 0x0000, 0x0000, 0x0000, 0x0745, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x074a, 0x0000, 0x0781, 0x0785, 0x0000, + 0x0000, 0x0000, 0x0789, 0x078a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x078b, 0x0000, 0x0000, 0x0000, 0x0000, 0x078c, 0x0000, + 0x0000, 0x0000, 0x078e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x079a, 0x0000, 0x0000, 0x079c, 0x0000, 0x0000, 0x0000, 0x0000, 0x079e, + 0x0000, 0x07a5, 0x0000, 0x07a6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07ad, + 0x07af, 0x0000, 0x0000, 0x0000, 0x0000, 0x07b0, 0x0000, 0x07b1, 0x0000, 0x07b3, + 0x07b4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07b5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x07b7, 0x0000, 0x0000, 0x0000, 0x0000, 0x07b8, 0x07bb, 0x0000, 0x07be, + 0x0000, 0x0000, 0x0000, 0x0000, 0x07c0, 0x07c4, 0x0000, 0x0000, 0x0000, 0x0000, + 0x07c6, 0x07d4, 0x07d8, 0x0000, 0x0000, 0x0000, 0x07dc, 0x07dd, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07df, 0x0000, + 0x07e0, 0x07e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x07e5, 0x0000, 0x0000, 0x07e9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07ed, 0x07f4, 0x07f8, 0x0000, 0x07fa, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x07fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x07fd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07fe, 0x07ff, + 0x0000, 0x0800, 0x0801, 0x0000, 0x080b, 0x0000, 0x0000, 0x080f, 0x0000, 0x0810, + 0x0811, 0x0000, 0x0000, 0x0812, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0815, 0x0000, 0x0000, 0x0000, 0x0000, 0x0816, 0x0000, 0x0817, 0x0000, 0x0818, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0820, 0x0822, 0x0823, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0825, 0x0000, 0x0826, 0x0828, 0x0829, 0x0839, 0x0000, 0x0000, + 0x0000, 0x0000, 0x083b, 0x0000, 0x0000, 0x0844, 0x0845, 0x0000, 0x0848, 0x0000, + 0x0000, 0x084a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x084b, 0x0000, 0x0000, + 0x084d, 0x084f, 0x0850, 0x0000, 0x0000, 0x0000, 0x0852, 0x0000, 0x0000, 0x0000, + 0x0859, 0x085b, 0x085c, 0x085d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0860, 0x0861, 0x0000, 0x0000, 0x0862, 0x0865, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0866, 0x0000, 0x0000, 0x0867, 0x086e, 0x0000, 0x086f, + 0x0000, 0x0870, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0871, 0x0872, + 0x0000, 0x0000, 0x0892, 0x089a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x089d, 0x08a9, 0x0000, 0x08ac, 0x0000, 0x08ad, 0x0000, 0x08ae, 0x08b0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x08bd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08be, + 0x0000, 0x08bf, 0x08c1, 0x0000, 0x0000, 0x08c2, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x08c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08cc, 0x0000, + 0x0000, 0x08cd, 0x0000, 0x0000, 0x0000, 0x08d1, 0x08d2, 0x0000, 0x0000, 0x0000, + 0x08d4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08d6, 0x0000, + 0x08d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08dd, 0x08de, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08df, 0x0000, 0x08e1, + 0x0000, 0x0000, 0x0000, 0x0000, 0x08e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x08e6, + 0x0000, 0x0000, 0x0000, 0x0000, 0x08e7, 0x0000, 0x08e8, 0x0000, 0x08eb, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08ef, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08f1, 0x08f2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x08f3, 0x0000, 0x08f4, 0x0000, 0x0000, 0x0000, 0x08f5, 0x08f7, 0x08f8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x08fa, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x08ff, 0x0000, 0x0901, 0x0000, 0x0000, 0x0902, 0x0000, + 0x0903, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0909, 0x090a, 0x090b, 0x090c, 0x0000, 0x0000, 0x090e, + 0x0000, 0x090f, 0x0000, 0x0912, 0x0000, 0x0000, 0x0913, 0x0000, 0x0914, 0x0000, + 0x0916, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x091f, 0x0000, + 0x0920, 0x0922, 0x0923, 0x0000, 0x0924, 0x0000, 0x0000, 0x0000, 0x0933, 0x0000, + 0x0947, 0x0000, 0x094e, 0x0952, 0x0000, 0x0953, 0x0000, 0x0000, 0x095a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x095b, 0x0000, 0x095d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x095e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x095f, + 0x0962, 0x0964, 0x0968, 0x096b, 0x0000, 0x0000, 0x0000, 0x096d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x096f, 0x0000, 0x0000, 0x0970, 0x0971, 0x0973, 0x0000, 0x0974, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0979, 0x0000, 0x0000, 0x0000, 0x097a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x097b, 0x097c, 0x0000, 0x097d, 0x0000, 0x0000, 0x097e, 0x0982, + 0x0000, 0x0984, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0989, 0x098a, + 0x0000, 0x098d, 0x0000, 0x0000, 0x098e, 0x0999, 0x0000, 0x099b, 0x0000, 0x0000, + 0x099e, 0x0000, 0x09a0, 0x0000, 0x09ad, 0x0000, 0x09ae, 0x09b6, 0x0000, 0x0000, + 0x0000, 0x09bb, 0x0000, 0x0000, 0x09bd, 0x0000, 0x0000, 0x09be, 0x0000, 0x09bf, + 0x0000, 0x09d1, 0x09db, 0x0000, 0x0000, 0x0000, 0x0000, 0x09dc, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x09e0, 0x09e1, 0x09e2, 0x0000, 0x0000, 0x09e3, + 0x0000, 0x09e5, 0x0000, 0x0000, 0x09e6, 0x09e7, 0x0000, 0x09e8, 0x09e9, 0x0000, + 0x09ea, 0x0000, 0x09eb, 0x09ec, 0x0000, 0x0000, 0x0000, 0x09f1, 0x09f2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x09f4, 0x0000, 0x0000, 0x09f5, + 0x0000, 0x09f6, 0x09fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x09fd, 0x0000, + 0x0a00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0a01, 0x0000, 0x0a10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0a11, 0x0a12, 0x0000, 0x0000, 0x0000, 0x0a13, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a14, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0a15, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a17, 0x0000, 0x0a18, + 0x0000, 0x0a1c, 0x0a1e, 0x0000, 0x0000, 0x0000, 0x0a1f, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0a21, 0x0a22, 0x0000, 0x0a23, 0x0000, 0x0a29, 0x0a2a, 0x0000, 0x0000, + 0x0a2b, 0x0000, 0x0a2d, 0x0000, 0x0000, 0x0000, 0x0a2e, 0x0a2f, 0x0a33, 0x0000, + 0x0a37, 0x0000, 0x0000, 0x0000, 0x0a39, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a3b, 0x0000, + 0x0000, 0x0a3c, 0x0000, 0x0000, 0x0000, 0x0a3d, 0x0000, 0x0a3f, 0x0000, 0x0a41, + 0x0000, 0x0000, 0x0a44, 0x0a45, 0x0000, 0x0000, 0x0a4b, 0x0a4c, 0x0a4d, 0x0000, + 0x0000, 0x0a4f, 0x0000, 0x0000, 0x0000, 0x0a52, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0a53, 0x0000, 0x0a54, 0x0000, 0x0a59, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0a5f, 0x0a60, 0x0000, 0x0000, 0x0a61, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0a62, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a63, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0a68, 0x0a7d, 0x0000, 0x0a7f, 0x0000, 0x0a80, 0x0000, 0x0000, + 0x0a81, 0x0000, 0x0000, 0x0a86, 0x0000, 0x0a87, 0x0000, 0x0000, 0x0a8a, 0x0000, + 0x0a8d, 0x0a92, 0x0000, 0x0000, 0x0000, 0x0a93, 0x0000, 0x0a95, 0x0a96, 0x0a97, + 0x0000, 0x0000, 0x0000, 0x0aa0, 0x0aaa, 0x0aaf, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0ab2, 0x0ab4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0abb, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0abc, 0x0000, 0x0000, 0x0abd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0abe, 0x0000, 0x0000, 0x0ac0, 0x0ac2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0ac6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0aca, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0acb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0acc, 0x0acf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ad0, 0x0000, 0x0000, 0x0ad2, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ad3, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ad4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0ad5, 0x0ad8, 0x0000, 0x0000, 0x0adf, 0x0000, 0x0000, + 0x0ae0, 0x0000, 0x0ae5, 0x0000, 0x0ae6, 0x0000, 0x0000, 0x0000, 0x0ae8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ae9, + 0x0aeb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0aec, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0aed, 0x0aef, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0af3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0af6, 0x0000, 0x0af7, 0x0af8, 0x0b01, + 0x0b03, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b05, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0b06, 0x0b07, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0b08, 0x0000, 0x0000, 0x0b0c, 0x0000, 0x0b12, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0b14, 0x0000, 0x0b16, 0x0000, 0x0000, 0x0b17, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b19, 0x0000, 0x0000, 0x0000, 0x0b1a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b1b, 0x0b1c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0b1e, 0x0000, 0x0000, 0x0b1f, 0x0000, 0x0b21, 0x0000, 0x0b25, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0b29, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b2a, + 0x0000, 0x0b2b, 0x0000, 0x0000, 0x0b2c, 0x0000, 0x0b2e, 0x0b34, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0b3b, 0x0000, 0x0b3c, 0x0000, 0x0000, 0x0b3d, 0x0b3e, 0x0b44, + 0x0b49, 0x0b4a, 0x0000, 0x0000, 0x0b4b, 0x0000, 0x0000, 0x0b4c, 0x0000, 0x0000, + 0x0000, 0x0b5a, 0x0b60, 0x0000, 0x0b61, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0b64, 0x0000, 0x0b76, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0b77, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b7b, 0x0000, 0x0b7c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b7d, 0x0000, 0x0000, 0x0000, + 0x0b82, 0x0000, 0x0b85, 0x0000, 0x0000, 0x0b86, 0x0b8a, 0x0b8b, 0x0000, 0x0000, + 0x0000, 0x0b8f, 0x0b91, 0x0000, 0x0000, 0x0b92, 0x0000, 0x0b93, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0b94, 0x0b95, 0x0b96, 0x0b97, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b99, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0b9a, 0x0b9f, 0x0000, 0x0ba6, 0x0ba7, 0x0ba8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0bad, 0x0000, 0x0000, 0x0bae, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0baf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0bb6, 0x0000, 0x0bb8, 0x0bb9, 0x0000, 0x0000, 0x0bba, 0x0000, + 0x0000, 0x0000, 0x0bbb, 0x0000, 0x0000, 0x0bc4, 0x0000, 0x0000, 0x0bce, 0x0000, + 0x0000, 0x0bd0, 0x0000, 0x0000, 0x0bd1, 0x0bd3, 0x0000, 0x0000, 0x0000, 0x0bd6, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0bda, 0x0bdb, 0x0000, 0x0000, 0x0bdc, 0x0000, + 0x0bdf, 0x0000, 0x0be9, 0x0000, 0x0000, 0x0bea, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0beb, 0x0000, 0x0bed, 0x0000, 0x0000, 0x0000, 0x0000, 0x0bf1, + 0x0000, 0x0bf2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0bf7, 0x0000, 0x0000, 0x0c01, 0x0c02, 0x0c06, 0x0c07, 0x0000, 0x0c08, 0x0c0e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c0f, 0x0000, + 0x0c14, 0x0000, 0x0c17, 0x0000, 0x0c1b, 0x0000, 0x0000, 0x0000, 0x0c1c, 0x0000, + 0x0c1d, 0x0c1e, 0x0000, 0x0c32, 0x0000, 0x0000, 0x0000, 0x0c34, 0x0000, 0x0c35, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c3c, 0x0c3e, 0x0000, 0x0000, + 0x0c40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c4b, 0x0000, + 0x0000, 0x0c4d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c4e, 0x0c4f, 0x0c50, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0c56, 0x0000, 0x0000, 0x0c58, 0x0000, 0x0000, + 0x0c59, 0x0000, 0x0000, 0x0c5a, 0x0000, 0x0c5b, 0x0c5e, 0x0c60, 0x0000, 0x0000, + 0x0c61, 0x0c62, 0x0000, 0x0000, 0x0c63, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0c6e, 0x0000, 0x0c70, 0x0000, 0x0000, 0x0c74, 0x0000, 0x0000, + 0x0c7a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c84, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0c89, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0c90, 0x0c91, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0c93, 0x0000, 0x0000, 0x0c94, 0x0c96, 0x0000, 0x0c97, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0c98, 0x0000, 0x0c99, 0x0c9a, 0x0000, 0x0c9c, + 0x0ca1, 0x0000, 0x0ca7, 0x0ca9, 0x0caa, 0x0000, 0x0000, 0x0cb3, 0x0cb4, 0x0cb5, + 0x0cb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cbc, + 0x0000, 0x0000, 0x0cbd, 0x0000, 0x0000, 0x0000, 0x0cc3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cc7, 0x0000, 0x0000, 0x0000, 0x0cce, + 0x0000, 0x0cd2, 0x0000, 0x0000, 0x0000, 0x0cd4, 0x0000, 0x0000, 0x0000, 0x0cd5, + 0x0cd6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cd7, 0x0cdc, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0cde, 0x0ce0, 0x0000, 0x0000, 0x0ce3, 0x0ce4, + 0x0ce5, 0x0000, 0x0ce6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ce8, 0x0cea, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cec, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cef, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cf0, 0x0cf2, 0x0cf3, 0x0000, 0x0cf6, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cf7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0cf9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0cfa, 0x0000, 0x0000, 0x0cfc, 0x0cfd, 0x0000, + 0x0000, 0x0cfe, 0x0000, 0x0000, 0x0d00, 0x0d01, 0x0d03, 0x0000, 0x0000, 0x0d07, + 0x0000, 0x0000, 0x0d09, 0x0000, 0x0d0a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d0f, + 0x0d13, 0x0000, 0x0000, 0x0000, 0x0d14, 0x0000, 0x0000, 0x0d17, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0d1a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d1b, 0x0000, 0x0000, 0x0d25, 0x0d26, + 0x0d27, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d28, 0x0d29, 0x0000, + 0x0d2a, 0x0000, 0x0000, 0x0d2d, 0x0000, 0x0000, 0x0d30, 0x0000, 0x0000, 0x0d31, + 0x0000, 0x0d33, 0x0d3b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d3e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d4a, 0x0000, 0x0d4b, 0x0d6c, + 0x0d6d, 0x0d6f, 0x0000, 0x0000, 0x0d71, 0x0000, 0x0000, 0x0000, 0x0d72, 0x0000, + 0x0000, 0x0d79, 0x0000, 0x0000, 0x0000, 0x0d7a, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0d7b, 0x0000, 0x0000, 0x0d7c, 0x0000, 0x0d7d, 0x0d80, + 0x0000, 0x0d81, 0x0000, 0x0000, 0x0d82, 0x0000, 0x0d83, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d84, 0x0000, 0x0000, 0x0d8d, + 0x0d8e, 0x0000, 0x0000, 0x0d93, 0x0000, 0x0000, 0x0000, 0x0d98, 0x0d9f, 0x0da1, + 0x0000, 0x0da2, 0x0000, 0x0000, 0x0da3, 0x0dab, 0x0000, 0x0dac, 0x0000, 0x0000, + 0x0dad, 0x0000, 0x0000, 0x0000, 0x0dae, 0x0000, 0x0dba, 0x0000, 0x0000, 0x0000, + 0x0dbc, 0x0dbd, 0x0000, 0x0000, 0x0000, 0x0dbe, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0dc0, 0x0dc1, 0x0dc2, 0x0000, 0x0000, 0x0dc6, 0x0dca, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0dcb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0dd0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0dd3, 0x0dd5, 0x0000, 0x0000, 0x0dd6, 0x0dd8, + 0x0000, 0x0ddb, 0x0ddc, 0x0000, 0x0000, 0x0dde, 0x0000, 0x0de1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0de2, 0x0000, 0x0de3, 0x0000, 0x0de6, + 0x0000, 0x0de7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0deb, 0x0000, 0x0dfd, 0x0000, 0x0000, 0x0000, 0x0e0f, 0x0000, 0x0000, 0x0000, + 0x0e10, 0x0000, 0x0e11, 0x0000, 0x0e12, 0x0e13, 0x0000, 0x0000, 0x0e16, 0x0e18, + 0x0000, 0x0e1a, 0x0e1b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0e1c, 0x0e20, 0x0e23, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0e28, 0x0e2c, + 0x0000, 0x0e2d, 0x0e32, 0x0e33, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0e34, 0x0000, 0x0e35, 0x0000, 0x0000, 0x0e36, 0x0e43, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0e44, 0x0e45, 0x0000, 0x0000, 0x0000, 0x0000, 0x0e48, + 0x0e49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0e4a, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0e4b, 0x0000, 0x0e4d, 0x0e4f, 0x0e50, 0x0000, 0x0e51, 0x0000, 0x0e6c, + 0x0000, 0x0000, 0x0000, 0x0e6e, 0x0e70, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0e72, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0e74, 0x0000, 0x0000, 0x0e75, 0x0000, 0x0000, 0x0000, + 0x0e7c, 0x0e7d, 0x0000, 0x0000, 0x0000, 0x0e7f, 0x0e80, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0e8b, 0x0000, 0x0e8c, 0x0e8d, 0x0000, 0x0000, 0x0e8e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0e90, 0x0e91, 0x0000, 0x0e96, 0x0e97, + 0x0e99, 0x0000, 0x0000, 0x0000, 0x0e9f, 0x0000, 0x0ea1, 0x0000, 0x0000, 0x0ea2, + 0x0000, 0x0000, 0x0ea3, 0x0ea4, 0x0000, 0x0ead, 0x0000, 0x0eaf, 0x0eb6, 0x0eb7, + 0x0000, 0x0eb8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0eb9, 0x0000, 0x0000, 0x0ebb, + 0x0000, 0x0ebe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ebf, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ec0, 0x0000, 0x0ec1, 0x0eca, 0x0000, + 0x0ecc, 0x0ecd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0ecf, 0x0000, 0x0ee3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ee6, + 0x0ee7, 0x0ee8, 0x0eec, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0eed, 0x0000, 0x0000, 0x0ef1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0efb, 0x0000, + 0x0000, 0x0f08, 0x0f09, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f0a, 0x0f0b, 0x0f0d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0f13, 0x0000, 0x0f14, 0x0f16, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0f17, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0f21, 0x0000, 0x0f22, 0x0000, 0x0f23, 0x0f2e, 0x0000, 0x0f2f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0f34, 0x0f49, 0x0000, 0x0f4a, 0x0000, 0x0000, + 0x0000, 0x0f55, 0x0f5b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f5e, 0x0f65, 0x0f66, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0f67, 0x0000, 0x0000, 0x0000, 0x0f68, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0f69, 0x0000, 0x0f6b, 0x0000, 0x0000, 0x0000, + 0x0f74, 0x0f75, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0f76, 0x0000, 0x0f77, 0x0f7d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f7e, + 0x0000, 0x0000, 0x0000, 0x0f7f, 0x0000, 0x0000, 0x0000, 0x0f80, 0x0f86, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0f87, 0x0f89, 0x0f8a, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0f8c, 0x0000, 0x0f91, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0f92, 0x0fab, 0x0000, 0x0000, 0x0fb1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0fb2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0fb3, 0x0000, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0fbb, + 0x0fbc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0fbf, + 0x0fc2, 0x0000, 0x0000, 0x0fc3, 0x0fc5, 0x0fc7, 0x0fc8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0fdb, 0x0000, 0x0fdc, 0x0fdd, 0x0000, 0x0fde, 0x0fdf, 0x0fe2, + 0x0000, 0x0000, 0x0fe8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ff8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0ffb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0ffe, 0x0fff, 0x0000, + 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1002, 0x1003, 0x0000, + 0x0000, 0x0000, 0x1005, 0x0000, 0x1008, 0x0000, 0x0000, 0x0000, 0x1009, 0x100c, + 0x0000, 0x1011, 0x0000, 0x0000, 0x1013, 0x1014, 0x0000, 0x101e, 0x0000, 0x0000, + 0x101f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1020, 0x1024, + 0x1025, 0x0000, 0x1026, 0x0000, 0x0000, 0x0000, 0x1029, 0x0000, 0x0000, 0x102d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1030, 0x1032, 0x1033, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1034, 0x0000, 0x0000, 0x10d7, 0x0000, 0x0000, 0x0000, 0x10da, 0x10e9, + 0x0000, 0x10eb, 0x10ec, 0x0000, 0x10ed, 0x0000, 0x10ee, 0x0000, 0x0000, 0x0000, + 0x10ef, 0x0000, 0x10f0, 0x0000, 0x0000, 0x0000, 0x10f1, 0x0000, 0x0000, 0x0000, + 0x10f6, 0x10f9, 0x10fa, 0x10fe, 0x0000, 0x10ff, 0x1100, 0x0000, 0x1102, 0x1103, + 0x0000, 0x0000, 0x110c, 0x0000, 0x0000, 0x0000, 0x0000, 0x1111, 0x0000, 0x0000, + 0x0000, 0x1115, 0x0000, 0x1116, 0x0000, 0x0000, 0x0000, 0x0000, 0x1119, 0x0000, + 0x0000, 0x0000, 0x0000, 0x111a, 0x0000, 0x0000, 0x0000, 0x111c, 0x0000, 0x0000, + 0x0000, 0x111d, 0x111e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1120, 0x0000, 0x0000, 0x0000, 0x0000, 0x1121, 0x0000, 0x0000, 0x0000, 0x1122, + 0x0000, 0x0000, 0x0000, 0x1127, 0x112e, 0x0000, 0x0000, 0x0000, 0x0000, 0x1137, + 0x1139, 0x0000, 0x0000, 0x0000, 0x0000, 0x113a, 0x0000, 0x0000, 0x113b, 0x0000, + 0x113e, 0x113f, 0x1142, 0x0000, 0x114b, 0x114c, 0x114e, 0x0000, 0x114f, 0x0000, + 0x1160, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1161, 0x0000, 0x0000, 0x0000, + 0x1163, 0x1164, 0x0000, 0x1165, 0x1166, 0x0000, 0x1168, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x116b, 0x0000, 0x116f, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1172, 0x0000, 0x1173, 0x0000, 0x1175, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1176, 0x1177, 0x0000, 0x1179, 0x0000, 0x0000, 0x117b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x117d, 0x117e, 0x0000, 0x0000, 0x0000, 0x117f, 0x1181, 0x0000, 0x1182, + 0x0000, 0x1184, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1186, + 0x0000, 0x0000, 0x1188, 0x0000, 0x0000, 0x1191, 0x0000, 0x119c, 0x0000, 0x0000, + 0x119e, 0x119f, 0x0000, 0x11a8, 0x11ab, 0x0000, 0x11ac, 0x0000, 0x11ad, 0x0000, + 0x11af, 0x0000, 0x0000, 0x11b0, 0x0000, 0x0000, 0x0000, 0x0000, 0x11b2, 0x0000, + 0x11b3, 0x0000, 0x0000, 0x11b4, 0x0000, 0x0000, 0x0000, 0x11b5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x11b7, 0x0000, 0x0000, 0x0000, 0x11b8, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x11bd, 0x11bf, 0x11c0, 0x11c1, 0x11c3, 0x0000, 0x11c4, + 0x0000, 0x0000, 0x0000, 0x0000, 0x11c6, 0x11c7, 0x0000, 0x11c9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x11d2, 0x0000, 0x0000, 0x11db, 0x0000, 0x0000, 0x0000, 0x11de, + 0x0000, 0x0000, 0x0000, 0x11df, 0x0000, 0x11e0, 0x0000, 0x11e1, 0x0000, 0x0000, + 0x0000, 0x11e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x11e6, 0x0000, 0x0000, + 0x11ea, 0x0000, 0x0000, 0x0000, 0x11ec, 0x0000, 0x0000, 0x11f5, 0x0000, 0x11f6, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1208, 0x1209, 0x0000, 0x120a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x120b, 0x0000, 0x120c, 0x0000, 0x0000, 0x120d, 0x0000, 0x1210, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1211, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1231, 0x0000, 0x1233, 0x0000, 0x123b, 0x0000, 0x0000, 0x0000, 0x123c, 0x123e, + 0x0000, 0x1240, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1241, 0x1244, 0x0000, + 0x0000, 0x0000, 0x0000, 0x124f, 0x0000, 0x0000, 0x0000, 0x0000, 0x1259, 0x0000, + 0x0000, 0x0000, 0x0000, 0x125b, 0x0000, 0x125d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x125e, 0x0000, 0x0000, 0x1262, 0x0000, 0x0000, 0x1269, 0x0000, 0x0000, 0x0000, + 0x126a, 0x126b, 0x126c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x126d, 0x0000, 0x0000, 0x1270, 0x0000, + 0x1271, 0x1279, 0x127f, 0x0000, 0x0000, 0x0000, 0x1281, 0x0000, 0x0000, 0x0000, + 0x1283, 0x0000, 0x0000, 0x0000, 0x1284, 0x0000, 0x0000, 0x0000, 0x1285, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1286, 0x0000, 0x1289, 0x128a, 0x128b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x128c, 0x0000, 0x0000, + 0x0000, 0x128d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x128f, 0x12b2, 0x0000, 0x12b3, 0x0000, 0x12b4, 0x12bc, + 0x0000, 0x0000, 0x12bd, 0x12be, 0x0000, 0x12bf, 0x12c6, 0x12c7, 0x0000, 0x0000, + 0x0000, 0x0000, 0x12c9, 0x12ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x12cb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x12cc, 0x0000, 0x12cd, 0x0000, + 0x0000, 0x12cf, 0x0000, 0x12d5, 0x12d6, 0x0000, 0x0000, 0x0000, 0x0000, 0x12d7, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x12d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x12da, 0x0000, 0x0000, 0x0000, 0x12dc, + 0x0000, 0x12dd, 0x0000, 0x0000, 0x0000, 0x12eb, 0x0000, 0x0000, 0x12ef, 0x0000, + 0x12f5, 0x12f7, 0x12fa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x12fb, 0x0000, + 0x1300, 0x0000, 0x0000, 0x130f, 0x0000, 0x0000, 0x0000, 0x0000, 0x1310, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1311, 0x0000, 0x1312, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1313, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1314, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1316, 0x1317, 0x1318, 0x131e, + 0x1320, 0x0000, 0x1326, 0x0000, 0x0000, 0x1329, 0x0000, 0x0000, 0x1333, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1334, 0x1335, 0x1337, 0x1339, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x133e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x133f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1341, + 0x0000, 0x1342, 0x1343, 0x0000, 0x134a, 0x0000, 0x1358, 0x0000, 0x1359, 0x135d, + 0x1360, 0x1364, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x139b, + 0x139c, 0x139e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x139f, 0x0000, 0x0000, + 0x0000, 0x13a0, 0x0000, 0x0000, 0x0000, 0x13a1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x13a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x13a5, 0x13a6, 0x13a7, 0x0000, 0x13a9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x13aa, + 0x13ab, 0x0000, 0x13ac, 0x0000, 0x0000, 0x13ad, 0x0000, 0x0000, 0x0000, 0x0000, + 0x13ae, 0x0000, 0x0000, 0x13af, 0x0000, 0x0000, 0x0000, 0x13b1, 0x13b2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x13b4, 0x13b9, 0x13be, 0x0000, 0x13bf, 0x0000, 0x13c1, + 0x0000, 0x0000, 0x0000, 0x13c4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x13c7, + 0x0000, 0x13c8, 0x13c9, 0x0000, 0x13cb, 0x0000, 0x0000, 0x0000, 0x13cc, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x13d4, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x13d5, 0x0000, 0x0000, + 0x13d6, 0x13d8, 0x0000, 0x0000, 0x13db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x13dd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x13ea, 0x13eb, 0x13ed, 0x13f1, 0x13f3, 0x0000, 0x13f4, 0x0000, 0x13f5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x13f6, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x13fd, 0x13fe, 0x0000, 0x1401, 0x0000, 0x1402, 0x0000, 0x0000, + 0x140a, 0x0000, 0x0000, 0x0000, 0x1411, 0x0000, 0x0000, 0x0000, 0x141c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x141f, 0x1422, 0x0000, 0x0000, + 0x0000, 0x1423, 0x0000, 0x0000, 0x1424, 0x1427, 0x1429, 0x0000, 0x0000, 0x0000, + 0x0000, 0x142a, 0x0000, 0x0000, 0x0000, 0x0000, 0x142b, 0x142c, 0x0000, 0x142e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x142f, 0x0000, 0x0000, 0x0000, 0x1434, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x143a, 0x143b, 0x0000, 0x0000, 0x1446, 0x0000, 0x0000, 0x1447, 0x1448, + 0x144a, 0x0000, 0x0000, 0x144e, 0x1451, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1453, 0x0000, 0x1456, 0x1459, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x145d, 0x0000, 0x145e, 0x1460, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1461, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1462, 0x1463, + 0x0000, 0x146f, 0x0000, 0x0000, 0x147c, 0x1481, 0x0000, 0x1486, 0x0000, 0x1487, + 0x0000, 0x0000, 0x1489, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x148a, 0x0000, + 0x148c, 0x1496, 0x0000, 0x149d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x14a0, 0x14a1, 0x14a2, 0x14a3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14a4, + 0x0000, 0x14a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14a7, 0x14a8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14a9, + 0x14ab, 0x0000, 0x0000, 0x14ae, 0x0000, 0x0000, 0x14af, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x14b8, 0x0000, 0x0000, 0x14ba, 0x14bb, 0x14bc, + 0x0000, 0x14bd, 0x0000, 0x0000, 0x14be, 0x0000, 0x0000, 0x0000, 0x0000, 0x14bf, + 0x14c0, 0x0000, 0x14c1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14c4, 0x0000, + 0x0000, 0x0000, 0x14c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x14cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14ce, + 0x0000, 0x14cf, 0x14d1, 0x0000, 0x14d4, 0x0000, 0x0000, 0x0000, 0x0000, 0x14da, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14dc, 0x0000, + 0x0000, 0x14dd, 0x0000, 0x0000, 0x0000, 0x14de, 0x0000, 0x14df, 0x14e0, 0x0000, + 0x0000, 0x14e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14e3, 0x14e4, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x14e5, + 0x0000, 0x14e6, 0x0000, 0x14ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x14ee, 0x0000, + 0x0000, 0x14ef, 0x0000, 0x0000, 0x14f1, 0x0000, 0x0000, 0x14f5, 0x0000, 0x14f7, + 0x0000, 0x14fd, 0x0000, 0x0000, 0x0000, 0x1503, 0x0000, 0x0000, 0x0000, 0x1504, + 0x0000, 0x0000, 0x0000, 0x1506, 0x0000, 0x1508, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1509, 0x0000, 0x0000, 0x0000, 0x0000, 0x150b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x150c, 0x150e, 0x1511, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1514, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1515, 0x151a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x151b, 0x0000, 0x0000, 0x0000, 0x151c, 0x151d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x151e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1522, 0x0000, 0x0000, 0x1523, 0x0000, 0x1527, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1528, 0x153a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x153e, 0x0000, 0x1540, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1541, 0x1542, 0x0000, 0x0000, 0x0000, + 0x1543, 0x1544, 0x1547, 0x0000, 0x0000, 0x1548, 0x1549, 0x154b, 0x0000, 0x0000, + 0x0000, 0x1550, 0x1551, 0x0000, 0x0000, 0x0000, 0x1553, 0x0000, 0x0000, 0x0000, + 0x1555, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1558, 0x0000, 0x155a, 0x0000, 0x0000, + 0x155b, 0x0000, 0x155e, 0x0000, 0x0000, 0x1561, 0x0000, 0x0000, 0x1562, 0x0000, + 0x0000, 0x1564, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1565, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x156c, 0x0000, 0x0000, 0x156d, 0x156e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1570, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1571, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1583, 0x0000, 0x0000, 0x0000, 0x1586, + 0x0000, 0x1587, 0x0000, 0x0000, 0x1588, 0x0000, 0x0000, 0x0000, 0x1589, 0x0000, + 0x158b, 0x0000, 0x0000, 0x158c, 0x158d, 0x0000, 0x158e, 0x0000, 0x0000, 0x1592, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x159e, 0x159f, 0x0000, 0x0000, 0x15a0, + 0x0000, 0x15a2, 0x0000, 0x0000, 0x15a7, 0x0000, 0x15a8, 0x0000, 0x0000, 0x15a9, + 0x0000, 0x15ab, 0x0000, 0x15b5, 0x0000, 0x0000, 0x15b6, 0x0000, 0x15b8, 0x15bf, + 0x0000, 0x0000, 0x0000, 0x0000, 0x15c0, 0x0000, 0x0000, 0x0000, 0x15c3, 0x15c5, + 0x0000, 0x15c6, 0x0000, 0x15c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x15c9, 0x0000, + 0x0000, 0x15de, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x15e0, 0x15e9, 0x0000, 0x0000, 0x0000, 0x0000, 0x15ea, 0x0000, 0x0000, + 0x15ec, 0x0000, 0x15f8, 0x0000, 0x15f9, 0x0000, 0x0000, 0x0000, 0x15fd, 0x0000, + 0x1609, 0x0000, 0x160a, 0x160b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1613, 0x0000, 0x0000, 0x0000, 0x1614, 0x1615, 0x0000, 0x161d, 0x161e, 0x162e, + 0x0000, 0x162f, 0x0000, 0x0000, 0x0000, 0x0000, 0x1635, 0x1636, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x163a, 0x163c, 0x0000, 0x1647, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x164a, 0x0000, 0x0000, 0x0000, 0x0000, 0x164b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x164c, 0x0000, 0x0000, 0x164d, 0x0000, 0x164e, + 0x0000, 0x0000, 0x0000, 0x1650, 0x0000, 0x1665, 0x0000, 0x1666, 0x1667, 0x0000, + 0x0000, 0x1670, 0x1677, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1678, 0x0000, 0x167a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x167d, 0x167e, 0x0000, 0x1680, 0x1681, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1683, 0x1684, 0x1685, 0x0000, 0x1686, 0x0000, 0x1687, + 0x1688, 0x0000, 0x168a, 0x0000, 0x0000, 0x0000, 0x0000, 0x1690, 0x1694, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1696, 0x0000, 0x0000, 0x0000, 0x0000, 0x1698, 0x0000, + 0x0000, 0x169c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x16a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x16a7, + 0x0000, 0x0000, 0x16a9, 0x0000, 0x0000, 0x0000, 0x16b3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x16b8, 0x0000, 0x0000, 0x16c3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x16c6, 0x16c7, 0x0000, 0x0000, 0x16c8, + 0x0000, 0x0000, 0x16c9, 0x0000, 0x16cb, 0x16d4, 0x16d5, 0x0000, 0x16d6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x16da, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x16dc, 0x0000, 0x16df, 0x16e1, 0x0000, 0x0000, 0x16e3, 0x0000, 0x16e5, 0x0000, + 0x0000, 0x16e7, 0x0000, 0x16e9, 0x0000, 0x0000, 0x0000, 0x16f1, 0x16f3, 0x0000, + 0x0000, 0x0000, 0x16f5, 0x0000, 0x16f7, 0x0000, 0x0000, 0x0000, 0x1700, 0x0000, + 0x0000, 0x1701, 0x1703, 0x0000, 0x1706, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1707, 0x0000, 0x1709, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1713, 0x0000, 0x1717, 0x0000, 0x0000, 0x1718, 0x0000, 0x1719, 0x1722, 0x1724, + 0x0000, 0x1727, 0x1728, 0x0000, 0x0000, 0x0000, 0x0000, 0x1729, 0x172a, 0x0000, + 0x172d, 0x0000, 0x0000, 0x0000, 0x0000, 0x173d, 0x0000, 0x0000, 0x173f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1741, 0x0000, 0x0000, + 0x1742, 0x0000, 0x1747, 0x1748, 0x1749, 0x0000, 0x174c, 0x0000, 0x0000, 0x0000, + 0x1758, 0x175a, 0x1763, 0x1766, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1767, + 0x0000, 0x1768, 0x0000, 0x0000, 0x0000, 0x176a, 0x176b, 0x0000, 0x0000, 0x176c, + 0x0000, 0x0000, 0x1771, 0x1773, 0x0000, 0x0000, 0x0000, 0x0000, 0x1777, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1778, 0x0000, 0x0000, 0x1779, 0x0000, 0x177a, + 0x0000, 0x0000, 0x0000, 0x177b, 0x177f, 0x0000, 0x1781, 0x0000, 0x1783, 0x0000, + 0x1787, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1789, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x178a, + 0x0000, 0x178e, 0x0000, 0x0000, 0x1790, 0x0000, 0x0000, 0x0000, 0x1791, 0x1796, + 0x1798, 0x0000, 0x0000, 0x0000, 0x1799, 0x179d, 0x0000, 0x0000, 0x179e, 0x0000, + 0x0000, 0x17a5, 0x0000, 0x0000, 0x17a6, 0x0000, 0x17a7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x17a9, 0x0000, 0x17af, 0x0000, 0x0000, 0x0000, 0x17b0, + 0x0000, 0x17b2, 0x17b7, 0x17b8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x17bb, 0x17bc, 0x0000, 0x0000, 0x17bd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x17be, 0x17bf, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x17c0, 0x0000, 0x17c3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x17c4, 0x0000, 0x0000, 0x17c8, 0x0000, 0x17c9, 0x0000, 0x0000, + 0x17cd, 0x17d9, 0x0000, 0x0000, 0x17db, 0x0000, 0x17de, 0x0000, 0x0000, 0x0000, + 0x17df, 0x17ed, 0x17ee, 0x0000, 0x0000, 0x0000, 0x17f1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x17f2, 0x0000, 0x0000, 0x0000, 0x17f3, 0x17f6, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x17fe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1800, + 0x0000, 0x0000, 0x1802, 0x1807, 0x1809, 0x0000, 0x180c, 0x0000, 0x1813, 0x0000, + 0x1824, 0x1825, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1826, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1828, 0x1833, 0x0000, 0x0000, 0x183e, 0x0000, 0x1840, 0x0000, + 0x0000, 0x1844, 0x1845, 0x1846, 0x0000, 0x1847, 0x0000, 0x0000, 0x0000, 0x1854, + 0x0000, 0x0000, 0x0000, 0x185a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x185b, 0x1860, 0x0000, 0x1862, 0x1863, 0x1864, 0x0000, 0x186a, 0x186f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1871, 0x0000, 0x0000, 0x0000, 0x1872, 0x1886, + 0x0000, 0x188c, 0x0000, 0x0000, 0x0000, 0x188d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x188e, 0x0000, 0x0000, 0x0000, 0x18b0, 0x0000, + 0x0000, 0x18b2, 0x18bc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x18be, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18bf, + 0x0000, 0x0000, 0x18c1, 0x0000, 0x18c2, 0x0000, 0x18c3, 0x18c4, 0x0000, 0x0000, + 0x18d4, 0x18d5, 0x18e1, 0x0000, 0x0000, 0x0000, 0x18e2, 0x18e3, 0x18e4, 0x0000, + 0x18e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18e8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x18ee, 0x18ef, 0x18f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x18f2, + 0x0000, 0x18f5, 0x18fd, 0x1900, 0x190b, 0x0000, 0x190e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x190f, 0x1910, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1911, 0x0000, 0x0000, 0x0000, 0x0000, 0x1912, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1914, 0x0000, 0x1915, 0x1917, 0x1919, + 0x0000, 0x191d, 0x191e, 0x0000, 0x1921, 0x1926, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1927, 0x1928, 0x0000, 0x0000, + 0x1929, 0x0000, 0x0000, 0x192c, 0x0000, 0x0000, 0x0000, 0x0000, 0x192e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x192f, 0x1930, 0x0000, 0x0000, 0x1932, 0x0000, 0x0000, + 0x0000, 0x1936, 0x0000, 0x0000, 0x1937, 0x0000, 0x193d, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x193e, 0x0000, 0x0000, 0x193f, 0x0000, 0x1940, 0x0000, + 0x1941, 0x1943, 0x0000, 0x0000, 0x0000, 0x1944, 0x0000, 0x194f, 0x1950, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1951, 0x0000, 0x0000, 0x1955, + 0x1957, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x195d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x195e, 0x195f, 0x1960, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1962, 0x0000, 0x0000, 0x0000, 0x196b, 0x196c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x196f, 0x1970, 0x0000, 0x0000, 0x0000, 0x0000, 0x1971, 0x0000, 0x0000, 0x0000, + 0x1972, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1974, 0x0000, 0x0000, 0x1975, + 0x1976, 0x0000, 0x0000, 0x0000, 0x1977, 0x1978, 0x1979, 0x0000, 0x197b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x197c, 0x1980, 0x0000, 0x1982, 0x0000, 0x0000, 0x1984, + 0x0000, 0x19b2, 0x0000, 0x0000, 0x0000, 0x19b7, 0x0000, 0x19b8, 0x0000, 0x0000, + 0x0000, 0x19bb, 0x0000, 0x0000, 0x0000, 0x19be, 0x0000, 0x19bf, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x19c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x19c1, 0x19c2, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x19c7, 0x19c8, 0x0000, 0x0000, 0x19c9, + 0x19ca, 0x19cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x19d0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x19d2, 0x19d3, 0x0000, 0x19d7, 0x0000, + 0x19d8, 0x19da, 0x19dc, 0x0000, 0x19ed, 0x0000, 0x0000, 0x0000, 0x0000, 0x19ef, + 0x0000, 0x0000, 0x0000, 0x0000, 0x19f1, 0x0000, 0x19f2, 0x0000, 0x0000, 0x0000, + 0x19f7, 0x0000, 0x1a04, 0x1a07, 0x0000, 0x1a08, 0x0000, 0x1a0a, 0x1a0d, 0x0000, + 0x1a13, 0x1a14, 0x1a15, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1a16, 0x0000, 0x0000, 0x0000, 0x1a17, 0x0000, 0x1a18, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1a25, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1a30, 0x1a31, 0x1a32, 0x0000, + 0x0000, 0x1a37, 0x1a39, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1a3c, 0x0000, + 0x0000, 0x0000, 0x1a3d, 0x0000, 0x1a3f, 0x1a44, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1a45, 0x1a46, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1a48, 0x1a49, 0x1a4f, 0x0000, 0x1a51, 0x1a56, 0x0000, 0x0000, 0x1a57, + 0x1a5e, 0x0000, 0x1a5f, 0x0000, 0x0000, 0x1a60, 0x1a61, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1a62, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1a64, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1a6b, 0x0000, 0x0000, 0x1a6c, + 0x1a6d, 0x0000, 0x0000, 0x0000, 0x1a72, 0x0000, 0x0000, 0x0000, 0x1a78, 0x1a7c, + 0x0000, 0x1a7d, 0x0000, 0x0000, 0x0000, 0x1a7f, 0x0000, 0x1a80, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1a81, 0x0000, 0x0000, + 0x0000, 0x1a88, 0x0000, 0x0000, 0x0000, 0x1a89, 0x0000, 0x0000, 0x1a92, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1a93, 0x0000, 0x0000, 0x0000, 0x1a94, 0x0000, + 0x0000, 0x0000, 0x1a9c, 0x0000, 0x0000, 0x1aa7, 0x0000, 0x1aa8, 0x1ab7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1ac4, 0x0000, 0x0000, 0x1ac6, 0x0000, 0x1ac8, 0x1ac9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ad3, + 0x0000, 0x1ad4, 0x1ad6, 0x1ad8, 0x0000, 0x0000, 0x0000, 0x1ad9, 0x1ada, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1adb, 0x0000, 0x0000, 0x1add, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ade, 0x0000, 0x0000, 0x0000, 0x1adf, + 0x0000, 0x1ae0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1ae7, 0x0000, 0x1ae8, 0x1aeb, 0x1aed, 0x0000, 0x1aef, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1af3, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1af5, 0x0000, 0x0000, 0x0000, 0x0000, 0x1afe, 0x0000, 0x1aff, + 0x0000, 0x0000, 0x1b00, 0x0000, 0x0000, 0x1b01, 0x1b02, 0x0000, 0x0000, 0x0000, + 0x1b03, 0x0000, 0x0000, 0x0000, 0x1b04, 0x1b07, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1b0c, 0x0000, 0x1b0d, 0x0000, 0x0000, 0x0000, 0x1b0e, 0x1b0f, + 0x1b10, 0x0000, 0x1b11, 0x0000, 0x1b12, 0x0000, 0x0000, 0x1b13, 0x1b17, 0x0000, + 0x1b18, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b1b, 0x1b1c, 0x1b1d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1b1e, 0x1b24, 0x1b25, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1b28, 0x1b2a, 0x1b33, 0x1b35, 0x1b36, 0x0000, 0x0000, + 0x1b37, 0x1b38, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1b39, 0x0000, 0x0000, 0x1b3a, 0x1b43, 0x0000, 0x0000, 0x1b44, 0x0000, + 0x0000, 0x1b47, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b48, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b4c, 0x1b4e, 0x1b50, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b53, 0x0000, 0x0000, 0x0000, 0x1b64, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b6b, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b6d, 0x0000, + 0x0000, 0x1b6e, 0x1b6f, 0x1b74, 0x0000, 0x1b76, 0x1b79, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1b7e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1b7f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1b86, 0x0000, 0x1b87, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1b88, 0x1b8c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1b8e, 0x0000, 0x1b94, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b95, 0x0000, + 0x1b99, 0x0000, 0x0000, 0x0000, 0x0000, 0x1b9b, 0x1b9d, 0x0000, 0x1b9e, 0x1b9f, + 0x1ba0, 0x0000, 0x0000, 0x1ba6, 0x0000, 0x1ba8, 0x1ba9, 0x0000, 0x1bab, 0x0000, + 0x0000, 0x0000, 0x1bac, 0x1baf, 0x1bb0, 0x0000, 0x0000, 0x1bb2, 0x0000, 0x1bb5, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bc3, 0x0000, 0x0000, 0x1bc4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bc6, 0x0000, 0x1bca, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bcb, 0x0000, 0x1bcc, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bcd, 0x0000, 0x0000, 0x1bce, 0x0000, + 0x0000, 0x1bd4, 0x0000, 0x1bd5, 0x0000, 0x0000, 0x1bd6, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1bd8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bd9, 0x0000, 0x1bda, + 0x0000, 0x1bdc, 0x1bdd, 0x0000, 0x0000, 0x1bde, 0x0000, 0x0000, 0x1be3, 0x0000, + 0x1bec, 0x1bee, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bf0, 0x0000, 0x0000, 0x0000, + 0x1bf1, 0x1bf4, 0x1bf5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bf6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1bfb, + 0x1bfd, 0x1c01, 0x0000, 0x1c03, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1c04, 0x0000, 0x1c05, 0x1c0d, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1c0e, 0x1c11, 0x0000, 0x0000, 0x0000, 0x0000, 0x1c13, 0x0000, + 0x1c21, 0x1c24, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1c26, 0x1c27, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1c2b, 0x1c30, 0x0000, 0x1c32, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1c3a, 0x1c3c, 0x1c3e, 0x1c40, 0x1c41, 0x1c43, 0x1c45, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1c46, 0x1c49, 0x0000, 0x1c4a, 0x0000, 0x0000, 0x1c4f, 0x0000, + 0x0000, 0x0000, 0x1c62, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1c79, 0x0000, 0x0000, 0x1c7a, 0x1c7b, 0x0000, 0x0000, 0x1c7c, 0x0000, 0x1c81, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1c84, 0x0000, 0x1c85, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1c86, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1c89, 0x0000, 0x0000, 0x0000, 0x0000, 0x1c8b, 0x0000, 0x1c8c, 0x0000, 0x1c8e, + 0x0000, 0x1ca7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ca9, + 0x0000, 0x1caf, 0x1cb3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1cb4, 0x0000, + 0x1cb5, 0x1cb6, 0x1cb8, 0x1cba, 0x0000, 0x0000, 0x0000, 0x0000, 0x1cbd, 0x0000, + 0x1cbe, 0x1cc6, 0x0000, 0x1cc7, 0x1cc8, 0x0000, 0x0000, 0x1ccd, 0x0000, 0x0000, + 0x0000, 0x1cce, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1cd0, + 0x0000, 0x0000, 0x0000, 0x1cd1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1cd2, + 0x0000, 0x1cd3, 0x1cd4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1cd7, 0x0000, + 0x0000, 0x1cda, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ce6, 0x0000, 0x0000, 0x0000, + 0x1ce7, 0x1ce8, 0x0000, 0x1ce9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1cea, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ced, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1cee, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1cfd, 0x1d03, 0x1d05, 0x0000, 0x0000, 0x0000, 0x1d0b, 0x0000, + 0x0000, 0x1d0c, 0x0000, 0x0000, 0x0000, 0x1d0d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1d0e, 0x1d13, 0x0000, 0x1d16, 0x0000, 0x1d18, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1d20, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1d21, 0x0000, 0x0000, 0x1d25, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1d26, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1d27, 0x1d2a, + 0x1d30, 0x0000, 0x1d34, 0x0000, 0x0000, 0x1d42, 0x0000, 0x1d43, 0x0000, 0x0000, + 0x1d45, 0x0000, 0x0000, 0x0000, 0x1d4a, 0x1d4b, 0x0000, 0x0000, 0x1d54, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1d58, 0x0000, 0x0000, 0x0000, 0x1d59, 0x1d5a, + 0x1d5c, 0x0000, 0x0000, 0x0000, 0x0000, 0x1d5e, 0x0000, 0x0000, 0x1d5f, 0x1d61, + 0x1d62, 0x0000, 0x0000, 0x0000, 0x1d66, 0x0000, 0x0000, 0x1d69, 0x0000, 0x0000, + 0x1d6b, 0x0000, 0x1d70, 0x0000, 0x1d72, 0x0000, 0x1d73, 0x0000, 0x0000, 0x1d75, + 0x1d76, 0x1d7a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1d7b, 0x0000, 0x1d7c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1d7e, 0x0000, 0x0000, 0x1d80, 0x1d81, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1d82, 0x1d8b, 0x0000, 0x1d95, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1d96, 0x1d98, 0x0000, 0x1d9a, 0x1d9d, 0x1d9f, 0x0000, 0x0000, 0x0000, 0x1da0, + 0x0000, 0x1da3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1da5, 0x0000, 0x0000, + 0x0000, 0x1daa, 0x0000, 0x0000, 0x1dab, 0x0000, 0x0000, 0x1db0, 0x1db2, 0x1dba, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1dbc, 0x0000, 0x1dbd, 0x1dbe, 0x0000, + 0x0000, 0x1dbf, 0x0000, 0x0000, 0x1dc0, 0x0000, 0x1dc4, 0x0000, 0x1dc5, 0x1dc6, + 0x0000, 0x1dc7, 0x0000, 0x0000, 0x0000, 0x0000, 0x1dca, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1dcb, 0x1dcd, 0x1dcf, 0x0000, 0x0000, 0x1dd1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1dd7, 0x0000, 0x1dd8, 0x1dda, 0x0000, 0x0000, 0x1ddb, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1ddc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1ddd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ded, 0x1dee, 0x1def, + 0x1df1, 0x0000, 0x1df2, 0x0000, 0x1df3, 0x0000, 0x1e04, 0x1e08, 0x1e0a, 0x0000, + 0x1e0b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e0c, 0x0000, 0x0000, + 0x1e14, 0x0000, 0x1e1b, 0x0000, 0x1e1c, 0x0000, 0x1e1d, 0x0000, 0x1e29, 0x0000, + 0x0000, 0x0000, 0x1e2a, 0x0000, 0x1e2c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1e31, 0x1e33, 0x0000, 0x1e34, 0x0000, 0x1e35, 0x1e37, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e3b, 0x0000, 0x0000, 0x1e3d, 0x1e41, + 0x0000, 0x1e44, 0x0000, 0x0000, 0x0000, 0x1e47, 0x0000, 0x0000, 0x0000, 0x1e48, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e49, 0x0000, 0x0000, + 0x1e4c, 0x0000, 0x1e4d, 0x0000, 0x1e4f, 0x0000, 0x1e50, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1e51, 0x1e58, 0x0000, 0x0000, 0x1e59, 0x0000, 0x0000, 0x1e5a, 0x0000, + 0x0000, 0x1e5b, 0x0000, 0x0000, 0x1e5c, 0x0000, 0x0000, 0x1e5d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1e62, 0x1e67, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1e68, 0x1e69, 0x0000, 0x1e6e, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e70, 0x0000, + 0x1e76, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e77, 0x0000, 0x1e82, 0x0000, + 0x0000, 0x1e85, 0x0000, 0x1e86, 0x0000, 0x1e88, 0x0000, 0x1e8a, 0x1e90, 0x1e91, + 0x1e92, 0x0000, 0x1e94, 0x1e96, 0x0000, 0x0000, 0x0000, 0x1ea0, 0x0000, 0x1ea2, + 0x0000, 0x1ea3, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ea4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1ea6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1eb0, 0x1eb1, 0x1eb2, 0x1eb6, 0x0000, 0x1eb9, 0x0000, 0x0000, 0x1eba, 0x0000, + 0x0000, 0x1ee9, 0x0000, 0x0000, 0x0000, 0x0000, 0x1eea, 0x0000, 0x0000, 0x1eeb, + 0x1eed, 0x1eee, 0x1eef, 0x0000, 0x1ef0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1ef1, 0x1ef2, 0x0000, 0x1ef4, 0x0000, 0x0000, 0x1ef5, 0x0000, 0x0000, 0x1ef7, + 0x0000, 0x1efa, 0x1eff, 0x0000, 0x0000, 0x1f01, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1f03, 0x0000, 0x1f04, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1f05, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f09, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1f0d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f0e, + 0x0000, 0x1f11, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f20, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1f21, 0x1f24, 0x1f38, 0x0000, 0x1f39, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1f3a, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f47, 0x1f48, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f4a, + 0x0000, 0x0000, 0x0000, 0x1f4c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1f52, 0x0000, 0x1f5c, 0x1f5d, 0x0000, 0x0000, 0x1f5e, 0x0000, + 0x0000, 0x1f60, 0x1f61, 0x0000, 0x0000, 0x1f62, 0x1f64, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f65, 0x0000, 0x0000, + 0x0000, 0x1f6b, 0x1f74, 0x1f7b, 0x1f7c, 0x0000, 0x0000, 0x1f7d, 0x0000, 0x0000, + 0x0000, 0x1f7e, 0x0000, 0x1f7f, 0x0000, 0x1f80, 0x0000, 0x1f82, 0x1f84, 0x0000, + 0x0000, 0x0000, 0x1f90, 0x1f91, 0x0000, 0x1f99, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1f9c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f9d, 0x1fae, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1faf, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1fb0, 0x1fb3, 0x0000, 0x1fb5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1fb8, 0x1fb9, 0x1fba, 0x1fc0, 0x1fc1, 0x1fc2, 0x1fc3, + 0x0000, 0x0000, 0x1fcb, 0x0000, 0x0000, 0x1fd0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1fd1, 0x1fd2, 0x1fd9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1fda, 0x0000, 0x1fdd, 0x1fe0, 0x1fe2, 0x0000, 0x1fe4, 0x1fe5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1fe6, 0x1fe7, 0x0000, 0x0000, 0x1ff3, 0x0000, 0x0000, + 0x0000, 0x1ff9, 0x0000, 0x0000, 0x0000, 0x1ffa, 0x0000, 0x0000, 0x1ffb, 0x0000, + 0x0000, 0x0000, 0x1ffc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x200c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2015, + 0x0000, 0x2016, 0x0000, 0x0000, 0x2017, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x201a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x201b, 0x0000, 0x201d, 0x0000, 0x0000, 0x201e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2021, 0x0000, 0x0000, 0x0000, 0x2029, 0x0000, 0x0000, + 0x2032, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2037, 0x0000, 0x2038, 0x203c, 0x0000, 0x2040, 0x2041, 0x0000, + 0x0000, 0x2045, 0x0000, 0x2048, 0x2049, 0x0000, 0x0000, 0x0000, 0x0000, 0x204b, + 0x0000, 0x0000, 0x0000, 0x204d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x204e, 0x0000, 0x0000, 0x0000, 0x2056, 0x0000, 0x2057, + 0x205b, 0x0000, 0x0000, 0x205d, 0x205e, 0x2061, 0x2064, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2065, 0x2067, 0x206b, 0x206c, 0x206d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2070, 0x2073, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2081, 0x0000, 0x0000, 0x0000, 0x2082, 0x2083, 0x2085, 0x2086, 0x2087, + 0x0000, 0x0000, 0x208c, 0x2092, 0x0000, 0x0000, 0x2094, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x209e, 0x0000, 0x0000, 0x209f, 0x0000, 0x20a2, 0x20a3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x20a8, 0x20b4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x20b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x20bc, 0x0000, + 0x0000, 0x0000, 0x20bf, 0x0000, 0x20c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x20c2, + 0x20c8, 0x0000, 0x0000, 0x20ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x20cc, 0x20cd, 0x0000, 0x20ce, 0x0000, 0x20cf, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x20d0, 0x0000, 0x20d1, 0x20da, 0x20db, 0x0000, 0x20dc, 0x20dd, + 0x20e6, 0x0000, 0x0000, 0x0000, 0x0000, 0x20e7, 0x0000, 0x0000, 0x0000, 0x0000, + 0x20e8, 0x0000, 0x0000, 0x20e9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x20f9, 0x20fa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x20fb, + 0x0000, 0x0000, 0x20fc, 0x0000, 0x20ff, 0x0000, 0x0000, 0x0000, 0x0000, 0x2103, + 0x0000, 0x210a, 0x0000, 0x210e, 0x0000, 0x0000, 0x2114, 0x0000, 0x2115, 0x0000, + 0x0000, 0x0000, 0x2116, 0x0000, 0x2119, 0x211f, 0x2120, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2121, 0x2123, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2124, 0x0000, 0x0000, 0x212a, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x212b, 0x212d, 0x212e, 0x0000, 0x2150, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2152, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2156, 0x215a, 0x215c, 0x0000, 0x0000, 0x215d, 0x0000, + 0x0000, 0x2161, 0x0000, 0x216d, 0x0000, 0x0000, 0x2179, 0x217a, 0x0000, 0x0000, + 0x217b, 0x217e, 0x217f, 0x2183, 0x0000, 0x2187, 0x0000, 0x0000, 0x0000, 0x0000, + 0x218f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x219e, + 0x0000, 0x219f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x21a0, 0x0000, 0x0000, 0x21a1, 0x0000, 0x0000, 0x0000, 0x21a2, 0x0000, + 0x0000, 0x0000, 0x21a3, 0x0000, 0x0000, 0x21a5, 0x21a9, 0x21ad, 0x0000, 0x0000, + 0x21ae, 0x0000, 0x21af, 0x0000, 0x21b0, 0x21b1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x21bd, 0x21be, 0x21bf, 0x21ca, 0x0000, + 0x0000, 0x0000, 0x0000, 0x21cc, 0x21ce, 0x21cf, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x21d0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x21d1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x21d2, 0x0000, 0x0000, 0x21d3, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x21d5, 0x21d7, 0x21d8, 0x0000, 0x0000, 0x0000, 0x0000, + 0x21d9, 0x0000, 0x21dd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x21df, 0x21e2, 0x0000, 0x21ec, 0x0000, 0x21ee, 0x0000, 0x0000, 0x0000, 0x21f1, + 0x0000, 0x0000, 0x0000, 0x21f2, 0x0000, 0x2202, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2206, 0x0000, 0x2207, + 0x2209, 0x220a, 0x2214, 0x2217, 0x2218, 0x221d, 0x2220, 0x0000, 0x2221, 0x2223, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2226, 0x2227, 0x2229, 0x2232, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2234, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2235, + 0x2238, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x223a, 0x223b, 0x223c, 0x0000, + 0x223e, 0x2241, 0x2242, 0x2245, 0x0000, 0x2246, 0x0000, 0x224b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x224c, 0x0000, 0x0000, 0x224d, 0x0000, 0x0000, 0x224f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2250, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2251, 0x0000, 0x0000, 0x0000, 0x0000, 0x2252, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2254, 0x2256, 0x0000, 0x0000, 0x0000, 0x2263, 0x0000, 0x226d, 0x226e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x226f, 0x2270, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2272, 0x0000, 0x0000, 0x0000, 0x0000, 0x2276, 0x227c, 0x227d, 0x0000, 0x227f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2281, 0x0000, 0x0000, 0x0000, 0x2282, 0x0000, + 0x0000, 0x0000, 0x2283, 0x0000, 0x2284, 0x0000, 0x0000, 0x0000, 0x2285, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2286, 0x2287, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2288, 0x0000, + 0x0000, 0x0000, 0x2289, 0x0000, 0x228a, 0x0000, 0x0000, 0x0000, 0x228e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x228f, 0x0000, 0x2290, 0x0000, + 0x0000, 0x22a0, 0x0000, 0x0000, 0x22a2, 0x0000, 0x0000, 0x22a6, 0x22a8, 0x0000, + 0x0000, 0x22a9, 0x22aa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x22ab, + 0x0000, 0x22ac, 0x0000, 0x0000, 0x0000, 0x0000, 0x22c0, 0x22c4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x22c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x22c8, 0x0000, + 0x22cb, 0x0000, 0x0000, 0x0000, 0x0000, 0x22cf, 0x22d0, 0x22d1, 0x0000, 0x0000, + 0x0000, 0x22d2, 0x0000, 0x22d3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x22d4, 0x0000, 0x0000, 0x0000, + 0x22e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x22e2, 0x0000, 0x22e4, 0x0000, 0x22ef, 0x0000, 0x0000, 0x0000, 0x22f1, + 0x22f3, 0x0000, 0x0000, 0x0000, 0x0000, 0x22f5, 0x0000, 0x22f6, 0x0000, 0x22fa, + 0x22fd, 0x0000, 0x0000, 0x230a, 0x0000, 0x0000, 0x0000, 0x0000, 0x230b, 0x0000, + 0x2324, 0x0000, 0x0000, 0x0000, 0x0000, 0x2325, 0x2328, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2329, 0x232a, 0x0000, 0x232c, 0x2331, 0x2340, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2343, + 0x237a, 0x0000, 0x0000, 0x237b, 0x2381, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2382, 0x0000, 0x0000, 0x0000, 0x2384, 0x0000, 0x0000, 0x2385, 0x0000, + 0x2387, 0x0000, 0x0000, 0x2388, 0x2389, 0x238d, 0x238e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2398, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x239a, 0x0000, 0x0000, 0x23a0, 0x0000, 0x23a1, 0x23a2, 0x0000, + 0x0000, 0x0000, 0x23a3, 0x23a4, 0x0000, 0x0000, 0x23a5, 0x0000, 0x0000, 0x23a6, + 0x0000, 0x23a7, 0x0000, 0x0000, 0x23a9, 0x23ab, 0x0000, 0x0000, 0x0000, 0x23ac, + 0x0000, 0x0000, 0x23b0, 0x0000, 0x23b8, 0x0000, 0x0000, 0x23bc, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x23bd, 0x0000, 0x23c0, 0x23cb, 0x0000, 0x0000, + 0x23cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x23ce, 0x0000, 0x23d1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x23d2, 0x0000, 0x0000, 0x0000, 0x0000, 0x23d4, + 0x0000, 0x23d6, 0x23d7, 0x23d8, 0x0000, 0x23d9, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x23e2, 0x0000, 0x23e3, 0x0000, 0x0000, 0x0000, + 0x23e4, 0x23e5, 0x0000, 0x0000, 0x23e6, 0x0000, 0x0000, 0x0000, 0x0000, 0x23e7, + 0x0000, 0x0000, 0x0000, 0x23e9, 0x0000, 0x0000, 0x0000, 0x0000, 0x23ed, 0x23ee, + 0x0000, 0x0000, 0x0000, 0x23f8, 0x23fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x2400, + 0x2401, 0x0000, 0x2404, 0x0000, 0x0000, 0x0000, 0x0000, 0x2405, 0x2406, 0x2407, + 0x0000, 0x2408, 0x2409, 0x0000, 0x0000, 0x240b, 0x0000, 0x240c, 0x240d, 0x0000, + 0x0000, 0x240e, 0x0000, 0x2410, 0x0000, 0x2411, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2412, 0x2413, 0x0000, 0x0000, 0x2415, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2416, 0x2418, 0x0000, 0x0000, 0x2419, 0x0000, + 0x0000, 0x0000, 0x0000, 0x241c, 0x0000, 0x0000, 0x0000, 0x0000, 0x241f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2420, + 0x0000, 0x0000, 0x0000, 0x2421, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2422, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2423, 0x0000, 0x0000, 0x2424, 0x2427, 0x0000, + 0x0000, 0x0000, 0x2428, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2429, 0x0000, 0x0000, 0x242a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x242b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x242e, 0x242f, 0x0000, 0x0000, + 0x2431, 0x2432, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2434, 0x2437, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2439, 0x0000, 0x0000, 0x0000, 0x243c, 0x243d, 0x243f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2440, 0x0000, 0x0000, 0x244d, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2451, 0x2455, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x245c, 0x245d, 0x2461, + 0x2469, 0x246a, 0x0000, 0x246e, 0x246f, 0x0000, 0x0000, 0x2505, 0x0000, 0x2507, + 0x0000, 0x0000, 0x0000, 0x0000, 0x250a, 0x0000, 0x0000, 0x0000, 0x250b, 0x0000, + 0x250c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x250d, 0x0000, 0x0000, 0x250e, 0x0000, 0x0000, 0x0000, 0x2511, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2512, 0x2513, 0x0000, 0x0000, 0x0000, 0x0000, 0x2515, 0x0000, + 0x2517, 0x2518, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x251c, 0x0000, 0x251e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2520, 0x2523, + 0x0000, 0x2525, 0x0000, 0x2527, 0x0000, 0x0000, 0x2529, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x252b, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x252c, 0x252d, 0x0000, 0x0000, 0x0000, 0x0000, 0x253c, 0x0000, + 0x0000, 0x253d, 0x0000, 0x0000, 0x2542, 0x0000, 0x2543, 0x2544, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2545, 0x0000, 0x0000, 0x0000, 0x2546, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2548, 0x2549, 0x0000, 0x254a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x254b, 0x254c, 0x0000, 0x0000, 0x0000, + 0x254e, 0x0000, 0x2555, 0x0000, 0x2556, 0x0000, 0x2559, 0x0000, 0x255b, 0x2562, + 0x0000, 0x2564, 0x2566, 0x2567, 0x0000, 0x0000, 0x0000, 0x2569, 0x2578, 0x0000, + 0x0000, 0x257c, 0x0000, 0x0000, 0x0000, 0x257e, 0x0000, 0x2580, 0x0000, 0x2581, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2588, 0x0000, 0x25a6, 0x25a7, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x25a9, 0x0000, 0x0000, + 0x25ab, 0x25ac, 0x25ad, 0x25ae, 0x0000, 0x0000, 0x0000, 0x25b0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x25b2, 0x25b6, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x25b7, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x25b8, 0x0000, 0x25b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x25ba, 0x0000, + 0x0000, 0x25bb, 0x0000, 0x0000, 0x25c0, 0x0000, 0x0000, 0x25c1, 0x0000, 0x25c3, + 0x25c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x25c7, 0x0000, 0x25c9, 0x25d1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x25d2, 0x25d3, 0x25d4, 0x0000, 0x0000, 0x0000, 0x0000, 0x25d6, 0x25e2, + 0x0000, 0x0000, 0x25e4, 0x25e5, 0x25e6, 0x0000, 0x25e7, 0x25f5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x25f6, 0x0000, 0x25fe, 0x0000, 0x0000, 0x0000, 0x0000, 0x25ff, + 0x0000, 0x0000, 0x0000, 0x2600, 0x0000, 0x260e, 0x0000, 0x2610, 0x0000, 0x0000, + 0x0000, 0x2616, 0x0000, 0x261a, 0x261b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x261c, 0x0000, 0x261d, 0x2628, 0x0000, 0x2629, 0x0000, 0x0000, 0x0000, 0x262a, + 0x262b, 0x0000, 0x262d, 0x0000, 0x262e, 0x0000, 0x262f, 0x0000, 0x0000, 0x0000, + 0x2630, 0x2631, 0x2638, 0x0000, 0x0000, 0x0000, 0x263a, 0x0000, 0x263d, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2641, 0x2642, 0x0000, 0x0000, 0x0000, 0x2650, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2653, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2654, 0x0000, 0x265c, + 0x0000, 0x265f, 0x0000, 0x2664, 0x0000, 0x0000, 0x0000, 0x0000, 0x2666, 0x0000, + 0x0000, 0x2669, 0x266c, 0x0000, 0x0000, 0x0000, 0x2670, 0x0000, 0x0000, 0x0000, + 0x2671, 0x0000, 0x0000, 0x2672, 0x0000, 0x2675, 0x0000, 0x0000, 0x0000, 0x2677, + 0x2678, 0x0000, 0x0000, 0x267f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2680, 0x2687, 0x2689, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x268a, 0x268b, 0x268c, 0x2691, 0x2693, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2698, 0x0000, 0x269e, 0x0000, 0x0000, 0x0000, 0x269f, 0x0000, + 0x0000, 0x26a3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x26b2, + 0x26b3, 0x26b4, 0x0000, 0x0000, 0x0000, 0x26b5, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x26b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x26b9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x26ba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x26c2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x26c3, 0x26c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x26ca, 0x0000, 0x0000, 0x0000, 0x26cb, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x26cc, 0x0000, 0x26d3, 0x0000, 0x0000, 0x26d4, 0x26ea, 0x26ee, 0x0000, + 0x26f1, 0x26f2, 0x0000, 0x0000, 0x26f6, 0x0000, 0x26fb, 0x26fd, 0x26fe, 0x0000, + 0x0000, 0x0000, 0x2701, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2703, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2704, 0x2709, 0x0000, + 0x0000, 0x270a, 0x0000, 0x0000, 0x0000, 0x270d, 0x0000, 0x2714, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2717, 0x2723, 0x2724, 0x2726, 0x0000, 0x0000, 0x0000, + 0x272f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2730, 0x0000, 0x0000, 0x2732, + 0x0000, 0x2734, 0x0000, 0x0000, 0x0000, 0x0000, 0x2736, 0x0000, 0x2737, 0x2738, + 0x2739, 0x273a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x273b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x273d, 0x2746, 0x0000, 0x0000, 0x0000, 0x0000, 0x2747, + 0x0000, 0x0000, 0x2749, 0x274a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x274b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x274c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x274f, 0x0000, 0x2752, 0x0000, + 0x0000, 0x0000, 0x2756, 0x0000, 0x2758, 0x0000, 0x0000, 0x275c, 0x275d, 0x0000, + 0x0000, 0x2764, 0x0000, 0x2767, 0x276a, 0x276b, 0x0000, 0x0000, 0x0000, 0x276e, + 0x2771, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2772, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2777, 0x0000, 0x2778, 0x0000, 0x277c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2788, 0x0000, 0x0000, + 0x0000, 0x278a, 0x0000, 0x0000, 0x278d, 0x0000, 0x0000, 0x0000, 0x0000, 0x278f, + 0x2790, 0x0000, 0x0000, 0x2796, 0x0000, 0x2797, 0x2798, 0x0000, 0x2799, 0x0000, + 0x0000, 0x27a3, 0x0000, 0x27a5, 0x27a6, 0x0000, 0x0000, 0x27ac, 0x0000, 0x27ae, + 0x27af, 0x27b0, 0x27b8, 0x0000, 0x0000, 0x27bb, 0x0000, 0x27bd, 0x0000, 0x0000, + 0x0000, 0x27c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x27c1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x27c2, 0x0000, 0x0000, 0x0000, 0x0000, 0x27d2, 0x0000, 0x27da, 0x0000, + 0x0000, 0x27db, 0x27dc, 0x0000, 0x27dd, 0x27de, 0x0000, 0x27df, 0x0000, 0x0000, + 0x0000, 0x0000, 0x27e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x27e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x27e9, 0x0000, 0x27f5, + 0x0000, 0x27f6, 0x27f7, 0x0000, 0x0000, 0x27f8, 0x0000, 0x0000, 0x27fd, 0x27fe, + 0x2804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x280a, 0x0000, 0x280c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x280f, 0x0000, 0x0000, 0x2811, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2812, 0x0000, 0x2813, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2814, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x282c, 0x2830, 0x2831, 0x0000, 0x0000, 0x0000, + 0x2832, 0x0000, 0x2838, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2839, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x283a, 0x0000, 0x0000, 0x0000, 0x0000, + 0x283b, 0x283f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2842, 0x0000, 0x0000, + 0x0000, 0x2843, 0x0000, 0x2844, 0x0000, 0x0000, 0x0000, 0x0000, 0x2847, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x284b, 0x284d, 0x0000, 0x0000, + 0x0000, 0x284e, 0x284f, 0x0000, 0x2851, 0x0000, 0x2856, 0x0000, 0x2858, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2859, 0x0000, 0x0000, 0x285b, 0x0000, 0x285c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x285e, 0x0000, 0x0000, 0x285f, 0x2862, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2863, 0x286d, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x286f, 0x0000, 0x2871, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x287a, 0x0000, 0x2880, 0x0000, 0x2881, 0x0000, 0x0000, 0x0000, + 0x2884, 0x2885, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2886, 0x0000, 0x0000, + 0x0000, 0x2887, 0x0000, 0x2888, 0x0000, 0x0000, 0x2892, 0x2894, 0x2896, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2897, 0x0000, 0x0000, 0x2898, + 0x289a, 0x0000, 0x0000, 0x289c, 0x0000, 0x289d, 0x0000, 0x28a3, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x28a4, 0x0000, 0x28a5, 0x28aa, + 0x0000, 0x0000, 0x28ab, 0x0000, 0x28ac, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x28b5, 0x28b6, 0x28b7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x28b9, 0x0000, 0x0000, 0x28bb, 0x0000, 0x0000, + 0x28be, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x28c0, 0x0000, 0x28c1, 0x28c2, + 0x0000, 0x0000, 0x0000, 0x0000, 0x28c4, 0x28c5, 0x0000, 0x28c6, 0x0000, 0x28c7, + 0x0000, 0x28cc, 0x28ce, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x28d0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x28d1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x28d3, 0x0000, 0x28d5, 0x0000, 0x0000, 0x0000, 0x28d6, 0x28d9, + 0x0000, 0x0000, 0x28db, 0x0000, 0x28e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x28e8, 0x28f1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x28f2, 0x28f3, 0x0000, + 0x28fc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2903, 0x0000, 0x0000, 0x0000, 0x2906, 0x0000, 0x0000, 0x290e, 0x0000, + 0x2919, 0x291c, 0x0000, 0x0000, 0x291d, 0x291e, 0x2920, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2922, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2925, 0x0000, 0x2926, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2927, 0x2928, 0x0000, 0x0000, 0x2930, 0x0000, 0x2939, + 0x293c, 0x0000, 0x293d, 0x293f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2942, + 0x2943, 0x2944, 0x0000, 0x2945, 0x0000, 0x0000, 0x0000, 0x2946, 0x0000, 0x2947, + 0x0000, 0x0000, 0x0000, 0x0000, 0x294f, 0x0000, 0x0000, 0x2950, 0x0000, 0x2952, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2959, 0x295a, 0x295b, 0x295d, 0x0000, 0x295e, 0x0000, 0x0000, 0x2962, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2966, 0x0000, 0x0000, 0x2969, 0x0000, 0x0000, + 0x0000, 0x296a, 0x0000, 0x296b, 0x0000, 0x296c, 0x0000, 0x296d, 0x0000, 0x0000, + 0x296f, 0x0000, 0x2982, 0x0000, 0x2983, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2985, 0x2986, 0x2987, 0x0000, 0x0000, 0x0000, 0x2996, 0x0000, 0x0000, 0x0000, + 0x2997, 0x0000, 0x299a, 0x0000, 0x299b, 0x0000, 0x0000, 0x0000, 0x299c, 0x299d, + 0x299f, 0x0000, 0x29a2, 0x0000, 0x0000, 0x29a3, 0x0000, 0x29ab, 0x0000, 0x0000, + 0x0000, 0x0000, 0x29ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x29ae, 0x0000, 0x0000, 0x0000, 0x29af, 0x0000, 0x0000, 0x0000, + 0x0000, 0x29b0, 0x29b1, 0x0000, 0x29b2, 0x0000, 0x0000, 0x0000, 0x29b4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29b6, 0x0000, 0x29ba, 0x0000, 0x0000, + 0x29c4, 0x0000, 0x29c9, 0x0000, 0x0000, 0x0000, 0x0000, 0x29ca, 0x0000, 0x0000, + 0x0000, 0x29cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29cf, 0x0000, 0x29d0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29d1, 0x0000, 0x29db, + 0x29de, 0x29e0, 0x0000, 0x0000, 0x29e2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x29e3, 0x0000, 0x0000, 0x0000, 0x0000, 0x29e6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x29e7, 0x29ea, 0x29f7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x29f8, 0x0000, 0x0000, 0x29f9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x29fc, 0x0000, 0x0000, 0x0000, 0x0000, 0x29fe, 0x0000, + 0x0000, 0x2a00, 0x2a01, 0x0000, 0x0000, 0x0000, 0x2a04, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2a06, 0x0000, 0x0000, 0x0000, 0x2a07, 0x0000, 0x2a11, + 0x0000, 0x0000, 0x2a14, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2a15, + 0x0000, 0x0000, 0x0000, 0x2a19, 0x0000, 0x0000, 0x2a1b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2a1c, 0x2a20, 0x0000, 0x0000, 0x0000, + 0x2a25, 0x0000, 0x0000, 0x0000, 0x2a27, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2a2b, 0x0000, 0x0000, 0x2a2c, 0x0000, 0x2a38, + 0x0000, 0x2a39, 0x0000, 0x0000, 0x0000, 0x2a3a, 0x0000, 0x0000, 0x0000, 0x2a3c, + 0x0000, 0x0000, 0x2a3e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2a3f, 0x0000, 0x0000, 0x0000, 0x0000, 0x2a40, 0x2a41, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2a43, 0x0000, 0x2a44, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2a45, 0x2a46, 0x2a47, 0x0000, 0x2a4a, 0x2a61, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2a62, 0x0000, 0x0000, 0x2a64, 0x0000, 0x2a65, 0x0000, 0x0000, 0x2a68, 0x0000, + 0x0000, 0x2a69, 0x2a6a, 0x2a6b, 0x2a6c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2a6f, 0x0000, 0x2a72, 0x2a73, 0x2a78, 0x2a8a, 0x0000, 0x0000, 0x2a8b, + 0x2a8c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2a8d, 0x0000, 0x0000, 0x0000, + 0x2a90, 0x2a93, 0x0000, 0x0000, 0x2a94, 0x2a96, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2a97, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2a99, 0x0000, 0x2a9a, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2a9c, 0x2a9f, 0x0000, 0x2aa0, 0x0000, 0x0000, 0x2aa4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2aa5, 0x0000, 0x2aa6, 0x0000, 0x0000, 0x0000, 0x2aab, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2aac, 0x0000, 0x0000, 0x2ab0, 0x2ab1, + 0x0000, 0x0000, 0x2ab2, 0x0000, 0x0000, 0x0000, 0x2ab4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2abb, 0x0000, 0x0000, 0x2ac1, 0x0000, 0x0000, 0x0000, 0x2ac3, 0x0000, + 0x0000, 0x2ac4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2ace, 0x0000, 0x2ad0, 0x2ad2, 0x0000, 0x0000, + 0x2ad4, 0x0000, 0x0000, 0x0000, 0x2ad6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2ad7, 0x0000, 0x0000, 0x0000, 0x2ad8, + 0x0000, 0x0000, 0x0000, 0x2add, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2adf, + 0x0000, 0x0000, 0x0000, 0x2ae0, 0x2ae2, 0x0000, 0x0000, 0x2ae6, 0x2ae8, 0x2aeb, + 0x0000, 0x0000, 0x2aec, 0x0000, 0x2aed, 0x0000, 0x0000, 0x2aef, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2af0, 0x0000, 0x0000, 0x0000, 0x2af1, 0x0000, 0x2af3, 0x0000, + 0x0000, 0x0000, 0x2af4, 0x2af5, 0x0000, 0x0000, 0x0000, 0x2af6, 0x0000, 0x2af7, + 0x0000, 0x2af9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b02, 0x2b04, + 0x0000, 0x2b05, 0x2b08, 0x2b09, 0x0000, 0x0000, 0x2b0b, 0x2b0c, 0x2b0d, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2b0e, 0x0000, 0x0000, 0x2b0f, 0x2b15, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2b17, 0x0000, 0x0000, 0x0000, 0x2b1a, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b2f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b30, 0x2b34, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2b35, 0x0000, 0x0000, 0x2b38, 0x2b39, 0x0000, 0x2b3a, + 0x0000, 0x2b3d, 0x0000, 0x2b4d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b4e, + 0x0000, 0x0000, 0x0000, 0x2b50, 0x0000, 0x0000, 0x0000, 0x2b56, 0x0000, 0x0000, + 0x0000, 0x2b57, 0x2b58, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b59, + 0x2b5a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b5b, 0x0000, 0x0000, + 0x2b5e, 0x2b64, 0x0000, 0x0000, 0x0000, 0x2b65, 0x0000, 0x2b6a, 0x2b6f, 0x0000, + 0x2b7b, 0x0000, 0x0000, 0x0000, 0x2b86, 0x0000, 0x0000, 0x2b87, 0x0000, 0x2b8a, + 0x0000, 0x2b8b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b8c, 0x0000, 0x2b8d, + 0x2b90, 0x2b91, 0x2b92, 0x0000, 0x2b94, 0x0000, 0x2b95, 0x0000, 0x0000, 0x0000, + 0x2b96, 0x0000, 0x0000, 0x2b97, 0x2b98, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2b9b, 0x0000, 0x0000, + 0x2b9c, 0x2b9e, 0x0000, 0x0000, 0x0000, 0x2ba4, 0x2ba6, 0x0000, 0x0000, 0x0000, + 0x2ba8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2bae, 0x2baf, 0x0000, 0x0000, + 0x0000, 0x2bb0, 0x2bb3, 0x0000, 0x0000, 0x2bb4, 0x2bb5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2bba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2bc0, 0x2bc2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2bc3, + 0x0000, 0x2bc4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2bc5, 0x0000, 0x0000, + 0x0000, 0x2bc6, 0x0000, 0x2bc7, 0x0000, 0x0000, 0x2bc9, 0x0000, 0x2bcb, 0x0000, + 0x2bce, 0x0000, 0x0000, 0x2bdf, 0x0000, 0x0000, 0x0000, 0x2c1d, 0x2c1f, 0x0000, + 0x0000, 0x2c20, 0x2c21, 0x2c26, 0x0000, 0x0000, 0x0000, 0x2c2b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2c2d, 0x2c2e, 0x0000, 0x2c2f, 0x0000, 0x0000, 0x0000, 0x2c31, + 0x0000, 0x2c32, 0x0000, 0x0000, 0x0000, 0x0000, 0x2c46, 0x0000, 0x2c4a, 0x0000, + 0x0000, 0x0000, 0x2c4b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2c4c, 0x0000, + 0x2c4d, 0x2c4e, 0x0000, 0x2c50, 0x0000, 0x2c51, 0x0000, 0x0000, 0x0000, 0x2c54, + 0x2c55, 0x0000, 0x0000, 0x2c56, 0x0000, 0x0000, 0x0000, 0x2c5b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2c5c, 0x0000, 0x2c5d, 0x2c6a, 0x0000, 0x0000, + 0x2c6b, 0x0000, 0x2c6e, 0x2c70, 0x0000, 0x0000, 0x0000, 0x2c71, 0x0000, 0x0000, + 0x2c72, 0x2c77, 0x0000, 0x2c7a, 0x2c87, 0x0000, 0x2c88, 0x2c8e, 0x0000, 0x0000, + 0x0000, 0x2c90, 0x0000, 0x0000, 0x2c91, 0x2c94, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2c99, 0x0000, 0x0000, 0x0000, 0x2c9a, 0x0000, 0x2c9d, 0x0000, 0x2ca2, 0x2ca5, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2ca6, 0x0000, 0x2cad, 0x0000, 0x2cae, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2cb0, 0x2cbd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2cbe, 0x0000, 0x0000, 0x0000, 0x0000, 0x2cbf, 0x0000, + 0x0000, 0x2cc0, 0x2cc4, 0x2cc5, 0x2cc7, 0x0000, 0x2ccd, 0x0000, 0x2cd1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2cd2, 0x0000, 0x0000, 0x0000, 0x2cd3, 0x0000, 0x2cd4, + 0x2cd5, 0x2cd8, 0x0000, 0x0000, 0x0000, 0x0000, 0x2cd9, 0x0000, 0x0000, 0x2cdc, + 0x0000, 0x0000, 0x2cdf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2ce9, 0x0000, 0x0000, 0x2cee, 0x0000, 0x2cf5, 0x0000, + 0x0000, 0x2cf6, 0x2cf7, 0x2cf9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2cfb, 0x0000, 0x0000, 0x0000, 0x0000, 0x2cfc, + 0x0000, 0x2d00, 0x2d01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2d09, 0x2d0a, 0x2d0b, 0x2d0e, 0x0000, 0x0000, + 0x2d17, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d1b, 0x0000, 0x2d1c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2d20, 0x2d24, 0x0000, 0x2d25, 0x0000, 0x0000, + 0x2d27, 0x0000, 0x2d28, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d29, + 0x0000, 0x0000, 0x2d2b, 0x2d2c, 0x0000, 0x2d2d, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2d2f, 0x0000, 0x0000, 0x0000, 0x2d31, 0x0000, 0x2d36, 0x0000, 0x2d37, 0x0000, + 0x0000, 0x0000, 0x2d39, 0x0000, 0x2d3a, 0x0000, 0x0000, 0x0000, 0x2d3c, 0x2d3d, + 0x0000, 0x0000, 0x0000, 0x2d3e, 0x2d40, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2d43, 0x0000, 0x2d44, 0x2d47, 0x0000, 0x2d4b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d4c, 0x0000, 0x2d4d, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2d4e, 0x2d51, 0x0000, 0x0000, 0x0000, 0x2d52, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d53, 0x2d54, 0x0000, + 0x2d56, 0x0000, 0x0000, 0x2d58, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d5a, 0x0000, + 0x0000, 0x2d5b, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d5d, 0x0000, 0x2d66, 0x0000, + 0x0000, 0x0000, 0x2d67, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d69, 0x0000, 0x0000, + 0x2d6a, 0x2d6b, 0x2d6c, 0x2d6e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2d77, 0x0000, 0x0000, 0x2d7e, 0x0000, 0x2d80, 0x2d81, 0x0000, 0x2d82, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d83, 0x0000, + 0x0000, 0x2d84, 0x2d85, 0x2d88, 0x0000, 0x0000, 0x2d9d, 0x2d9f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2da0, 0x0000, 0x0000, 0x2da1, 0x0000, 0x2da5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2da8, 0x0000, 0x0000, 0x0000, + 0x2dc4, 0x0000, 0x2dc7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2dc9, 0x0000, + 0x0000, 0x2dcc, 0x2ddf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2de1, 0x2de4, 0x2de6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2de7, + 0x0000, 0x0000, 0x0000, 0x2de8, 0x2dea, 0x0000, 0x2deb, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2def, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2df0, 0x0000, 0x0000, 0x0000, 0x2df1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2df6, 0x2df7, 0x0000, 0x2dfc, 0x2dfd, 0x0000, 0x2dfe, 0x0000, + 0x0000, 0x2dff, 0x0000, 0x2e01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2e02, 0x2e04, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2e07, 0x0000, 0x2e08, 0x0000, 0x0000, 0x0000, 0x2e09, 0x0000, + 0x0000, 0x0000, 0x2e0a, 0x0000, 0x0000, 0x0000, 0x0000, 0x2e0c, 0x0000, 0x0000, + 0x2e0d, 0x2e0f, 0x2e10, 0x0000, 0x0000, 0x0000, 0x0000, 0x2e13, 0x2e3a, 0x2e3b, + 0x2e3c, 0x0000, 0x0000, 0x2e3d, 0x0000, 0x0000, 0x0000, 0x2e3e, 0x0000, 0x0000, + 0x2e46, 0x2e4b, 0x0000, 0x2e4c, 0x0000, 0x2e5d, 0x0000, 0x0000, 0x0000, 0x2e5f, + 0x0000, 0x0000, 0x0000, 0x2e60, 0x2e62, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2e63, 0x0000, 0x2e64, 0x2e65, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2e6b, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2e6c, 0x0000, 0x2e6d, 0x0000, 0x2e6e, 0x0000, 0x0000, + 0x2e6f, 0x0000, 0x2e76, 0x2e77, 0x2e79, 0x2e85, 0x2e86, 0x0000, 0x2e88, 0x2e8e, + 0x0000, 0x0000, 0x2e90, 0x0000, 0x2e92, 0x2e94, 0x2e97, 0x2e98, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2e99, 0x0000, 0x2e9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2ea5, 0x2ea7, 0x2ea8, 0x0000, 0x2ea9, 0x0000, 0x0000, 0x0000, 0x0000, 0x2eac, + 0x2ead, 0x0000, 0x0000, 0x0000, 0x0000, 0x2eb1, 0x0000, 0x2eb2, 0x0000, 0x2eb3, + 0x0000, 0x2eb4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2eb5, 0x0000, 0x0000, + 0x2eb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2eb9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2eca, 0x0000, 0x0000, 0x0000, 0x2ecb, + 0x2ecc, 0x2ed2, 0x2ed3, 0x0000, 0x2ed8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2ed9, 0x0000, 0x0000, 0x0000, 0x2eda, 0x0000, 0x2edf, 0x2ee4, 0x2ee5, 0x2ee6, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2eeb, 0x0000, 0x0000, 0x2eec, 0x2eee, + 0x0000, 0x0000, 0x2eef, 0x0000, 0x0000, 0x2ef3, 0x2efc, 0x0000, 0x0000, 0x2efd, + 0x0000, 0x0000, 0x2f00, 0x2f01, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f02, 0x0000, + 0x2f09, 0x2f0b, 0x0000, 0x0000, 0x2f0c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2f0e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2f16, 0x2f17, 0x0000, 0x2f18, 0x0000, 0x0000, 0x0000, 0x2f1c, 0x2f20, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2f21, 0x2f23, 0x2f24, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f2a, 0x0000, 0x0000, 0x0000, 0x2f2b, + 0x2f2c, 0x0000, 0x0000, 0x0000, 0x2f2f, 0x0000, 0x2f31, 0x2f36, 0x2f37, 0x0000, + 0x0000, 0x2f38, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f39, 0x0000, 0x2f3c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2f41, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2f42, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f46, 0x2f47, 0x2f48, 0x2f4f, + 0x0000, 0x0000, 0x2f52, 0x2f54, 0x0000, 0x0000, 0x0000, 0x2f56, 0x0000, 0x0000, + 0x0000, 0x2f57, 0x2f58, 0x2f60, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f62, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f63, 0x0000, 0x0000, 0x0000, 0x2f64, + 0x2f66, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f69, 0x0000, 0x2f6b, 0x0000, 0x2f6d, + 0x0000, 0x0000, 0x2f6e, 0x0000, 0x0000, 0x0000, 0x2f70, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2f71, 0x0000, 0x2f74, 0x0000, 0x2f79, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2f7a, 0x2f8b, 0x2f8d, 0x0000, 0x0000, 0x0000, 0x2f8f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2f92, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2f97, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f98, + 0x0000, 0x0000, 0x0000, 0x2f9a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2f9b, + 0x2f9c, 0x0000, 0x0000, 0x2f9d, 0x0000, 0x2fa4, 0x0000, 0x2fa5, 0x0000, 0x0000, + 0x2fa6, 0x0000, 0x2fa9, 0x0000, 0x0000, 0x0000, 0x0000, 0x2fab, 0x0000, 0x2fb1, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2fb2, 0x2fb3, 0x2fb4, 0x2fb5, 0x0000, 0x2fb9, + 0x2fba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2fbe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2fbf, 0x0000, + 0x0000, 0x2fc5, 0x0000, 0x0000, 0x0000, 0x0000, 0x2fc9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2fca, 0x0000, 0x0000, 0x2fcc, 0x2fd2, 0x0000, 0x0000, 0x0000, 0x2fd3, + 0x0000, 0x0000, 0x0000, 0x2fd4, 0x2fdd, 0x0000, 0x2fde, 0x2fe0, 0x0000, 0x2fe1, + 0x0000, 0x0000, 0x2ff3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2ff5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x2ff6, 0x0000, 0x3001, 0x0000, 0x0000, 0x3002, + 0x0000, 0x3004, 0x3005, 0x0000, 0x0000, 0x3006, 0x0000, 0x3007, 0x0000, 0x0000, + 0x3008, 0x0000, 0x3009, 0x0000, 0x300a, 0x0000, 0x0000, 0x0000, 0x0000, 0x300d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3015, 0x0000, 0x3032, 0x3034, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3035, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3036, 0x3037, 0x0000, 0x3038, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x303a, 0x0000, 0x0000, 0x0000, 0x0000, 0x303c, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x303e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x303f, 0x0000, 0x3043, 0x3044, + 0x3045, 0x0000, 0x0000, 0x304f, 0x3052, 0x3053, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3054, 0x3058, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x305b, 0x0000, 0x305e, 0x0000, 0x305f, 0x0000, 0x0000, 0x3060, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3069, 0x0000, 0x0000, 0x306a, 0x0000, 0x0000, 0x0000, + 0x0000, 0x306e, 0x3073, 0x0000, 0x0000, 0x3074, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x307a, + 0x0000, 0x0000, 0x0000, 0x307b, 0x0000, 0x0000, 0x0000, 0x307c, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3084, 0x0000, 0x3085, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3087, 0x0000, 0x3089, 0x308d, 0x0000, 0x0000, 0x0000, 0x308f, 0x3090, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3092, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3093, 0x3094, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3095, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3096, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x309d, 0x0000, 0x0000, 0x0000, 0x30a2, 0x30a3, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x30a4, 0x30bb, 0x0000, 0x0000, + 0x30cd, 0x30ce, 0x0000, 0x0000, 0x0000, 0x30cf, 0x0000, 0x0000, 0x0000, 0x0000, + 0x30d0, 0x30d6, 0x30dd, 0x0000, 0x0000, 0x0000, 0x0000, 0x30de, 0x0000, 0x30e0, + 0x30e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x30e2, 0x0000, 0x0000, 0x0000, 0x30e3, + 0x0000, 0x30e8, 0x0000, 0x0000, 0x0000, 0x30ec, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x30ef, 0x0000, 0x0000, 0x0000, 0x30f0, 0x0000, 0x0000, 0x0000, + 0x30f1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x30f2, 0x0000, 0x30f7, 0x0000, + 0x0000, 0x30f8, 0x0000, 0x30fa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x30fc, 0x0000, 0x3104, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3106, 0x0000, 0x0000, 0x0000, 0x3107, 0x3108, + 0x0000, 0x0000, 0x0000, 0x310a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x310b, 0x0000, 0x0000, 0x3112, 0x0000, 0x3115, 0x0000, 0x3116, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3119, 0x0000, 0x0000, 0x0000, 0x311b, 0x311e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3121, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3122, 0x3123, 0x313b, 0x0000, 0x3140, 0x0000, 0x0000, + 0x3143, 0x0000, 0x3144, 0x0000, 0x3147, 0x0000, 0x3151, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3153, 0x3166, 0x0000, 0x3168, 0x0000, 0x0000, 0x3171, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x317e, 0x0000, 0x0000, 0x317f, 0x0000, 0x3181, 0x3185, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3187, 0x0000, 0x3189, 0x0000, 0x318a, 0x3195, 0x0000, 0x3196, 0x0000, 0x3199, + 0x0000, 0x319d, 0x0000, 0x0000, 0x0000, 0x319f, 0x31a0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x31a3, 0x31c1, 0x0000, 0x0000, 0x31c3, 0x0000, 0x0000, 0x31c4, 0x0000, + 0x0000, 0x31c6, 0x31c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x31c9, 0x0000, 0x31ca, 0x31cb, 0x0000, 0x31cc, 0x0000, 0x0000, + 0x31d7, 0x31df, 0x0000, 0x0000, 0x0000, 0x0000, 0x31e5, 0x0000, 0x31e6, 0x31ea, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31eb, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x31ec, 0x31f9, 0x0000, 0x3218, 0x0000, 0x3219, 0x0000, + 0x3224, 0x0000, 0x0000, 0x0000, 0x0000, 0x3227, 0x0000, 0x322a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x322b, 0x322d, 0x0000, 0x322e, 0x0000, 0x0000, 0x0000, 0x0000, 0x322f, 0x0000, + 0x0000, 0x3232, 0x3234, 0x3235, 0x0000, 0x0000, 0x0000, 0x3236, 0x0000, 0x0000, + 0x0000, 0x3237, 0x0000, 0x3238, 0x0000, 0x323a, 0x0000, 0x0000, 0x323b, 0x0000, + 0x323e, 0x0000, 0x323f, 0x0000, 0x0000, 0x3242, 0x0000, 0x3245, 0x3248, 0x3249, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x324b, + 0x0000, 0x324d, 0x0000, 0x0000, 0x324e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3254, 0x3255, 0x3258, 0x0000, 0x3259, 0x0000, + 0x0000, 0x0000, 0x0000, 0x325d, 0x0000, 0x0000, 0x0000, 0x325f, 0x3260, 0x3262, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3266, 0x0000, 0x326d, + 0x326e, 0x0000, 0x327e, 0x0000, 0x3280, 0x0000, 0x0000, 0x0000, 0x3281, 0x0000, + 0x3282, 0x0000, 0x0000, 0x0000, 0x0000, 0x3283, 0x0000, 0x3284, 0x3285, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3286, 0x0000, 0x328e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3290, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3292, 0x0000, 0x0000, 0x3294, 0x0000, 0x0000, 0x3295, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3296, 0x0000, 0x0000, 0x0000, 0x0000, 0x3297, 0x0000, 0x3298, + 0x0000, 0x3299, 0x0000, 0x0000, 0x0000, 0x329a, 0x329e, 0x329f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x32a0, 0x32a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x32a6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x32aa, + 0x0000, 0x32ab, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x32ac, 0x0000, + 0x0000, 0x32b6, 0x0000, 0x0000, 0x0000, 0x32b8, 0x32b9, 0x0000, 0x32ba, 0x32c4, + 0x32c5, 0x32c9, 0x32ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x32cc, 0x0000, 0x0000, + 0x32cd, 0x0000, 0x0000, 0x32cf, 0x32d1, 0x0000, 0x32d9, 0x0000, 0x0000, 0x0000, + 0x32dc, 0x0000, 0x32dd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x32de, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x32e0, 0x32e3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x32e4, + 0x0000, 0x0000, 0x32e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x32e8, 0x0000, 0x32ed, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x32f0, + 0x0000, 0x0000, 0x32f1, 0x0000, 0x0000, 0x0000, 0x32f3, 0x32f4, 0x32f6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x32f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x32f9, 0x32fe, 0x0000, 0x3300, 0x0000, 0x0000, 0x3304, 0x3305, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x330b, 0x0000, 0x0000, 0x330c, 0x0000, 0x330f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3315, 0x3316, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3317, 0x3318, 0x3319, 0x0000, 0x331a, 0x0000, 0x0000, 0x0000, + 0x331d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x331e, 0x0000, + 0x331f, 0x3320, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3326, 0x0000, 0x332b, + 0x0000, 0x332c, 0x0000, 0x0000, 0x0000, 0x332d, 0x0000, 0x3345, 0x3346, 0x3348, + 0x3349, 0x0000, 0x0000, 0x334a, 0x0000, 0x334b, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x334e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x335e, 0x0000, 0x3370, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3371, 0x0000, 0x0000, 0x3372, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3376, 0x0000, 0x0000, 0x0000, 0x3378, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3379, 0x0000, 0x337a, 0x337f, 0x3383, 0x0000, + 0x0000, 0x0000, 0x3385, 0x0000, 0x0000, 0x3386, 0x0000, 0x0000, 0x3387, 0x0000, + 0x0000, 0x3396, 0x0000, 0x0000, 0x0000, 0x3397, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x339c, 0x0000, 0x0000, 0x33a3, + 0x33b0, 0x0000, 0x0000, 0x0000, 0x33b9, 0x0000, 0x33c1, 0x33c5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x33c7, 0x33cb, 0x0000, 0x33cc, 0x33cd, 0x0000, 0x33ce, + 0x0000, 0x33d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x33dc, 0x0000, 0x0000, 0x0000, + 0x0000, 0x33dd, 0x33f3, 0x0000, 0x0000, 0x33f5, 0x33f6, 0x0000, 0x0000, 0x33f7, + 0x0000, 0x0000, 0x33f9, 0x0000, 0x33fe, 0x0000, 0x0000, 0x0000, 0x33ff, 0x0000, + 0x0000, 0x0000, 0x0000, 0x340d, 0x0000, 0x3410, 0x0000, 0x0000, 0x0000, 0x3411, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3412, 0x0000, 0x0000, 0x3413, + 0x0000, 0x3417, 0x0000, 0x0000, 0x341e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x341f, 0x0000, 0x342a, 0x0000, 0x3432, 0x0000, 0x3436, 0x3437, 0x3439, 0x0000, + 0x0000, 0x343b, 0x343c, 0x0000, 0x343d, 0x343e, 0x0000, 0x3440, 0x0000, 0x3444, + 0x3445, 0x344a, 0x0000, 0x344b, 0x344c, 0x0000, 0x344d, 0x344f, 0x3453, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3459, 0x3461, 0x0000, 0x3462, 0x0000, 0x0000, + 0x0000, 0x0000, 0x346c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x346e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x346f, 0x0000, 0x0000, 0x0000, 0x0000, 0x3471, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3473, 0x0000, 0x0000, 0x0000, 0x3474, 0x0000, + 0x0000, 0x3476, 0x347e, 0x0000, 0x347f, 0x0000, 0x3485, 0x0000, 0x3488, 0x3489, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x348b, 0x0000, 0x3491, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3492, 0x3493, 0x0000, 0x3494, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3498, 0x3499, 0x349a, 0x349e, 0x0000, 0x349f, 0x34a0, 0x34a2, 0x34a3, + 0x0000, 0x34a4, 0x0000, 0x0000, 0x34a6, 0x34a7, 0x0000, 0x34a9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x34af, 0x0000, 0x34b2, 0x0000, 0x34b5, 0x0000, 0x0000, 0x34b6, + 0x0000, 0x0000, 0x34b7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x34b8, 0x34b9, 0x0000, + 0x34bc, 0x0000, 0x0000, 0x34cc, 0x34d2, 0x0000, 0x0000, 0x34d5, 0x34d8, 0x0000, + 0x0000, 0x0000, 0x34da, 0x34df, 0x0000, 0x34e1, 0x34e3, 0x0000, 0x34e4, 0x0000, + 0x34e7, 0x0000, 0x34e8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x34e9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x34eb, 0x0000, 0x0000, 0x0000, + 0x34ed, 0x34f3, 0x0000, 0x0000, 0x0000, 0x34f4, 0x34f5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x34f6, 0x0000, 0x34fb, 0x0000, 0x0000, 0x0000, + 0x0000, 0x34fc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x34fe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3501, 0x0000, 0x0000, + 0x3503, 0x0000, 0x0000, 0x0000, 0x0000, 0x3505, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x350a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x350d, 0x0000, 0x3512, 0x0000, 0x351b, 0x0000, 0x3520, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3521, 0x3523, + 0x0000, 0x3524, 0x3525, 0x3526, 0x3527, 0x0000, 0x0000, 0x3531, 0x3532, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3537, 0x0000, 0x3539, 0x353b, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x353d, 0x0000, + 0x0000, 0x0000, 0x3542, 0x0000, 0x0000, 0x0000, 0x3546, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3556, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3558, 0x0000, 0x355b, 0x0000, + 0x0000, 0x355c, 0x0000, 0x0000, 0x355e, 0x0000, 0x0000, 0x0000, 0x355f, 0x0000, + 0x3560, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3564, 0x0000, 0x3565, 0x3567, + 0x0000, 0x0000, 0x3568, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x356b, + 0x3575, 0x0000, 0x3576, 0x0000, 0x0000, 0x0000, 0x3577, 0x0000, 0x0000, 0x0000, + 0x357c, 0x357e, 0x3581, 0x0000, 0x0000, 0x0000, 0x3586, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3589, 0x0000, 0x0000, 0x0000, 0x0000, 0x358b, 0x0000, 0x0000, + 0x0000, 0x3592, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3593, 0x0000, 0x3594, 0x3595, 0x0000, 0x0000, 0x3597, 0x359c, 0x35a2, + 0x35a3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x35a4, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x35a6, 0x0000, 0x35a8, + 0x0000, 0x0000, 0x35a9, 0x35aa, 0x35b3, 0x0000, 0x35b7, 0x0000, 0x0000, 0x35b8, + 0x0000, 0x0000, 0x0000, 0x35b9, 0x0000, 0x35bd, 0x0000, 0x0000, 0x35c2, 0x35c3, + 0x0000, 0x35c4, 0x35c5, 0x0000, 0x35c6, 0x0000, 0x0000, 0x35c7, 0x0000, 0x0000, + 0x0000, 0x35c8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x35c9, + 0x0000, 0x0000, 0x35cc, 0x0000, 0x35cf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x35d0, 0x35d2, 0x35db, 0x0000, 0x0000, 0x0000, 0x35e5, + 0x0000, 0x35e6, 0x0000, 0x35e9, 0x0000, 0x35ec, 0x35ee, 0x0000, 0x0000, 0x0000, + 0x0000, 0x35f8, 0x35f9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x360a, 0x0000, 0x360c, 0x0000, + 0x0000, 0x360e, 0x0000, 0x0000, 0x360f, 0x0000, 0x3610, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3612, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3613, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3615, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3622, 0x0000, 0x0000, 0x3624, 0x0000, 0x0000, + 0x3625, 0x0000, 0x0000, 0x3626, 0x3627, 0x0000, 0x362c, 0x0000, 0x362d, 0x362e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3630, 0x0000, 0x0000, 0x0000, 0x0000, 0x3631, 0x3636, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x363e, 0x0000, 0x3640, + 0x3641, 0x3642, 0x0000, 0x0000, 0x3643, 0x3646, 0x0000, 0x3649, 0x364b, 0x364c, + 0x3650, 0x0000, 0x0000, 0x3652, 0x0000, 0x0000, 0x0000, 0x3655, 0x0000, 0x0000, + 0x0000, 0x3656, 0x0000, 0x0000, 0x0000, 0x3657, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3658, 0x365d, 0x0000, 0x0000, 0x0000, 0x0000, 0x365e, 0x0000, 0x365f, + 0x0000, 0x0000, 0x3660, 0x0000, 0x0000, 0x0000, 0x3661, 0x0000, 0x0000, 0x3662, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3664, 0x0000, 0x3667, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x366c, 0x0000, 0x366d, 0x0000, 0x366e, + 0x0000, 0x0000, 0x366f, 0x0000, 0x3678, 0x0000, 0x0000, 0x0000, 0x3682, 0x0000, + 0x0000, 0x3683, 0x0000, 0x0000, 0x0000, 0x0000, 0x3684, 0x0000, 0x3685, 0x0000, + 0x368f, 0x3691, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3692, 0x36a6, 0x0000, 0x36a7, 0x36aa, 0x0000, + 0x36ab, 0x0000, 0x0000, 0x0000, 0x0000, 0x36ac, 0x0000, 0x0000, 0x36af, 0x0000, + 0x0000, 0x0000, 0x36c2, 0x0000, 0x36c3, 0x0000, 0x36c5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x36d9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x36db, 0x0000, 0x0000, 0x0000, 0x0000, 0x36de, 0x0000, 0x0000, + 0x0000, 0x36e0, 0x36e1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x36e3, 0x0000, 0x0000, 0x36e4, 0x36e8, 0x0000, 0x36ef, + 0x0000, 0x36f0, 0x36f2, 0x0000, 0x0000, 0x36f3, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x36f4, 0x0000, 0x0000, 0x0000, 0x36f8, + 0x0000, 0x36fa, 0x36fb, 0x0000, 0x36fc, 0x36ff, 0x3705, 0x3706, 0x3707, 0x370d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x370f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3710, 0x3711, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3712, 0x0000, 0x3716, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3717, 0x0000, + 0x0000, 0x0000, 0x3718, 0x0000, 0x0000, 0x3719, 0x0000, 0x0000, 0x0000, 0x371b, + 0x371c, 0x0000, 0x0000, 0x371d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3725, 0x0000, 0x0000, 0x0000, 0x0000, 0x3726, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3727, 0x0000, 0x0000, 0x3728, 0x0000, 0x0000, 0x3729, 0x0000, + 0x372a, 0x372f, 0x0000, 0x3730, 0x3738, 0x0000, 0x0000, 0x373a, 0x0000, 0x373c, + 0x0000, 0x0000, 0x0000, 0x373d, 0x373e, 0x0000, 0x0000, 0x0000, 0x0000, 0x3742, + 0x0000, 0x0000, 0x3745, 0x0000, 0x3747, 0x0000, 0x0000, 0x0000, 0x3748, 0x0000, + 0x0000, 0x3749, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x374a, 0x0000, 0x374c, 0x374d, 0x0000, 0x0000, 0x374f, 0x0000, 0x3751, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3752, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3753, 0x0000, 0x0000, 0x375d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x375e, 0x0000, 0x0000, 0x3760, 0x0000, 0x0000, 0x3762, 0x0000, 0x0000, + 0x3763, 0x3765, 0x0000, 0x0000, 0x3766, 0x3769, 0x376b, 0x0000, 0x376e, 0x0000, + 0x0000, 0x3775, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3776, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3777, 0x3778, 0x0000, 0x0000, 0x0000, 0x377c, 0x0000, 0x0000, 0x3780, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3797, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x379a, 0x0000, 0x0000, 0x379b, 0x0000, 0x0000, 0x0000, 0x37a0, 0x37a1, + 0x0000, 0x0000, 0x0000, 0x37a6, 0x0000, 0x0000, 0x0000, 0x37a7, 0x0000, 0x37aa, + 0x0000, 0x0000, 0x37ab, 0x0000, 0x0000, 0x37ae, 0x0000, 0x0000, 0x37b0, 0x0000, + 0x0000, 0x0000, 0x37b4, 0x0000, 0x37b5, 0x0000, 0x0000, 0x0000, 0x0000, 0x37b6, + 0x37bb, 0x37bd, 0x0000, 0x0000, 0x37c5, 0x0000, 0x0000, 0x37c6, 0x0000, 0x37c7, + 0x37ca, 0x0000, 0x0000, 0x0000, 0x37cb, 0x0000, 0x0000, 0x0000, 0x37cc, 0x37cd, + 0x0000, 0x0000, 0x0000, 0x0000, 0x37ce, 0x0000, 0x0000, 0x0000, 0x37d0, 0x0000, + 0x0000, 0x0000, 0x37d1, 0x0000, 0x37d2, 0x0000, 0x37d5, 0x37dd, 0x37de, 0x37e0, + 0x37e1, 0x0000, 0x37e3, 0x0000, 0x37e4, 0x37e5, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37e7, 0x37e8, 0x0000, + 0x0000, 0x37ed, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37ee, + 0x0000, 0x0000, 0x0000, 0x0000, 0x37f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x37f1, + 0x37f2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37f6, 0x37f9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x37fa, 0x37fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x37fc, 0x0000, + 0x0000, 0x0000, 0x37fd, 0x0000, 0x0000, 0x3801, 0x3804, 0x0000, 0x3805, 0x0000, + 0x0000, 0x3806, 0x0000, 0x3809, 0x380a, 0x0000, 0x0000, 0x380b, 0x0000, 0x381a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x381c, 0x381d, 0x3823, 0x0000, 0x3825, + 0x0000, 0x0000, 0x3826, 0x0000, 0x382b, 0x0000, 0x3840, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3841, 0x0000, 0x0000, 0x3845, 0x0000, 0x3846, 0x0000, 0x3848, + 0x3849, 0x0000, 0x0000, 0x0000, 0x3851, 0x0000, 0x0000, 0x3858, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x385e, 0x0000, 0x0000, + 0x0000, 0x385f, 0x0000, 0x0000, 0x3863, 0x0000, 0x3868, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x386a, 0x0000, 0x0000, 0x386b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x386e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3876, 0x0000, 0x3879, 0x0000, 0x387c, 0x0000, 0x0000, 0x3882, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3883, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3885, 0x0000, 0x388d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x388e, + 0x3892, 0x0000, 0x0000, 0x0000, 0x3893, 0x0000, 0x0000, 0x0000, 0x3895, 0x3896, + 0x0000, 0x0000, 0x0000, 0x3897, 0x3898, 0x3899, 0x389c, 0x389d, 0x389e, 0x389f, + 0x38a0, 0x38a1, 0x0000, 0x38a3, 0x0000, 0x38a5, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x38a6, 0x0000, 0x38ab, 0x38b0, + 0x38b1, 0x38b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x38b3, 0x38be, 0x38c2, 0x0000, 0x38c9, 0x0000, 0x38d0, + 0x0000, 0x38d3, 0x0000, 0x0000, 0x38d4, 0x38d6, 0x38d7, 0x0000, 0x0000, 0x38d8, + 0x0000, 0x0000, 0x0000, 0x38d9, 0x0000, 0x38da, 0x0000, 0x0000, 0x0000, 0x0000, + 0x38dc, 0x38e4, 0x0000, 0x0000, 0x38e5, 0x38e6, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x38e8, 0x0000, 0x0000, 0x38e9, 0x0000, 0x0000, 0x0000, 0x38eb, + 0x38f0, 0x0000, 0x0000, 0x38f1, 0x38f2, 0x38f3, 0x0000, 0x0000, 0x38f4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x38f6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x38f7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x38fb, 0x0000, 0x38fc, 0x0000, 0x0000, 0x3908, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3909, 0x0000, + 0x0000, 0x390c, 0x390d, 0x3913, 0x0000, 0x3915, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3917, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3923, 0x0000, 0x3924, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3927, 0x0000, 0x3929, 0x392a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x392b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x392c, 0x0000, 0x0000, 0x392f, 0x3932, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3934, 0x0000, 0x0000, 0x0000, 0x0000, 0x3935, 0x3936, 0x0000, 0x393d, 0x0000, + 0x0000, 0x393e, 0x0000, 0x3942, 0x0000, 0x3945, 0x0000, 0x0000, 0x0000, 0x3949, + 0x0000, 0x0000, 0x0000, 0x394c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x394d, 0x0000, 0x0000, 0x394e, 0x0000, 0x0000, 0x0000, + 0x3958, 0x0000, 0x0000, 0x3959, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x395a, + 0x395b, 0x0000, 0x0000, 0x0000, 0x0000, 0x395e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x395f, 0x3969, 0x0000, 0x0000, 0x0000, 0x0000, 0x396b, 0x3971, 0x3977, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3978, + 0x0000, 0x0000, 0x0000, 0x3979, 0x0000, 0x0000, 0x0000, 0x0000, 0x397f, 0x0000, + 0x3980, 0x3981, 0x3986, 0x0000, 0x0000, 0x0000, 0x3988, 0x3989, 0x0000, 0x0000, + 0x0000, 0x0000, 0x398b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x398d, 0x3990, 0x3991, 0x0000, 0x0000, 0x3994, 0x3996, 0x0000, 0x0000, 0x0000, + 0x3998, 0x39a1, 0x0000, 0x0000, 0x0000, 0x0000, 0x39a3, 0x39a6, 0x39a8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x39a9, 0x39aa, 0x39ad, 0x39b3, 0x0000, 0x39b4, + 0x0000, 0x39b5, 0x39b6, 0x0000, 0x0000, 0x39b7, 0x0000, 0x0000, 0x39b8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x39b9, 0x0000, 0x39bb, 0x0000, 0x0000, 0x39be, 0x0000, + 0x0000, 0x39c1, 0x39c2, 0x39c4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39cb, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39ce, 0x0000, 0x39d3, 0x39d4, + 0x39d6, 0x0000, 0x0000, 0x0000, 0x39d9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x39da, 0x0000, 0x0000, 0x0000, 0x0000, 0x39db, 0x0000, 0x39dc, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x39df, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x39e0, 0x0000, 0x39e2, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x39e3, 0x0000, 0x39e4, 0x0000, 0x39e7, 0x0000, 0x0000, 0x0000, + 0x39e8, 0x0000, 0x0000, 0x39ea, 0x39eb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39ee, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x39f1, 0x0000, 0x39fd, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x39fe, 0x0000, 0x0000, 0x39ff, 0x3a17, 0x0000, 0x3a19, 0x0000, 0x3a1c, + 0x0000, 0x3a1d, 0x3a1e, 0x3a20, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3a21, + 0x0000, 0x3a22, 0x3a2e, 0x0000, 0x0000, 0x0000, 0x0000, 0x3a2f, 0x0000, 0x3a3b, + 0x0000, 0x3a3c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3a3f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3a48, 0x0000, 0x0000, 0x3a53, 0x0000, 0x3a54, + 0x3a56, 0x3a57, 0x0000, 0x0000, 0x3a58, 0x0000, 0x3a61, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3a63, 0x0000, 0x0000, 0x3a64, 0x3a65, 0x3a67, + 0x0000, 0x0000, 0x3a68, 0x0000, 0x0000, 0x0000, 0x3a74, 0x3a7d, 0x0000, 0x0000, + 0x3a8e, 0x0000, 0x0000, 0x0000, 0x0000, 0x3a93, 0x0000, 0x0000, 0x3a96, 0x3a99, + 0x0000, 0x0000, 0x3a9a, 0x3aac, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3aad, 0x0000, 0x3aae, 0x0000, 0x0000, 0x0000, 0x0000, 0x3aaf, 0x0000, 0x0000, + 0x3ab1, 0x3ab5, 0x3ab9, 0x0000, 0x0000, 0x0000, 0x3aba, 0x0000, 0x0000, 0x0000, + 0x3abb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3ac3, 0x3ac4, 0x0000, 0x0000, + 0x0000, 0x3ac5, 0x3ac6, 0x3ac8, 0x3aca, 0x0000, 0x3ad9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3ada, 0x0000, 0x0000, 0x3ae3, 0x3aea, 0x3aec, 0x0000, 0x0000, 0x3aed, + 0x3aee, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3af0, + 0x0000, 0x0000, 0x0000, 0x3af1, 0x0000, 0x0000, 0x0000, 0x0000, 0x3af6, 0x0000, + 0x3af8, 0x0000, 0x3af9, 0x0000, 0x3afc, 0x0000, 0x0000, 0x3afe, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b01, 0x0000, 0x0000, 0x3b02, + 0x0000, 0x3b05, 0x3b09, 0x0000, 0x0000, 0x0000, 0x3b0b, 0x0000, 0x3b0e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b0f, 0x0000, 0x0000, 0x3b10, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3b13, 0x3b19, 0x0000, 0x0000, 0x0000, 0x3b1a, + 0x0000, 0x3b1b, 0x0000, 0x0000, 0x3b1e, 0x0000, 0x3b1f, 0x0000, 0x0000, 0x0000, + 0x3b21, 0x3b22, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b23, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3b24, 0x0000, 0x0000, 0x3b32, 0x3b3a, 0x0000, + 0x3b41, 0x3b42, 0x0000, 0x3b47, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b49, + 0x0000, 0x3b4a, 0x3b4b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b4f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3b51, 0x3b53, 0x0000, 0x3b5a, 0x3b5b, 0x3b5c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3b64, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b66, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b67, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b6d, 0x0000, 0x3b6e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b80, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3b82, 0x0000, 0x3b86, 0x3b88, 0x0000, 0x3b90, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3b92, 0x3b93, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3b94, + 0x0000, 0x0000, 0x0000, 0x3b97, 0x3b9e, 0x3ba2, 0x0000, 0x0000, 0x0000, 0x3ba3, + 0x0000, 0x0000, 0x0000, 0x3bad, 0x3baf, 0x0000, 0x0000, 0x0000, 0x3bb0, 0x3bb1, + 0x3bb2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3bb5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3bb9, 0x0000, 0x0000, 0x3bbb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3bc0, 0x3bc1, 0x0000, 0x0000, 0x3bc8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3bca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3bcb, 0x3bcc, + 0x0000, 0x3bcd, 0x0000, 0x0000, 0x3bcf, 0x0000, 0x0000, 0x3bd0, 0x3bd1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3bd2, 0x3bd5, 0x0000, 0x0000, 0x0000, 0x3bd6, 0x3bd7, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3bd8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3bd9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3bdc, 0x0000, 0x3bdd, 0x3bde, 0x0000, + 0x3be2, 0x0000, 0x0000, 0x0000, 0x0000, 0x3be6, 0x0000, 0x3be7, 0x0000, 0x3bed, + 0x0000, 0x0000, 0x3bee, 0x0000, 0x0000, 0x3bef, 0x3bf0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3bf1, 0x0000, 0x0000, 0x0000, 0x0000, 0x3bf3, 0x0000, 0x0000, 0x3bf4, + 0x3bf5, 0x3bf6, 0x0000, 0x3bfc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3bfd, 0x0000, 0x3bfe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3bff, 0x3c00, 0x3c04, 0x0000, 0x3c14, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3c20, 0x0000, 0x0000, 0x3c21, 0x0000, 0x3c23, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3c24, 0x0000, 0x0000, 0x3c25, 0x3c26, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3c27, 0x0000, + 0x3c28, 0x0000, 0x0000, 0x0000, 0x3c2a, 0x0000, 0x3c2d, 0x3c32, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3c33, 0x0000, 0x0000, 0x0000, 0x3c34, 0x0000, 0x3c38, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3c44, 0x0000, 0x3c4b, 0x0000, + 0x0000, 0x3c4e, 0x0000, 0x0000, 0x0000, 0x0000, 0x3c4f, 0x0000, 0x0000, 0x0000, + 0x3c50, 0x0000, 0x0000, 0x0000, 0x3c51, 0x3c59, 0x3c5b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3c5c, 0x0000, 0x0000, 0x3c5f, 0x0000, 0x0000, + 0x0000, 0x3c60, 0x0000, 0x0000, 0x3c62, 0x0000, 0x3c64, 0x3c65, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3c66, 0x3c68, 0x0000, 0x3c69, 0x0000, 0x0000, 0x3c6a, + 0x0000, 0x0000, 0x3c6b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3c6c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3c79, 0x0000, 0x0000, 0x3c7c, 0x0000, 0x3c7d, 0x3c7e, + 0x0000, 0x0000, 0x0000, 0x3c7f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3c80, + 0x0000, 0x3c84, 0x3c8a, 0x0000, 0x0000, 0x0000, 0x3c8b, 0x0000, 0x0000, 0x0000, + 0x3c8c, 0x0000, 0x3c8d, 0x0000, 0x0000, 0x3c98, 0x0000, 0x3ca2, 0x0000, 0x0000, + 0x0000, 0x3ca4, 0x0000, 0x3ca5, 0x3ca6, 0x0000, 0x0000, 0x3ca7, 0x0000, 0x0000, + 0x3cb9, 0x3cba, 0x0000, 0x3cbc, 0x3cc0, 0x0000, 0x3cc1, 0x0000, 0x0000, 0x0000, + 0x3cc2, 0x0000, 0x3cc3, 0x0000, 0x3cc5, 0x3ccd, 0x3cd5, 0x3cd9, 0x3cda, 0x0000, + 0x3cde, 0x0000, 0x3cdf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3ce2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3ce4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3ce5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3ce9, 0x3cea, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3ceb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3cec, 0x0000, + 0x0000, 0x0000, 0x3ced, 0x0000, 0x0000, 0x0000, 0x0000, 0x3cf0, 0x0000, 0x0000, + 0x3cf1, 0x0000, 0x0000, 0x0000, 0x0000, 0x3cf2, 0x3cf3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3cf4, 0x0000, 0x3cf9, 0x0000, 0x0000, 0x3cfc, 0x0000, + 0x0000, 0x3cfd, 0x0000, 0x0000, 0x3cff, 0x3d01, 0x3d02, 0x0000, 0x0000, 0x3d04, + 0x0000, 0x3d14, 0x3d15, 0x0000, 0x0000, 0x3d21, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3d22, 0x0000, 0x0000, 0x3d23, 0x0000, 0x0000, 0x0000, + 0x3d28, 0x0000, 0x3d2a, 0x0000, 0x0000, 0x0000, 0x3d30, 0x0000, 0x0000, 0x3d31, + 0x0000, 0x0000, 0x3d34, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3d35, 0x0000, + 0x0000, 0x3d3a, 0x0000, 0x0000, 0x3d3b, 0x0000, 0x0000, 0x0000, 0x0000, 0x3d3c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3d3d, 0x0000, 0x0000, 0x0000, 0x0000, 0x3d3e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3d3f, 0x0000, 0x0000, 0x3d41, 0x0000, 0x3d46, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3d47, 0x0000, 0x3d48, 0x0000, 0x0000, 0x3d4a, 0x0000, 0x0000, + 0x0000, 0x3d51, 0x0000, 0x3d53, 0x3d54, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3d55, 0x0000, 0x3d56, 0x3d57, 0x0000, 0x3d58, + 0x0000, 0x3d59, 0x0000, 0x3d5b, 0x0000, 0x3d5d, 0x0000, 0x3d60, 0x3d64, 0x0000, + 0x3d65, 0x0000, 0x3d66, 0x3d68, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3d6c, + 0x0000, 0x0000, 0x0000, 0x3d6d, 0x0000, 0x3d6e, 0x0000, 0x0000, 0x0000, 0x3d7c, + 0x0000, 0x3d81, 0x3d82, 0x0000, 0x0000, 0x3d83, 0x0000, 0x3d84, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3d85, 0x0000, 0x0000, 0x0000, 0x3d88, 0x0000, 0x3d89, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3d8f, 0x0000, 0x0000, 0x0000, + 0x3d95, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3d97, 0x0000, 0x0000, 0x0000, 0x3d9b, 0x0000, 0x0000, 0x3da8, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3da9, 0x3dae, 0x3daf, 0x0000, 0x0000, 0x3db0, 0x0000, 0x0000, + 0x0000, 0x3dbf, 0x0000, 0x3dc3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3dca, 0x0000, 0x0000, 0x0000, + 0x3dcb, 0x0000, 0x0000, 0x0000, 0x0000, 0x3dcd, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3dce, 0x3dd0, 0x0000, 0x0000, 0x3dd3, 0x0000, 0x0000, 0x3dd5, 0x3dd7, + 0x0000, 0x3dd8, 0x0000, 0x0000, 0x3dd9, 0x0000, 0x3ddb, 0x3dde, 0x3ddf, 0x3de3, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3de4, 0x0000, 0x0000, 0x0000, 0x0000, 0x3de5, 0x3deb, 0x3df0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3df2, 0x3df4, 0x0000, 0x3df5, + 0x0000, 0x0000, 0x0000, 0x3df8, 0x0000, 0x0000, 0x0000, 0x0000, 0x3df9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3dfa, 0x0000, 0x3e00, 0x0000, 0x0000, + 0x3e04, 0x0000, 0x0000, 0x0000, 0x0000, 0x3e05, 0x3e06, 0x3e0b, 0x3e0d, 0x0000, + 0x0000, 0x3e10, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3e11, 0x3e12, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3e14, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3e15, 0x0000, 0x0000, 0x3e16, 0x0000, + 0x0000, 0x0000, 0x3e17, 0x0000, 0x3e18, 0x3e19, 0x0000, 0x3e1a, 0x3e1d, 0x3e1e, + 0x0000, 0x3e27, 0x3e2b, 0x0000, 0x3e2c, 0x0000, 0x3e34, 0x3e3f, 0x0000, 0x3e41, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3e4e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3e56, 0x0000, 0x0000, 0x0000, 0x3e59, 0x0000, 0x0000, + 0x3e5e, 0x0000, 0x3e5f, 0x0000, 0x0000, 0x3e69, 0x0000, 0x0000, 0x3e6a, 0x0000, + 0x0000, 0x3e6d, 0x3e6e, 0x3e6f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3e72, 0x0000, 0x0000, 0x0000, 0x3e76, 0x0000, 0x3e77, 0x3e7b, 0x3e7e, + 0x0000, 0x3e7f, 0x0000, 0x3e80, 0x0000, 0x0000, 0x0000, 0x0000, 0x3e88, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3e89, 0x3e8b, + 0x0000, 0x3e8d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3e8e, 0x0000, 0x0000, 0x3e8f, 0x3e97, 0x3e98, 0x3e99, 0x0000, 0x0000, 0x3e9a, + 0x0000, 0x3e9e, 0x0000, 0x3ea0, 0x0000, 0x3ea1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3ea3, 0x3ea4, 0x3ea5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3ea7, 0x0000, 0x0000, 0x0000, 0x0000, 0x3ea9, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3eab, 0x3eac, 0x0000, 0x0000, 0x3eaf, 0x0000, 0x0000, 0x0000, 0x3eb0, + 0x0000, 0x0000, 0x3eb1, 0x3eb2, 0x3eb4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3eb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3eb8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3eba, 0x3ebc, 0x3ebd, + 0x0000, 0x0000, 0x3ebf, 0x0000, 0x0000, 0x3ec0, 0x0000, 0x0000, 0x0000, 0x3ec3, + 0x3ec4, 0x0000, 0x0000, 0x3ec5, 0x3ece, 0x0000, 0x0000, 0x0000, 0x3ecf, 0x0000, + 0x0000, 0x0000, 0x3ed0, 0x0000, 0x3ed1, 0x0000, 0x0000, 0x0000, 0x3ed8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3ed9, 0x3edd, 0x0000, 0x3ee1, 0x0000, 0x3ee7, 0x0000, 0x3ee8, 0x3ee9, 0x0000, + 0x0000, 0x3f80, 0x0000, 0x0000, 0x3f83, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x3f84, 0x3f85, 0x0000, 0x0000, 0x3f86, 0x0000, 0x0000, 0x3f87, + 0x0000, 0x3f8c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3f8d, + 0x0000, 0x0000, 0x3f8e, 0x3f91, 0x0000, 0x3f92, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3f93, 0x3f94, 0x3f95, 0x3f98, 0x0000, 0x0000, 0x0000, 0x3f99, 0x3f9c, 0x0000, + 0x0000, 0x0000, 0x3f9e, 0x0000, 0x3fa1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3fa2, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fa3, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fa4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fa5, 0x3fa7, 0x3fa9, 0x0000, + 0x3fae, 0x0000, 0x3fb0, 0x0000, 0x3fb1, 0x0000, 0x3fb2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fb3, + 0x3fb4, 0x3fb8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fb9, 0x3fbb, + 0x0000, 0x3fbe, 0x0000, 0x0000, 0x0000, 0x3fc1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3fc6, 0x3fcd, 0x3fd0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3fd1, 0x3fd4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fd9, 0x0000, 0x0000, + 0x3fda, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x3fdb, 0x0000, 0x0000, 0x3fdc, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fdd, 0x0000, + 0x0000, 0x0000, 0x3fde, 0x0000, 0x3fe5, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fe7, + 0x3fe8, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fea, 0x3feb, 0x3fec, 0x3fed, 0x0000, + 0x0000, 0x3fee, 0x0000, 0x0000, 0x0000, 0x0000, 0x3fef, 0x3ff0, 0x0000, 0x3ff1, + 0x3ff6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3ff8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x3ffa, 0x3ffb, 0x0000, 0x3ffc, 0x0000, 0x0000, 0x0000, + 0x3ffd, 0x3fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4006, 0x0000, 0x0000, + 0x0000, 0x400f, 0x0000, 0x4012, 0x4014, 0x4016, 0x4017, 0x0000, 0x0000, 0x0000, + 0x4019, 0x401b, 0x0000, 0x0000, 0x0000, 0x0000, 0x401c, 0x0000, 0x401d, 0x401f, + 0x4027, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4028, 0x0000, 0x0000, 0x0000, + 0x402c, 0x4032, 0x4033, 0x4041, 0x0000, 0x4042, 0x4043, 0x0000, 0x0000, 0x0000, + 0x4045, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4046, 0x0000, 0x0000, 0x4048, + 0x404a, 0x0000, 0x0000, 0x404b, 0x0000, 0x0000, 0x404c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x404e, 0x0000, 0x404f, 0x0000, 0x0000, 0x4052, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x405f, 0x0000, 0x0000, 0x4060, 0x0000, 0x4061, 0x4064, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4065, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4069, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x406b, 0x0000, 0x0000, 0x4072, 0x0000, 0x0000, 0x4077, 0x0000, + 0x4079, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x407a, + 0x0000, 0x0000, 0x0000, 0x407c, 0x407d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x407f, 0x4081, 0x0000, 0x0000, 0x0000, 0x4084, 0x0000, + 0x4085, 0x0000, 0x4087, 0x0000, 0x4091, 0x0000, 0x0000, 0x4093, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4096, 0x0000, 0x0000, 0x409d, 0x409e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x409f, 0x40a3, + 0x40a4, 0x0000, 0x0000, 0x0000, 0x40a7, 0x0000, 0x40a8, 0x0000, 0x0000, 0x0000, + 0x40a9, 0x0000, 0x0000, 0x40ae, 0x0000, 0x0000, 0x40b2, 0x40b5, 0x0000, 0x0000, + 0x0000, 0x40ba, 0x0000, 0x0000, 0x0000, 0x40bd, 0x40c9, 0x0000, 0x0000, 0x0000, + 0x40ca, 0x40cb, 0x40d3, 0x0000, 0x40d4, 0x0000, 0x40d6, 0x0000, 0x0000, 0x0000, + 0x40d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x40d9, 0x0000, 0x0000, 0x0000, 0x0000, 0x40db, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x40dc, 0x40e4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x40e5, 0x0000, 0x40ea, 0x0000, 0x0000, 0x0000, 0x4100, + 0x0000, 0x0000, 0x4101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4105, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4106, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x410b, 0x0000, 0x0000, 0x0000, 0x0000, 0x410d, 0x410e, 0x0000, 0x0000, + 0x0000, 0x410f, 0x0000, 0x0000, 0x4110, 0x411b, 0x0000, 0x0000, 0x0000, 0x0000, + 0x411f, 0x0000, 0x4120, 0x0000, 0x0000, 0x0000, 0x4121, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4124, 0x0000, 0x412e, 0x0000, 0x0000, 0x0000, 0x0000, 0x4131, + 0x0000, 0x4132, 0x0000, 0x4134, 0x0000, 0x4135, 0x0000, 0x4136, 0x0000, 0x4138, + 0x0000, 0x0000, 0x0000, 0x4141, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4143, 0x0000, 0x0000, 0x0000, 0x4145, 0x0000, 0x0000, 0x0000, 0x0000, 0x4147, + 0x0000, 0x4148, 0x4149, 0x0000, 0x0000, 0x0000, 0x414b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x414c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x414e, 0x4154, 0x0000, 0x0000, 0x4156, 0x4157, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4158, 0x0000, 0x4159, 0x0000, 0x0000, 0x415a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x415b, 0x0000, 0x0000, 0x0000, 0x415c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x415e, 0x4162, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4167, 0x0000, 0x0000, 0x4169, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x416d, 0x0000, 0x4170, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4174, 0x0000, 0x0000, 0x4176, 0x0000, 0x4177, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4178, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x417a, + 0x0000, 0x4181, 0x0000, 0x4182, 0x0000, 0x4184, 0x0000, 0x0000, 0x0000, 0x4189, + 0x418c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x418d, 0x0000, 0x0000, + 0x418e, 0x0000, 0x4190, 0x0000, 0x0000, 0x4191, 0x4193, 0x4198, 0x0000, 0x0000, + 0x419a, 0x0000, 0x0000, 0x0000, 0x419e, 0x0000, 0x0000, 0x41a9, 0x0000, 0x0000, + 0x41ae, 0x41b0, 0x41b1, 0x0000, 0x41b3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x41b4, 0x0000, 0x0000, 0x41c4, 0x41c7, + 0x0000, 0x0000, 0x41c9, 0x41d3, 0x41d9, 0x0000, 0x0000, 0x41da, 0x41db, 0x0000, + 0x0000, 0x41dc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x41de, 0x0000, 0x41df, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x41e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x41ec, 0x0000, + 0x41f1, 0x41f2, 0x0000, 0x41f5, 0x41f6, 0x0000, 0x41f7, 0x0000, 0x0000, 0x0000, + 0x41f9, 0x41fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x41fe, 0x41ff, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4201, 0x0000, 0x4202, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4211, 0x0000, + 0x0000, 0x421c, 0x421d, 0x421e, 0x0000, 0x0000, 0x421f, 0x0000, 0x0000, 0x0000, + 0x4229, 0x422a, 0x0000, 0x0000, 0x0000, 0x422c, 0x422d, 0x0000, 0x0000, 0x0000, + 0x422e, 0x4231, 0x0000, 0x4232, 0x4235, 0x4236, 0x0000, 0x0000, 0x0000, 0x4238, + 0x423b, 0x0000, 0x0000, 0x0000, 0x4245, 0x0000, 0x4249, 0x0000, 0x0000, 0x424f, + 0x0000, 0x0000, 0x4250, 0x0000, 0x0000, 0x0000, 0x0000, 0x4252, 0x0000, 0x0000, + 0x4255, 0x0000, 0x4257, 0x425d, 0x0000, 0x0000, 0x0000, 0x0000, 0x425e, 0x0000, + 0x0000, 0x425f, 0x0000, 0x0000, 0x0000, 0x4261, 0x0000, 0x4262, 0x4264, 0x4268, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x426a, 0x426c, 0x0000, 0x426e, 0x0000, + 0x0000, 0x426f, 0x0000, 0x0000, 0x0000, 0x0000, 0x4270, 0x4275, 0x4276, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x427d, 0x0000, + 0x4287, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4289, 0x428c, 0x0000, 0x428e, + 0x0000, 0x0000, 0x428f, 0x0000, 0x4295, 0x0000, 0x0000, 0x4296, 0x4297, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4298, 0x0000, 0x4299, 0x429a, 0x0000, 0x429b, 0x429d, + 0x0000, 0x429e, 0x0000, 0x429f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42a7, + 0x0000, 0x0000, 0x42a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x42a9, 0x0000, 0x0000, 0x42ac, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42b0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42b1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42b2, 0x0000, 0x42b8, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42b9, + 0x42bb, 0x42bc, 0x0000, 0x0000, 0x0000, 0x42bd, 0x0000, 0x0000, 0x0000, 0x0000, + 0x42c4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x42c5, 0x0000, 0x42c7, 0x42ce, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x42cf, 0x0000, 0x0000, 0x42d1, 0x0000, 0x42d3, 0x0000, 0x0000, 0x0000, 0x0000, + 0x42da, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42db, 0x42e5, 0x42e7, 0x0000, + 0x0000, 0x42e8, 0x0000, 0x0000, 0x0000, 0x42e9, 0x42ea, 0x0000, 0x42eb, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x42ec, 0x42ef, 0x42f9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42fa, 0x0000, 0x42fb, 0x0000, 0x42fc, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x42fd, 0x42fe, 0x0000, 0x42ff, + 0x4301, 0x0000, 0x4303, 0x0000, 0x0000, 0x0000, 0x0000, 0x430b, 0x4313, 0x0000, + 0x4316, 0x0000, 0x0000, 0x0000, 0x0000, 0x431b, 0x0000, 0x0000, 0x431e, 0x4321, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4322, 0x0000, 0x0000, 0x4324, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4325, 0x4327, 0x0000, 0x432a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x432b, + 0x432c, 0x4333, 0x4334, 0x0000, 0x0000, 0x4335, 0x4341, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4342, 0x0000, 0x0000, 0x0000, 0x0000, 0x4343, 0x0000, 0x4344, + 0x0000, 0x4345, 0x0000, 0x0000, 0x434e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4354, 0x0000, 0x4356, 0x4357, 0x0000, 0x0000, 0x0000, 0x4359, 0x435c, 0x0000, + 0x0000, 0x435d, 0x0000, 0x4360, 0x0000, 0x0000, 0x4363, 0x0000, 0x4364, 0x0000, + 0x0000, 0x4370, 0x0000, 0x4372, 0x0000, 0x0000, 0x0000, 0x4374, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4377, 0x4378, 0x0000, 0x4379, 0x0000, 0x438f, 0x0000, 0x4396, + 0x0000, 0x4399, 0x0000, 0x0000, 0x0000, 0x439a, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x439c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x439d, 0x0000, 0x439e, 0x43a1, 0x0000, 0x0000, 0x0000, 0x0000, 0x43a2, 0x43a3, + 0x0000, 0x43a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x43a6, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x43a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x43b6, 0x0000, 0x43c0, 0x43c4, 0x0000, 0x0000, 0x0000, 0x43c6, 0x43c7, + 0x0000, 0x0000, 0x43c9, 0x0000, 0x0000, 0x43ca, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x43cb, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x43cc, 0x43cd, 0x0000, 0x0000, 0x43cf, 0x0000, 0x0000, 0x0000, + 0x43db, 0x0000, 0x43dc, 0x0000, 0x0000, 0x0000, 0x43f1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x43f2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x43f3, 0x0000, 0x0000, + 0x43f7, 0x0000, 0x0000, 0x0000, 0x43f9, 0x4409, 0x0000, 0x440a, 0x0000, 0x440b, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x440e, 0x440f, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4414, 0x4415, + 0x4419, 0x0000, 0x0000, 0x0000, 0x441d, 0x0000, 0x0000, 0x4421, 0x0000, 0x0000, + 0x4422, 0x0000, 0x0000, 0x442d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x442e, 0x4430, 0x4436, 0x0000, 0x0000, 0x443a, 0x0000, 0x0000, + 0x443c, 0x0000, 0x0000, 0x443d, 0x0000, 0x0000, 0x0000, 0x0000, 0x443e, 0x0000, + 0x4443, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4447, 0x0000, 0x0000, 0x0000, + 0x444b, 0x444c, 0x0000, 0x444d, 0x0000, 0x444e, 0x0000, 0x4453, 0x4454, 0x0000, + 0x0000, 0x4455, 0x0000, 0x4456, 0x4457, 0x0000, 0x0000, 0x0000, 0x4458, 0x0000, + 0x0000, 0x0000, 0x4459, 0x0000, 0x0000, 0x0000, 0x445e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x445f, 0x0000, 0x4461, 0x0000, 0x4463, 0x0000, 0x0000, 0x0000, + 0x4468, 0x4469, 0x446a, 0x0000, 0x0000, 0x446b, 0x0000, 0x0000, 0x0000, 0x446f, + 0x0000, 0x0000, 0x0000, 0x4472, 0x0000, 0x0000, 0x4473, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4477, 0x0000, 0x0000, 0x0000, + 0x4478, 0x0000, 0x0000, 0x0000, 0x447e, 0x0000, 0x0000, 0x0000, 0x0000, 0x4480, + 0x0000, 0x0000, 0x0000, 0x4483, 0x0000, 0x4484, 0x4487, 0x448d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4494, 0x0000, 0x0000, 0x4496, 0x0000, 0x4497, + 0x0000, 0x0000, 0x4498, 0x0000, 0x0000, 0x0000, 0x449b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x449c, 0x0000, 0x0000, 0x449d, 0x449e, 0x0000, 0x449f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x44a1, 0x44a2, 0x0000, 0x44a7, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x44ad, 0x0000, 0x0000, 0x0000, 0x44ae, 0x44af, 0x0000, 0x44b2, 0x0000, + 0x0000, 0x44b3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x44b4, + 0x0000, 0x0000, 0x0000, 0x0000, 0x44bc, 0x44bd, 0x0000, 0x0000, 0x44be, 0x44c0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x44c1, 0x0000, 0x0000, 0x0000, + 0x44c4, 0x0000, 0x0000, 0x44c5, 0x0000, 0x0000, 0x44c7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x44cc, 0x0000, 0x0000, 0x44d2, + 0x0000, 0x44d5, 0x44d6, 0x0000, 0x0000, 0x0000, 0x0000, 0x44d7, 0x0000, 0x0000, + 0x44d8, 0x0000, 0x0000, 0x44de, 0x0000, 0x0000, 0x44df, 0x44e1, 0x44e2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x44e3, 0x0000, 0x0000, 0x44e4, + 0x0000, 0x0000, 0x44e5, 0x0000, 0x44e6, 0x0000, 0x44e8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x44e9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x44eb, 0x0000, + 0x0000, 0x0000, 0x0000, 0x44ed, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x44ee, 0x44fe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x44ff, 0x4500, 0x0000, 0x4501, 0x4502, 0x0000, 0x0000, + 0x0000, 0x4505, 0x4507, 0x4509, 0x0000, 0x450f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4514, 0x0000, 0x0000, 0x0000, 0x4516, 0x0000, 0x4532, + 0x0000, 0x0000, 0x4538, 0x453a, 0x453e, 0x0000, 0x0000, 0x4540, 0x0000, 0x0000, + 0x4541, 0x0000, 0x0000, 0x0000, 0x4544, 0x0000, 0x4545, 0x0000, 0x4546, 0x0000, + 0x0000, 0x0000, 0x4547, 0x0000, 0x0000, 0x0000, 0x0000, 0x4549, 0x0000, 0x0000, + 0x0000, 0x0000, 0x454b, 0x0000, 0x0000, 0x0000, 0x454d, 0x454e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x454f, 0x4550, 0x4551, 0x0000, 0x0000, 0x0000, 0x4555, 0x0000, + 0x4556, 0x4557, 0x4558, 0x455a, 0x4561, 0x4562, 0x0000, 0x4563, 0x0000, 0x4566, + 0x0000, 0x456c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x456f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4570, 0x0000, 0x0000, 0x4571, 0x0000, + 0x0000, 0x4572, 0x4573, 0x0000, 0x4576, 0x4577, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4578, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x459d, 0x0000, 0x0000, 0x0000, 0x459e, 0x0000, + 0x0000, 0x0000, 0x459f, 0x45a1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x45a2, + 0x45a7, 0x45a8, 0x45a9, 0x0000, 0x0000, 0x45b5, 0x0000, 0x0000, 0x0000, 0x45b6, + 0x0000, 0x0000, 0x0000, 0x45b8, 0x45ba, 0x45be, 0x0000, 0x45bf, 0x0000, 0x0000, + 0x45c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x45c4, 0x45c5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x45ce, 0x45cf, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x45d0, 0x0000, 0x0000, 0x0000, + 0x45d7, 0x0000, 0x0000, 0x0000, 0x45d9, 0x45db, 0x0000, 0x45dc, 0x0000, 0x45dd, + 0x0000, 0x0000, 0x45de, 0x0000, 0x0000, 0x45df, 0x45e3, 0x4621, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4622, 0x0000, 0x0000, 0x4623, 0x0000, 0x4630, 0x0000, 0x0000, + 0x4634, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4636, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4638, 0x463a, 0x0000, 0x0000, 0x463f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4653, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4657, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4659, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x465a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x465c, 0x0000, 0x0000, + 0x465e, 0x0000, 0x0000, 0x0000, 0x465f, 0x0000, 0x0000, 0x0000, 0x4660, 0x0000, + 0x4661, 0x0000, 0x0000, 0x0000, 0x466e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x466f, 0x0000, 0x0000, 0x4674, 0x4675, 0x4676, 0x0000, 0x0000, + 0x4681, 0x4688, 0x0000, 0x4689, 0x468a, 0x0000, 0x468b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x468e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4690, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4693, + 0x0000, 0x0000, 0x0000, 0x4694, 0x0000, 0x0000, 0x469b, 0x0000, 0x0000, 0x469e, + 0x46ad, 0x46ae, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x46b1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x46b2, 0x46b4, 0x0000, 0x0000, + 0x0000, 0x46bc, 0x0000, 0x46bf, 0x0000, 0x0000, 0x46c0, 0x0000, 0x46c1, 0x0000, + 0x0000, 0x46c3, 0x46c4, 0x0000, 0x46c6, 0x0000, 0x0000, 0x0000, 0x0000, 0x46c9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x46cb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x46cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x46cd, + 0x46ce, 0x0000, 0x46cf, 0x0000, 0x0000, 0x46d0, 0x46d7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x46e6, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x46e7, 0x46e8, 0x0000, 0x0000, 0x46ec, 0x46f4, 0x0000, 0x46f6, + 0x46fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x46fc, 0x4707, 0x0000, 0x4708, 0x0000, 0x0000, 0x0000, 0x0000, 0x4709, 0x0000, + 0x470b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x470c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x470d, 0x0000, 0x0000, 0x470e, 0x0000, + 0x0000, 0x470f, 0x4710, 0x0000, 0x0000, 0x4712, 0x4713, 0x4714, 0x0000, 0x0000, + 0x0000, 0x4715, 0x0000, 0x471b, 0x0000, 0x471c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x471d, 0x0000, 0x0000, 0x0000, 0x471f, 0x4720, 0x0000, 0x0000, 0x4726, 0x0000, + 0x0000, 0x0000, 0x4727, 0x4728, 0x0000, 0x0000, 0x0000, 0x472c, 0x0000, 0x0000, + 0x472e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x472f, 0x0000, 0x4731, 0x4737, + 0x0000, 0x473a, 0x0000, 0x473b, 0x0000, 0x0000, 0x0000, 0x0000, 0x4740, 0x0000, + 0x0000, 0x4741, 0x4742, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4743, 0x474b, + 0x0000, 0x474d, 0x0000, 0x474e, 0x0000, 0x0000, 0x0000, 0x475a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x475d, 0x475e, 0x475f, 0x4761, 0x4769, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x476a, 0x0000, 0x476b, 0x0000, 0x476c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x476d, 0x0000, 0x476f, 0x4771, 0x0000, 0x0000, 0x4772, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4784, 0x0000, 0x0000, 0x0000, 0x4786, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4787, 0x0000, 0x4788, 0x4789, 0x0000, 0x478b, 0x0000, 0x0000, 0x478c, 0x4790, + 0x0000, 0x479b, 0x0000, 0x479c, 0x0000, 0x47a0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x47a1, 0x0000, 0x47a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x47a5, 0x0000, 0x47a8, 0x47a9, 0x0000, 0x47aa, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x47ac, 0x0000, 0x47af, 0x0000, 0x0000, 0x47b4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x47b5, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x47bf, 0x0000, 0x0000, 0x0000, 0x47c0, 0x0000, 0x47c1, 0x0000, 0x47c2, + 0x47c3, 0x0000, 0x0000, 0x0000, 0x4805, 0x480c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x480d, 0x4812, 0x0000, 0x0000, 0x0000, 0x0000, 0x4813, 0x0000, 0x4814, 0x0000, + 0x0000, 0x0000, 0x4815, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4817, 0x0000, + 0x0000, 0x0000, 0x4818, 0x0000, 0x4819, 0x0000, 0x481c, 0x0000, 0x0000, 0x481d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4822, 0x0000, + 0x0000, 0x4823, 0x0000, 0x0000, 0x0000, 0x0000, 0x4829, 0x0000, 0x0000, 0x0000, + 0x482c, 0x0000, 0x482d, 0x0000, 0x0000, 0x0000, 0x482e, 0x482f, 0x4830, 0x0000, + 0x0000, 0x0000, 0x4835, 0x0000, 0x0000, 0x0000, 0x4836, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4838, 0x483a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x483b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x483f, 0x0000, 0x0000, + 0x4840, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4849, 0x0000, 0x4859, + 0x0000, 0x485a, 0x485b, 0x0000, 0x0000, 0x0000, 0x485d, 0x485e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x485f, 0x0000, 0x0000, 0x0000, 0x0000, 0x4864, 0x4865, + 0x0000, 0x4866, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4867, 0x4869, + 0x0000, 0x486a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x486c, 0x486d, + 0x486e, 0x486f, 0x0000, 0x4872, 0x0000, 0x0000, 0x0000, 0x0000, 0x4879, 0x487c, + 0x0000, 0x0000, 0x487e, 0x0000, 0x0000, 0x4889, 0x488b, 0x0000, 0x0000, 0x0000, + 0x488c, 0x0000, 0x488e, 0x0000, 0x0000, 0x0000, 0x0000, 0x489a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x489c, 0x0000, 0x0000, 0x489d, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x489e, 0x0000, 0x48a0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x48a2, 0x0000, 0x0000, 0x0000, 0x48a4, 0x0000, 0x0000, 0x48a5, 0x48a6, 0x0000, + 0x0000, 0x48a9, 0x0000, 0x0000, 0x0000, 0x0000, 0x48aa, 0x0000, 0x0000, 0x0000, + 0x48ab, 0x48ac, 0x0000, 0x48ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x48b0, 0x0000, + 0x0000, 0x48b3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x48b4, 0x0000, 0x48b8, 0x0000, 0x0000, 0x48b9, 0x48bb, 0x0000, 0x0000, + 0x0000, 0x48c4, 0x0000, 0x0000, 0x0000, 0x48c5, 0x0000, 0x0000, 0x48c6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x48c7, 0x0000, 0x48c8, 0x0000, + 0x0000, 0x48cb, 0x48cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x48d1, + 0x48d3, 0x48d8, 0x0000, 0x48dc, 0x0000, 0x0000, 0x48dd, 0x0000, 0x48df, 0x48e0, + 0x0000, 0x0000, 0x0000, 0x48e1, 0x0000, 0x0000, 0x48ea, 0x48f2, 0x0000, 0x0000, + 0x0000, 0x0000, 0x48f5, 0x48fc, 0x48fd, 0x0000, 0x0000, 0x48fe, 0x0000, 0x0000, + 0x4902, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4907, 0x4908, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4909, 0x0000, 0x0000, 0x490c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x490e, 0x0000, 0x4914, 0x0000, 0x0000, 0x4915, 0x0000, 0x4916, 0x0000, 0x0000, + 0x4917, 0x0000, 0x491a, 0x0000, 0x0000, 0x491e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x491f, 0x0000, 0x0000, 0x4922, 0x0000, 0x4926, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x492b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4933, 0x4935, 0x0000, + 0x0000, 0x4936, 0x0000, 0x4937, 0x4938, 0x493a, 0x493c, 0x0000, 0x4940, 0x4941, + 0x0000, 0x0000, 0x4942, 0x494b, 0x0000, 0x494d, 0x0000, 0x0000, 0x0000, 0x494e, + 0x0000, 0x0000, 0x0000, 0x4951, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4955, + 0x495a, 0x495b, 0x495d, 0x0000, 0x0000, 0x4960, 0x4963, 0x0000, 0x4964, 0x0000, + 0x4969, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x496b, 0x0000, 0x0000, + 0x4970, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4971, 0x4974, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4976, 0x0000, 0x0000, 0x0000, 0x497b, + 0x497f, 0x4980, 0x0000, 0x0000, 0x0000, 0x0000, 0x4989, 0x0000, 0x0000, 0x498b, + 0x498d, 0x0000, 0x0000, 0x498e, 0x0000, 0x0000, 0x0000, 0x0000, 0x498f, 0x0000, + 0x0000, 0x4990, 0x0000, 0x0000, 0x0000, 0x0000, 0x4991, 0x0000, 0x4998, 0x0000, + 0x4999, 0x0000, 0x499a, 0x0000, 0x0000, 0x0000, 0x0000, 0x499b, 0x0000, 0x499c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x499d, 0x499e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x49a0, 0x0000, 0x0000, + 0x0000, 0x49a5, 0x49ac, 0x0000, 0x0000, 0x49ae, 0x49b2, 0x0000, 0x0000, 0x49b3, + 0x49b5, 0x0000, 0x0000, 0x49ba, 0x49c1, 0x49cb, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x49cc, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x49cf, 0x0000, 0x49d0, 0x0000, 0x0000, + 0x0000, 0x49d4, 0x0000, 0x0000, 0x0000, 0x49d5, 0x0000, 0x49d6, 0x49e3, 0x49e4, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x49e7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x49e8, 0x0000, 0x0000, 0x0000, 0x49e9, 0x49f1, + 0x0000, 0x0000, 0x0000, 0x0000, 0x49f2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x49f4, 0x0000, 0x0000, 0x0000, 0x0000, 0x49f6, 0x49fe, 0x0000, 0x0000, + 0x0000, 0x4a07, 0x4a0d, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a0e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4a0f, 0x4a10, 0x0000, 0x0000, 0x4a11, 0x0000, 0x0000, 0x4a12, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4a13, 0x4a14, 0x0000, 0x0000, 0x0000, 0x4a15, + 0x0000, 0x4a17, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4a18, 0x0000, 0x4a19, 0x0000, 0x4a1a, 0x4a1d, 0x4a20, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4a21, 0x0000, 0x0000, 0x0000, 0x4a25, 0x0000, + 0x0000, 0x0000, 0x4a2e, 0x0000, 0x4a36, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4a37, 0x4a3b, 0x0000, 0x0000, 0x4a3d, 0x0000, 0x0000, 0x0000, 0x4a3e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a40, 0x4a43, 0x0000, 0x0000, 0x4a4a, + 0x0000, 0x0000, 0x4a4b, 0x0000, 0x4a50, 0x0000, 0x4a57, 0x4a58, 0x0000, 0x4a5f, + 0x0000, 0x4a61, 0x4a6a, 0x0000, 0x0000, 0x0000, 0x4a6b, 0x4a6f, 0x4a70, 0x0000, + 0x4a73, 0x4a77, 0x4a78, 0x0000, 0x0000, 0x4a90, 0x0000, 0x0000, 0x0000, 0x4a95, + 0x4a96, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a97, 0x0000, 0x4a98, 0x0000, 0x0000, + 0x0000, 0x4a99, 0x0000, 0x0000, 0x4a9a, 0x0000, 0x4a9b, 0x4a9c, 0x0000, 0x0000, + 0x4a9f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4aa7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4aa8, 0x0000, 0x0000, 0x0000, 0x4aac, + 0x4aad, 0x0000, 0x4ab1, 0x4ab2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4ab3, 0x4ab4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4ab5, 0x4ab6, 0x0000, 0x4ab8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4ab9, + 0x4aba, 0x4abb, 0x4abc, 0x0000, 0x0000, 0x4aca, 0x0000, 0x0000, 0x4acb, 0x4ad4, + 0x4ad6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4aee, + 0x4af1, 0x0000, 0x0000, 0x4af3, 0x0000, 0x0000, 0x0000, 0x4af9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4afa, 0x0000, 0x4afd, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4afe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4b02, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4b03, 0x0000, 0x4b05, 0x4b0a, + 0x0000, 0x0000, 0x0000, 0x4b0d, 0x0000, 0x4b12, 0x0000, 0x0000, 0x0000, 0x4b17, + 0x4b1d, 0x0000, 0x0000, 0x4b1e, 0x0000, 0x0000, 0x4b1f, 0x4b20, 0x4b21, 0x4b27, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4b28, 0x0000, 0x4b30, 0x4b31, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4b36, 0x0000, 0x4b38, 0x4b3a, 0x4b3b, 0x0000, 0x0000, + 0x4b3d, 0x0000, 0x4b42, 0x0000, 0x0000, 0x0000, 0x4b48, 0x0000, 0x4b4e, 0x4b51, + 0x4b52, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4b53, 0x0000, 0x0000, 0x4b54, 0x0000, 0x0000, 0x4b55, + 0x4b57, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4b58, 0x4b5b, 0x0000, 0x4b5c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4b61, 0x0000, 0x4b62, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4b66, 0x4b67, 0x0000, 0x0000, 0x0000, 0x0000, 0x4b68, 0x4b69, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4b72, 0x0000, 0x0000, 0x4b73, 0x0000, 0x0000, 0x4b79, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4b7a, 0x0000, 0x4b85, 0x0000, + 0x4b86, 0x4b87, 0x0000, 0x4b88, 0x4b89, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4b92, 0x0000, 0x0000, 0x4b99, + 0x0000, 0x4b9a, 0x4ba2, 0x0000, 0x4ba6, 0x4ba7, 0x0000, 0x0000, 0x4ba9, 0x0000, + 0x4baf, 0x0000, 0x4bb1, 0x4bb4, 0x4bbc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4bbd, 0x4bbe, 0x0000, 0x0000, 0x0000, 0x0000, 0x4bc0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4bca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4bd4, 0x0000, 0x0000, 0x4bd5, 0x4bde, 0x0000, 0x4be0, 0x0000, 0x0000, + 0x0000, 0x4be1, 0x0000, 0x0000, 0x0000, 0x4be4, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4be7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4be8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4bf8, 0x4c03, 0x0000, 0x0000, 0x4c05, 0x0000, 0x4c06, 0x4c07, + 0x0000, 0x4c0b, 0x4c12, 0x4c1a, 0x0000, 0x0000, 0x0000, 0x0000, 0x4c26, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4c2d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4c2e, 0x4c30, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4c31, 0x0000, 0x0000, 0x0000, 0x0000, 0x4c32, 0x4c33, + 0x0000, 0x0000, 0x0000, 0x4c34, 0x0000, 0x0000, 0x4c37, 0x0000, 0x0000, 0x4c3a, + 0x0000, 0x4c3b, 0x0000, 0x4c3c, 0x0000, 0x4c3e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4c4a, 0x0000, 0x4c51, 0x4c52, 0x0000, 0x4c57, + 0x4c5a, 0x0000, 0x4c5b, 0x4c5f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4c60, 0x4c61, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4c63, 0x0000, 0x0000, 0x4c64, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4c68, 0x4c69, 0x0000, 0x0000, 0x4c6a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4c6d, 0x4c6f, 0x0000, 0x4c70, 0x0000, 0x0000, 0x0000, 0x4c71, 0x4c72, + 0x0000, 0x4c7a, 0x0000, 0x0000, 0x0000, 0x0000, 0x4c7c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4c7d, 0x4c80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4c81, 0x4c82, 0x0000, 0x0000, 0x0000, 0x4c83, 0x4c84, 0x0000, 0x4c85, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4c88, 0x4c89, 0x4c8f, 0x0000, 0x4c90, + 0x0000, 0x0000, 0x4c94, 0x0000, 0x0000, 0x4c95, 0x0000, 0x4c96, 0x4c98, 0x4c9a, + 0x0000, 0x4c9d, 0x4c9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4ca0, + 0x4ca1, 0x0000, 0x0000, 0x4ca2, 0x0000, 0x0000, 0x4ca3, 0x0000, 0x0000, 0x0000, + 0x4ca4, 0x4ca5, 0x4caf, 0x0000, 0x0000, 0x4cb0, 0x4cb2, 0x4cb4, 0x0000, 0x4cbb, + 0x0000, 0x0000, 0x4cbc, 0x4cca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4ccb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4cdb, 0x4cdd, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4cdf, 0x0000, 0x4ce3, 0x0000, 0x4ce4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4ce7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4ce8, 0x4ce9, 0x4cec, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4cef, 0x4cf1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4cf2, + 0x4cf3, 0x0000, 0x0000, 0x4cf4, 0x0000, 0x4cf6, 0x0000, 0x0000, 0x4cf7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4cf8, 0x4cfc, 0x0000, 0x4cfe, 0x0000, + 0x4d01, 0x0000, 0x0000, 0x0000, 0x4d03, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d06, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d08, 0x0000, 0x4d0a, + 0x0000, 0x0000, 0x4d0d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d12, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4d13, 0x0000, 0x4d16, 0x4d17, 0x4d1b, 0x0000, 0x0000, 0x4d1c, + 0x0000, 0x4d1d, 0x0000, 0x0000, 0x0000, 0x4d22, 0x0000, 0x0000, 0x4d23, 0x0000, + 0x4d3b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d3c, + 0x4d3f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d42, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4d43, 0x0000, 0x0000, 0x4d44, 0x4d4e, 0x0000, 0x4d4f, + 0x0000, 0x0000, 0x4d50, 0x0000, 0x0000, 0x0000, 0x4d51, 0x0000, 0x0000, 0x4d54, + 0x4d55, 0x0000, 0x0000, 0x0000, 0x4d57, 0x0000, 0x0000, 0x0000, 0x4d59, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4d5b, 0x0000, 0x4d5c, 0x0000, 0x4d5d, 0x0000, 0x0000, + 0x4d5f, 0x0000, 0x0000, 0x0000, 0x4d60, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4d61, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d68, + 0x0000, 0x4d6d, 0x0000, 0x4d6e, 0x4d76, 0x4d77, 0x0000, 0x0000, 0x0000, 0x4d79, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4d7e, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d7f, 0x0000, 0x0000, 0x4d83, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4d85, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d87, 0x0000, + 0x0000, 0x4d88, 0x0000, 0x4d89, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4d8b, 0x0000, 0x0000, 0x0000, 0x4d8e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d98, 0x0000, 0x4d99, 0x0000, 0x4d9a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4d9c, 0x0000, 0x0000, + 0x4d9e, 0x0000, 0x0000, 0x4d9f, 0x0000, 0x0000, 0x4da0, 0x4da1, 0x4da3, 0x0000, + 0x4da8, 0x4daa, 0x4dac, 0x0000, 0x0000, 0x4dad, 0x4dae, 0x4db0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4db2, 0x4db4, 0x4db5, 0x0000, 0x0000, 0x4db6, 0x0000, 0x0000, 0x0000, 0x4db7, + 0x0000, 0x4db8, 0x4dbe, 0x0000, 0x0000, 0x4dbf, 0x0000, 0x0000, 0x4dc1, 0x0000, + 0x0000, 0x0000, 0x4dc2, 0x0000, 0x4dc4, 0x0000, 0x4dc5, 0x4dc7, 0x0000, 0x0000, + 0x0000, 0x4dc9, 0x4dd0, 0x0000, 0x4de2, 0x4de3, 0x4de4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4de6, 0x0000, 0x4de7, 0x0000, 0x4de9, 0x0000, + 0x0000, 0x0000, 0x4def, 0x4df0, 0x4df2, 0x4df8, 0x0000, 0x4dfd, 0x0000, 0x4e03, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e07, 0x0000, 0x4e08, 0x0000, 0x4e16, + 0x0000, 0x0000, 0x4e17, 0x0000, 0x4e19, 0x0000, 0x4e1b, 0x0000, 0x0000, 0x0000, + 0x4e1e, 0x4e1f, 0x4e21, 0x0000, 0x4e23, 0x4e25, 0x0000, 0x4e2b, 0x4e2c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e2e, 0x0000, 0x4e34, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4e35, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e37, 0x4e38, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e39, 0x0000, 0x0000, 0x4e3b, 0x0000, + 0x0000, 0x4e3d, 0x0000, 0x0000, 0x4e40, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e4c, + 0x4e4d, 0x0000, 0x4e50, 0x4e51, 0x0000, 0x0000, 0x4e52, 0x0000, 0x4e54, 0x0000, + 0x0000, 0x4e56, 0x4e59, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4e5b, 0x0000, 0x0000, 0x4e5d, 0x0000, 0x4e5e, 0x0000, 0x4e60, + 0x0000, 0x0000, 0x4e62, 0x0000, 0x0000, 0x4e63, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4e65, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e66, 0x4e67, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4e68, 0x0000, 0x0000, 0x4e69, 0x4e6a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4e6b, 0x0000, 0x4e6e, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e70, 0x0000, 0x4e71, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e7f, 0x0000, 0x4e82, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e8b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4e90, 0x0000, 0x0000, 0x0000, 0x4e91, + 0x4e92, 0x0000, 0x0000, 0x0000, 0x4e93, 0x4e9b, 0x4e9c, 0x0000, 0x0000, 0x0000, + 0x4ea3, 0x4ea5, 0x4ea6, 0x0000, 0x0000, 0x0000, 0x0000, 0x4ea8, 0x0000, 0x0000, + 0x4ea9, 0x4eaa, 0x4eb6, 0x0000, 0x4eb8, 0x0000, 0x0000, 0x0000, 0x4eb9, 0x0000, + 0x0000, 0x4eba, 0x0000, 0x0000, 0x0000, 0x4ebe, 0x0000, 0x4ec3, 0x0000, 0x0000, + 0x4ec4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4ec6, 0x0000, + 0x4ec8, 0x0000, 0x4eca, 0x0000, 0x4ecf, 0x0000, 0x0000, 0x4ed2, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4eff, 0x0000, 0x0000, 0x0000, 0x0000, 0x4f00, 0x0000, 0x4f02, + 0x0000, 0x0000, 0x4f06, 0x0000, 0x4f07, 0x0000, 0x0000, 0x0000, 0x0000, 0x4f08, + 0x0000, 0x0000, 0x4f09, 0x4f0a, 0x0000, 0x4f14, 0x0000, 0x4f17, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4f19, 0x0000, 0x0000, 0x0000, 0x4f1a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4f1b, 0x0000, 0x4f1d, 0x0000, 0x4f1e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4f20, 0x0000, 0x0000, 0x4f28, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4f2a, 0x0000, 0x0000, 0x0000, 0x4f36, 0x0000, 0x0000, 0x4f37, 0x4f3a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x4f3b, 0x0000, 0x4f3c, 0x0000, 0x4f3d, 0x0000, + 0x4f3f, 0x4f42, 0x0000, 0x0000, 0x0000, 0x0000, 0x4f44, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4f45, 0x4f49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4f4b, + 0x0000, 0x4f4c, 0x4f4f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4f53, + 0x0000, 0x0000, 0x4f54, 0x0000, 0x4f55, 0x0000, 0x4f56, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4f58, 0x0000, 0x0000, 0x0000, 0x4f5a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4f5b, 0x4f5c, 0x0000, 0x4f62, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4f73, 0x0000, 0x0000, 0x0000, 0x4f76, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4f80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x4f8a, 0x0000, 0x0000, 0x4f8d, 0x0000, 0x4f97, 0x4f99, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4f9a, 0x4f9b, 0x0000, 0x4f9c, 0x0000, 0x0000, 0x4f9d, 0x0000, 0x4f9e, 0x0000, + 0x4f9f, 0x0000, 0x4fa4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4fa6, 0x4fa8, 0x4fa9, + 0x0000, 0x0000, 0x4fab, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4fac, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4fae, 0x4fbf, 0x0000, + 0x0000, 0x0000, 0x4fc1, 0x0000, 0x0000, 0x4fc4, 0x0000, 0x0000, 0x4fca, 0x4fcc, + 0x0000, 0x4fcf, 0x0000, 0x0000, 0x4fd0, 0x0000, 0x4fd1, 0x4fd2, 0x4fd3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4fd8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4fda, + 0x0000, 0x4fdb, 0x0000, 0x4fde, 0x0000, 0x0000, 0x0000, 0x0000, 0x4fe0, 0x0000, + 0x4fe3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x4fe4, 0x4fe5, 0x0000, 0x0000, 0x4fe6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x4fe9, 0x0000, 0x4fea, 0x0000, 0x0000, 0x0000, 0x4ff1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x4ff5, 0x0000, 0x0000, 0x0000, 0x4ff9, 0x0000, 0x4ffc, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4ffd, 0x0000, + 0x0000, 0x5005, 0x0000, 0x0000, 0x5006, 0x0000, 0x0000, 0x5007, 0x0000, 0x5010, + 0x0000, 0x5011, 0x0000, 0x0000, 0x5012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5013, 0x5014, 0x0000, 0x5015, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5028, 0x502f, 0x0000, 0x5031, 0x0000, 0x0000, + 0x0000, 0x0000, 0x503b, 0x0000, 0x0000, 0x503c, 0x0000, 0x0000, 0x0000, 0x503f, + 0x0000, 0x0000, 0x0000, 0x5042, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5044, + 0x0000, 0x0000, 0x5053, 0x0000, 0x0000, 0x5054, 0x0000, 0x5056, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x506d, 0x0000, 0x0000, 0x0000, 0x0000, 0x506e, 0x0000, + 0x0000, 0x5071, 0x5072, 0x0000, 0x0000, 0x0000, 0x0000, 0x5073, 0x0000, 0x5075, + 0x5076, 0x0000, 0x0000, 0x0000, 0x508a, 0x508c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x508d, 0x0000, 0x0000, 0x0000, 0x0000, 0x5093, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5094, 0x0000, 0x0000, 0x0000, 0x5095, 0x0000, 0x5096, 0x0000, 0x0000, + 0x509f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x50e3, 0x0000, 0x0000, 0x50e5, + 0x0000, 0x0000, 0x0000, 0x50e9, 0x50ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x50f4, 0x50f5, 0x0000, 0x0000, 0x0000, 0x0000, 0x50f6, 0x50f8, 0x50f9, 0x0000, + 0x50fd, 0x0000, 0x50fe, 0x0000, 0x50ff, 0x5100, 0x0000, 0x5101, 0x0000, 0x0000, + 0x5108, 0x0000, 0x5109, 0x0000, 0x510c, 0x0000, 0x0000, 0x510d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x510e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5112, 0x0000, 0x0000, 0x0000, 0x5119, 0x0000, 0x0000, 0x511b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x511e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x511f, 0x0000, 0x0000, 0x0000, 0x0000, 0x5120, 0x0000, 0x5121, 0x5129, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5131, 0x0000, 0x0000, 0x0000, + 0x5132, 0x513b, 0x5141, 0x0000, 0x5142, 0x0000, 0x5147, 0x0000, 0x0000, 0x5148, + 0x0000, 0x0000, 0x514a, 0x0000, 0x0000, 0x514b, 0x0000, 0x514c, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x514d, 0x0000, 0x0000, 0x5152, 0x5154, 0x5155, 0x0000, + 0x0000, 0x0000, 0x5156, 0x0000, 0x5157, 0x0000, 0x0000, 0x0000, 0x515a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x515d, 0x515e, 0x515f, 0x0000, + 0x5160, 0x5164, 0x0000, 0x0000, 0x5167, 0x0000, 0x0000, 0x5168, 0x516a, 0x0000, + 0x516b, 0x0000, 0x516c, 0x0000, 0x5176, 0x0000, 0x0000, 0x0000, 0x5177, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5178, 0x0000, 0x0000, 0x0000, 0x5185, 0x0000, 0x0000, + 0x5187, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5189, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x518c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5190, 0x0000, 0x0000, 0x5192, 0x0000, 0x0000, 0x0000, 0x0000, 0x5193, 0x5194, + 0x0000, 0x0000, 0x519a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x519b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x51a9, 0x0000, + 0x51aa, 0x51ae, 0x0000, 0x0000, 0x51b0, 0x51b3, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x51b4, 0x0000, 0x51b5, 0x0000, 0x51b7, 0x51b8, 0x51ba, 0x0000, 0x51bf, + 0x0000, 0x51c0, 0x51c1, 0x51c2, 0x0000, 0x0000, 0x51c7, 0x0000, 0x0000, 0x51cb, + 0x0000, 0x0000, 0x51cd, 0x0000, 0x0000, 0x0000, 0x51cf, 0x0000, 0x0000, 0x0000, + 0x51d2, 0x51d3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x51d6, 0x0000, 0x51da, + 0x0000, 0x0000, 0x51db, 0x51e4, 0x0000, 0x0000, 0x51e7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x51ed, 0x51ef, 0x0000, 0x0000, 0x0000, 0x51f8, 0x0000, 0x51fb, + 0x51fc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x51fd, 0x0000, 0x0000, 0x0000, + 0x5203, 0x0000, 0x5206, 0x0000, 0x5207, 0x0000, 0x0000, 0x0000, 0x0000, 0x5208, + 0x5209, 0x0000, 0x0000, 0x0000, 0x0000, 0x5210, 0x0000, 0x5212, 0x0000, 0x5218, + 0x0000, 0x0000, 0x0000, 0x5219, 0x521a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x521d, 0x5222, 0x5223, 0x5224, 0x0000, 0x0000, 0x5225, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5226, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5227, 0x5228, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x522d, 0x0000, 0x0000, 0x522e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x522f, 0x0000, 0x5231, 0x0000, + 0x5236, 0x5237, 0x0000, 0x0000, 0x0000, 0x5239, 0x523d, 0x0000, 0x0000, 0x5241, + 0x5248, 0x5249, 0x0000, 0x0000, 0x524a, 0x524b, 0x0000, 0x0000, 0x0000, 0x524d, + 0x0000, 0x0000, 0x0000, 0x524f, 0x5250, 0x0000, 0x0000, 0x5251, 0x0000, 0x5252, + 0x0000, 0x0000, 0x5256, 0x0000, 0x0000, 0x0000, 0x0000, 0x5257, 0x0000, 0x0000, + 0x5258, 0x5259, 0x0000, 0x0000, 0x525e, 0x525f, 0x0000, 0x5261, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5263, 0x0000, 0x5265, 0x0000, 0x5266, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5267, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5268, 0x0000, 0x526a, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x526b, 0x0000, 0x0000, 0x526c, 0x526d, 0x526e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x526f, 0x0000, 0x5270, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5271, 0x5274, 0x5275, 0x0000, 0x0000, 0x5278, 0x5279, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x527b, 0x5282, 0x5283, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5285, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5289, 0x528b, 0x0000, 0x0000, 0x528e, 0x0000, 0x0000, + 0x0000, 0x5291, 0x5296, 0x0000, 0x5297, 0x0000, 0x0000, 0x5298, 0x0000, 0x5299, + 0x529a, 0x0000, 0x52a0, 0x52a2, 0x52a3, 0x52a4, 0x0000, 0x0000, 0x0000, 0x52a8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x52a9, 0x0000, 0x52ac, 0x0000, + 0x52ae, 0x0000, 0x0000, 0x0000, 0x0000, 0x52b2, 0x0000, 0x0000, 0x0000, 0x0000, + 0x52b3, 0x0000, 0x0000, 0x52b4, 0x0000, 0x52b6, 0x0000, 0x52b7, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x52b8, 0x52bb, 0x52c4, 0x0000, 0x0000, 0x0000, 0x52c5, + 0x0000, 0x0000, 0x52c6, 0x0000, 0x0000, 0x0000, 0x52c8, 0x0000, 0x0000, 0x52c9, + 0x0000, 0x0000, 0x0000, 0x52ce, 0x0000, 0x52dc, 0x0000, 0x0000, 0x52dd, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x52df, 0x52e0, 0x0000, 0x0000, 0x52e7, + 0x52e9, 0x0000, 0x52ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x52eb, 0x52ec, 0x0000, + 0x0000, 0x52ed, 0x0000, 0x0000, 0x0000, 0x0000, 0x52ee, 0x52f4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x52f5, 0x0000, 0x0000, 0x52f6, 0x52f7, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5309, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x530b, 0x0000, 0x0000, 0x0000, 0x530f, 0x0000, + 0x5318, 0x0000, 0x531a, 0x0000, 0x5322, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5323, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x532e, 0x0000, 0x0000, 0x5331, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5332, 0x0000, 0x0000, 0x0000, 0x5333, 0x0000, 0x5334, 0x5336, 0x0000, 0x5344, + 0x0000, 0x5346, 0x534a, 0x534b, 0x0000, 0x534c, 0x0000, 0x534e, 0x0000, 0x0000, + 0x0000, 0x534f, 0x5350, 0x0000, 0x0000, 0x0000, 0x5368, 0x0000, 0x0000, 0x536a, + 0x5371, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5372, 0x0000, 0x0000, 0x0000, 0x5373, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5376, 0x0000, + 0x0000, 0x5377, 0x537c, 0x537e, 0x0000, 0x0000, 0x0000, 0x537f, 0x5381, 0x0000, + 0x5382, 0x0000, 0x0000, 0x0000, 0x5384, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5385, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5386, 0x0000, 0x5387, 0x0000, 0x0000, 0x5388, 0x0000, 0x0000, + 0x5389, 0x0000, 0x0000, 0x0000, 0x0000, 0x538d, 0x538e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5395, 0x5396, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5397, 0x0000, 0x5398, 0x0000, 0x0000, 0x0000, 0x0000, 0x539a, + 0x0000, 0x0000, 0x0000, 0x539b, 0x539c, 0x0000, 0x539d, 0x539e, 0x0000, 0x0000, + 0x0000, 0x539f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x53a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x53a1, + 0x0000, 0x53ad, 0x0000, 0x53ae, 0x0000, 0x0000, 0x0000, 0x53b1, 0x53b4, 0x0000, + 0x0000, 0x0000, 0x0000, 0x53b5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x53b9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x53ba, 0x0000, 0x53c3, 0x0000, 0x53c4, 0x53c9, 0x0000, 0x53cc, 0x0000, 0x53cd, + 0x53ce, 0x0000, 0x0000, 0x0000, 0x53d1, 0x0000, 0x0000, 0x53d2, 0x0000, 0x0000, + 0x0000, 0x53d4, 0x53d5, 0x0000, 0x0000, 0x53d8, 0x0000, 0x0000, 0x0000, 0x53e1, + 0x53e6, 0x0000, 0x0000, 0x53e7, 0x0000, 0x0000, 0x53e9, 0x53eb, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x53ec, 0x0000, 0x0000, 0x53ed, + 0x53ee, 0x0000, 0x0000, 0x53f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5413, 0x0000, 0x0000, 0x5415, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5416, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5419, 0x541a, + 0x0000, 0x0000, 0x541b, 0x0000, 0x0000, 0x541d, 0x0000, 0x0000, 0x5423, 0x543c, + 0x0000, 0x543f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5447, 0x0000, 0x0000, 0x0000, 0x0000, 0x5449, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5457, 0x0000, 0x0000, 0x5464, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5465, 0x0000, 0x5466, 0x0000, 0x0000, 0x5471, + 0x5472, 0x5473, 0x5474, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5477, 0x0000, 0x0000, 0x0000, + 0x0000, 0x547f, 0x0000, 0x5483, 0x0000, 0x0000, 0x0000, 0x0000, 0x5487, 0x548e, + 0x5495, 0x549e, 0x0000, 0x0000, 0x549f, 0x54a0, 0x0000, 0x54a2, 0x0000, 0x0000, + 0x54a3, 0x0000, 0x54a6, 0x54a8, 0x54a9, 0x0000, 0x54aa, 0x54b3, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x54b4, 0x0000, 0x54be, 0x0000, 0x0000, 0x0000, 0x0000, + 0x54bf, 0x54c4, 0x0000, 0x54c7, 0x0000, 0x54c8, 0x0000, 0x0000, 0x54cd, 0x0000, + 0x0000, 0x0000, 0x54ce, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x54cf, 0x0000, 0x0000, 0x0000, 0x54d0, 0x0000, 0x54d5, 0x0000, 0x54e2, + 0x0000, 0x0000, 0x0000, 0x54e3, 0x54e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x54e9, + 0x54ed, 0x54ee, 0x0000, 0x54f3, 0x0000, 0x0000, 0x0000, 0x54f5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x54f6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x54f8, 0x0000, 0x0000, + 0x0000, 0x0000, 0x54f9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x54fb, + 0x54fc, 0x0000, 0x54fd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, + 0x0000, 0x0000, 0x5503, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5504, 0x0000, 0x0000, 0x5506, 0x0000, 0x0000, 0x5507, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x550d, 0x0000, + 0x550e, 0x0000, 0x0000, 0x550f, 0x0000, 0x0000, 0x0000, 0x0000, 0x5510, 0x0000, + 0x0000, 0x5511, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5514, 0x551b, 0x551c, 0x551f, 0x0000, 0x0000, 0x0000, 0x5525, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x552d, 0x0000, 0x0000, 0x0000, 0x0000, 0x552e, + 0x0000, 0x552f, 0x5531, 0x0000, 0x5532, 0x5533, 0x0000, 0x5539, 0x553b, 0x553c, + 0x0000, 0x553f, 0x0000, 0x5540, 0x0000, 0x0000, 0x5541, 0x0000, 0x0000, 0x5542, + 0x5548, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5549, 0x5558, 0x5559, 0x0000, + 0x0000, 0x556b, 0x556e, 0x556f, 0x5571, 0x0000, 0x0000, 0x0000, 0x5572, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5573, 0x0000, + 0x5576, 0x0000, 0x0000, 0x0000, 0x5577, 0x0000, 0x5579, 0x557e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x557f, 0x0000, 0x0000, 0x5580, 0x5586, 0x5587, 0x5589, 0x0000, + 0x558d, 0x0000, 0x5590, 0x0000, 0x0000, 0x5592, 0x0000, 0x0000, 0x0000, 0x5595, + 0x5596, 0x5597, 0x0000, 0x0000, 0x5598, 0x0000, 0x0000, 0x5599, 0x559a, 0x559b, + 0x0000, 0x559f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x55a1, + 0x0000, 0x0000, 0x55a2, 0x55ad, 0x55b3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x55b8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x55b9, 0x0000, 0x55bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x55bd, 0x0000, 0x0000, 0x0000, 0x55be, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x55bf, 0x0000, 0x55c0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x55c2, 0x55c5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x55c6, 0x0000, 0x55c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x55ca, 0x55cb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x55cc, 0x55cd, 0x0000, 0x0000, 0x55d1, 0x55d2, 0x0000, 0x0000, 0x0000, 0x55d6, + 0x0000, 0x0000, 0x55dc, 0x55dd, 0x0000, 0x55de, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x55e1, 0x0000, 0x55e4, 0x0000, 0x55e8, 0x0000, 0x55ef, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x55f1, 0x0000, 0x55f2, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x55f3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x55f4, + 0x0000, 0x0000, 0x0000, 0x55f8, 0x0000, 0x55f9, 0x55ff, 0x0000, 0x0000, 0x5600, + 0x0000, 0x0000, 0x0000, 0x5601, 0x5603, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5604, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5605, 0x5615, 0x0000, 0x5617, 0x0000, + 0x0000, 0x0000, 0x5618, 0x0000, 0x0000, 0x0000, 0x5620, 0x5621, 0x0000, 0x0000, + 0x5625, 0x5627, 0x5628, 0x562b, 0x0000, 0x0000, 0x562c, 0x562d, 0x0000, 0x0000, + 0x5630, 0x0000, 0x0000, 0x0000, 0x0000, 0x5632, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5639, 0x0000, 0x0000, 0x0000, 0x563a, 0x563b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x563c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x563d, 0x5644, 0x5653, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5658, 0x0000, 0x0000, 0x565b, 0x0000, 0x565c, 0x0000, 0x565d, 0x0000, + 0x565e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x565f, 0x5667, + 0x0000, 0x5668, 0x566a, 0x0000, 0x0000, 0x0000, 0x0000, 0x566d, 0x0000, 0x0000, + 0x0000, 0x5670, 0x5671, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x567d, + 0x0000, 0x0000, 0x0000, 0x567e, 0x0000, 0x0000, 0x5680, 0x5682, 0x0000, 0x5684, + 0x5685, 0x5687, 0x568a, 0x0000, 0x0000, 0x0000, 0x5692, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5694, 0x56a1, 0x0000, 0x0000, 0x0000, 0x0000, 0x56a3, 0x0000, 0x56a6, + 0x56a7, 0x0000, 0x0000, 0x56a8, 0x56ac, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x56ae, 0x0000, 0x56b2, 0x56b9, 0x0000, 0x0000, 0x56c0, + 0x0000, 0x56c1, 0x0000, 0x56c4, 0x0000, 0x0000, 0x56c7, 0x0000, 0x56cf, 0x56d7, + 0x0000, 0x0000, 0x56d8, 0x0000, 0x56da, 0x0000, 0x0000, 0x56db, 0x56dc, 0x0000, + 0x56dd, 0x0000, 0x56e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x56e1, 0x0000, + 0x0000, 0x0000, 0x56e2, 0x56e6, 0x56e7, 0x0000, 0x0000, 0x0000, 0x56f3, 0x56fc, + 0x0000, 0x56fd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x56fe, + 0x0000, 0x0000, 0x0000, 0x0000, 0x56ff, 0x0000, 0x5700, 0x0000, 0x5705, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5706, 0x5708, 0x570b, 0x570e, 0x0000, 0x0000, + 0x570f, 0x5711, 0x0000, 0x0000, 0x5712, 0x0000, 0x5715, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5717, 0x0000, 0x571d, + 0x571e, 0x0000, 0x0000, 0x0000, 0x5721, 0x0000, 0x5724, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x572b, 0x0000, 0x0000, + 0x0000, 0x572d, 0x0000, 0x573e, 0x0000, 0x0000, 0x0000, 0x573f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5740, 0x0000, 0x5742, 0x5748, 0x0000, 0x574b, 0x574d, + 0x0000, 0x574e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5755, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5756, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5757, 0x5758, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5759, 0x575e, 0x0000, 0x0000, + 0x5761, 0x0000, 0x5762, 0x5765, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5767, + 0x0000, 0x5769, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x576a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x576d, 0x0000, 0x0000, 0x0000, 0x0000, 0x576e, 0x0000, 0x576f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5777, + 0x0000, 0x0000, 0x5778, 0x577b, 0x577c, 0x5782, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5785, + 0x0000, 0x0000, 0x5786, 0x0000, 0x0000, 0x5788, 0x0000, 0x0000, 0x5789, 0x578a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5798, 0x0000, 0x0000, 0x0000, + 0x0000, 0x579a, 0x0000, 0x0000, 0x0000, 0x579b, 0x0000, 0x579c, 0x0000, 0x57a0, + 0x0000, 0x57a3, 0x57aa, 0x57ab, 0x0000, 0x0000, 0x0000, 0x0000, 0x57ac, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x57ae, 0x0000, 0x57b6, 0x0000, 0x57b7, 0x0000, + 0x0000, 0x0000, 0x57c1, 0x0000, 0x57c6, 0x0000, 0x57c7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x57c8, 0x57c9, 0x0000, 0x57d7, 0x0000, 0x0000, 0x0000, 0x57d8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x57d9, 0x0000, 0x0000, 0x57e3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x57f2, 0x0000, 0x0000, 0x57f3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x57f4, 0x0000, 0x0000, 0x0000, 0x57f5, 0x57f8, + 0x0000, 0x0000, 0x0000, 0x5806, 0x0000, 0x0000, 0x5807, 0x0000, 0x0000, 0x5808, + 0x0000, 0x580c, 0x5819, 0x0000, 0x581b, 0x0000, 0x0000, 0x0000, 0x0000, 0x5821, + 0x0000, 0x0000, 0x5822, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5826, 0x0000, 0x0000, 0x0000, 0x0000, 0x5827, + 0x5828, 0x0000, 0x0000, 0x582f, 0x0000, 0x5833, 0x0000, 0x5836, 0x5837, 0x5839, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x583a, 0x0000, 0x0000, 0x583b, 0x0000, + 0x0000, 0x583e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x583f, 0x0000, 0x5840, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5841, 0x0000, 0x584a, 0x0000, 0x0000, + 0x584c, 0x0000, 0x0000, 0x5851, 0x0000, 0x0000, 0x585a, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x585b, 0x0000, 0x5860, 0x5861, 0x0000, 0x0000, 0x586e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x586f, 0x0000, 0x0000, 0x5870, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5874, 0x0000, 0x5875, 0x5877, + 0x0000, 0x0000, 0x0000, 0x0000, 0x587c, 0x587d, 0x0000, 0x0000, 0x0000, 0x587e, + 0x0000, 0x587f, 0x0000, 0x0000, 0x0000, 0x5880, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5891, 0x5893, 0x5894, 0x0000, + 0x0000, 0x5896, 0x5897, 0x0000, 0x58a3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x58a5, 0x0000, 0x0000, 0x58a8, 0x0000, 0x58ab, 0x58b3, 0x58b4, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x58be, 0x0000, + 0x58bf, 0x0000, 0x0000, 0x0000, 0x0000, 0x58c3, 0x0000, 0x0000, 0x0000, 0x58c4, + 0x58c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x58c6, 0x58c8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x58c9, 0x0000, 0x0000, 0x58cb, 0x0000, + 0x0000, 0x0000, 0x0000, 0x58cc, 0x58cf, 0x58d0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x58d3, 0x0000, 0x58dd, 0x0000, 0x0000, 0x58df, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x58e6, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x58e8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x58ec, + 0x58ed, 0x58ee, 0x0000, 0x58f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x58f1, + 0x58f2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x58f3, 0x0000, 0x0000, + 0x58f4, 0x58f7, 0x0000, 0x58f8, 0x58f9, 0x58fc, 0x0000, 0x0000, 0x58fe, 0x5900, + 0x0000, 0x5903, 0x0000, 0x5905, 0x590c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x590e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5912, 0x0000, 0x5913, + 0x5914, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5915, 0x0000, 0x0000, 0x591a, 0x591b, 0x591e, 0x5920, 0x0000, 0x5929, + 0x592a, 0x0000, 0x592f, 0x5931, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5932, 0x0000, 0x5934, 0x5936, 0x0000, 0x5937, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5938, 0x0000, 0x593f, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5948, 0x5949, 0x0000, 0x594a, 0x594b, 0x0000, 0x0000, 0x594e, + 0x0000, 0x0000, 0x5950, 0x0000, 0x0000, 0x0000, 0x0000, 0x5951, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5952, + 0x0000, 0x5953, 0x5954, 0x0000, 0x0000, 0x0000, 0x0000, 0x5955, 0x0000, 0x5957, + 0x0000, 0x5958, 0x0000, 0x5959, 0x5961, 0x5962, 0x5964, 0x5965, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5966, 0x5967, 0x0000, 0x596e, 0x0000, + 0x596f, 0x0000, 0x0000, 0x0000, 0x5974, 0x0000, 0x5975, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5978, 0x0000, 0x0000, 0x0000, 0x0000, 0x5979, 0x597b, 0x0000, 0x0000, + 0x0000, 0x5983, 0x5985, 0x0000, 0x0000, 0x5986, 0x0000, 0x0000, 0x0000, 0x5988, + 0x0000, 0x0000, 0x0000, 0x5991, 0x5992, 0x0000, 0x0000, 0x0000, 0x599d, 0x599e, + 0x0000, 0x0000, 0x0000, 0x599f, 0x0000, 0x0000, 0x0000, 0x59a0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x59a2, 0x0000, 0x59a3, 0x0000, 0x0000, + 0x59aa, 0x0000, 0x59ac, 0x0000, 0x0000, 0x59b2, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x59b3, 0x0000, 0x0000, 0x59b4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x59b5, 0x0000, 0x59b8, 0x0000, 0x0000, 0x0000, + 0x59b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x59ba, 0x0000, 0x59bb, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x59c2, 0x0000, 0x0000, 0x59c3, 0x0000, 0x59cb, + 0x0000, 0x0000, 0x59cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x59ce, + 0x0000, 0x59dd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x59de, + 0x59df, 0x59e0, 0x0000, 0x0000, 0x59ef, 0x59f0, 0x59f5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x59f6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x59f8, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x59fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x59fe, 0x0000, + 0x0000, 0x0000, 0x5a08, 0x0000, 0x5a09, 0x5a0c, 0x5a0d, 0x5a14, 0x5a15, 0x0000, + 0x5a17, 0x0000, 0x0000, 0x0000, 0x0000, 0x5a1b, 0x5a1c, 0x0000, 0x0000, 0x0000, + 0x5a1d, 0x5a21, 0x0000, 0x0000, 0x0000, 0x5a57, 0x0000, 0x5a58, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5a59, 0x0000, 0x5a62, 0x5a65, 0x0000, 0x5a6d, 0x0000, + 0x0000, 0x5a6e, 0x0000, 0x0000, 0x0000, 0x5a70, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5a72, 0x0000, 0x0000, 0x0000, 0x0000, 0x5a75, + 0x5a77, 0x5a78, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5a8c, 0x0000, 0x0000, 0x0000, 0x0000, 0x5a8d, + 0x0000, 0x0000, 0x5a94, 0x0000, 0x5a95, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5a9b, 0x0000, 0x0000, + 0x5a9c, 0x5a9f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5aa2, 0x0000, 0x5aa4, 0x0000, 0x5aa7, 0x0000, 0x5aa9, 0x5aaa, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5abb, 0x5abd, 0x0000, 0x0000, 0x5abe, + 0x5ac2, 0x5ac6, 0x0000, 0x0000, 0x0000, 0x5acd, 0x5ace, 0x5ad0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5ad1, 0x5ad6, 0x0000, 0x0000, 0x0000, 0x5ae1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ae4, 0x0000, 0x5aec, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5aed, 0x0000, 0x5b01, 0x0000, 0x5b02, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5b03, 0x0000, 0x5b06, 0x0000, 0x0000, 0x5b07, 0x5b10, 0x0000, 0x0000, + 0x5b12, 0x0000, 0x5b18, 0x0000, 0x0000, 0x0000, 0x0000, 0x5b1c, 0x0000, 0x5b1d, + 0x0000, 0x5b20, 0x0000, 0x5b26, 0x0000, 0x0000, 0x0000, 0x5b29, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5b2f, 0x5b30, 0x5b32, 0x0000, 0x5b34, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5b39, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5b3b, 0x0000, 0x5b3c, 0x5b3e, 0x0000, 0x0000, 0x0000, 0x5b3f, 0x5b40, 0x0000, + 0x5b41, 0x0000, 0x5b47, 0x0000, 0x5b49, 0x0000, 0x0000, 0x5b4d, 0x0000, 0x5b52, + 0x5b53, 0x0000, 0x5b56, 0x5b57, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5b5b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5b5c, 0x5b5e, 0x0000, 0x0000, 0x5b61, + 0x5b66, 0x0000, 0x0000, 0x0000, 0x5b67, 0x0000, 0x0000, 0x0000, 0x5b68, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5b69, 0x0000, 0x0000, 0x0000, 0x5b77, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5b78, 0x0000, 0x5b7e, 0x0000, + 0x5b93, 0x5b94, 0x0000, 0x0000, 0x0000, 0x0000, 0x5b98, 0x0000, 0x5b9e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ba0, 0x0000, 0x0000, 0x5ba2, 0x5ba8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ba9, 0x0000, 0x0000, 0x0000, + 0x5bae, 0x5baf, 0x0000, 0x0000, 0x5bb0, 0x0000, 0x0000, 0x0000, 0x5bb1, 0x5bc8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5bc9, 0x0000, + 0x5bcb, 0x0000, 0x0000, 0x5bce, 0x0000, 0x0000, 0x5bcf, 0x0000, 0x0000, 0x5bd9, + 0x0000, 0x0000, 0x5bdb, 0x0000, 0x0000, 0x0000, 0x5bdd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5bde, 0x5bdf, 0x5be1, 0x5be4, 0x0000, 0x5be5, 0x5be8, 0x5bf3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5bf5, 0x0000, 0x0000, 0x5bf8, 0x0000, 0x0000, + 0x5c04, 0x0000, 0x0000, 0x5c05, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5c07, 0x0000, 0x5c08, + 0x0000, 0x0000, 0x5c09, 0x0000, 0x0000, 0x5c0e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5c10, 0x5c11, 0x5c12, 0x0000, 0x0000, 0x0000, 0x0000, 0x5c13, 0x0000, + 0x5c16, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5c17, 0x0000, 0x5c1b, 0x0000, 0x0000, 0x5c1d, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5c23, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5c2c, 0x5c2e, 0x0000, 0x0000, 0x0000, 0x0000, 0x5c32, 0x5c36, + 0x0000, 0x0000, 0x5c37, 0x0000, 0x5c38, 0x0000, 0x0000, 0x0000, 0x5c3e, 0x5c40, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5c42, 0x0000, 0x0000, 0x5c43, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5c45, 0x5c4a, 0x0000, 0x5c4b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5c4d, 0x0000, 0x5c4e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5c52, 0x0000, 0x5c54, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5c56, 0x0000, 0x0000, 0x0000, 0x0000, 0x5c58, 0x5c73, 0x0000, 0x5c75, 0x0000, + 0x0000, 0x0000, 0x5c81, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5c82, 0x0000, 0x5c83, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5c84, 0x0000, + 0x0000, 0x0000, 0x5c85, 0x5c89, 0x0000, 0x5c8d, 0x5c8e, 0x5c94, 0x0000, 0x5c96, + 0x0000, 0x5c9d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ca0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ca2, 0x0000, 0x0000, 0x5ca3, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5ca6, 0x0000, 0x0000, 0x5ca8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5caa, 0x0000, 0x0000, 0x0000, 0x5cae, 0x5cb1, 0x0000, 0x5cbd, 0x5cc2, + 0x0000, 0x5cc4, 0x0000, 0x0000, 0x0000, 0x0000, 0x5cc5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5cc6, 0x0000, 0x0000, 0x0000, 0x0000, 0x5cc7, 0x0000, 0x5cc9, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5ccd, 0x5cd5, 0x0000, 0x0000, 0x0000, 0x5cda, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5cdb, 0x0000, 0x5cdc, + 0x5ce5, 0x0000, 0x0000, 0x5cf4, 0x0000, 0x0000, 0x0000, 0x0000, 0x5cf6, 0x0000, + 0x5cf7, 0x0000, 0x0000, 0x0000, 0x5cfa, 0x0000, 0x0000, 0x5cfe, 0x0000, 0x5cff, + 0x0000, 0x0000, 0x5d00, 0x0000, 0x5d01, 0x0000, 0x5d0b, 0x0000, 0x0000, 0x0000, + 0x5d0d, 0x0000, 0x5d13, 0x0000, 0x0000, 0x0000, 0x5d15, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5d16, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5d18, 0x5d19, 0x5d1a, 0x5d1b, 0x0000, 0x0000, 0x0000, 0x0000, 0x5d1d, + 0x5d1e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5d26, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5d27, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5d47, + 0x5d49, 0x0000, 0x0000, 0x5d4a, 0x5d4b, 0x5d57, 0x0000, 0x5d5b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5d5d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5d5e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5d5f, 0x5d61, 0x0000, 0x5d62, 0x0000, + 0x5d63, 0x5d6e, 0x5d6f, 0x5d70, 0x0000, 0x5d72, 0x0000, 0x5d74, 0x0000, 0x5d77, + 0x0000, 0x5d7e, 0x0000, 0x5d81, 0x5d85, 0x0000, 0x5d86, 0x5d8a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5d93, 0x5d94, 0x5d96, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5d97, 0x0000, 0x5d9a, 0x5d9d, 0x0000, 0x5d9e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5d9f, 0x5da0, 0x0000, 0x0000, 0x5da5, 0x0000, 0x0000, 0x5da6, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5da7, 0x0000, 0x5da8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5da9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5dac, + 0x0000, 0x0000, 0x5db0, 0x0000, 0x5db1, 0x0000, 0x0000, 0x5db3, 0x0000, 0x0000, + 0x5db4, 0x5db6, 0x5db7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5db8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5dba, 0x0000, + 0x0000, 0x0000, 0x5dbe, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5dbf, 0x0000, 0x0000, 0x5dc3, 0x0000, 0x5dc4, 0x0000, 0x5dc6, + 0x0000, 0x0000, 0x0000, 0x5dc7, 0x0000, 0x0000, 0x5dc8, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5dc9, 0x0000, 0x0000, 0x5dca, 0x0000, 0x0000, + 0x5dcb, 0x0000, 0x0000, 0x5dcd, 0x5dce, 0x0000, 0x0000, 0x5dcf, 0x5dd0, 0x5ddb, + 0x0000, 0x5ddc, 0x5ddd, 0x0000, 0x5dde, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5de1, 0x5de2, 0x0000, 0x5de3, 0x0000, 0x0000, 0x5de4, 0x0000, 0x0000, 0x5dec, + 0x0000, 0x5df0, 0x5df1, 0x5dff, 0x5e03, 0x0000, 0x5e04, 0x5e06, 0x0000, 0x0000, + 0x5e07, 0x5e0e, 0x5e17, 0x0000, 0x5e1a, 0x0000, 0x0000, 0x0000, 0x5e1f, 0x0000, + 0x5e22, 0x5e25, 0x5e28, 0x5e2a, 0x0000, 0x5e2b, 0x0000, 0x0000, 0x0000, 0x5e2c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5e2e, 0x5e2f, 0x0000, 0x5e31, 0x0000, 0x0000, + 0x5e33, 0x5e38, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5e3c, 0x0000, + 0x5e3d, 0x0000, 0x5e3e, 0x0000, 0x5e3f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5e47, 0x0000, 0x0000, 0x5e48, 0x0000, 0x5e49, 0x5e4e, 0x0000, 0x0000, 0x0000, + 0x5e52, 0x0000, 0x0000, 0x5e53, 0x5e55, 0x5e5a, 0x0000, 0x5e63, 0x0000, 0x0000, + 0x0000, 0x5e65, 0x5e66, 0x5e67, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5e69, 0x5e6a, 0x5e6f, 0x0000, 0x0000, 0x0000, + 0x5e72, 0x0000, 0x0000, 0x5e73, 0x0000, 0x0000, 0x5e75, 0x0000, 0x5e78, 0x5e85, + 0x0000, 0x5e89, 0x5e8c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5e8e, + 0x5e94, 0x5e9c, 0x0000, 0x0000, 0x0000, 0x5ea0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5ea2, 0x0000, 0x5eaa, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5eab, 0x0000, 0x5eac, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5eaf, 0x5eb0, 0x5eb1, 0x0000, 0x0000, 0x5eb8, 0x0000, 0x0000, 0x5eb9, + 0x0000, 0x5ebb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ebd, 0x0000, + 0x5ecc, 0x0000, 0x0000, 0x0000, 0x5ecd, 0x0000, 0x5ecf, 0x5ed0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5ed1, 0x0000, 0x0000, 0x5ed2, 0x0000, 0x0000, 0x5ed7, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ed8, 0x0000, 0x5ee5, 0x5ee6, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ee8, 0x0000, 0x0000, 0x5f03, + 0x0000, 0x0000, 0x0000, 0x5f09, 0x5f0a, 0x5f0b, 0x5f13, 0x0000, 0x5f1f, 0x0000, + 0x0000, 0x5f31, 0x5f32, 0x0000, 0x0000, 0x0000, 0x5f33, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5f34, 0x5f35, 0x5f36, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5f3a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5f3b, 0x0000, 0x5f3d, 0x0000, 0x5f3f, 0x5f45, + 0x0000, 0x5f46, 0x0000, 0x0000, 0x5f4a, 0x5f4b, 0x5f50, 0x0000, 0x0000, 0x0000, + 0x5f51, 0x5f52, 0x0000, 0x5f56, 0x0000, 0x0000, 0x0000, 0x5f5b, 0x0000, 0x0000, + 0x0000, 0x5f5f, 0x0000, 0x5f60, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5f61, + 0x0000, 0x5f63, 0x0000, 0x5f66, 0x0000, 0x5f67, 0x5f6c, 0x0000, 0x5f73, 0x0000, + 0x0000, 0x0000, 0x5f77, 0x0000, 0x0000, 0x0000, 0x5f78, 0x5f7a, 0x5f7e, 0x0000, + 0x0000, 0x0000, 0x5f7f, 0x5f80, 0x5f81, 0x5f84, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5f85, 0x5f89, 0x0000, 0x0000, 0x5f8a, 0x5f8b, 0x5f8c, 0x0000, 0x5f91, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5f96, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5f97, 0x0000, 0x5f99, 0x5f9a, 0x5f9b, + 0x5f9c, 0x0000, 0x5f9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x5fa0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5fa1, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5fa2, + 0x5fa5, 0x0000, 0x0000, 0x0000, 0x0000, 0x5fa6, 0x0000, 0x0000, 0x0000, 0x5fa8, + 0x0000, 0x0000, 0x0000, 0x5fae, 0x0000, 0x0000, 0x0000, 0x0000, 0x5fb1, 0x0000, + 0x0000, 0x5fb2, 0x0000, 0x0000, 0x0000, 0x5fb3, 0x5fba, 0x0000, 0x0000, 0x0000, + 0x5fbb, 0x0000, 0x0000, 0x5fbf, 0x0000, 0x0000, 0x5fc1, 0x5fc2, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5fc5, 0x0000, 0x5fc6, 0x0000, 0x5fc8, 0x0000, 0x5fc9, + 0x5fcc, 0x5fcd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5fcf, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5fd0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5fd9, + 0x5fdb, 0x0000, 0x5fdc, 0x0000, 0x0000, 0x0000, 0x5fe4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x5fe5, 0x5fe6, 0x0000, 0x0000, 0x0000, 0x5fe9, 0x5fea, 0x0000, + 0x5feb, 0x0000, 0x5fec, 0x0000, 0x5fee, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5ff0, 0x0000, 0x0000, 0x0000, 0x5ff1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5ff2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5ff7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5ff9, 0x0000, 0x0000, 0x0000, 0x5ffe, 0x0000, 0x5fff, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6001, 0x6005, + 0x0000, 0x6008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6009, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x600a, 0x0000, 0x0000, 0x600b, 0x0000, 0x600c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x600e, + 0x600f, 0x0000, 0x0000, 0x0000, 0x0000, 0x6010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6014, 0x6015, 0x0000, 0x0000, 0x0000, 0x0000, 0x601a, 0x601b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x601c, 0x0000, 0x0000, 0x601d, 0x0000, 0x6022, 0x0000, + 0x0000, 0x6023, 0x0000, 0x0000, 0x0000, 0x0000, 0x6024, 0x6027, 0x6028, 0x6030, + 0x0000, 0x0000, 0x0000, 0x6033, 0x0000, 0x603e, 0x603f, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6040, 0x0000, 0x0000, 0x0000, 0x604f, 0x6050, 0x6051, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6056, 0x0000, 0x6057, 0x6058, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6059, 0x0000, 0x0000, 0x0000, 0x0000, + 0x605b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x605c, 0x605d, 0x0000, + 0x605e, 0x6062, 0x0000, 0x0000, 0x0000, 0x6063, 0x0000, 0x6066, 0x0000, 0x0000, + 0x6067, 0x0000, 0x0000, 0x0000, 0x6069, 0x0000, 0x606b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x606c, 0x0000, 0x606d, 0x0000, 0x0000, 0x606e, 0x0000, 0x0000, 0x6070, + 0x6071, 0x0000, 0x0000, 0x0000, 0x0000, 0x6072, 0x6073, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6079, 0x0000, 0x607a, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6085, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6086, 0x0000, 0x6088, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6089, 0x608a, 0x0000, 0x608b, 0x0000, 0x608c, 0x608e, 0x0000, 0x608f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6090, 0x0000, 0x0000, 0x6095, 0x0000, 0x0000, 0x60a2, + 0x0000, 0x60ad, 0x60ae, 0x0000, 0x0000, 0x0000, 0x60b0, 0x0000, 0x0000, 0x0000, + 0x60b1, 0x0000, 0x0000, 0x0000, 0x60b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x60ba, 0x0000, 0x60bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x60bc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x60bd, 0x60bf, 0x60c0, 0x0000, + 0x60c4, 0x0000, 0x0000, 0x0000, 0x0000, 0x60c5, 0x0000, 0x0000, 0x0000, 0x0000, + 0x60c9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x60d1, 0x0000, 0x60d2, 0x60d4, + 0x0000, 0x0000, 0x0000, 0x60d5, 0x0000, 0x0000, 0x0000, 0x0000, 0x60da, 0x60de, + 0x0000, 0x60df, 0x60e0, 0x0000, 0x0000, 0x0000, 0x60e3, 0x0000, 0x60e4, 0x60e6, + 0x0000, 0x60e7, 0x0000, 0x0000, 0x0000, 0x60ea, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x60fb, 0x60fc, 0x0000, 0x6103, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6104, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6107, 0x0000, + 0x610b, 0x610c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x610f, 0x0000, 0x0000, 0x6110, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6111, 0x0000, 0x6112, 0x6113, 0x0000, 0x0000, 0x0000, 0x6114, + 0x0000, 0x6115, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6116, 0x0000, 0x6117, 0x0000, 0x0000, 0x6124, 0x0000, 0x0000, 0x0000, + 0x6133, 0x0000, 0x0000, 0x0000, 0x6134, 0x0000, 0x613f, 0x6141, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6143, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6144, + 0x0000, 0x6151, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6152, 0x0000, + 0x0000, 0x6155, 0x6162, 0x6163, 0x0000, 0x0000, 0x0000, 0x6164, 0x0000, 0x0000, + 0x616b, 0x0000, 0x0000, 0x616e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6171, 0x6176, 0x0000, 0x6177, 0x0000, 0x0000, 0x6179, + 0x0000, 0x0000, 0x0000, 0x617a, 0x0000, 0x617f, 0x0000, 0x0000, 0x0000, 0x6181, + 0x0000, 0x0000, 0x6182, 0x0000, 0x6184, 0x6188, 0x618a, 0x618c, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6190, 0x0000, 0x0000, 0x0000, 0x6191, 0x0000, 0x6196, + 0x0000, 0x0000, 0x6197, 0x0000, 0x0000, 0x6198, 0x0000, 0x0000, 0x0000, 0x61a1, + 0x0000, 0x0000, 0x0000, 0x61a2, 0x0000, 0x0000, 0x61a9, 0x0000, 0x0000, 0x0000, + 0x61ab, 0x0000, 0x0000, 0x61ba, 0x0000, 0x0000, 0x61bf, 0x0000, 0x0000, 0x0000, + 0x61ca, 0x0000, 0x0000, 0x61cb, 0x61cc, 0x0000, 0x61cd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x61cf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x61d0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x61d2, 0x0000, + 0x0000, 0x61d3, 0x61d5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x61d9, + 0x0000, 0x0000, 0x61db, 0x0000, 0x61dc, 0x61dd, 0x0000, 0x0000, 0x61de, 0x0000, + 0x0000, 0x0000, 0x61df, 0x0000, 0x0000, 0x0000, 0x0000, 0x61e1, 0x61e3, 0x0000, + 0x0000, 0x61e4, 0x61e8, 0x0000, 0x61e9, 0x61ed, 0x61ee, 0x0000, 0x0000, 0x0000, + 0x0000, 0x61f0, 0x0000, 0x61f1, 0x0000, 0x6202, 0x0000, 0x0000, 0x6204, 0x6205, + 0x620d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6211, 0x6214, 0x0000, + 0x0000, 0x6219, 0x0000, 0x0000, 0x621b, 0x621c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x621d, 0x0000, 0x0000, 0x0000, 0x6220, 0x6221, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6225, 0x0000, 0x0000, 0x0000, 0x6226, + 0x0000, 0x622a, 0x622e, 0x0000, 0x6233, 0x0000, 0x6237, 0x0000, 0x0000, 0x0000, + 0x623f, 0x0000, 0x6249, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x624b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6256, 0x0000, 0x6257, 0x0000, 0x6277, 0x0000, 0x0000, 0x0000, 0x6279, 0x0000, + 0x0000, 0x0000, 0x0000, 0x627d, 0x0000, 0x6283, 0x0000, 0x6287, 0x0000, 0x6289, + 0x0000, 0x0000, 0x0000, 0x628b, 0x0000, 0x0000, 0x0000, 0x628c, 0x0000, 0x0000, + 0x0000, 0x628d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x628f, + 0x6291, 0x0000, 0x0000, 0x0000, 0x0000, 0x6295, 0x6297, 0x0000, 0x0000, 0x0000, + 0x629b, 0x0000, 0x0000, 0x0000, 0x62a4, 0x0000, 0x62a9, 0x62aa, 0x0000, 0x0000, + 0x0000, 0x0000, 0x62ac, 0x62b1, 0x0000, 0x62b4, 0x0000, 0x0000, 0x62b9, 0x62ec, + 0x0000, 0x62ed, 0x0000, 0x62ee, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x62ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x62f0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x62f4, 0x0000, 0x0000, 0x0000, 0x62f5, + 0x0000, 0x0000, 0x0000, 0x62f8, 0x62f9, 0x62fa, 0x0000, 0x0000, 0x62ff, 0x0000, + 0x6306, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6308, 0x0000, + 0x630a, 0x0000, 0x631f, 0x0000, 0x6323, 0x0000, 0x0000, 0x0000, 0x0000, 0x6328, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x632a, + 0x0000, 0x632c, 0x0000, 0x632e, 0x0000, 0x0000, 0x6337, 0x0000, 0x0000, 0x6339, + 0x0000, 0x0000, 0x0000, 0x633a, 0x0000, 0x0000, 0x0000, 0x633f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6345, + 0x6347, 0x0000, 0x0000, 0x6349, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x634b, 0x0000, 0x0000, 0x0000, 0x634d, 0x0000, 0x0000, 0x0000, 0x6350, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6359, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x635b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x635c, 0x0000, 0x0000, 0x0000, 0x635d, 0x0000, 0x0000, 0x6360, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6362, 0x0000, 0x0000, 0x6363, 0x0000, + 0x6366, 0x0000, 0x0000, 0x6369, 0x0000, 0x0000, 0x0000, 0x636a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x636c, 0x0000, 0x636d, 0x636e, 0x636f, 0x0000, 0x0000, 0x0000, + 0x6370, 0x0000, 0x6371, 0x0000, 0x0000, 0x0000, 0x6373, 0x0000, 0x6375, 0x0000, + 0x637c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x637d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x637f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6382, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6383, 0x0000, 0x0000, 0x0000, 0x0000, 0x6385, 0x0000, 0x0000, 0x0000, 0x0000, + 0x638b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x638c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x638d, + 0x0000, 0x6399, 0x0000, 0x0000, 0x639a, 0x0000, 0x63a0, 0x0000, 0x63a6, 0x0000, + 0x63a8, 0x0000, 0x0000, 0x63a9, 0x63aa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x63ad, 0x63ae, 0x63af, 0x0000, 0x63b0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x63b1, 0x0000, 0x63b2, 0x63b7, 0x63be, 0x0000, 0x63c0, + 0x0000, 0x63c1, 0x0000, 0x0000, 0x63cc, 0x63ce, 0x0000, 0x0000, 0x63cf, 0x0000, + 0x63d0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x63d2, 0x0000, 0x63d3, 0x0000, + 0x63d4, 0x63d5, 0x63e0, 0x0000, 0x0000, 0x0000, 0x63e2, 0x63e3, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x63e6, 0x0000, 0x0000, 0x0000, 0x0000, 0x63eb, + 0x0000, 0x0000, 0x0000, 0x63ed, 0x0000, 0x0000, 0x0000, 0x63ee, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x63f4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x63f5, 0x0000, 0x0000, 0x0000, 0x0000, 0x63f6, 0x0000, 0x63f7, + 0x63f8, 0x63f9, 0x0000, 0x63fa, 0x0000, 0x0000, 0x0000, 0x63fc, 0x0000, 0x63fd, + 0x640f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6412, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6413, 0x6417, 0x0000, 0x0000, 0x641d, 0x0000, 0x0000, 0x641f, 0x0000, + 0x0000, 0x0000, 0x6423, 0x6424, 0x0000, 0x0000, 0x6431, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6436, 0x0000, 0x0000, 0x0000, 0x643d, 0x643f, 0x0000, 0x0000, 0x6447, + 0x0000, 0x0000, 0x644e, 0x6462, 0x0000, 0x6463, 0x6466, 0x6467, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6468, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x646a, 0x0000, 0x0000, 0x646e, 0x0000, 0x646f, 0x0000, 0x6470, + 0x0000, 0x6473, 0x6474, 0x6475, 0x0000, 0x0000, 0x6476, 0x6480, 0x6484, 0x0000, + 0x0000, 0x0000, 0x6486, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6489, 0x0000, 0x0000, 0x648b, 0x0000, 0x0000, 0x0000, 0x648c, + 0x0000, 0x648d, 0x6491, 0x0000, 0x6492, 0x0000, 0x6494, 0x64ac, 0x64b2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x64b4, 0x0000, 0x0000, 0x0000, 0x0000, 0x64b5, + 0x0000, 0x64b6, 0x64b8, 0x64b9, 0x0000, 0x0000, 0x0000, 0x64bd, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x64c5, 0x64c9, 0x0000, 0x0000, 0x0000, 0x64d0, + 0x64d1, 0x0000, 0x0000, 0x64d3, 0x64d6, 0x64d7, 0x0000, 0x0000, 0x64d9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x64dc, 0x0000, 0x0000, + 0x0000, 0x0000, 0x64e8, 0x64e9, 0x0000, 0x0000, 0x0000, 0x64f6, 0x0000, 0x0000, + 0x0000, 0x64f7, 0x64f8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x64f9, 0x64fa, 0x0000, 0x0000, 0x64fb, 0x0000, 0x0000, 0x64fc, + 0x0000, 0x6506, 0x0000, 0x0000, 0x0000, 0x6507, 0x6509, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x650b, 0x650c, 0x0000, 0x650d, 0x6512, 0x0000, + 0x6513, 0x0000, 0x6514, 0x6515, 0x0000, 0x0000, 0x0000, 0x0000, 0x6516, 0x652e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x652f, 0x6530, 0x6531, + 0x0000, 0x0000, 0x0000, 0x6534, 0x6535, 0x0000, 0x0000, 0x0000, 0x0000, 0x6536, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6538, 0x0000, 0x6539, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x653a, 0x0000, + 0x0000, 0x653c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x653d, 0x6547, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6548, 0x0000, 0x0000, 0x654a, 0x0000, 0x0000, 0x0000, + 0x654d, 0x0000, 0x0000, 0x6552, 0x6556, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6559, 0x0000, 0x655e, 0x0000, 0x6564, 0x0000, 0x0000, 0x6569, + 0x656a, 0x0000, 0x0000, 0x656b, 0x0000, 0x656c, 0x656d, 0x656e, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x656f, 0x0000, 0x0000, 0x0000, 0x0000, 0x6570, 0x0000, + 0x0000, 0x0000, 0x6571, 0x6573, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6575, + 0x6577, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x657a, 0x0000, + 0x657d, 0x0000, 0x0000, 0x0000, 0x657e, 0x0000, 0x0000, 0x0000, 0x6580, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6589, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6592, 0x0000, 0x0000, 0x0000, 0x6595, 0x0000, 0x0000, 0x0000, 0x6596, 0x6597, + 0x0000, 0x0000, 0x659e, 0x659f, 0x65a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x65a1, 0x65a2, 0x65a4, 0x0000, 0x65a6, 0x65a7, 0x0000, 0x0000, 0x0000, + 0x65a8, 0x65ac, 0x0000, 0x65ad, 0x65b1, 0x65b2, 0x65bc, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x65be, 0x0000, 0x0000, 0x65bf, 0x0000, 0x0000, 0x65c1, 0x0000, + 0x65c2, 0x0000, 0x65c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x65c5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x65c6, 0x65cb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x65cc, 0x0000, 0x65d2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x65d3, 0x0000, 0x65d5, 0x0000, + 0x0000, 0x65d7, 0x0000, 0x0000, 0x0000, 0x65d9, 0x0000, 0x65da, 0x65dd, 0x0000, + 0x0000, 0x0000, 0x0000, 0x65de, 0x0000, 0x0000, 0x0000, 0x65df, 0x0000, 0x65ea, + 0x0000, 0x0000, 0x65ee, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x65ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x65f0, 0x65f5, 0x0000, 0x65fb, 0x660a, 0x0000, 0x660c, + 0x0000, 0x0000, 0x660d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6618, + 0x661d, 0x662b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6634, 0x6636, 0x0000, 0x0000, 0x0000, 0x6637, 0x0000, 0x663a, 0x663b, + 0x0000, 0x0000, 0x663c, 0x0000, 0x0000, 0x663e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x663f, + 0x0000, 0x0000, 0x0000, 0x6640, 0x6641, 0x0000, 0x66d1, 0x66d2, 0x0000, 0x66d3, + 0x0000, 0x0000, 0x66d4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x66d5, 0x0000, 0x66db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x66df, + 0x0000, 0x0000, 0x0000, 0x66ee, 0x0000, 0x0000, 0x0000, 0x670b, 0x0000, 0x0000, + 0x670e, 0x670f, 0x6711, 0x0000, 0x0000, 0x6718, 0x6726, 0x0000, 0x0000, 0x0000, + 0x0000, 0x672b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x672c, 0x0000, 0x0000, + 0x6734, 0x0000, 0x0000, 0x6737, 0x0000, 0x6738, 0x673a, 0x6740, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6743, 0x0000, 0x6744, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6749, 0x0000, 0x674c, 0x0000, 0x0000, 0x0000, 0x674e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x674f, 0x0000, 0x0000, 0x0000, 0x0000, 0x6751, 0x0000, + 0x6752, 0x6754, 0x0000, 0x6755, 0x6756, 0x0000, 0x0000, 0x0000, 0x6757, 0x0000, + 0x0000, 0x0000, 0x6758, 0x0000, 0x0000, 0x675a, 0x0000, 0x0000, 0x675c, 0x0000, + 0x675f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6760, + 0x6766, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6769, 0x0000, 0x0000, 0x676a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x676b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x676d, + 0x0000, 0x6775, 0x0000, 0x0000, 0x6776, 0x0000, 0x6777, 0x0000, 0x0000, 0x6778, + 0x677d, 0x677e, 0x0000, 0x0000, 0x677f, 0x0000, 0x6781, 0x6788, 0x678a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x678b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x678d, 0x0000, 0x0000, 0x678e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6790, 0x0000, 0x6791, + 0x6793, 0x0000, 0x0000, 0x0000, 0x6796, 0x0000, 0x0000, 0x0000, 0x6797, 0x0000, + 0x679c, 0x679e, 0x0000, 0x0000, 0x0000, 0x679f, 0x0000, 0x67a4, 0x0000, 0x67a5, + 0x67a9, 0x67be, 0x0000, 0x0000, 0x0000, 0x67bf, 0x0000, 0x0000, 0x0000, 0x67cb, + 0x0000, 0x0000, 0x67cd, 0x0000, 0x67dc, 0x0000, 0x67e1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x67eb, 0x0000, 0x67ec, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x67ee, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x67ef, 0x67f1, 0x67f3, 0x67f6, 0x0000, 0x0000, + 0x0000, 0x67f8, 0x67fc, 0x0000, 0x67fd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6803, 0x0000, 0x6805, 0x0000, 0x0000, 0x6806, 0x0000, 0x0000, 0x6808, 0x6813, + 0x0000, 0x0000, 0x0000, 0x6814, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6816, 0x6817, 0x0000, 0x0000, 0x0000, 0x681a, 0x0000, + 0x0000, 0x6820, 0x0000, 0x0000, 0x0000, 0x0000, 0x6827, 0x682e, 0x682f, 0x0000, + 0x0000, 0x0000, 0x683d, 0x683e, 0x683f, 0x0000, 0x6841, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6878, 0x0000, 0x6879, 0x0000, 0x687b, 0x687c, 0x0000, 0x687d, 0x687e, + 0x687f, 0x0000, 0x0000, 0x0000, 0x0000, 0x6880, 0x6883, 0x0000, 0x0000, 0x0000, + 0x6884, 0x6891, 0x0000, 0x0000, 0x0000, 0x6896, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6897, 0x0000, 0x6899, 0x689a, 0x0000, 0x68a2, 0x0000, 0x0000, 0x0000, + 0x68a3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x68a4, 0x0000, 0x0000, 0x68a5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x68a7, 0x0000, 0x68a8, 0x68a9, 0x0000, 0x0000, 0x0000, + 0x68aa, 0x0000, 0x68ad, 0x68ae, 0x0000, 0x0000, 0x0000, 0x68b0, 0x0000, 0x0000, + 0x68b3, 0x0000, 0x68b4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x68b5, 0x0000, 0x0000, 0x68b8, 0x0000, 0x0000, 0x68b9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x68bc, 0x0000, 0x68c9, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x68ca, 0x0000, 0x0000, 0x68cb, + 0x68cd, 0x68d2, 0x0000, 0x0000, 0x0000, 0x0000, 0x68d3, 0x0000, 0x0000, 0x68e1, + 0x0000, 0x68e3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x68e4, 0x0000, 0x68e5, 0x68e9, 0x0000, 0x68ea, 0x0000, 0x68eb, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x68fc, 0x0000, 0x68fe, 0x6902, + 0x6903, 0x0000, 0x0000, 0x0000, 0x0000, 0x690a, 0x690e, 0x0000, 0x0000, 0x0000, + 0x0000, 0x690f, 0x6910, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6914, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x691f, 0x6921, 0x6922, 0x6923, + 0x6924, 0x6927, 0x0000, 0x0000, 0x0000, 0x6929, 0x692a, 0x0000, 0x0000, 0x692d, + 0x0000, 0x0000, 0x0000, 0x6930, 0x0000, 0x0000, 0x6931, 0x6932, 0x0000, 0x0000, + 0x0000, 0x6933, 0x0000, 0x6934, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6935, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6939, 0x0000, 0x0000, 0x693f, + 0x0000, 0x0000, 0x6940, 0x0000, 0x0000, 0x0000, 0x6942, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x694c, 0x0000, 0x694e, 0x0000, 0x0000, 0x6953, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6955, 0x0000, 0x6959, + 0x695a, 0x695c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x695d, 0x0000, 0x695e, + 0x0000, 0x6962, 0x0000, 0x6964, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6966, 0x0000, 0x696a, 0x696b, 0x0000, 0x696e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x697b, 0x697e, 0x0000, 0x0000, 0x697f, 0x6982, 0x6984, 0x6985, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6986, 0x6987, 0x698a, 0x0000, + 0x698b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6991, 0x0000, 0x0000, 0x0000, + 0x6992, 0x0000, 0x0000, 0x0000, 0x0000, 0x6995, 0x6996, 0x6997, 0x699a, 0x0000, + 0x0000, 0x699c, 0x699d, 0x0000, 0x0000, 0x0000, 0x699e, 0x69a2, 0x0000, 0x0000, + 0x0000, 0x69a4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x69a5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x69a6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x69a7, 0x69a9, 0x0000, 0x69aa, 0x0000, 0x0000, 0x0000, 0x69ab, + 0x69ac, 0x0000, 0x69af, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x69b0, 0x69b2, 0x69b3, 0x0000, 0x69b5, 0x0000, 0x69b8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x69bd, 0x0000, 0x0000, 0x69be, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x69c0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x69c4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x69c6, 0x0000, 0x69c7, 0x0000, 0x0000, 0x0000, 0x69c9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x69ca, 0x0000, 0x69cb, 0x69ce, 0x0000, 0x0000, 0x0000, + 0x0000, 0x69cf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x69d0, 0x69d2, 0x0000, + 0x69d6, 0x0000, 0x0000, 0x69d7, 0x0000, 0x69db, 0x69de, 0x0000, 0x0000, 0x0000, + 0x69df, 0x0000, 0x0000, 0x0000, 0x0000, 0x69e1, 0x0000, 0x0000, 0x0000, 0x69e2, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x69e3, 0x0000, 0x0000, 0x0000, + 0x0000, 0x69e4, 0x69ed, 0x0000, 0x0000, 0x0000, 0x0000, 0x69ee, 0x0000, 0x0000, + 0x69f4, 0x0000, 0x69f6, 0x0000, 0x0000, 0x69fa, 0x69fb, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6a0b, 0x0000, 0x0000, 0x0000, 0x0000, 0x6a0c, 0x6a0d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6a0e, 0x6a0f, 0x0000, 0x6a10, 0x0000, 0x6a17, + 0x0000, 0x0000, 0x0000, 0x6a1c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6a27, 0x0000, 0x6a35, 0x0000, 0x0000, 0x6a37, 0x0000, 0x6a39, 0x0000, + 0x6a3b, 0x0000, 0x6a3e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6a40, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6a42, 0x0000, 0x0000, 0x0000, 0x0000, 0x6a43, 0x0000, + 0x0000, 0x6a44, 0x0000, 0x0000, 0x6a46, 0x0000, 0x6a47, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6a49, 0x0000, 0x0000, 0x0000, 0x6a4d, 0x0000, 0x0000, 0x6a50, 0x6a53, + 0x6a54, 0x6a56, 0x6a57, 0x0000, 0x6a58, 0x0000, 0x6a59, 0x6a5a, 0x0000, 0x0000, + 0x6a61, 0x0000, 0x0000, 0x0000, 0x0000, 0x6a63, 0x0000, 0x6a65, 0x0000, 0x6a66, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6a67, 0x0000, 0x6a6a, 0x6a6b, 0x0000, 0x6a72, + 0x0000, 0x0000, 0x0000, 0x6a73, 0x0000, 0x6a75, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6a76, 0x6a77, 0x6a7a, + 0x0000, 0x0000, 0x0000, 0x6a7b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6a83, 0x0000, 0x6a8c, 0x6a8e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6aa0, 0x6aa1, 0x6aa5, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6aa6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6ab0, + 0x6ab1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6ab6, 0x0000, 0x6ab8, 0x0000, + 0x6ac1, 0x0000, 0x6ac2, 0x6ac3, 0x0000, 0x6ac4, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6acc, 0x0000, 0x0000, 0x0000, 0x6ad4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6ad6, 0x0000, 0x6ad7, 0x0000, 0x0000, 0x0000, 0x0000, 0x6adb, 0x0000, + 0x0000, 0x6ade, 0x6adf, 0x6ae1, 0x0000, 0x0000, 0x0000, 0x6ae5, 0x0000, 0x6ae7, + 0x0000, 0x6af0, 0x6af2, 0x0000, 0x0000, 0x6af3, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6b04, 0x0000, 0x6b05, 0x6b0c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6b10, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b3d, 0x0000, 0x0000, 0x0000, + 0x6b40, 0x0000, 0x0000, 0x0000, 0x6b42, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6b43, 0x0000, 0x0000, 0x0000, 0x6b44, 0x0000, 0x0000, 0x6b45, + 0x0000, 0x6b49, 0x6b4b, 0x0000, 0x0000, 0x6b4d, 0x0000, 0x6b4e, 0x0000, 0x6b4f, + 0x0000, 0x6b55, 0x6b5a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b5c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b5d, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6b65, 0x0000, 0x6b66, 0x6b6e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b77, 0x6b8c, + 0x0000, 0x0000, 0x0000, 0x6b8d, 0x6b99, 0x0000, 0x0000, 0x0000, 0x6b9a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b9b, + 0x0000, 0x0000, 0x6b9d, 0x6b9e, 0x0000, 0x6b9f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6ba3, 0x0000, 0x0000, 0x6bb3, 0x0000, 0x6bb5, 0x6bb6, + 0x6bb7, 0x6bb9, 0x0000, 0x6bba, 0x0000, 0x0000, 0x6bbb, 0x6bc1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6bc2, 0x0000, 0x0000, 0x6bc4, 0x6bc5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6bcc, 0x0000, 0x0000, 0x6bd0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6bd8, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6bda, + 0x0000, 0x0000, 0x0000, 0x6be2, 0x0000, 0x0000, 0x6be4, 0x0000, 0x0000, 0x0000, + 0x6bef, 0x0000, 0x0000, 0x6bf0, 0x6bf2, 0x0000, 0x6bf4, 0x6bf6, 0x0000, 0x0000, + 0x0000, 0x6bfb, 0x0000, 0x6bfc, 0x6c01, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6c03, 0x6c0c, + 0x0000, 0x6c0d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6c0e, + 0x0000, 0x0000, 0x6c10, 0x0000, 0x6c11, 0x0000, 0x0000, 0x0000, 0x6c15, 0x0000, + 0x6c17, 0x0000, 0x0000, 0x0000, 0x6c19, 0x6c1a, 0x0000, 0x0000, 0x0000, 0x6c22, + 0x0000, 0x0000, 0x0000, 0x6c3f, 0x0000, 0x6c40, 0x6c41, 0x6c47, 0x6c48, 0x0000, + 0x0000, 0x6c50, 0x0000, 0x6c51, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6c53, 0x0000, 0x0000, 0x6c54, 0x0000, 0x6c55, 0x0000, + 0x6c5a, 0x0000, 0x0000, 0x0000, 0x6c5e, 0x0000, 0x0000, 0x0000, 0x6c5f, 0x6c60, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6c61, 0x6c62, 0x0000, 0x0000, + 0x0000, 0x6c63, 0x6c64, 0x6c67, 0x6c68, 0x0000, 0x0000, 0x0000, 0x6c78, 0x6c7a, + 0x0000, 0x0000, 0x0000, 0x6c7e, 0x6c7f, 0x0000, 0x6c80, 0x6c81, 0x0000, 0x0000, + 0x6c85, 0x0000, 0x6c88, 0x0000, 0x6c8a, 0x0000, 0x0000, 0x6c8f, 0x0000, 0x6c90, + 0x6c91, 0x6c9c, 0x0000, 0x6ca4, 0x6ca5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6ca6, 0x0000, 0x6cb1, 0x0000, 0x6cb3, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6cb4, 0x6cd5, 0x6cd6, 0x0000, 0x0000, 0x0000, 0x6cd8, 0x0000, + 0x0000, 0x0000, 0x6cd9, 0x6cec, 0x0000, 0x6cf1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6cf2, 0x0000, 0x6cf3, 0x0000, 0x0000, 0x0000, 0x6cf4, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6cf9, 0x6cfa, 0x0000, 0x0000, 0x6cfb, 0x0000, 0x0000, + 0x0000, 0x6cfd, 0x6d01, 0x0000, 0x0000, 0x6d10, 0x0000, 0x0000, 0x6d11, 0x0000, + 0x6d12, 0x0000, 0x0000, 0x0000, 0x6d1b, 0x6d1e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6d25, 0x0000, 0x6d26, 0x0000, + 0x6d29, 0x0000, 0x6d2b, 0x6d32, 0x0000, 0x0000, 0x0000, 0x0000, 0x6d38, 0x6d3b, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6d3c, 0x6d3d, + 0x0000, 0x0000, 0x0000, 0x6d3f, 0x0000, 0x6d41, 0x6d47, 0x0000, 0x6d48, 0x6d49, + 0x0000, 0x6d4d, 0x0000, 0x6d4f, 0x6d93, 0x6d94, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6d98, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6d9a, 0x6d9b, + 0x0000, 0x0000, 0x6d9d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6d9f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6da2, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6da5, 0x6da6, 0x6da8, 0x0000, 0x6da9, 0x0000, + 0x0000, 0x6daa, 0x0000, 0x0000, 0x0000, 0x0000, 0x6dab, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6dae, 0x0000, 0x0000, 0x0000, 0x0000, 0x6db5, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6db6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6db8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6dba, 0x0000, 0x6dc1, 0x6dd2, 0x6dd3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6dd4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6dd6, 0x0000, + 0x6de1, 0x0000, 0x6de3, 0x0000, 0x0000, 0x6de7, 0x0000, 0x0000, 0x0000, 0x6dec, + 0x6ded, 0x0000, 0x0000, 0x0000, 0x6df2, 0x0000, 0x0000, 0x0000, 0x0000, 0x6df8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6dfb, 0x6dfd, 0x6e01, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6e06, 0x0000, 0x6e07, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6e0c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6e0d, 0x0000, 0x0000, 0x6e0f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6e12, 0x6e1c, 0x0000, 0x6e1e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6e1f, 0x0000, 0x6e21, 0x6e2e, 0x0000, 0x0000, + 0x6e2f, 0x6e31, 0x0000, 0x6e33, 0x0000, 0x6e35, 0x0000, 0x0000, 0x0000, 0x6e37, + 0x6e38, 0x6e39, 0x0000, 0x6e3e, 0x0000, 0x6e3f, 0x6e41, 0x0000, 0x0000, 0x0000, + 0x6e42, 0x0000, 0x6e43, 0x6e45, 0x6e48, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6e4b, 0x0000, 0x6e51, 0x0000, 0x0000, 0x6e52, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6e53, 0x0000, 0x0000, 0x0000, 0x6e55, 0x0000, + 0x0000, 0x0000, 0x6e58, 0x6e5a, 0x0000, 0x6e5b, 0x6e5c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6e5d, 0x0000, 0x0000, 0x6e5e, 0x6e5f, 0x0000, 0x0000, + 0x6e60, 0x0000, 0x0000, 0x6e62, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6e63, + 0x0000, 0x0000, 0x6e64, 0x0000, 0x0000, 0x6e65, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6e66, 0x6e67, 0x0000, 0x0000, 0x6e68, 0x0000, 0x0000, 0x0000, 0x6e6a, 0x0000, + 0x6e6c, 0x6e6d, 0x0000, 0x6e6e, 0x6e70, 0x6e72, 0x0000, 0x6e75, 0x6e76, 0x0000, + 0x0000, 0x0000, 0x6e77, 0x0000, 0x6e78, 0x6e79, 0x6e7b, 0x0000, 0x6e84, 0x0000, + 0x6e86, 0x0000, 0x6e89, 0x0000, 0x0000, 0x0000, 0x0000, 0x6e8b, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6e8c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6e8d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6e8e, 0x6e8f, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6e90, 0x0000, 0x0000, 0x6e91, 0x0000, 0x6e98, 0x0000, 0x6e99, 0x6e9a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6e9b, 0x0000, 0x0000, 0x0000, + 0x6ea0, 0x6ea1, 0x0000, 0x0000, 0x6ea8, 0x0000, 0x0000, 0x0000, 0x6ea9, 0x6eb2, + 0x0000, 0x6eb3, 0x0000, 0x0000, 0x6eb8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6ebb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6ebc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6efb, 0x0000, + 0x6efc, 0x6efd, 0x0000, 0x6f00, 0x0000, 0x0000, 0x0000, 0x6f04, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6f05, 0x0000, 0x0000, 0x0000, 0x0000, 0x6f07, 0x0000, + 0x0000, 0x0000, 0x6f08, 0x0000, 0x0000, 0x6f0c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6f0d, 0x0000, 0x0000, 0x0000, 0x6f0f, 0x6f12, 0x0000, 0x6f2a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6f30, 0x0000, 0x0000, 0x0000, 0x0000, 0x6f31, 0x0000, 0x6f33, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6f37, 0x0000, 0x0000, 0x0000, 0x0000, 0x6f3a, + 0x0000, 0x6f40, 0x0000, 0x6f41, 0x0000, 0x0000, 0x6f45, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6f46, 0x6f48, 0x0000, 0x0000, 0x6f49, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6f4c, 0x0000, 0x0000, 0x0000, 0x6f4f, 0x0000, 0x6f51, 0x0000, 0x6f53, 0x0000, + 0x0000, 0x0000, 0x0000, 0x6f54, 0x0000, 0x0000, 0x6f56, 0x6f57, 0x0000, 0x0000, + 0x0000, 0x6f5c, 0x0000, 0x0000, 0x0000, 0x6f5e, 0x0000, 0x0000, 0x6f60, 0x6f61, + 0x6f62, 0x6f69, 0x0000, 0x6f6e, 0x0000, 0x6f6f, 0x6f70, 0x0000, 0x0000, 0x0000, + 0x0000, 0x6f71, 0x0000, 0x0000, 0x6f74, 0x0000, 0x0000, 0x6f79, 0x6f7a, 0x0000, + 0x0000, 0x0000, 0x6f7b, 0x0000, 0x6f84, 0x0000, 0x6f89, 0x6f8a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6f90, 0x6f93, 0x0000, 0x0000, 0x6f94, 0x0000, 0x0000, 0x0000, 0x0000, 0x6f95, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6f96, 0x6f98, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6f99, 0x0000, 0x0000, 0x0000, 0x6f9a, + 0x0000, 0x6f9c, 0x6f9d, 0x0000, 0x0000, 0x0000, 0x0000, 0x6f9f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6fa0, 0x6fa5, 0x6fac, 0x0000, 0x0000, 0x6fad, 0x0000, 0x0000, + 0x0000, 0x6fae, 0x6fb3, 0x0000, 0x6fb6, 0x0000, 0x0000, 0x6fb9, 0x0000, 0x0000, + 0x6fbd, 0x0000, 0x0000, 0x0000, 0x0000, 0x6fc6, 0x6fc7, 0x6fcb, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6fcc, 0x0000, 0x6fd2, 0x0000, 0x0000, 0x6fd4, + 0x0000, 0x6fd7, 0x0000, 0x6fd8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6fdb, 0x0000, 0x0000, 0x0000, 0x6fdd, 0x6fde, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6fdf, 0x0000, 0x6fe3, + 0x0000, 0x0000, 0x6fec, 0x0000, 0x0000, 0x0000, 0x6ff6, 0x0000, 0x6ffe, 0x6fff, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, + 0x7001, 0x7003, 0x7004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7013, 0x0000, 0x0000, 0x0000, 0x7017, 0x0000, 0x0000, 0x0000, 0x7018, 0x0000, + 0x7019, 0x701a, 0x0000, 0x7021, 0x0000, 0x7023, 0x7024, 0x7026, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7027, 0x7038, 0x0000, 0x0000, 0x0000, + 0x7040, 0x0000, 0x0000, 0x0000, 0x7041, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7042, 0x0000, 0x7043, 0x0000, 0x7045, 0x0000, + 0x0000, 0x7046, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x704d, 0x704e, 0x7050, 0x7052, 0x7054, 0x0000, 0x7055, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7057, 0x7058, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x705a, + 0x0000, 0x0000, 0x0000, 0x705c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x705e, 0x0000, 0x705f, 0x7060, 0x0000, 0x0000, 0x0000, 0x0000, 0x7061, 0x7062, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7063, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7064, + 0x0000, 0x7065, 0x0000, 0x706e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7070, 0x0000, 0x7071, 0x0000, 0x7072, 0x0000, 0x0000, 0x0000, 0x7073, 0x0000, + 0x0000, 0x0000, 0x707d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x707f, + 0x0000, 0x0000, 0x7081, 0x0000, 0x0000, 0x0000, 0x0000, 0x7082, 0x0000, 0x7085, + 0x0000, 0x0000, 0x7086, 0x0000, 0x0000, 0x7087, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7088, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x708a, + 0x708c, 0x0000, 0x0000, 0x7090, 0x7093, 0x0000, 0x0000, 0x7095, 0x0000, 0x709a, + 0x0000, 0x0000, 0x0000, 0x70aa, 0x70b4, 0x0000, 0x0000, 0x70b5, 0x0000, 0x70b6, + 0x70b7, 0x0000, 0x0000, 0x0000, 0x70b9, 0x0000, 0x0000, 0x0000, 0x70ba, 0x0000, + 0x70c3, 0x70c4, 0x70c5, 0x0000, 0x0000, 0x0000, 0x70ca, 0x70d0, 0x70d2, 0x70da, + 0x70dc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x70df, 0x0000, + 0x0000, 0x0000, 0x70e2, 0x70e3, 0x0000, 0x0000, 0x0000, 0x70e4, 0x0000, 0x0000, + 0x70e8, 0x0000, 0x70ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x70eb, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x70ec, 0x0000, 0x0000, 0x0000, 0x70ee, 0x0000, + 0x70f2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x70f3, 0x70f4, + 0x70f7, 0x0000, 0x0000, 0x70f8, 0x0000, 0x70f9, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x70fc, 0x0000, 0x0000, 0x0000, 0x0000, 0x70fe, + 0x7101, 0x0000, 0x0000, 0x0000, 0x7102, 0x0000, 0x7108, 0x0000, 0x710b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x710e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x711c, 0x0000, 0x0000, 0x0000, 0x7126, 0x0000, 0x0000, 0x0000, 0x0000, 0x7127, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7128, + 0x0000, 0x712b, 0x0000, 0x712f, 0x7130, 0x0000, 0x7136, 0x7137, 0x0000, 0x0000, + 0x7138, 0x713d, 0x7144, 0x7145, 0x7146, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7147, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7148, 0x0000, 0x7149, + 0x0000, 0x0000, 0x0000, 0x7151, 0x0000, 0x0000, 0x7153, 0x0000, 0x0000, 0x715d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7160, 0x0000, 0x7161, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7162, 0x0000, 0x0000, 0x0000, 0x716c, 0x0000, 0x0000, 0x0000, + 0x716d, 0x0000, 0x0000, 0x0000, 0x0000, 0x716e, 0x0000, 0x7175, 0x0000, 0x7177, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x717b, + 0x0000, 0x0000, 0x0000, 0x717e, 0x7180, 0x7186, 0x0000, 0x718e, 0x719a, 0x0000, + 0x0000, 0x0000, 0x719b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x719c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x719d, 0x71a0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x71a2, 0x71a9, 0x0000, 0x0000, 0x0000, 0x71af, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x71b1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x71b3, 0x0000, 0x71b5, 0x0000, 0x0000, 0x0000, 0x71bb, + 0x0000, 0x0000, 0x71c0, 0x0000, 0x0000, 0x71d2, 0x71d4, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x71e0, 0x0000, 0x71e8, 0x71f6, + 0x0000, 0x71f8, 0x0000, 0x0000, 0x71fc, 0x0000, 0x71fd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x722c, 0x0000, 0x0000, 0x722d, 0x0000, + 0x0000, 0x722e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7232, 0x0000, 0x0000, 0x0000, 0x7239, 0x0000, 0x723d, 0x0000, + 0x7240, 0x0000, 0x7242, 0x7248, 0x7260, 0x0000, 0x7262, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7265, 0x0000, 0x0000, 0x7266, 0x726b, 0x726c, 0x0000, 0x0000, + 0x0000, 0x0000, 0x726e, 0x0000, 0x726f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7270, 0x7271, 0x7272, 0x7274, 0x0000, 0x7276, 0x0000, 0x0000, 0x7278, 0x727b, + 0x0000, 0x7280, 0x0000, 0x0000, 0x0000, 0x728a, 0x0000, 0x0000, 0x728b, 0x0000, + 0x0000, 0x728c, 0x728e, 0x7290, 0x0000, 0x7297, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x729a, 0x729b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x729d, 0x729f, 0x0000, 0x0000, 0x0000, 0x0000, 0x72a0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x72a1, 0x0000, 0x0000, 0x0000, 0x0000, 0x72a2, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x72a3, 0x72a4, 0x72a5, 0x0000, 0x0000, 0x72aa, + 0x0000, 0x0000, 0x72ab, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x72ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x72b4, 0x0000, 0x72b5, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x72b6, 0x0000, 0x0000, 0x72b8, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x72c2, 0x0000, + 0x72c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x72ca, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x72cd, 0x0000, 0x0000, 0x0000, + 0x72ce, 0x0000, 0x0000, 0x72cf, 0x72d5, 0x0000, 0x72d6, 0x72e4, 0x72e6, 0x72ea, + 0x72eb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x72ec, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x72ef, 0x0000, 0x0000, 0x0000, + 0x72fb, 0x0000, 0x0000, 0x0000, 0x72fd, 0x0000, 0x0000, 0x72ff, 0x0000, 0x7301, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7303, 0x0000, 0x7306, 0x730a, 0x730c, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7310, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7315, 0x0000, 0x0000, 0x0000, 0x7318, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x731c, 0x0000, 0x7321, 0x0000, 0x0000, 0x0000, 0x732e, + 0x0000, 0x0000, 0x0000, 0x7332, 0x0000, 0x0000, 0x0000, 0x7333, 0x7334, 0x0000, + 0x0000, 0x7339, 0x0000, 0x0000, 0x0000, 0x733a, 0x0000, 0x733b, 0x0000, 0x733e, + 0x7341, 0x0000, 0x7345, 0x0000, 0x0000, 0x0000, 0x7346, 0x0000, 0x0000, 0x0000, + 0x7348, 0x0000, 0x0000, 0x0000, 0x734c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x734e, 0x0000, 0x734f, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7350, 0x7351, 0x7359, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x735a, 0x0000, 0x0000, 0x735b, 0x7362, 0x0000, 0x7364, 0x0000, + 0x0000, 0x0000, 0x7366, 0x0000, 0x7367, 0x7368, 0x736b, 0x0000, 0x0000, 0x736c, + 0x0000, 0x0000, 0x0000, 0x736d, 0x0000, 0x0000, 0x0000, 0x736e, 0x0000, 0x0000, + 0x7370, 0x0000, 0x0000, 0x0000, 0x0000, 0x7376, 0x7379, 0x0000, 0x737a, 0x737c, + 0x0000, 0x0000, 0x737d, 0x0000, 0x0000, 0x737e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x738a, 0x7390, 0x7392, 0x7397, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7399, 0x739a, 0x0000, 0x0000, 0x739d, 0x0000, + 0x0000, 0x73ad, 0x0000, 0x73ae, 0x0000, 0x73af, 0x0000, 0x0000, 0x0000, 0x0000, + 0x73b0, 0x73b1, 0x0000, 0x0000, 0x73b9, 0x0000, 0x0000, 0x0000, 0x73c0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x73c1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x73c2, 0x73c3, 0x73c5, 0x0000, 0x73c6, 0x0000, 0x73c9, 0x73cb, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x73cc, 0x0000, 0x73cd, 0x0000, + 0x73d1, 0x0000, 0x0000, 0x0000, 0x73d2, 0x0000, 0x73d5, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x73d8, 0x73db, 0x0000, 0x0000, 0x73dc, 0x0000, 0x0000, 0x0000, 0x73dd, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x73e0, 0x0000, 0x0000, 0x0000, 0x73e7, + 0x73e9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x73eb, 0x0000, + 0x73ed, 0x73ef, 0x0000, 0x0000, 0x73f4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x73f5, 0x0000, 0x0000, 0x0000, 0x73f7, 0x0000, 0x0000, 0x0000, 0x73f8, 0x0000, + 0x73f9, 0x73fa, 0x7404, 0x0000, 0x7405, 0x0000, 0x0000, 0x0000, 0x7406, 0x0000, + 0x740a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7418, 0x0000, + 0x7419, 0x0000, 0x741f, 0x0000, 0x7425, 0x7426, 0x0000, 0x7436, 0x7441, 0x0000, + 0x7443, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7444, 0x0000, 0x0000, 0x7445, + 0x0000, 0x0000, 0x0000, 0x744b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x744c, 0x0000, 0x0000, 0x0000, + 0x744d, 0x744e, 0x744f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x747e, 0x0000, 0x0000, 0x0000, 0x7480, 0x0000, + 0x7481, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7483, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7485, 0x0000, 0x7488, 0x748a, 0x0000, + 0x0000, 0x748b, 0x0000, 0x0000, 0x748d, 0x748e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7493, 0x0000, 0x0000, 0x0000, 0x0000, 0x7494, + 0x7495, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7499, 0x0000, 0x0000, 0x74ad, 0x74b0, 0x74c2, 0x74d1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x74d3, 0x74e1, 0x0000, 0x74e2, 0x0000, 0x0000, 0x74e3, 0x74e6, + 0x74f8, 0x74fa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x74fb, + 0x74fc, 0x0000, 0x0000, 0x0000, 0x74ff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7501, 0x0000, 0x0000, 0x7504, 0x0000, 0x7505, 0x0000, 0x0000, 0x750a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7513, 0x0000, 0x0000, 0x0000, 0x7514, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x751a, 0x0000, 0x751b, 0x7528, 0x7537, 0x7538, 0x753a, + 0x0000, 0x0000, 0x0000, 0x753d, 0x0000, 0x0000, 0x0000, 0x0000, 0x753e, 0x7540, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7541, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7547, 0x754f, 0x0000, + 0x0000, 0x7551, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7552, 0x0000, 0x7556, 0x0000, 0x7557, 0x0000, 0x7558, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7573, 0x7574, 0x0000, 0x0000, 0x0000, + 0x7575, 0x0000, 0x7578, 0x0000, 0x0000, 0x0000, 0x7579, 0x0000, 0x0000, 0x0000, + 0x0000, 0x757b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x757f, 0x0000, + 0x0000, 0x7580, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7582, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7584, + 0x758a, 0x0000, 0x0000, 0x758b, 0x0000, 0x0000, 0x0000, 0x0000, 0x7592, 0x75a6, + 0x0000, 0x75a7, 0x0000, 0x75a9, 0x75b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x75b3, 0x75b4, + 0x75b5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x75b7, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x75b8, + 0x0000, 0x0000, 0x75b9, 0x75ba, 0x0000, 0x0000, 0x0000, 0x75bb, 0x75c2, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x75c3, 0x0000, 0x0000, 0x75c4, 0x75c7, 0x0000, + 0x0000, 0x0000, 0x75d8, 0x0000, 0x75dc, 0x75dd, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x75e4, 0x75e5, 0x0000, 0x75f0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x75f2, 0x75f4, 0x0000, 0x0000, 0x75f7, + 0x0000, 0x0000, 0x75fa, 0x0000, 0x0000, 0x0000, 0x0000, 0x75fb, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7605, 0x0000, + 0x0000, 0x0000, 0x7608, 0x0000, 0x0000, 0x7609, 0x0000, 0x0000, 0x0000, 0x760a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x760b, 0x0000, 0x760c, 0x0000, 0x760e, 0x7613, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7617, 0x0000, 0x0000, 0x7619, 0x761b, + 0x0000, 0x0000, 0x0000, 0x0000, 0x761e, 0x0000, 0x7620, 0x7623, 0x7625, 0x0000, + 0x762a, 0x762c, 0x0000, 0x0000, 0x0000, 0x763d, 0x0000, 0x0000, 0x763f, 0x7640, + 0x0000, 0x0000, 0x0000, 0x7646, 0x7648, 0x0000, 0x0000, 0x764a, 0x0000, 0x764c, + 0x0000, 0x7656, 0x0000, 0x0000, 0x0000, 0x0000, 0x7657, 0x7658, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x765a, 0x765b, 0x765e, 0x7660, 0x7662, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x766c, 0x766d, 0x0000, 0x0000, 0x0000, 0x766e, + 0x0000, 0x0000, 0x0000, 0x766f, 0x0000, 0x7670, 0x7672, 0x7676, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7677, 0x0000, 0x767c, 0x768c, 0x768d, 0x0000, 0x0000, + 0x7694, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7695, + 0x0000, 0x7696, 0x0000, 0x7697, 0x7698, 0x0000, 0x0000, 0x769d, 0x769e, 0x76aa, + 0x0000, 0x0000, 0x0000, 0x0000, 0x76ab, 0x0000, 0x0000, 0x76ad, 0x0000, 0x76b1, + 0x0000, 0x76b4, 0x76bd, 0x0000, 0x0000, 0x0000, 0x76c1, 0x0000, 0x0000, 0x0000, + 0x0000, 0x76c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x76c4, 0x0000, 0x0000, + 0x76c5, 0x0000, 0x76c6, 0x76c8, 0x0000, 0x76c9, 0x0000, 0x76ca, 0x0000, 0x0000, + 0x0000, 0x76d1, 0x0000, 0x0000, 0x76d2, 0x76d3, 0x0000, 0x76d4, 0x0000, 0x76d8, + 0x0000, 0x0000, 0x0000, 0x76db, 0x76de, 0x76e0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x76e1, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x76e4, 0x0000, 0x76e5, 0x76e6, 0x0000, 0x76e9, 0x76ea, + 0x0000, 0x0000, 0x0000, 0x76ed, 0x0000, 0x0000, 0x0000, 0x0000, 0x76f4, 0x76f8, + 0x76f9, 0x0000, 0x0000, 0x0000, 0x76fa, 0x0000, 0x7700, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7703, 0x0000, 0x7705, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x770d, 0x0000, 0x0000, 0x7714, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7715, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7716, 0x7717, 0x7721, 0x7722, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7729, 0x0000, 0x772c, 0x0000, 0x0000, 0x0000, 0x772d, 0x772e, 0x0000, 0x7732, + 0x7734, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x773b, 0x0000, 0x773c, 0x0000, 0x773d, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7749, 0x0000, 0x0000, 0x774a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7759, 0x0000, 0x0000, 0x775b, 0x775c, 0x775e, 0x775f, 0x7760, 0x0000, 0x0000, + 0x7761, 0x0000, 0x7762, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7763, 0x776a, 0x776b, 0x0000, 0x777a, 0x777b, 0x0000, 0x0000, 0x777e, + 0x0000, 0x0000, 0x7782, 0x0000, 0x0000, 0x0000, 0x0000, 0x7793, 0x7794, 0x779f, + 0x77aa, 0x0000, 0x0000, 0x77ac, 0x77b0, 0x77bf, 0x77c0, 0x0000, 0x77c1, 0x0000, + 0x0000, 0x77c2, 0x77cd, 0x0000, 0x77ce, 0x0000, 0x77d4, 0x77d6, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x77d7, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x77e7, 0x0000, 0x0000, + 0x77ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x77ec, 0x0000, 0x0000, 0x0000, 0x0000, + 0x77ed, 0x0000, 0x77ee, 0x77ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x77f3, 0x0000, + 0x0000, 0x0000, 0x77f5, 0x0000, 0x0000, 0x77f6, 0x77ff, 0x7809, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x780b, 0x0000, 0x0000, + 0x780d, 0x0000, 0x0000, 0x0000, 0x780e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7810, 0x7811, 0x0000, 0x0000, 0x0000, 0x7814, 0x0000, 0x0000, 0x0000, 0x7817, + 0x0000, 0x781a, 0x0000, 0x781b, 0x781c, 0x0000, 0x0000, 0x781f, 0x7820, 0x7821, + 0x0000, 0x0000, 0x0000, 0x7822, 0x0000, 0x0000, 0x7828, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x782b, 0x0000, 0x782c, 0x0000, 0x0000, 0x782e, + 0x0000, 0x7831, 0x7832, 0x7833, 0x7836, 0x7839, 0x0000, 0x0000, 0x783b, 0x783c, + 0x783d, 0x0000, 0x0000, 0x0000, 0x0000, 0x7846, 0x0000, 0x0000, 0x0000, 0x7848, + 0x0000, 0x0000, 0x0000, 0x0000, 0x785a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x785c, 0x7863, 0x0000, 0x0000, 0x7867, 0x7868, 0x0000, 0x7869, + 0x0000, 0x786b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x786c, 0x0000, + 0x0000, 0x786e, 0x0000, 0x0000, 0x0000, 0x7872, 0x0000, 0x7873, 0x0000, 0x7875, + 0x7876, 0x0000, 0x787d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x787e, 0x787f, + 0x0000, 0x0000, 0x7881, 0x0000, 0x7883, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7884, 0x788a, 0x0000, 0x0000, 0x788b, 0x0000, 0x7891, 0x0000, 0x0000, 0x7892, + 0x0000, 0x0000, 0x7894, 0x0000, 0x0000, 0x7895, 0x0000, 0x0000, 0x0000, 0x78a1, + 0x78a3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x78a9, 0x0000, 0x78ab, 0x0000, + 0x0000, 0x0000, 0x0000, 0x78ae, 0x0000, 0x78af, 0x0000, 0x78b1, 0x0000, 0x78b2, + 0x0000, 0x0000, 0x0000, 0x78b8, 0x78ba, 0x0000, 0x78bd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x78be, 0x0000, 0x0000, 0x0000, 0x78c3, 0x78d5, 0x78de, + 0x0000, 0x0000, 0x0000, 0x0000, 0x78df, 0x0000, 0x0000, 0x78e1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x78e2, 0x0000, 0x0000, 0x78e3, 0x0000, 0x0000, + 0x78eb, 0x78ec, 0x0000, 0x0000, 0x78f0, 0x0000, 0x0000, 0x78f1, 0x78f2, 0x78f6, + 0x0000, 0x0000, 0x78f9, 0x78fe, 0x0000, 0x0000, 0x0000, 0x7900, 0x0000, 0x0000, + 0x7901, 0x0000, 0x7902, 0x7906, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7912, 0x7913, 0x7916, 0x0000, 0x7918, 0x0000, 0x0000, 0x7919, 0x0000, + 0x0000, 0x791b, 0x791d, 0x0000, 0x0000, 0x791e, 0x7923, 0x0000, 0x0000, 0x7926, + 0x0000, 0x7928, 0x0000, 0x0000, 0x0000, 0x0000, 0x792a, 0x0000, 0x0000, 0x792c, + 0x792f, 0x7930, 0x7931, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7933, 0x7934, 0x7935, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7938, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x793c, 0x793d, + 0x793e, 0x0000, 0x0000, 0x0000, 0x7941, 0x7943, 0x7945, 0x0000, 0x7947, 0x0000, + 0x0000, 0x0000, 0x7948, 0x0000, 0x7949, 0x0000, 0x0000, 0x0000, 0x794d, 0x794e, + 0x794f, 0x0000, 0x0000, 0x7957, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x795a, + 0x0000, 0x795c, 0x795f, 0x0000, 0x0000, 0x0000, 0x7960, 0x7961, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7963, 0x0000, 0x0000, 0x7964, 0x0000, 0x0000, 0x0000, 0x7965, + 0x7967, 0x0000, 0x7968, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x796f, 0x0000, 0x79a6, 0x0000, 0x79a8, 0x0000, 0x0000, + 0x79a9, 0x79aa, 0x79ab, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x79ad, 0x0000, 0x79af, + 0x79b0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x79ba, 0x79c3, + 0x79c6, 0x79c7, 0x0000, 0x0000, 0x0000, 0x79c8, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x79cb, 0x0000, 0x0000, 0x0000, 0x79d2, 0x0000, 0x0000, + 0x0000, 0x79d8, 0x79db, 0x0000, 0x0000, 0x79dc, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x79de, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x79df, 0x0000, 0x0000, 0x0000, 0x79e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x79eb, + 0x79ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x79ff, 0x0000, 0x7a00, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a01, 0x7a04, + 0x7a15, 0x0000, 0x7a16, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a17, + 0x0000, 0x0000, 0x7a19, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7a1a, 0x7a1b, 0x0000, 0x0000, 0x7a1c, 0x0000, 0x7a1d, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7a1e, 0x7a1f, 0x0000, 0x0000, 0x7a20, 0x0000, + 0x7a22, 0x0000, 0x7a23, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a31, 0x0000, + 0x7a32, 0x0000, 0x7a34, 0x0000, 0x0000, 0x7a35, 0x7a37, 0x7a38, 0x0000, 0x0000, + 0x7a3a, 0x0000, 0x0000, 0x0000, 0x7a3c, 0x7a3f, 0x0000, 0x7a43, 0x0000, 0x7a44, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a46, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7a47, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a48, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7a49, 0x7a4c, 0x7a4d, 0x7a53, 0x0000, 0x7a55, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7a5b, 0x0000, 0x7a5c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7a5d, 0x7a5f, 0x0000, 0x0000, 0x7a63, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x7a65, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a68, 0x0000, + 0x0000, 0x7a69, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a6a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7a6b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a6e, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7a71, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7a73, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7a74, 0x0000, 0x0000, 0x7a76, 0x7a77, 0x0000, 0x7a78, 0x0000, 0x0000, 0x7a7a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7a7b, 0x0000, 0x0000, 0x7a7c, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7a83, 0x0000, + 0x7a8c, 0x0000, 0x0000, 0x7a8d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7a90, 0x0000, 0x7a9c, 0x0000, 0x7a9d, 0x0000, 0x7aa0, + 0x0000, 0x7aa9, 0x0000, 0x7aad, 0x7aaf, 0x7ab0, 0x0000, 0x7ab1, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7ab5, 0x7ab7, 0x0000, 0x0000, 0x0000, 0x7ab8, + 0x7aba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7abe, 0x7abf, 0x0000, + 0x0000, 0x7ac0, 0x0000, 0x7ac1, 0x7ac8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7ac9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7aca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7acb, 0x0000, 0x0000, 0x0000, 0x0000, 0x7ace, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7ad2, 0x0000, 0x7ad4, 0x0000, 0x7ad8, 0x0000, + 0x0000, 0x7adb, 0x0000, 0x0000, 0x0000, 0x0000, 0x7adc, 0x0000, 0x7ae5, 0x7ae9, + 0x0000, 0x0000, 0x7aea, 0x0000, 0x0000, 0x7aeb, 0x0000, 0x0000, 0x7aec, 0x0000, + 0x0000, 0x0000, 0x7aed, 0x7af1, 0x0000, 0x7af4, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7b01, 0x7b02, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b04, + 0x7b05, 0x7b06, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b0d, 0x7b10, 0x7b11, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b15, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7b16, 0x0000, 0x0000, 0x7b17, 0x0000, 0x0000, 0x7b19, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b1a, + 0x0000, 0x7b22, 0x7b30, 0x7b33, 0x7b34, 0x0000, 0x7b35, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7b3a, 0x7b41, 0x7b47, 0x0000, 0x0000, 0x0000, 0x7b48, + 0x7b49, 0x7b4a, 0x0000, 0x0000, 0x7b4c, 0x7b4f, 0x0000, 0x7b51, 0x0000, 0x0000, + 0x0000, 0x7b52, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b53, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x7b54, 0x7b56, 0x7b5c, 0x7b5d, 0x0000, 0x0000, 0x7b5e, + 0x7b60, 0x7b61, 0x7b62, 0x7b6b, 0x0000, 0x7b6c, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7b6d, 0x0000, 0x7b6f, 0x0000, 0x7b70, 0x7b71, 0x0000, 0x0000, 0x7b73, 0x7b74, + 0x0000, 0x0000, 0x7b78, 0x7b7a, 0x0000, 0x0000, 0x0000, 0x7b7b, 0x0000, 0x7b7f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7b80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x7b81, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b82, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7b85, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7b86, 0x7b89, 0x0000, 0x0000, 0x0000, 0x0000, + 0x7b8b, 0x0000, 0x7b99, 0x0000, 0x0000, 0x7b9a, 0x0000, 0x0000, 0x7b9b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7b9c, 0x0000, + 0x7b9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x7ba0, 0x0000, 0x0000, 0x0000, 0x7ba4, + 0x0000, 0x0000, 0x0000, 0x7ba9, 0x0000, 0x0000, 0x7bbc, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x7bc9, 0x7bcb, 0x7bcc, 0x0000, 0x7bce, 0x0000, + 0x0000, 0x0000, 0x7bd0, 0x0000, 0x7bd6, 0x0000, 0x7bd7, 0x0000}; -static const DictWord kStaticDictionaryWords[] = { - { 8, 0, 1002 }, { 8, 0, 1015 }, { 4, 0, 683 }, { 4, 10, 325 }, - { 10, 10, 125 }, { 7, 11, 572 }, { 9, 11, 592 }, { 11, 11, 680 }, - { 11, 11, 842 }, { 11, 11, 924 }, { 12, 11, 356 }, { 12, 11, 550 }, - { 13, 11, 317 }, { 13, 11, 370 }, { 13, 11, 469 }, { 13, 11, 471 }, - { 14, 11, 397 }, { 18, 11, 69 }, { 18, 11, 145 }, { 6, 0, 1265 }, - { 8, 11, 534 }, { 6, 0, 1431 }, { 11, 0, 138 }, { 12, 0, 40 }, - { 4, 0, 155 }, { 7, 0, 1689 }, { 4, 10, 718 }, { 7, 10, 1216 }, - { 4, 0, 245 }, { 5, 0, 151 }, { 5, 0, 741 }, { 6, 0, 1147 }, - { 7, 0, 498 }, { 7, 0, 870 }, { 7, 0, 1542 }, { 12, 0, 213 }, - { 14, 0, 36 }, { 14, 0, 391 }, { 17, 0, 111 }, { 18, 0, 6 }, - { 18, 0, 46 }, { 18, 0, 151 }, { 19, 0, 36 }, { 20, 0, 32 }, - { 20, 0, 56 }, { 20, 0, 69 }, { 20, 0, 102 }, { 21, 0, 4 }, - { 22, 0, 8 }, { 22, 0, 10 }, { 22, 0, 14 }, { 22, 0, 31 }, - { 4, 0, 624 }, { 7, 0, 1752 }, { 5, 10, 124 }, { 5, 10, 144 }, - { 6, 10, 548 }, { 7, 10, 15 }, { 7, 10, 153 }, { 9, 10, 629 }, - { 6, 0, 503 }, { 9, 0, 586 }, { 13, 0, 468 }, { 14, 0, 66 }, - { 16, 0, 58 }, { 7, 10, 1531 }, { 8, 10, 416 }, { 9, 10, 275 }, - { 10, 10, 100 }, { 11, 10, 658 }, { 11, 10, 979 }, { 12, 10, 86 }, - { 14, 10, 207 }, { 15, 10, 20 }, { 15, 10, 25 }, { 5, 0, 603 }, - { 7, 0, 1212 }, { 9, 0, 565 }, { 14, 0, 301 }, { 5, 10, 915 }, - { 6, 10, 1783 }, { 7, 10, 211 }, { 7, 10, 1353 }, { 9, 10, 83 }, - { 10, 10, 376 }, { 10, 10, 431 }, { 11, 10, 543 }, { 12, 10, 664 }, - { 13, 10, 280 }, { 13, 10, 428 }, { 14, 10, 128 }, { 17, 10, 52 }, - { 17, 10, 81 }, { 4, 0, 492 }, { 5, 0, 451 }, { 7, 0, 835 }, - { 13, 0, 70 }, { 4, 0, 539 }, { 7, 11, 748 }, { 11, 11, 700 }, - { 7, 11, 1517 }, { 11, 11, 597 }, { 14, 11, 76 }, { 14, 11, 335 }, - { 20, 11, 33 }, { 6, 0, 113 }, { 7, 0, 436 }, { 4, 10, 338 }, - { 5, 10, 400 }, { 8, 0, 718 }, { 5, 11, 127 }, { 5, 11, 418 }, - { 6, 0, 1505 }, { 7, 0, 520 }, { 6, 11, 198 }, { 11, 10, 892 }, - { 12, 11, 83 }, { 4, 10, 221 }, { 5, 10, 659 }, { 5, 10, 989 }, - { 7, 10, 697 }, { 7, 10, 1211 }, { 10, 10, 284 }, { 7, 0, 1070 }, - { 5, 11, 276 }, { 6, 11, 55 }, { 7, 11, 1369 }, { 6, 0, 1515 }, - { 6, 11, 1752 }, { 8, 11, 726 }, { 10, 10, 507 }, { 15, 0, 78 }, - { 4, 10, 188 }, { 7, 10, 805 }, { 5, 10, 884 }, { 11, 10, 991 }, - { 5, 11, 764 }, { 6, 10, 1653 }, { 6, 11, 309 }, { 7, 11, 331 }, - { 10, 11, 550 }, { 7, 11, 1861 }, { 4, 11, 348 }, { 7, 11, 986 }, - { 7, 11, 1573 }, { 12, 0, 610 }, { 13, 0, 431 }, { 16, 0, 59 }, - { 9, 11, 799 }, { 12, 10, 166 }, { 6, 0, 1530 }, { 4, 0, 750 }, - { 4, 0, 307 }, { 5, 0, 964 }, { 6, 11, 194 }, { 7, 11, 133 }, - { 10, 11, 493 }, { 10, 11, 570 }, { 11, 11, 664 }, { 5, 11, 24 }, - { 5, 11, 569 }, { 6, 11, 3 }, { 6, 11, 119 }, { 6, 11, 143 }, - { 6, 11, 440 }, { 7, 11, 295 }, { 7, 11, 599 }, { 7, 11, 1686 }, - { 7, 11, 1854 }, { 8, 11, 424 }, { 9, 11, 43 }, { 9, 11, 584 }, - { 9, 11, 760 }, { 10, 11, 148 }, { 10, 11, 328 }, { 11, 11, 159 }, - { 11, 11, 253 }, { 11, 11, 506 }, { 12, 11, 487 }, { 12, 11, 531 }, - { 16, 11, 33 }, { 8, 10, 760 }, { 5, 11, 14 }, { 5, 11, 892 }, - { 6, 11, 283 }, { 7, 11, 234 }, { 8, 11, 537 }, { 7, 11, 1251 }, - { 4, 11, 126 }, { 8, 11, 635 }, { 19, 11, 34 }, { 4, 11, 316 }, - { 7, 11, 1561 }, { 6, 0, 999 }, { 6, 0, 1310 }, { 9, 11, 861 }, - { 4, 11, 64 }, { 5, 11, 352 }, { 5, 11, 720 }, { 6, 11, 368 }, - { 11, 11, 359 }, { 4, 0, 75 }, { 5, 0, 180 }, { 6, 0, 500 }, - { 7, 0, 58 }, { 7, 0, 710 }, { 10, 0, 645 }, { 8, 10, 770 }, - { 5, 0, 649 }, { 6, 0, 276 }, { 7, 0, 282 }, { 7, 0, 879 }, - { 7, 0, 924 }, { 8, 0, 459 }, { 9, 0, 599 }, { 9, 0, 754 }, - { 11, 0, 574 }, { 12, 0, 128 }, { 12, 0, 494 }, { 13, 0, 52 }, - { 13, 0, 301 }, { 15, 0, 30 }, { 15, 0, 132 }, { 4, 0, 200 }, - { 4, 10, 89 }, { 5, 10, 489 }, { 6, 10, 315 }, { 7, 10, 553 }, - { 7, 10, 1745 }, { 10, 10, 243 }, { 7, 11, 1050 }, { 7, 0, 1621 }, - { 6, 10, 1658 }, { 9, 10, 3 }, { 10, 10, 154 }, { 11, 10, 641 }, - { 13, 10, 85 }, { 13, 10, 201 }, { 13, 10, 346 }, { 6, 11, 175 }, - { 9, 11, 289 }, { 5, 11, 432 }, { 5, 11, 913 }, { 6, 0, 225 }, - { 9, 0, 211 }, { 7, 0, 718 }, { 8, 0, 687 }, { 11, 0, 374 }, - { 4, 10, 166 }, { 5, 10, 505 }, { 9, 0, 110 }, { 6, 10, 1670 }, - { 8, 0, 58 }, { 9, 0, 724 }, { 11, 0, 809 }, { 13, 0, 113 }, - { 17, 0, 72 }, { 6, 0, 345 }, { 7, 0, 1247 }, { 16, 11, 82 }, - { 5, 11, 931 }, { 6, 11, 1698 }, { 8, 0, 767 }, { 8, 0, 803 }, - { 9, 0, 301 }, { 9, 0, 903 }, { 11, 0, 203 }, { 6, 0, 1154 }, - { 7, 0, 1949 }, { 8, 0, 674 }, { 6, 0, 259 }, { 7, 0, 1275 }, - { 5, 11, 774 }, { 6, 11, 1637 }, { 6, 11, 1686 }, { 6, 11, 1751 }, - { 6, 0, 1231 }, { 7, 10, 445 }, { 8, 10, 307 }, { 8, 10, 704 }, - { 10, 10, 41 }, { 10, 10, 439 }, { 11, 10, 237 }, { 11, 10, 622 }, - { 12, 10, 201 }, { 8, 0, 254 }, { 6, 11, 260 }, { 7, 11, 1484 }, - { 11, 0, 277 }, { 7, 10, 1977 }, { 4, 10, 189 }, { 5, 10, 713 }, - { 6, 11, 573 }, { 8, 10, 57 }, { 10, 10, 371 }, { 4, 10, 552 }, - { 6, 11, 344 }, { 5, 0, 248 }, { 9, 0, 800 }, { 10, 0, 693 }, - { 11, 0, 482 }, { 11, 0, 734 }, { 11, 0, 789 }, { 6, 11, 240 }, - { 4, 0, 116 }, { 5, 0, 95 }, { 5, 0, 445 }, { 7, 0, 1688 }, - { 8, 0, 29 }, { 9, 0, 272 }, { 11, 0, 509 }, { 11, 0, 915 }, - { 4, 11, 292 }, { 4, 11, 736 }, { 5, 11, 871 }, { 6, 11, 171 }, - { 6, 11, 1689 }, { 7, 11, 1324 }, { 7, 11, 1944 }, { 9, 11, 415 }, - { 9, 11, 580 }, { 14, 11, 230 }, { 18, 11, 68 }, { 7, 0, 490 }, - { 13, 0, 100 }, { 15, 0, 75 }, { 7, 0, 1641 }, { 5, 0, 543 }, - { 7, 11, 209 }, { 8, 11, 661 }, { 10, 11, 42 }, { 11, 11, 58 }, - { 12, 11, 58 }, { 12, 11, 118 }, { 13, 11, 32 }, { 5, 0, 181 }, - { 8, 0, 41 }, { 6, 11, 63 }, { 7, 11, 920 }, { 5, 0, 657 }, - { 5, 11, 793 }, { 10, 0, 709 }, { 7, 0, 25 }, { 8, 0, 202 }, - { 10, 0, 536 }, { 5, 11, 665 }, { 7, 10, 1788 }, { 17, 10, 49 }, - { 9, 0, 423 }, { 12, 0, 89 }, { 5, 11, 67 }, { 6, 11, 62 }, - { 6, 11, 374 }, { 7, 11, 1391 }, { 8, 0, 113 }, { 9, 0, 877 }, - { 10, 0, 554 }, { 11, 0, 83 }, { 12, 0, 136 }, { 19, 0, 109 }, - { 9, 11, 790 }, { 12, 11, 47 }, { 10, 10, 661 }, { 4, 0, 963 }, - { 10, 0, 927 }, { 14, 0, 442 }, { 7, 10, 1945 }, { 5, 0, 976 }, - { 4, 0, 206 }, { 4, 11, 391 }, { 7, 11, 1169 }, { 6, 0, 2002 }, - { 6, 0, 696 }, { 6, 0, 1008 }, { 6, 0, 1170 }, { 4, 11, 271 }, - { 7, 0, 13 }, { 8, 0, 226 }, { 10, 0, 537 }, { 11, 0, 570 }, - { 11, 0, 605 }, { 11, 0, 799 }, { 11, 0, 804 }, { 12, 0, 85 }, - { 12, 0, 516 }, { 12, 0, 623 }, { 13, 0, 112 }, { 13, 0, 361 }, - { 14, 0, 77 }, { 14, 0, 78 }, { 17, 0, 28 }, { 19, 0, 110 }, - { 12, 11, 314 }, { 4, 0, 769 }, { 6, 0, 1544 }, { 4, 0, 551 }, - { 9, 0, 678 }, { 5, 10, 84 }, { 6, 10, 163 }, { 9, 0, 57 }, - { 9, 0, 459 }, { 10, 0, 425 }, { 11, 0, 119 }, { 12, 0, 184 }, - { 12, 0, 371 }, { 13, 0, 358 }, { 17, 0, 51 }, { 5, 0, 188 }, - { 5, 0, 814 }, { 8, 0, 10 }, { 9, 0, 421 }, { 9, 0, 729 }, - { 10, 0, 609 }, { 11, 0, 689 }, { 4, 11, 253 }, { 5, 10, 410 }, - { 5, 11, 544 }, { 7, 11, 300 }, { 9, 11, 340 }, { 6, 0, 624 }, - { 10, 11, 321 }, { 7, 0, 1941 }, { 18, 0, 130 }, { 5, 10, 322 }, - { 8, 10, 186 }, { 9, 10, 262 }, { 10, 10, 187 }, { 14, 10, 208 }, - { 5, 11, 53 }, { 5, 11, 541 }, { 6, 11, 94 }, { 6, 11, 499 }, - { 7, 11, 230 }, { 11, 11, 321 }, { 5, 10, 227 }, { 4, 0, 378 }, - { 4, 11, 920 }, { 5, 11, 25 }, { 5, 11, 790 }, { 6, 11, 457 }, - { 7, 11, 853 }, { 9, 0, 269 }, { 4, 0, 528 }, { 6, 0, 1146 }, - { 7, 10, 1395 }, { 8, 10, 486 }, { 9, 10, 236 }, { 9, 10, 878 }, - { 10, 10, 218 }, { 11, 10, 95 }, { 19, 10, 17 }, { 19, 10, 31 }, - { 7, 10, 2043 }, { 8, 10, 672 }, { 13, 10, 448 }, { 6, 0, 1105 }, - { 6, 0, 1616 }, { 6, 11, 1765 }, { 12, 11, 163 }, { 5, 10, 412 }, - { 5, 11, 822 }, { 4, 11, 634 }, { 6, 0, 656 }, { 6, 11, 1730 }, - { 6, 0, 1940 }, { 5, 0, 104 }, { 6, 0, 173 }, { 7, 0, 1631 }, - { 8, 10, 562 }, { 6, 11, 36 }, { 7, 11, 658 }, { 8, 11, 454 }, - { 19, 11, 86 }, { 5, 0, 457 }, { 6, 10, 1771 }, { 7, 0, 810 }, - { 8, 0, 138 }, { 8, 0, 342 }, { 9, 0, 84 }, { 10, 0, 193 }, - { 11, 0, 883 }, { 12, 0, 359 }, { 9, 0, 620 }, { 7, 10, 1190 }, - { 9, 10, 132 }, { 7, 11, 975 }, { 9, 11, 789 }, { 6, 0, 95 }, - { 6, 0, 1934 }, { 8, 0, 967 }, { 13, 11, 335 }, { 6, 0, 406 }, - { 10, 0, 409 }, { 10, 0, 447 }, { 11, 0, 44 }, { 12, 0, 100 }, - { 4, 10, 317 }, { 7, 10, 1279 }, { 4, 0, 477 }, { 6, 0, 1268 }, - { 6, 0, 1941 }, { 8, 0, 944 }, { 5, 10, 63 }, { 5, 10, 509 }, - { 4, 0, 629 }, { 4, 11, 104 }, { 4, 0, 246 }, { 5, 0, 375 }, - { 6, 0, 1636 }, { 4, 10, 288 }, { 7, 11, 1614 }, { 9, 0, 49 }, - { 10, 0, 774 }, { 8, 10, 89 }, { 8, 10, 620 }, { 11, 10, 628 }, - { 12, 10, 322 }, { 15, 10, 124 }, { 4, 0, 282 }, { 7, 0, 1034 }, - { 11, 0, 398 }, { 11, 0, 634 }, { 12, 0, 1 }, { 12, 0, 79 }, - { 12, 0, 544 }, { 14, 0, 237 }, { 17, 0, 10 }, { 18, 0, 20 }, - { 4, 0, 824 }, { 7, 11, 45 }, { 9, 11, 542 }, { 9, 11, 566 }, - { 10, 11, 728 }, { 5, 0, 118 }, { 5, 0, 499 }, { 6, 0, 476 }, - { 6, 0, 665 }, { 6, 0, 1176 }, { 6, 0, 1196 }, { 7, 0, 600 }, - { 7, 0, 888 }, { 7, 0, 1096 }, { 7, 0, 296 }, { 7, 0, 596 }, - { 8, 0, 560 }, { 8, 0, 586 }, { 9, 0, 612 }, { 11, 0, 304 }, - { 12, 0, 46 }, { 13, 0, 89 }, { 14, 0, 112 }, { 17, 0, 122 }, - { 5, 0, 894 }, { 6, 0, 1772 }, { 9, 0, 1009 }, { 10, 10, 120 }, - { 5, 11, 533 }, { 7, 11, 755 }, { 10, 11, 780 }, { 23, 10, 1 }, - { 6, 0, 1474 }, { 7, 11, 87 }, { 14, 11, 288 }, { 11, 0, 366 }, - { 9, 10, 461 }, { 7, 11, 988 }, { 7, 11, 1939 }, { 9, 11, 64 }, - { 9, 11, 502 }, { 12, 11, 7 }, { 12, 11, 34 }, { 13, 11, 12 }, - { 13, 11, 234 }, { 19, 11, 77 }, { 7, 0, 1599 }, { 7, 0, 1723 }, - { 8, 0, 79 }, { 8, 0, 106 }, { 8, 0, 190 }, { 8, 0, 302 }, - { 8, 0, 383 }, { 8, 0, 713 }, { 9, 0, 119 }, { 9, 0, 233 }, - { 9, 0, 419 }, { 9, 0, 471 }, { 10, 0, 181 }, { 10, 0, 406 }, - { 11, 0, 57 }, { 11, 0, 85 }, { 11, 0, 120 }, { 11, 0, 177 }, - { 11, 0, 296 }, { 11, 0, 382 }, { 11, 0, 454 }, { 11, 0, 758 }, - { 11, 0, 999 }, { 12, 0, 27 }, { 12, 0, 98 }, { 12, 0, 131 }, - { 12, 0, 245 }, { 12, 0, 312 }, { 12, 0, 446 }, { 12, 0, 454 }, - { 13, 0, 25 }, { 13, 0, 98 }, { 13, 0, 426 }, { 13, 0, 508 }, - { 14, 0, 70 }, { 14, 0, 163 }, { 14, 0, 272 }, { 14, 0, 277 }, - { 14, 0, 370 }, { 15, 0, 95 }, { 15, 0, 138 }, { 15, 0, 167 }, - { 17, 0, 38 }, { 20, 0, 96 }, { 7, 10, 1346 }, { 10, 0, 200 }, - { 19, 0, 2 }, { 23, 0, 22 }, { 7, 11, 141 }, { 6, 10, 85 }, - { 6, 0, 1759 }, { 10, 0, 372 }, { 17, 0, 16 }, { 8, 0, 943 }, - { 4, 11, 619 }, { 11, 11, 88 }, { 5, 11, 246 }, { 8, 11, 189 }, - { 9, 11, 355 }, { 9, 11, 512 }, { 10, 11, 124 }, { 10, 11, 453 }, - { 11, 11, 143 }, { 11, 11, 416 }, { 11, 11, 859 }, { 13, 11, 341 }, - { 5, 0, 258 }, { 6, 0, 719 }, { 6, 0, 1798 }, { 6, 0, 1839 }, - { 8, 0, 900 }, { 10, 0, 874 }, { 10, 0, 886 }, { 12, 0, 698 }, - { 12, 0, 732 }, { 12, 0, 770 }, { 16, 0, 106 }, { 18, 0, 163 }, - { 18, 0, 170 }, { 18, 0, 171 }, { 24, 0, 20 }, { 9, 0, 707 }, - { 11, 0, 326 }, { 11, 0, 339 }, { 12, 0, 423 }, { 12, 0, 502 }, - { 20, 0, 62 }, { 9, 11, 707 }, { 11, 11, 326 }, { 11, 11, 339 }, - { 12, 11, 423 }, { 12, 11, 502 }, { 20, 11, 62 }, { 5, 0, 30 }, - { 7, 0, 495 }, { 8, 0, 134 }, { 9, 0, 788 }, { 12, 0, 438 }, - { 5, 11, 678 }, { 5, 10, 279 }, { 6, 10, 235 }, { 7, 10, 468 }, - { 8, 10, 446 }, { 9, 10, 637 }, { 10, 10, 717 }, { 11, 10, 738 }, - { 12, 10, 514 }, { 5, 11, 35 }, { 6, 11, 287 }, { 7, 11, 862 }, - { 7, 11, 1886 }, { 10, 11, 179 }, { 7, 0, 1948 }, { 7, 0, 2004 }, - { 4, 11, 517 }, { 5, 10, 17 }, { 6, 10, 371 }, { 9, 10, 528 }, - { 4, 0, 115 }, { 5, 0, 669 }, { 6, 0, 407 }, { 8, 0, 311 }, - { 11, 0, 10 }, { 13, 0, 5 }, { 9, 0, 381 }, { 5, 0, 50 }, - { 6, 0, 439 }, { 7, 0, 780 }, { 7, 0, 1040 }, { 8, 11, 667 }, - { 11, 11, 403 }, { 18, 11, 83 }, { 5, 0, 1 }, { 6, 0, 81 }, - { 10, 0, 520 }, { 6, 0, 738 }, { 5, 0, 482 }, { 8, 0, 98 }, - { 9, 0, 172 }, { 10, 0, 360 }, { 10, 0, 700 }, { 10, 0, 822 }, - { 11, 0, 302 }, { 11, 0, 778 }, { 12, 0, 50 }, { 12, 0, 127 }, - { 12, 0, 396 }, { 13, 0, 62 }, { 13, 0, 328 }, { 14, 0, 122 }, - { 19, 0, 72 }, { 9, 11, 157 }, { 10, 11, 131 }, { 12, 11, 72 }, - { 7, 11, 714 }, { 7, 11, 539 }, { 5, 0, 2 }, { 6, 0, 512 }, - { 7, 0, 797 }, { 7, 0, 1494 }, { 8, 0, 253 }, { 8, 0, 589 }, - { 9, 0, 77 }, { 10, 0, 1 }, { 10, 0, 129 }, { 10, 0, 225 }, - { 11, 0, 118 }, { 11, 0, 226 }, { 11, 0, 251 }, { 11, 0, 430 }, - { 11, 0, 701 }, { 11, 0, 974 }, { 11, 0, 982 }, { 12, 0, 64 }, - { 12, 0, 260 }, { 12, 0, 488 }, { 12, 0, 690 }, { 5, 11, 394 }, - { 7, 11, 367 }, { 7, 11, 487 }, { 7, 11, 857 }, { 7, 11, 1713 }, - { 8, 11, 246 }, { 9, 11, 537 }, { 10, 11, 165 }, { 12, 11, 219 }, - { 12, 11, 561 }, { 8, 0, 557 }, { 5, 10, 779 }, { 5, 10, 807 }, - { 6, 10, 1655 }, { 6, 10, 1676 }, { 4, 10, 196 }, { 5, 10, 558 }, - { 5, 10, 949 }, { 11, 11, 827 }, { 12, 11, 56 }, { 14, 11, 34 }, - { 15, 11, 148 }, { 9, 0, 347 }, { 5, 0, 572 }, { 6, 0, 832 }, - { 4, 0, 12 }, { 7, 0, 504 }, { 7, 0, 522 }, { 7, 0, 809 }, - { 8, 0, 797 }, { 13, 0, 88 }, { 4, 10, 752 }, { 5, 11, 449 }, - { 7, 11, 86 }, { 8, 11, 103 }, { 17, 11, 69 }, { 7, 11, 2028 }, - { 10, 11, 641 }, { 5, 0, 528 }, { 6, 11, 1 }, { 14, 11, 2 }, - { 6, 0, 861 }, { 10, 0, 294 }, { 4, 10, 227 }, { 5, 10, 159 }, - { 5, 10, 409 }, { 7, 10, 80 }, { 10, 10, 479 }, { 12, 10, 418 }, - { 14, 10, 50 }, { 14, 10, 249 }, { 14, 10, 295 }, { 7, 10, 1470 }, - { 8, 10, 66 }, { 8, 10, 137 }, { 8, 10, 761 }, { 9, 10, 638 }, - { 11, 10, 80 }, { 11, 10, 212 }, { 11, 10, 368 }, { 11, 10, 418 }, - { 12, 10, 8 }, { 13, 10, 15 }, { 16, 10, 61 }, { 17, 10, 59 }, - { 19, 10, 28 }, { 20, 10, 84 }, { 20, 0, 109 }, { 7, 11, 1148 }, - { 6, 11, 277 }, { 7, 11, 1274 }, { 7, 11, 1386 }, { 7, 11, 1392 }, - { 12, 11, 129 }, { 18, 11, 87 }, { 6, 11, 187 }, { 7, 11, 39 }, - { 7, 11, 1203 }, { 8, 11, 380 }, { 8, 11, 542 }, { 14, 11, 117 }, - { 21, 11, 28 }, { 6, 0, 1187 }, { 5, 0, 266 }, { 9, 0, 290 }, - { 9, 0, 364 }, { 10, 0, 293 }, { 11, 0, 606 }, { 14, 0, 45 }, - { 6, 11, 297 }, { 7, 11, 793 }, { 11, 11, 938 }, { 4, 0, 50 }, - { 6, 0, 594 }, { 9, 0, 121 }, { 10, 0, 49 }, { 10, 0, 412 }, - { 11, 0, 834 }, { 8, 0, 748 }, { 7, 11, 464 }, { 8, 11, 438 }, - { 11, 11, 105 }, { 11, 11, 363 }, { 12, 11, 231 }, { 14, 11, 386 }, - { 15, 11, 102 }, { 20, 11, 75 }, { 4, 0, 466 }, { 13, 0, 399 }, - { 14, 0, 337 }, { 6, 10, 38 }, { 7, 10, 1220 }, { 8, 10, 185 }, - { 8, 10, 256 }, { 9, 10, 22 }, { 9, 10, 331 }, { 10, 10, 738 }, - { 11, 10, 205 }, { 11, 10, 540 }, { 11, 10, 746 }, { 13, 10, 465 }, - { 14, 10, 194 }, { 9, 0, 378 }, { 13, 0, 162 }, { 9, 0, 519 }, - { 4, 10, 159 }, { 6, 10, 115 }, { 7, 10, 252 }, { 7, 10, 257 }, - { 7, 10, 1928 }, { 8, 10, 69 }, { 9, 10, 384 }, { 10, 10, 91 }, - { 10, 10, 615 }, { 12, 10, 375 }, { 14, 10, 235 }, { 18, 10, 117 }, - { 19, 10, 123 }, { 5, 11, 604 }, { 5, 10, 911 }, { 8, 10, 278 }, - { 4, 0, 667 }, { 8, 0, 351 }, { 9, 0, 322 }, { 4, 10, 151 }, - { 7, 10, 1567 }, { 6, 0, 902 }, { 5, 10, 990 }, { 12, 0, 180 }, - { 5, 10, 194 }, { 7, 10, 1662 }, { 9, 10, 90 }, { 4, 0, 869 }, - { 6, 0, 1996 }, { 6, 0, 813 }, { 5, 10, 425 }, { 9, 11, 761 }, - { 4, 0, 260 }, { 5, 10, 971 }, { 5, 11, 20 }, { 6, 11, 298 }, - { 7, 11, 659 }, { 7, 11, 1366 }, { 9, 11, 219 }, { 4, 0, 39 }, - { 5, 0, 36 }, { 7, 0, 1843 }, { 8, 0, 407 }, { 11, 0, 144 }, - { 12, 0, 523 }, { 4, 0, 510 }, { 10, 0, 587 }, { 11, 10, 752 }, - { 7, 0, 29 }, { 7, 0, 66 }, { 7, 0, 1980 }, { 10, 0, 487 }, - { 10, 0, 809 }, { 13, 0, 260 }, { 14, 0, 82 }, { 18, 0, 63 }, - { 9, 10, 662 }, { 5, 10, 72 }, { 6, 10, 264 }, { 7, 10, 21 }, - { 7, 10, 46 }, { 7, 10, 2013 }, { 8, 10, 215 }, { 8, 10, 513 }, - { 10, 10, 266 }, { 11, 10, 22 }, { 6, 0, 570 }, { 6, 0, 565 }, - { 7, 0, 1667 }, { 4, 11, 439 }, { 10, 10, 95 }, { 11, 10, 603 }, - { 12, 11, 242 }, { 13, 10, 443 }, { 14, 10, 160 }, { 15, 10, 4 }, - { 6, 0, 1464 }, { 6, 10, 431 }, { 9, 0, 372 }, { 15, 0, 2 }, - { 19, 0, 10 }, { 19, 0, 18 }, { 5, 10, 874 }, { 6, 10, 1677 }, - { 15, 10, 0 }, { 4, 0, 787 }, { 6, 0, 380 }, { 12, 0, 399 }, - { 21, 0, 19 }, { 7, 10, 939 }, { 7, 10, 1172 }, { 7, 10, 1671 }, - { 9, 10, 540 }, { 10, 10, 696 }, { 11, 10, 265 }, { 11, 10, 732 }, - { 11, 10, 928 }, { 11, 10, 937 }, { 13, 10, 438 }, { 9, 0, 200 }, - { 4, 11, 233 }, { 4, 0, 516 }, { 6, 11, 577 }, { 4, 0, 844 }, - { 11, 0, 887 }, { 14, 0, 365 }, { 14, 0, 375 }, { 4, 11, 482 }, - { 8, 0, 821 }, { 12, 0, 44 }, { 7, 0, 1655 }, { 8, 0, 305 }, - { 5, 10, 682 }, { 7, 10, 1887 }, { 7, 11, 346 }, { 4, 10, 696 }, - { 4, 0, 10 }, { 7, 0, 917 }, { 11, 0, 786 }, { 5, 11, 795 }, - { 6, 11, 1741 }, { 8, 11, 417 }, { 9, 11, 782 }, { 4, 0, 1016 }, - { 6, 0, 2031 }, { 5, 0, 684 }, { 4, 10, 726 }, { 5, 10, 630 }, - { 6, 0, 1021 }, { 6, 0, 1480 }, { 8, 10, 802 }, { 8, 10, 838 }, - { 6, 0, 27 }, { 6, 0, 395 }, { 7, 11, 622 }, { 7, 11, 625 }, - { 7, 11, 1750 }, { 4, 11, 203 }, { 7, 11, 1936 }, { 6, 10, 118 }, - { 7, 10, 215 }, { 7, 10, 1521 }, { 12, 10, 11 }, { 4, 0, 813 }, - { 8, 0, 511 }, { 7, 10, 615 }, { 10, 10, 251 }, { 7, 10, 1044 }, - { 17, 0, 56 }, { 5, 10, 225 }, { 6, 0, 342 }, { 6, 0, 496 }, - { 8, 0, 275 }, { 9, 0, 206 }, { 4, 0, 909 }, { 5, 0, 940 }, - { 4, 0, 891 }, { 7, 11, 311 }, { 9, 11, 308 }, { 12, 11, 255 }, - { 4, 10, 370 }, { 5, 10, 756 }, { 7, 10, 1326 }, { 4, 0, 687 }, - { 6, 0, 1596 }, { 6, 0, 1342 }, { 6, 10, 1662 }, { 7, 10, 48 }, - { 8, 10, 771 }, { 10, 10, 116 }, { 13, 10, 104 }, { 14, 10, 105 }, - { 14, 10, 184 }, { 15, 10, 168 }, { 19, 10, 92 }, { 20, 10, 68 }, - { 10, 10, 209 }, { 4, 11, 400 }, { 5, 11, 267 }, { 7, 11, 232 }, - { 23, 11, 12 }, { 6, 0, 41 }, { 13, 0, 160 }, { 13, 11, 314 }, - { 6, 0, 1718 }, { 8, 0, 778 }, { 14, 11, 261 }, { 6, 0, 1610 }, - { 5, 0, 115 }, { 4, 0, 294 }, { 14, 0, 314 }, { 4, 10, 120 }, - { 4, 0, 983 }, { 5, 0, 193 }, { 12, 0, 178 }, { 10, 10, 429 }, - { 5, 10, 820 }, { 7, 10, 931 }, { 6, 0, 994 }, { 6, 0, 1051 }, - { 6, 0, 1439 }, { 7, 0, 174 }, { 5, 11, 732 }, { 4, 11, 100 }, - { 7, 11, 679 }, { 8, 11, 313 }, { 10, 10, 199 }, { 6, 10, 151 }, - { 6, 10, 1675 }, { 7, 10, 383 }, { 23, 10, 10 }, { 6, 0, 1796 }, - { 8, 0, 848 }, { 8, 0, 867 }, { 8, 0, 907 }, { 10, 0, 855 }, - { 12, 0, 703 }, { 12, 0, 221 }, { 4, 0, 122 }, { 5, 0, 796 }, - { 5, 0, 952 }, { 6, 0, 1660 }, { 6, 0, 1671 }, { 8, 0, 567 }, - { 9, 0, 687 }, { 9, 0, 742 }, { 10, 0, 686 }, { 11, 0, 682 }, - { 11, 0, 909 }, { 12, 0, 281 }, { 5, 11, 362 }, { 5, 11, 443 }, - { 6, 11, 318 }, { 7, 11, 1019 }, { 11, 11, 623 }, { 5, 11, 463 }, - { 8, 11, 296 }, { 11, 0, 583 }, { 13, 0, 262 }, { 6, 10, 1624 }, - { 12, 10, 422 }, { 14, 10, 360 }, { 5, 0, 179 }, { 7, 0, 1095 }, - { 7, 0, 1213 }, { 4, 10, 43 }, { 4, 11, 454 }, { 5, 10, 344 }, - { 5, 10, 357 }, { 4, 0, 66 }, { 7, 0, 722 }, { 7, 0, 904 }, - { 6, 0, 773 }, { 7, 0, 352 }, { 5, 10, 888 }, { 5, 11, 48 }, - { 5, 11, 404 }, { 6, 11, 557 }, { 7, 11, 458 }, { 8, 11, 597 }, - { 10, 11, 455 }, { 10, 11, 606 }, { 11, 11, 49 }, { 11, 11, 548 }, - { 12, 11, 476 }, { 13, 11, 18 }, { 13, 11, 450 }, { 6, 11, 418 }, - { 4, 10, 711 }, { 5, 11, 442 }, { 7, 11, 1984 }, { 13, 0, 35 }, - { 9, 0, 152 }, { 6, 0, 1197 }, { 7, 11, 1093 }, { 9, 11, 203 }, - { 9, 10, 440 }, { 10, 0, 592 }, { 10, 0, 753 }, { 12, 0, 317 }, - { 12, 0, 355 }, { 12, 0, 465 }, { 12, 0, 469 }, { 12, 0, 560 }, - { 12, 0, 578 }, { 13, 0, 243 }, { 5, 0, 564 }, { 6, 0, 797 }, - { 5, 10, 958 }, { 5, 10, 987 }, { 5, 11, 55 }, { 7, 11, 376 }, - { 12, 11, 161 }, { 5, 11, 450 }, { 6, 0, 556 }, { 6, 0, 819 }, - { 11, 10, 276 }, { 14, 10, 293 }, { 7, 0, 544 }, { 10, 0, 61 }, - { 8, 0, 719 }, { 4, 10, 65 }, { 5, 10, 479 }, { 5, 10, 1004 }, - { 7, 10, 1913 }, { 8, 10, 317 }, { 9, 10, 302 }, { 10, 10, 612 }, - { 13, 10, 22 }, { 4, 0, 5 }, { 5, 0, 498 }, { 8, 0, 637 }, - { 9, 0, 521 }, { 4, 11, 213 }, { 4, 10, 261 }, { 7, 11, 223 }, - { 7, 10, 510 }, { 8, 11, 80 }, { 5, 0, 927 }, { 7, 0, 101 }, - { 4, 10, 291 }, { 7, 11, 381 }, { 7, 11, 806 }, { 7, 11, 820 }, - { 8, 11, 354 }, { 8, 11, 437 }, { 8, 11, 787 }, { 9, 10, 515 }, - { 9, 11, 657 }, { 10, 11, 58 }, { 10, 11, 339 }, { 10, 11, 749 }, - { 11, 11, 914 }, { 12, 10, 152 }, { 12, 11, 162 }, { 12, 10, 443 }, - { 13, 11, 75 }, { 13, 10, 392 }, { 14, 11, 106 }, { 14, 11, 198 }, - { 14, 11, 320 }, { 14, 10, 357 }, { 14, 11, 413 }, { 18, 11, 43 }, - { 6, 0, 1153 }, { 7, 0, 1441 }, { 8, 11, 747 }, { 4, 0, 893 }, - { 5, 0, 780 }, { 5, 0, 893 }, { 10, 11, 654 }, { 5, 11, 692 }, - { 5, 0, 238 }, { 6, 11, 191 }, { 4, 10, 130 }, { 7, 10, 843 }, - { 6, 0, 1296 }, { 5, 10, 42 }, { 5, 10, 879 }, { 7, 10, 245 }, - { 7, 10, 324 }, { 7, 10, 1532 }, { 11, 10, 463 }, { 11, 10, 472 }, - { 13, 10, 363 }, { 16, 10, 52 }, { 6, 0, 1729 }, { 6, 0, 1999 }, - { 8, 0, 969 }, { 4, 10, 134 }, { 5, 10, 372 }, { 4, 0, 60 }, - { 7, 0, 941 }, { 7, 0, 1800 }, { 8, 0, 314 }, { 9, 0, 700 }, - { 11, 0, 487 }, { 6, 0, 1144 }, { 6, 11, 162 }, { 7, 11, 1960 }, - { 8, 11, 831 }, { 4, 11, 706 }, { 7, 0, 1147 }, { 10, 11, 426 }, - { 10, 11, 89 }, { 7, 0, 1853 }, { 10, 0, 437 }, { 8, 0, 419 }, - { 7, 10, 1634 }, { 5, 0, 828 }, { 5, 0, 806 }, { 7, 0, 176 }, - { 7, 0, 178 }, { 7, 0, 1240 }, { 7, 0, 1976 }, { 4, 10, 644 }, - { 7, 11, 1877 }, { 5, 11, 420 }, { 7, 11, 1449 }, { 4, 0, 51 }, - { 5, 0, 39 }, { 6, 0, 4 }, { 7, 0, 591 }, { 7, 0, 849 }, - { 7, 0, 951 }, { 7, 0, 1613 }, { 7, 0, 1760 }, { 7, 0, 1988 }, - { 9, 0, 434 }, { 10, 0, 754 }, { 11, 0, 25 }, { 11, 0, 37 }, - { 10, 11, 57 }, { 10, 11, 277 }, { 7, 10, 540 }, { 4, 11, 204 }, - { 7, 0, 159 }, { 11, 11, 231 }, { 5, 0, 902 }, { 7, 0, 928 }, - { 7, 11, 366 }, { 9, 11, 287 }, { 12, 11, 199 }, { 12, 11, 556 }, - { 12, 11, 577 }, { 6, 10, 623 }, { 8, 10, 789 }, { 4, 10, 908 }, - { 5, 10, 359 }, { 5, 10, 508 }, { 6, 10, 1723 }, { 7, 10, 343 }, - { 7, 10, 1996 }, { 7, 10, 2026 }, { 6, 0, 270 }, { 4, 10, 341 }, - { 7, 10, 480 }, { 5, 11, 356 }, { 7, 11, 224 }, { 11, 11, 588 }, - { 11, 11, 864 }, { 11, 11, 968 }, { 15, 11, 160 }, { 4, 0, 556 }, - { 9, 0, 801 }, { 4, 0, 416 }, { 14, 0, 372 }, { 5, 0, 152 }, - { 5, 0, 197 }, { 7, 0, 340 }, { 7, 0, 867 }, { 10, 0, 548 }, - { 10, 0, 581 }, { 11, 0, 6 }, { 12, 0, 3 }, { 12, 0, 19 }, - { 14, 0, 110 }, { 14, 0, 289 }, { 11, 0, 369 }, { 7, 11, 630 }, - { 9, 11, 567 }, { 11, 11, 150 }, { 11, 11, 444 }, { 13, 11, 119 }, - { 6, 11, 539 }, { 7, 10, 1995 }, { 8, 10, 299 }, { 11, 10, 890 }, - { 12, 10, 674 }, { 7, 0, 34 }, { 7, 0, 190 }, { 8, 0, 28 }, - { 8, 0, 141 }, { 8, 0, 444 }, { 8, 0, 811 }, { 9, 0, 468 }, - { 11, 0, 334 }, { 12, 0, 24 }, { 12, 0, 386 }, { 12, 0, 576 }, - { 5, 0, 757 }, { 7, 0, 1553 }, { 8, 0, 898 }, { 5, 0, 721 }, - { 8, 0, 1012 }, { 4, 0, 789 }, { 5, 0, 647 }, { 7, 0, 1102 }, - { 4, 0, 898 }, { 10, 0, 183 }, { 4, 10, 238 }, { 5, 10, 503 }, - { 6, 10, 179 }, { 7, 10, 2003 }, { 8, 10, 381 }, { 8, 10, 473 }, - { 9, 10, 149 }, { 10, 10, 788 }, { 15, 10, 45 }, { 15, 10, 86 }, - { 20, 10, 110 }, { 22, 10, 57 }, { 9, 0, 136 }, { 19, 0, 107 }, - { 4, 10, 121 }, { 5, 10, 156 }, { 5, 10, 349 }, { 10, 10, 605 }, - { 14, 10, 342 }, { 4, 11, 235 }, { 7, 11, 255 }, { 4, 11, 194 }, - { 5, 11, 584 }, { 6, 11, 384 }, { 7, 11, 583 }, { 10, 11, 761 }, - { 11, 11, 760 }, { 11, 11, 851 }, { 6, 10, 80 }, { 6, 10, 1694 }, - { 7, 10, 173 }, { 7, 10, 1974 }, { 9, 10, 547 }, { 10, 10, 730 }, - { 14, 10, 18 }, { 22, 10, 39 }, { 4, 10, 923 }, { 6, 10, 1711 }, - { 5, 0, 277 }, { 13, 0, 247 }, { 4, 0, 435 }, { 5, 11, 562 }, - { 6, 0, 1311 }, { 5, 11, 191 }, { 9, 11, 271 }, { 4, 10, 595 }, - { 7, 11, 1537 }, { 14, 11, 96 }, { 15, 11, 73 }, { 5, 0, 437 }, - { 7, 0, 502 }, { 7, 0, 519 }, { 7, 0, 1122 }, { 7, 0, 1751 }, - { 14, 0, 211 }, { 6, 10, 459 }, { 7, 10, 1753 }, { 7, 10, 1805 }, - { 8, 10, 658 }, { 9, 10, 1 }, { 11, 10, 959 }, { 13, 10, 446 }, - { 6, 0, 814 }, { 4, 11, 470 }, { 5, 11, 473 }, { 6, 11, 153 }, - { 7, 11, 1503 }, { 7, 11, 1923 }, { 10, 11, 701 }, { 11, 11, 132 }, - { 11, 11, 168 }, { 11, 11, 227 }, { 11, 11, 320 }, { 11, 11, 436 }, - { 11, 11, 525 }, { 11, 11, 855 }, { 12, 11, 41 }, { 12, 11, 286 }, - { 13, 11, 103 }, { 13, 11, 284 }, { 14, 11, 255 }, { 14, 11, 262 }, - { 15, 11, 117 }, { 15, 11, 127 }, { 5, 0, 265 }, { 6, 0, 212 }, - { 7, 0, 28 }, { 10, 0, 750 }, { 5, 11, 327 }, { 6, 11, 552 }, - { 7, 11, 1754 }, { 9, 11, 604 }, { 6, 0, 2012 }, { 4, 0, 702 }, - { 5, 11, 80 }, { 6, 11, 405 }, { 7, 11, 403 }, { 7, 11, 1502 }, - { 7, 11, 1626 }, { 8, 11, 456 }, { 9, 11, 487 }, { 9, 11, 853 }, - { 9, 11, 889 }, { 10, 11, 309 }, { 11, 11, 721 }, { 11, 11, 994 }, - { 12, 11, 430 }, { 13, 11, 165 }, { 5, 0, 808 }, { 7, 0, 2045 }, - { 5, 0, 166 }, { 8, 0, 739 }, { 12, 0, 511 }, { 6, 10, 490 }, - { 4, 11, 453 }, { 5, 11, 887 }, { 6, 11, 535 }, { 8, 11, 6 }, - { 8, 11, 543 }, { 4, 0, 119 }, { 5, 0, 170 }, { 5, 0, 447 }, - { 7, 0, 1708 }, { 7, 0, 1889 }, { 9, 0, 357 }, { 9, 0, 719 }, - { 12, 0, 486 }, { 12, 0, 596 }, { 9, 0, 500 }, { 7, 10, 250 }, - { 8, 10, 507 }, { 4, 10, 158 }, { 6, 0, 809 }, { 6, 0, 1500 }, - { 9, 0, 327 }, { 11, 0, 350 }, { 11, 0, 831 }, { 13, 0, 352 }, - { 4, 10, 140 }, { 7, 10, 362 }, { 8, 10, 209 }, { 9, 10, 10 }, - { 9, 10, 503 }, { 9, 10, 614 }, { 10, 10, 689 }, { 11, 10, 327 }, - { 11, 10, 725 }, { 12, 10, 252 }, { 12, 10, 583 }, { 13, 10, 192 }, - { 14, 10, 269 }, { 14, 10, 356 }, { 20, 10, 50 }, { 7, 11, 741 }, - { 4, 0, 450 }, { 7, 0, 1158 }, { 19, 10, 1 }, { 19, 10, 26 }, - { 22, 10, 9 }, { 6, 0, 597 }, { 7, 0, 1318 }, { 6, 0, 1602 }, - { 6, 10, 228 }, { 7, 10, 1341 }, { 9, 10, 408 }, { 10, 10, 343 }, - { 7, 0, 1375 }, { 7, 0, 1466 }, { 10, 0, 331 }, { 4, 0, 754 }, - { 4, 10, 557 }, { 5, 11, 101 }, { 6, 11, 88 }, { 6, 11, 543 }, - { 7, 11, 1677 }, { 9, 11, 100 }, { 10, 11, 677 }, { 14, 11, 169 }, - { 14, 11, 302 }, { 14, 11, 313 }, { 15, 11, 48 }, { 15, 11, 84 }, - { 6, 0, 1368 }, { 4, 11, 310 }, { 9, 11, 795 }, { 10, 11, 733 }, - { 11, 11, 451 }, { 12, 11, 249 }, { 14, 11, 115 }, { 14, 11, 286 }, - { 15, 11, 100 }, { 4, 10, 548 }, { 10, 0, 557 }, { 7, 10, 197 }, - { 8, 10, 142 }, { 8, 10, 325 }, { 9, 10, 150 }, { 9, 10, 596 }, - { 10, 10, 353 }, { 11, 10, 74 }, { 11, 10, 315 }, { 12, 10, 662 }, - { 12, 10, 681 }, { 14, 10, 423 }, { 15, 10, 141 }, { 5, 11, 587 }, - { 5, 0, 850 }, { 8, 0, 799 }, { 10, 0, 908 }, { 12, 0, 701 }, - { 12, 0, 757 }, { 14, 0, 466 }, { 4, 0, 62 }, { 5, 0, 275 }, - { 18, 0, 19 }, { 6, 10, 399 }, { 6, 10, 579 }, { 7, 10, 692 }, - { 7, 10, 846 }, { 7, 10, 1015 }, { 7, 10, 1799 }, { 8, 10, 403 }, - { 9, 10, 394 }, { 10, 10, 133 }, { 12, 10, 4 }, { 12, 10, 297 }, - { 12, 10, 452 }, { 16, 10, 81 }, { 18, 10, 25 }, { 21, 10, 14 }, - { 22, 10, 12 }, { 23, 10, 18 }, { 12, 0, 459 }, { 7, 10, 1546 }, - { 11, 10, 299 }, { 14, 10, 407 }, { 4, 10, 177 }, { 4, 11, 498 }, - { 7, 11, 217 }, { 8, 11, 140 }, { 10, 11, 610 }, { 5, 10, 411 }, - { 7, 10, 653 }, { 6, 0, 1802 }, { 7, 10, 439 }, { 10, 10, 727 }, - { 11, 10, 260 }, { 11, 10, 684 }, { 5, 11, 905 }, { 11, 11, 580 }, - { 14, 11, 201 }, { 6, 0, 1397 }, { 5, 10, 208 }, { 7, 10, 753 }, - { 7, 10, 1528 }, { 7, 0, 238 }, { 7, 0, 2033 }, { 8, 0, 120 }, - { 8, 0, 188 }, { 8, 0, 659 }, { 9, 0, 598 }, { 10, 0, 466 }, - { 12, 0, 342 }, { 12, 0, 588 }, { 13, 0, 503 }, { 14, 0, 246 }, - { 15, 0, 92 }, { 7, 11, 1041 }, { 4, 11, 456 }, { 7, 11, 105 }, - { 7, 11, 358 }, { 7, 11, 1637 }, { 8, 11, 643 }, { 11, 11, 483 }, - { 6, 0, 1318 }, { 6, 0, 1324 }, { 4, 0, 201 }, { 7, 0, 1744 }, - { 8, 0, 602 }, { 11, 0, 247 }, { 11, 0, 826 }, { 17, 0, 65 }, - { 5, 10, 242 }, { 8, 0, 164 }, { 18, 0, 62 }, { 5, 10, 953 }, - { 11, 10, 802 }, { 5, 0, 615 }, { 7, 11, 1566 }, { 8, 11, 269 }, - { 9, 11, 212 }, { 9, 11, 718 }, { 14, 11, 15 }, { 14, 11, 132 }, - { 14, 11, 227 }, { 5, 10, 290 }, { 4, 10, 380 }, { 5, 10, 52 }, - { 7, 10, 277 }, { 9, 10, 368 }, { 11, 10, 791 }, { 7, 0, 1243 }, - { 5, 11, 539 }, { 11, 11, 919 }, { 13, 11, 409 }, { 8, 0, 968 }, - { 5, 11, 470 }, { 6, 0, 882 }, { 4, 0, 907 }, { 5, 0, 100 }, - { 10, 0, 329 }, { 12, 0, 416 }, { 21, 0, 29 }, { 10, 10, 138 }, - { 11, 10, 476 }, { 5, 10, 725 }, { 5, 10, 727 }, { 6, 11, 91 }, - { 7, 11, 435 }, { 7, 10, 1811 }, { 4, 11, 16 }, { 5, 11, 316 }, - { 5, 11, 842 }, { 6, 11, 370 }, { 6, 11, 1778 }, { 8, 11, 166 }, - { 11, 11, 812 }, { 12, 11, 206 }, { 12, 11, 351 }, { 14, 11, 418 }, - { 16, 11, 15 }, { 16, 11, 34 }, { 18, 11, 3 }, { 19, 11, 3 }, - { 19, 11, 7 }, { 20, 11, 4 }, { 21, 11, 21 }, { 4, 0, 176 }, - { 5, 0, 636 }, { 5, 0, 998 }, { 7, 0, 9 }, { 7, 0, 1508 }, - { 8, 0, 26 }, { 9, 0, 317 }, { 9, 0, 358 }, { 10, 0, 210 }, - { 10, 0, 292 }, { 10, 0, 533 }, { 11, 0, 555 }, { 12, 0, 526 }, - { 12, 0, 607 }, { 13, 0, 263 }, { 13, 0, 459 }, { 14, 0, 271 }, - { 6, 0, 256 }, { 8, 0, 265 }, { 4, 10, 38 }, { 7, 10, 307 }, - { 7, 10, 999 }, { 7, 10, 1481 }, { 7, 10, 1732 }, { 7, 10, 1738 }, - { 9, 10, 414 }, { 11, 10, 316 }, { 12, 10, 52 }, { 13, 10, 420 }, - { 19, 10, 100 }, { 7, 10, 1296 }, { 4, 11, 611 }, { 5, 11, 606 }, - { 4, 0, 643 }, { 14, 11, 21 }, { 5, 11, 715 }, { 5, 10, 723 }, - { 6, 0, 610 }, { 7, 11, 597 }, { 10, 0, 127 }, { 13, 0, 27 }, - { 6, 0, 1995 }, { 6, 0, 2001 }, { 8, 0, 119 }, { 8, 0, 973 }, - { 4, 11, 149 }, { 10, 11, 368 }, { 12, 0, 522 }, { 4, 11, 154 }, - { 5, 10, 109 }, { 6, 10, 1784 }, { 7, 11, 1134 }, { 7, 10, 1895 }, - { 8, 11, 105 }, { 12, 10, 296 }, { 12, 10, 302 }, { 4, 11, 31 }, - { 6, 11, 429 }, { 7, 11, 962 }, { 9, 11, 458 }, { 11, 11, 691 }, - { 10, 0, 553 }, { 11, 0, 876 }, { 13, 0, 193 }, { 13, 0, 423 }, - { 14, 0, 166 }, { 19, 0, 84 }, { 4, 11, 312 }, { 5, 10, 216 }, - { 7, 10, 1879 }, { 9, 10, 141 }, { 9, 10, 270 }, { 9, 10, 679 }, - { 10, 10, 159 }, { 11, 10, 197 }, { 12, 10, 538 }, { 12, 10, 559 }, - { 14, 10, 144 }, { 14, 10, 167 }, { 15, 10, 67 }, { 6, 0, 1582 }, - { 7, 0, 1578 }, { 7, 11, 1578 }, { 9, 10, 81 }, { 4, 11, 236 }, - { 6, 10, 391 }, { 6, 0, 795 }, { 7, 10, 322 }, { 8, 10, 249 }, - { 5, 11, 836 }, { 5, 11, 857 }, { 6, 11, 1680 }, { 7, 11, 59 }, - { 19, 11, 53 }, { 7, 0, 432 }, { 10, 11, 68 }, { 11, 11, 494 }, - { 4, 11, 81 }, { 11, 11, 867 }, { 7, 0, 126 }, { 8, 0, 84 }, - { 14, 11, 280 }, { 5, 11, 282 }, { 8, 11, 650 }, { 9, 11, 295 }, - { 9, 11, 907 }, { 10, 11, 443 }, { 8, 0, 790 }, { 5, 10, 632 }, - { 10, 10, 526 }, { 6, 0, 64 }, { 12, 0, 377 }, { 13, 0, 309 }, - { 14, 0, 141 }, { 14, 0, 429 }, { 14, 11, 141 }, { 14, 11, 429 }, - { 6, 0, 1529 }, { 6, 0, 321 }, { 7, 0, 1857 }, { 9, 0, 530 }, - { 19, 0, 99 }, { 7, 10, 948 }, { 7, 10, 1042 }, { 8, 10, 235 }, - { 8, 10, 461 }, { 9, 10, 453 }, { 10, 10, 354 }, { 17, 10, 77 }, - { 7, 0, 1104 }, { 11, 0, 269 }, { 11, 0, 539 }, { 11, 0, 627 }, - { 11, 0, 706 }, { 11, 0, 975 }, { 12, 0, 248 }, { 12, 0, 434 }, - { 12, 0, 600 }, { 12, 0, 622 }, { 13, 0, 297 }, { 13, 0, 485 }, - { 14, 0, 69 }, { 14, 0, 409 }, { 15, 0, 108 }, { 4, 10, 362 }, - { 7, 10, 52 }, { 7, 10, 303 }, { 10, 11, 70 }, { 12, 11, 26 }, - { 14, 11, 17 }, { 14, 11, 178 }, { 15, 11, 34 }, { 21, 11, 12 }, - { 11, 0, 977 }, { 13, 0, 507 }, { 9, 0, 34 }, { 11, 0, 484 }, - { 5, 10, 196 }, { 6, 10, 486 }, { 7, 10, 212 }, { 8, 10, 309 }, - { 8, 10, 346 }, { 6, 0, 1700 }, { 7, 0, 26 }, { 7, 0, 293 }, - { 7, 0, 382 }, { 7, 0, 1026 }, { 7, 0, 1087 }, { 7, 0, 2027 }, - { 8, 0, 24 }, { 8, 0, 114 }, { 8, 0, 252 }, { 8, 0, 727 }, - { 8, 0, 729 }, { 9, 0, 30 }, { 9, 0, 199 }, { 9, 0, 231 }, - { 9, 0, 251 }, { 9, 0, 334 }, { 9, 0, 361 }, { 9, 0, 712 }, - { 10, 0, 55 }, { 10, 0, 60 }, { 10, 0, 232 }, { 10, 0, 332 }, - { 10, 0, 384 }, { 10, 0, 396 }, { 10, 0, 504 }, { 10, 0, 542 }, - { 10, 0, 652 }, { 11, 0, 20 }, { 11, 0, 48 }, { 11, 0, 207 }, - { 11, 0, 291 }, { 11, 0, 298 }, { 11, 0, 342 }, { 11, 0, 365 }, - { 11, 0, 394 }, { 11, 0, 620 }, { 11, 0, 705 }, { 11, 0, 1017 }, - { 12, 0, 123 }, { 12, 0, 340 }, { 12, 0, 406 }, { 12, 0, 643 }, - { 13, 0, 61 }, { 13, 0, 269 }, { 13, 0, 311 }, { 13, 0, 319 }, - { 13, 0, 486 }, { 14, 0, 234 }, { 15, 0, 62 }, { 15, 0, 85 }, - { 16, 0, 71 }, { 18, 0, 119 }, { 20, 0, 105 }, { 7, 10, 1912 }, - { 4, 11, 71 }, { 5, 11, 376 }, { 7, 11, 119 }, { 10, 11, 665 }, - { 10, 0, 918 }, { 10, 0, 926 }, { 4, 10, 686 }, { 8, 11, 55 }, - { 10, 10, 625 }, { 8, 10, 706 }, { 4, 11, 479 }, { 4, 10, 30 }, - { 5, 10, 43 }, { 6, 0, 379 }, { 7, 0, 270 }, { 8, 0, 176 }, - { 8, 0, 183 }, { 9, 0, 432 }, { 9, 0, 661 }, { 12, 0, 247 }, - { 12, 0, 617 }, { 18, 0, 125 }, { 7, 11, 607 }, { 8, 11, 99 }, - { 24, 11, 4 }, { 5, 0, 792 }, { 5, 0, 900 }, { 4, 11, 612 }, - { 5, 11, 561 }, { 4, 11, 41 }, { 4, 10, 220 }, { 5, 11, 74 }, - { 7, 10, 1535 }, { 7, 11, 1627 }, { 11, 11, 871 }, { 12, 11, 619 }, - { 7, 0, 1920 }, { 7, 11, 94 }, { 11, 11, 329 }, { 11, 11, 965 }, - { 12, 11, 241 }, { 14, 11, 354 }, { 15, 11, 22 }, { 20, 11, 63 }, - { 9, 11, 209 }, { 9, 11, 300 }, { 6, 0, 771 }, { 7, 0, 1979 }, - { 4, 0, 901 }, { 5, 0, 776 }, { 14, 0, 254 }, { 5, 11, 98 }, - { 9, 11, 16 }, { 13, 11, 386 }, { 5, 11, 984 }, { 4, 11, 182 }, - { 6, 11, 205 }, { 7, 11, 220 }, { 7, 10, 1725 }, { 7, 10, 1774 }, - { 10, 10, 393 }, { 5, 10, 263 }, { 6, 10, 414 }, { 4, 11, 42 }, - { 9, 11, 205 }, { 9, 11, 786 }, { 10, 11, 659 }, { 14, 0, 140 }, - { 20, 0, 41 }, { 8, 0, 440 }, { 10, 0, 359 }, { 6, 10, 178 }, - { 6, 11, 289 }, { 6, 10, 1750 }, { 7, 11, 1670 }, { 9, 10, 690 }, - { 10, 10, 155 }, { 10, 10, 373 }, { 11, 10, 698 }, { 12, 11, 57 }, - { 13, 10, 155 }, { 20, 10, 93 }, { 23, 11, 4 }, { 4, 0, 37 }, - { 5, 0, 334 }, { 7, 0, 1253 }, { 23, 11, 25 }, { 4, 0, 508 }, - { 4, 11, 635 }, { 5, 10, 97 }, { 9, 10, 393 }, { 11, 11, 533 }, - { 4, 0, 640 }, { 5, 0, 513 }, { 6, 10, 1639 }, { 4, 11, 371 }, - { 4, 11, 272 }, { 7, 11, 836 }, { 7, 11, 1651 }, { 17, 11, 89 }, - { 5, 11, 825 }, { 6, 11, 444 }, { 6, 11, 1640 }, { 8, 11, 308 }, - { 4, 10, 191 }, { 7, 10, 934 }, { 8, 10, 647 }, { 17, 10, 97 }, - { 12, 0, 246 }, { 15, 0, 162 }, { 19, 0, 64 }, { 20, 0, 8 }, - { 20, 0, 95 }, { 22, 0, 24 }, { 24, 0, 17 }, { 4, 0, 533 }, - { 5, 10, 165 }, { 9, 10, 346 }, { 10, 10, 655 }, { 5, 11, 737 }, - { 11, 10, 885 }, { 5, 10, 877 }, { 8, 10, 128 }, { 11, 10, 179 }, - { 9, 11, 307 }, { 12, 0, 752 }, { 5, 0, 920 }, { 7, 0, 1048 }, - { 5, 0, 153 }, { 6, 0, 580 }, { 6, 10, 1663 }, { 7, 10, 132 }, - { 7, 10, 1154 }, { 7, 10, 1415 }, { 7, 10, 1507 }, { 12, 10, 493 }, - { 15, 10, 105 }, { 23, 10, 15 }, { 5, 10, 459 }, { 7, 10, 1073 }, - { 8, 10, 241 }, { 8, 10, 334 }, { 10, 0, 391 }, { 7, 0, 1952 }, - { 5, 11, 525 }, { 8, 11, 641 }, { 11, 11, 388 }, { 12, 11, 580 }, - { 14, 0, 126 }, { 6, 0, 640 }, { 4, 0, 483 }, { 7, 0, 1616 }, - { 9, 0, 69 }, { 6, 10, 324 }, { 6, 10, 520 }, { 7, 10, 338 }, - { 7, 10, 1729 }, { 8, 10, 228 }, { 11, 10, 750 }, { 5, 11, 493 }, - { 6, 11, 528 }, { 7, 0, 734 }, { 4, 11, 174 }, { 7, 11, 911 }, - { 10, 0, 480 }, { 9, 0, 495 }, { 18, 0, 104 }, { 7, 10, 705 }, - { 9, 0, 472 }, { 4, 10, 73 }, { 6, 10, 612 }, { 7, 10, 927 }, - { 7, 10, 1330 }, { 7, 10, 1822 }, { 8, 10, 217 }, { 9, 10, 765 }, - { 9, 10, 766 }, { 10, 10, 408 }, { 11, 10, 51 }, { 11, 10, 793 }, - { 12, 10, 266 }, { 15, 10, 158 }, { 20, 10, 89 }, { 22, 10, 32 }, - { 7, 11, 548 }, { 9, 11, 58 }, { 4, 11, 32 }, { 5, 11, 215 }, - { 6, 11, 269 }, { 7, 11, 1782 }, { 7, 11, 1892 }, { 10, 11, 16 }, - { 11, 11, 822 }, { 11, 11, 954 }, { 13, 11, 481 }, { 4, 0, 874 }, - { 9, 0, 229 }, { 5, 10, 389 }, { 8, 10, 636 }, { 7, 11, 1749 }, - { 8, 11, 477 }, { 6, 0, 948 }, { 5, 11, 308 }, { 7, 11, 1088 }, - { 4, 0, 748 }, { 11, 0, 1009 }, { 8, 10, 21 }, { 6, 0, 555 }, - { 7, 0, 485 }, { 5, 11, 126 }, { 8, 11, 297 }, { 9, 11, 366 }, - { 9, 11, 445 }, { 12, 11, 53 }, { 12, 11, 374 }, { 13, 11, 492 }, - { 7, 11, 1551 }, { 11, 11, 361 }, { 8, 0, 193 }, { 8, 0, 472 }, - { 8, 0, 653 }, { 13, 0, 93 }, { 19, 0, 14 }, { 4, 0, 984 }, - { 4, 11, 175 }, { 5, 0, 172 }, { 6, 0, 1971 }, { 4, 11, 685 }, - { 21, 11, 8 }, { 5, 11, 797 }, { 13, 0, 83 }, { 5, 10, 189 }, - { 7, 10, 442 }, { 7, 10, 443 }, { 8, 10, 281 }, { 12, 10, 174 }, - { 13, 10, 261 }, { 6, 0, 1568 }, { 5, 11, 565 }, { 11, 0, 384 }, - { 5, 0, 260 }, { 7, 0, 758 }, { 7, 0, 880 }, { 7, 0, 1359 }, - { 9, 0, 164 }, { 9, 0, 167 }, { 10, 0, 156 }, { 10, 0, 588 }, - { 12, 0, 101 }, { 14, 0, 48 }, { 15, 0, 70 }, { 6, 10, 2 }, - { 7, 10, 1262 }, { 7, 10, 1737 }, { 8, 10, 22 }, { 8, 10, 270 }, - { 8, 10, 612 }, { 9, 10, 312 }, { 9, 10, 436 }, { 10, 10, 311 }, - { 10, 10, 623 }, { 11, 10, 72 }, { 11, 10, 330 }, { 11, 10, 455 }, - { 12, 10, 321 }, { 12, 10, 504 }, { 12, 10, 530 }, { 12, 10, 543 }, - { 13, 10, 17 }, { 13, 10, 156 }, { 13, 10, 334 }, { 17, 10, 60 }, - { 20, 10, 64 }, { 4, 11, 252 }, { 7, 11, 1068 }, { 10, 11, 434 }, - { 11, 11, 228 }, { 11, 11, 426 }, { 13, 11, 231 }, { 18, 11, 106 }, - { 20, 11, 87 }, { 7, 10, 354 }, { 10, 10, 410 }, { 11, 10, 815 }, - { 6, 0, 367 }, { 7, 10, 670 }, { 7, 10, 1327 }, { 8, 10, 411 }, - { 8, 10, 435 }, { 9, 10, 653 }, { 9, 10, 740 }, { 10, 10, 385 }, - { 11, 10, 222 }, { 11, 10, 324 }, { 11, 10, 829 }, { 12, 10, 611 }, - { 7, 0, 1174 }, { 6, 10, 166 }, { 7, 10, 374 }, { 18, 0, 121 }, - { 4, 0, 828 }, { 5, 11, 231 }, { 10, 11, 509 }, { 7, 11, 601 }, - { 9, 11, 277 }, { 9, 11, 674 }, { 10, 11, 178 }, { 10, 11, 257 }, - { 10, 11, 418 }, { 11, 11, 531 }, { 11, 11, 544 }, { 11, 11, 585 }, - { 12, 11, 113 }, { 12, 11, 475 }, { 13, 11, 99 }, { 14, 11, 428 }, - { 6, 0, 1541 }, { 7, 11, 1779 }, { 5, 0, 343 }, { 6, 10, 398 }, - { 7, 10, 50 }, { 7, 11, 1683 }, { 4, 0, 440 }, { 7, 0, 57 }, - { 8, 0, 167 }, { 8, 0, 375 }, { 9, 0, 82 }, { 9, 0, 561 }, - { 9, 0, 744 }, { 10, 0, 620 }, { 9, 11, 744 }, { 6, 0, 926 }, - { 6, 10, 517 }, { 7, 10, 1159 }, { 10, 10, 621 }, { 11, 10, 192 }, - { 9, 0, 827 }, { 8, 0, 194 }, { 8, 0, 756 }, { 10, 10, 223 }, - { 11, 10, 645 }, { 7, 10, 64 }, { 8, 10, 245 }, { 4, 11, 399 }, - { 5, 11, 119 }, { 5, 11, 494 }, { 7, 11, 751 }, { 9, 11, 556 }, - { 4, 0, 808 }, { 7, 0, 22 }, { 7, 10, 1763 }, { 12, 10, 310 }, - { 5, 0, 639 }, { 7, 0, 1249 }, { 11, 0, 896 }, { 6, 11, 584 }, - { 6, 0, 1614 }, { 7, 0, 860 }, { 7, 11, 1121 }, { 5, 10, 129 }, - { 6, 10, 61 }, { 7, 10, 947 }, { 4, 0, 102 }, { 7, 0, 815 }, - { 7, 0, 1699 }, { 11, 0, 964 }, { 13, 10, 505 }, { 13, 10, 506 }, - { 11, 10, 1000 }, { 4, 11, 679 }, { 4, 0, 899 }, { 4, 0, 569 }, - { 5, 11, 694 }, { 9, 11, 714 }, { 8, 0, 795 }, { 6, 0, 2045 }, - { 11, 11, 7 }, { 6, 0, 52 }, { 9, 0, 104 }, { 9, 0, 559 }, - { 12, 0, 308 }, { 19, 0, 87 }, { 4, 0, 301 }, { 4, 0, 604 }, - { 5, 10, 637 }, { 8, 0, 779 }, { 5, 11, 143 }, { 5, 11, 769 }, - { 6, 11, 1760 }, { 7, 11, 682 }, { 7, 11, 1992 }, { 8, 11, 736 }, - { 9, 10, 590 }, { 19, 0, 32 }, { 9, 11, 527 }, { 5, 10, 280 }, - { 7, 10, 1226 }, { 6, 0, 494 }, { 6, 0, 677 }, { 6, 0, 682 }, - { 6, 0, 1044 }, { 5, 10, 281 }, { 7, 10, 1064 }, { 7, 0, 508 }, - { 5, 11, 860 }, { 6, 11, 422 }, { 7, 11, 0 }, { 7, 11, 1544 }, - { 9, 11, 577 }, { 11, 11, 990 }, { 12, 11, 141 }, { 12, 11, 453 }, - { 13, 11, 47 }, { 13, 11, 266 }, { 6, 0, 1014 }, { 5, 11, 515 }, - { 9, 11, 131 }, { 6, 0, 957 }, { 4, 11, 646 }, { 6, 0, 310 }, - { 7, 0, 1849 }, { 8, 0, 72 }, { 8, 0, 272 }, { 8, 0, 431 }, - { 9, 0, 12 }, { 9, 0, 376 }, { 10, 0, 563 }, { 10, 0, 630 }, - { 10, 0, 796 }, { 10, 0, 810 }, { 11, 0, 367 }, { 11, 0, 599 }, - { 11, 0, 686 }, { 12, 0, 672 }, { 7, 0, 570 }, { 4, 11, 396 }, - { 7, 10, 120 }, { 7, 11, 728 }, { 8, 10, 489 }, { 9, 11, 117 }, - { 9, 10, 319 }, { 10, 10, 820 }, { 11, 10, 1004 }, { 12, 10, 379 }, - { 12, 10, 679 }, { 13, 10, 117 }, { 13, 11, 202 }, { 13, 10, 412 }, - { 14, 10, 25 }, { 15, 10, 52 }, { 15, 10, 161 }, { 16, 10, 47 }, - { 20, 11, 51 }, { 21, 10, 2 }, { 6, 11, 121 }, { 6, 11, 124 }, - { 6, 11, 357 }, { 7, 11, 1138 }, { 7, 11, 1295 }, { 8, 11, 162 }, - { 11, 11, 655 }, { 8, 0, 449 }, { 4, 10, 937 }, { 5, 10, 801 }, - { 8, 11, 449 }, { 11, 11, 958 }, { 6, 0, 181 }, { 7, 0, 537 }, - { 8, 0, 64 }, { 9, 0, 127 }, { 10, 0, 496 }, { 12, 0, 510 }, - { 13, 0, 384 }, { 10, 11, 253 }, { 4, 0, 244 }, { 7, 0, 233 }, - { 5, 11, 237 }, { 4, 10, 365 }, { 6, 0, 1650 }, { 10, 0, 702 }, - { 11, 0, 245 }, { 5, 10, 7 }, { 11, 10, 774 }, { 13, 0, 463 }, - { 20, 0, 49 }, { 13, 11, 463 }, { 20, 11, 49 }, { 4, 10, 734 }, - { 5, 10, 662 }, { 6, 10, 430 }, { 4, 10, 746 }, { 7, 10, 1090 }, - { 5, 10, 360 }, { 8, 10, 237 }, { 9, 0, 338 }, { 15, 11, 10 }, - { 7, 11, 571 }, { 10, 11, 366 }, { 6, 0, 1279 }, { 9, 11, 513 }, - { 10, 11, 22 }, { 10, 11, 39 }, { 12, 11, 122 }, { 12, 11, 187 }, - { 5, 0, 896 }, { 18, 0, 178 }, { 6, 0, 695 }, { 9, 0, 808 }, - { 6, 11, 587 }, { 7, 11, 107 }, { 7, 11, 838 }, { 8, 11, 550 }, - { 10, 11, 401 }, { 7, 0, 1117 }, { 8, 0, 539 }, { 4, 10, 277 }, - { 5, 10, 608 }, { 6, 10, 493 }, { 7, 10, 457 }, { 12, 10, 384 }, - { 5, 11, 768 }, { 12, 0, 257 }, { 7, 10, 27 }, { 7, 10, 316 }, - { 12, 0, 1003 }, { 4, 0, 207 }, { 5, 0, 586 }, { 5, 0, 676 }, - { 6, 0, 448 }, { 8, 0, 244 }, { 11, 0, 1 }, { 13, 0, 3 }, - { 16, 0, 54 }, { 17, 0, 4 }, { 18, 0, 13 }, { 5, 10, 552 }, - { 4, 10, 401 }, { 9, 10, 264 }, { 5, 0, 516 }, { 7, 0, 1883 }, - { 7, 11, 1883 }, { 12, 0, 960 }, { 4, 11, 894 }, { 5, 0, 4 }, - { 5, 0, 810 }, { 6, 0, 13 }, { 6, 0, 538 }, { 6, 0, 1690 }, - { 6, 0, 1726 }, { 7, 0, 499 }, { 7, 0, 1819 }, { 8, 0, 148 }, - { 8, 0, 696 }, { 8, 0, 791 }, { 12, 0, 125 }, { 15, 0, 9 }, - { 7, 0, 1268 }, { 11, 0, 30 }, { 14, 0, 315 }, { 9, 10, 543 }, - { 10, 10, 524 }, { 12, 10, 524 }, { 16, 10, 18 }, { 20, 10, 26 }, - { 20, 10, 65 }, { 6, 0, 748 }, { 4, 10, 205 }, { 5, 10, 623 }, - { 7, 10, 104 }, { 8, 10, 519 }, { 11, 0, 542 }, { 11, 0, 852 }, - { 12, 0, 6 }, { 4, 0, 848 }, { 7, 0, 1385 }, { 11, 0, 582 }, - { 11, 0, 650 }, { 11, 0, 901 }, { 11, 0, 949 }, { 12, 0, 232 }, - { 12, 0, 236 }, { 13, 0, 413 }, { 13, 0, 501 }, { 18, 0, 116 }, - { 7, 10, 579 }, { 9, 10, 41 }, { 9, 10, 244 }, { 9, 10, 669 }, - { 10, 10, 5 }, { 11, 10, 861 }, { 11, 10, 951 }, { 11, 10, 980 }, - { 4, 0, 945 }, { 6, 0, 1811 }, { 6, 0, 1845 }, { 6, 0, 1853 }, - { 6, 0, 1858 }, { 8, 0, 862 }, { 12, 0, 782 }, { 12, 0, 788 }, - { 18, 0, 160 }, { 20, 0, 117 }, { 4, 10, 717 }, { 4, 0, 925 }, - { 5, 0, 803 }, { 8, 0, 698 }, { 10, 0, 828 }, { 6, 0, 1416 }, - { 4, 0, 610 }, { 11, 0, 992 }, { 6, 0, 878 }, { 6, 0, 1477 }, - { 7, 0, 1847 }, { 10, 11, 531 }, { 9, 11, 539 }, { 6, 11, 272 }, - { 5, 0, 383 }, { 6, 0, 1404 }, { 4, 10, 489 }, { 4, 11, 9 }, - { 5, 11, 128 }, { 7, 11, 368 }, { 11, 11, 480 }, { 20, 11, 3 }, - { 8, 0, 986 }, { 9, 0, 660 }, { 10, 0, 347 }, { 7, 10, 892 }, - { 8, 11, 682 }, { 7, 0, 572 }, { 9, 0, 592 }, { 11, 0, 680 }, - { 12, 0, 356 }, { 12, 0, 550 }, { 7, 0, 1411 }, { 10, 11, 527 }, - { 4, 11, 2 }, { 7, 11, 545 }, { 7, 11, 894 }, { 9, 10, 473 }, - { 11, 0, 64 }, { 7, 11, 481 }, { 7, 10, 819 }, { 9, 10, 26 }, - { 9, 10, 392 }, { 9, 11, 792 }, { 10, 10, 152 }, { 10, 10, 226 }, - { 12, 10, 276 }, { 12, 10, 426 }, { 12, 10, 589 }, { 13, 10, 460 }, - { 15, 10, 97 }, { 19, 10, 48 }, { 20, 10, 104 }, { 7, 10, 51 }, - { 8, 11, 445 }, { 8, 11, 646 }, { 7, 0, 606 }, { 4, 10, 674 }, - { 6, 0, 1829 }, { 6, 0, 1830 }, { 4, 10, 770 }, { 5, 10, 79 }, - { 7, 10, 1027 }, { 7, 10, 1477 }, { 11, 10, 52 }, { 5, 11, 530 }, - { 14, 11, 113 }, { 6, 10, 1666 }, { 7, 0, 748 }, { 11, 0, 700 }, - { 6, 10, 195 }, { 5, 10, 789 }, { 9, 0, 87 }, { 10, 0, 365 }, - { 4, 10, 251 }, { 4, 10, 688 }, { 7, 10, 513 }, { 7, 10, 1284 }, - { 8, 11, 111 }, { 5, 0, 127 }, { 6, 0, 198 }, { 12, 0, 83 }, - { 5, 11, 556 }, { 5, 10, 889 }, { 4, 10, 160 }, { 5, 10, 330 }, - { 7, 10, 1434 }, { 8, 10, 174 }, { 5, 0, 276 }, { 6, 0, 55 }, - { 7, 0, 1369 }, { 10, 0, 864 }, { 8, 11, 16 }, { 12, 11, 568 }, - { 6, 0, 1752 }, { 8, 0, 726 }, { 7, 0, 1066 }, { 5, 0, 764 }, - { 6, 11, 186 }, { 9, 11, 426 }, { 11, 0, 683 }, { 11, 11, 683 }, - { 6, 0, 309 }, { 7, 0, 331 }, { 10, 0, 550 }, { 5, 10, 374 }, - { 6, 0, 1212 }, { 6, 0, 1852 }, { 7, 0, 1062 }, { 8, 0, 874 }, - { 8, 0, 882 }, { 10, 0, 936 }, { 4, 11, 585 }, { 6, 0, 1364 }, - { 7, 0, 986 }, { 5, 10, 731 }, { 6, 0, 723 }, { 6, 0, 1408 }, - { 10, 0, 381 }, { 7, 0, 1573 }, { 6, 0, 1025 }, { 4, 10, 626 }, - { 5, 10, 642 }, { 6, 10, 425 }, { 10, 10, 202 }, { 11, 10, 141 }, - { 4, 11, 93 }, { 5, 11, 252 }, { 6, 11, 229 }, { 7, 11, 291 }, - { 9, 11, 550 }, { 11, 11, 644 }, { 9, 11, 749 }, { 9, 11, 162 }, - { 4, 11, 381 }, { 7, 0, 1559 }, { 6, 0, 194 }, { 7, 0, 133 }, - { 10, 0, 493 }, { 10, 0, 570 }, { 11, 0, 664 }, { 5, 0, 24 }, - { 5, 0, 569 }, { 6, 0, 3 }, { 6, 0, 119 }, { 6, 0, 143 }, - { 6, 0, 440 }, { 7, 0, 295 }, { 7, 0, 599 }, { 7, 0, 1686 }, - { 7, 0, 1854 }, { 8, 0, 424 }, { 9, 0, 43 }, { 9, 0, 584 }, - { 9, 0, 760 }, { 10, 0, 148 }, { 10, 0, 328 }, { 11, 0, 159 }, - { 11, 0, 253 }, { 11, 0, 506 }, { 12, 0, 487 }, { 12, 0, 531 }, - { 6, 0, 661 }, { 6, 0, 1517 }, { 8, 10, 835 }, { 23, 10, 17 }, - { 5, 0, 14 }, { 5, 0, 892 }, { 6, 0, 283 }, { 7, 0, 234 }, - { 8, 0, 537 }, { 11, 0, 541 }, { 4, 0, 126 }, { 8, 0, 635 }, - { 19, 0, 34 }, { 4, 0, 316 }, { 4, 0, 495 }, { 7, 0, 1561 }, - { 4, 11, 187 }, { 5, 11, 184 }, { 5, 11, 690 }, { 7, 11, 1869 }, - { 10, 11, 756 }, { 11, 11, 783 }, { 4, 0, 998 }, { 9, 0, 861 }, - { 8, 0, 1009 }, { 11, 11, 292 }, { 5, 11, 21 }, { 6, 11, 77 }, - { 6, 11, 157 }, { 7, 11, 974 }, { 7, 11, 1301 }, { 7, 11, 1339 }, - { 7, 11, 1490 }, { 7, 11, 1873 }, { 9, 11, 628 }, { 7, 11, 1283 }, - { 9, 11, 227 }, { 9, 11, 499 }, { 10, 11, 341 }, { 11, 11, 325 }, - { 11, 11, 408 }, { 14, 11, 180 }, { 15, 11, 144 }, { 18, 11, 47 }, - { 19, 11, 49 }, { 4, 0, 64 }, { 5, 0, 352 }, { 5, 0, 720 }, - { 6, 0, 368 }, { 11, 0, 359 }, { 5, 10, 384 }, { 8, 10, 455 }, - { 12, 10, 48 }, { 5, 10, 264 }, { 6, 10, 184 }, { 7, 0, 1577 }, - { 10, 0, 304 }, { 10, 0, 549 }, { 12, 0, 365 }, { 13, 0, 220 }, - { 13, 0, 240 }, { 14, 0, 33 }, { 6, 0, 1107 }, { 6, 0, 929 }, - { 7, 0, 1142 }, { 6, 0, 175 }, { 9, 0, 289 }, { 5, 0, 432 }, - { 5, 0, 913 }, { 6, 0, 279 }, { 7, 0, 219 }, { 5, 10, 633 }, - { 7, 10, 1323 }, { 7, 0, 785 }, { 7, 10, 359 }, { 8, 10, 243 }, - { 12, 10, 175 }, { 11, 0, 595 }, { 4, 10, 105 }, { 8, 11, 398 }, - { 9, 11, 681 }, { 11, 11, 632 }, { 12, 0, 80 }, { 5, 0, 931 }, - { 6, 0, 1698 }, { 14, 11, 241 }, { 6, 11, 20 }, { 6, 0, 1323 }, - { 11, 0, 526 }, { 11, 0, 939 }, { 13, 0, 290 }, { 5, 0, 774 }, - { 6, 0, 780 }, { 6, 0, 1637 }, { 6, 0, 1686 }, { 6, 0, 1751 }, - { 8, 0, 559 }, { 13, 0, 109 }, { 13, 0, 127 }, { 7, 0, 1167 }, - { 11, 0, 934 }, { 13, 0, 391 }, { 17, 0, 76 }, { 7, 11, 709 }, - { 7, 0, 963 }, { 6, 0, 260 }, { 7, 0, 1484 }, { 6, 0, 573 }, - { 4, 10, 758 }, { 11, 11, 941 }, { 7, 10, 1649 }, { 17, 11, 36 }, - { 4, 0, 292 }, { 9, 0, 580 }, { 4, 0, 736 }, { 5, 0, 871 }, - { 6, 0, 1689 }, { 7, 0, 1944 }, { 7, 11, 945 }, { 11, 11, 713 }, - { 11, 11, 744 }, { 6, 0, 1164 }, { 7, 11, 937 }, { 6, 0, 1922 }, - { 9, 0, 982 }, { 15, 0, 173 }, { 15, 0, 178 }, { 15, 0, 200 }, - { 18, 0, 189 }, { 18, 0, 207 }, { 21, 0, 47 }, { 7, 11, 1652 }, - { 7, 0, 1695 }, { 11, 10, 128 }, { 6, 0, 63 }, { 7, 0, 920 }, - { 5, 0, 793 }, { 15, 11, 134 }, { 5, 10, 918 }, { 5, 0, 67 }, - { 6, 0, 62 }, { 6, 0, 374 }, { 7, 0, 1391 }, { 9, 0, 790 }, - { 12, 0, 47 }, { 4, 11, 579 }, { 5, 11, 226 }, { 5, 11, 323 }, - { 7, 11, 960 }, { 10, 11, 784 }, { 13, 11, 191 }, { 4, 0, 391 }, - { 7, 0, 1169 }, { 9, 0, 443 }, { 13, 11, 232 }, { 18, 11, 35 }, - { 4, 10, 340 }, { 4, 0, 271 }, { 9, 11, 313 }, { 5, 11, 973 }, - { 9, 11, 659 }, { 6, 0, 1140 }, { 6, 11, 135 }, { 7, 11, 1176 }, - { 4, 0, 253 }, { 5, 0, 544 }, { 7, 0, 300 }, { 9, 0, 340 }, - { 7, 0, 897 }, { 5, 10, 985 }, { 7, 10, 509 }, { 17, 10, 96 }, - { 10, 11, 735 }, { 7, 10, 1919 }, { 10, 0, 890 }, { 5, 0, 818 }, - { 6, 0, 1122 }, { 5, 0, 53 }, { 5, 0, 541 }, { 6, 0, 94 }, - { 6, 0, 499 }, { 7, 0, 230 }, { 11, 0, 321 }, { 4, 0, 920 }, - { 5, 0, 25 }, { 5, 0, 790 }, { 6, 0, 457 }, { 7, 0, 853 }, - { 8, 0, 788 }, { 14, 11, 31 }, { 4, 10, 247 }, { 7, 11, 314 }, - { 4, 0, 468 }, { 7, 0, 243 }, { 6, 10, 337 }, { 7, 10, 494 }, - { 8, 10, 27 }, { 8, 10, 599 }, { 10, 10, 153 }, { 4, 10, 184 }, - { 5, 10, 390 }, { 7, 10, 618 }, { 7, 10, 1456 }, { 11, 10, 710 }, - { 6, 0, 870 }, { 6, 0, 1238 }, { 6, 0, 1765 }, { 10, 0, 853 }, - { 10, 0, 943 }, { 14, 0, 437 }, { 14, 0, 439 }, { 14, 0, 443 }, - { 14, 0, 446 }, { 14, 0, 452 }, { 14, 0, 469 }, { 14, 0, 471 }, - { 14, 0, 473 }, { 16, 0, 93 }, { 16, 0, 102 }, { 16, 0, 110 }, - { 20, 0, 121 }, { 4, 0, 605 }, { 7, 0, 518 }, { 7, 0, 1282 }, - { 7, 0, 1918 }, { 10, 0, 180 }, { 11, 0, 218 }, { 5, 0, 822 }, - { 4, 0, 634 }, { 11, 0, 916 }, { 14, 0, 419 }, { 6, 11, 281 }, - { 7, 11, 6 }, { 8, 11, 282 }, { 8, 11, 480 }, { 8, 11, 499 }, - { 9, 11, 198 }, { 10, 11, 143 }, { 10, 11, 169 }, { 10, 11, 211 }, - { 10, 11, 417 }, { 10, 11, 574 }, { 11, 11, 147 }, { 11, 11, 395 }, - { 12, 11, 75 }, { 12, 11, 407 }, { 12, 11, 608 }, { 13, 11, 500 }, - { 14, 11, 251 }, { 6, 0, 898 }, { 6, 0, 36 }, { 7, 0, 658 }, - { 8, 0, 454 }, { 22, 11, 48 }, { 5, 11, 674 }, { 7, 11, 1776 }, - { 4, 11, 419 }, { 10, 10, 227 }, { 11, 10, 497 }, { 11, 10, 709 }, - { 12, 10, 415 }, { 6, 10, 360 }, { 7, 10, 1664 }, { 8, 10, 478 }, - { 9, 0, 806 }, { 12, 11, 508 }, { 14, 11, 102 }, { 14, 11, 226 }, - { 16, 11, 57 }, { 7, 11, 1123 }, { 4, 11, 138 }, { 7, 11, 1012 }, - { 7, 11, 1280 }, { 9, 11, 76 }, { 5, 11, 29 }, { 12, 11, 638 }, - { 8, 10, 699 }, { 6, 0, 1326 }, { 4, 0, 104 }, { 7, 11, 735 }, - { 4, 10, 739 }, { 6, 0, 1331 }, { 7, 0, 260 }, { 7, 11, 260 }, - { 7, 11, 1063 }, { 7, 0, 45 }, { 9, 0, 542 }, { 9, 0, 566 }, - { 10, 0, 728 }, { 9, 10, 869 }, { 4, 10, 67 }, { 5, 10, 422 }, - { 7, 10, 1037 }, { 7, 10, 1289 }, { 7, 10, 1555 }, { 9, 10, 741 }, - { 17, 10, 108 }, { 11, 0, 263 }, { 6, 0, 1516 }, { 14, 0, 146 }, - { 15, 0, 42 }, { 16, 0, 23 }, { 17, 0, 86 }, { 18, 0, 17 }, - { 10, 0, 468 }, { 8, 0, 1005 }, { 4, 11, 17 }, { 5, 11, 23 }, - { 7, 11, 995 }, { 11, 11, 383 }, { 11, 11, 437 }, { 12, 11, 460 }, - { 12, 11, 532 }, { 7, 0, 87 }, { 14, 0, 288 }, { 10, 10, 96 }, - { 7, 11, 626 }, { 16, 10, 26 }, { 7, 0, 988 }, { 7, 0, 1939 }, - { 9, 0, 64 }, { 9, 0, 502 }, { 12, 0, 22 }, { 12, 0, 34 }, - { 13, 0, 12 }, { 13, 0, 234 }, { 19, 0, 77 }, { 13, 0, 133 }, - { 8, 10, 203 }, { 11, 10, 823 }, { 11, 10, 846 }, { 12, 10, 482 }, - { 13, 10, 277 }, { 13, 10, 302 }, { 13, 10, 464 }, { 14, 10, 205 }, - { 14, 10, 221 }, { 4, 10, 449 }, { 5, 10, 718 }, { 7, 0, 141 }, - { 6, 0, 1842 }, { 8, 0, 872 }, { 8, 11, 70 }, { 12, 11, 171 }, - { 13, 11, 272 }, { 4, 10, 355 }, { 6, 10, 311 }, { 9, 10, 256 }, - { 10, 10, 404 }, { 4, 0, 619 }, { 9, 0, 261 }, { 10, 11, 233 }, - { 10, 10, 758 }, { 11, 11, 76 }, { 5, 0, 246 }, { 8, 0, 189 }, - { 9, 0, 355 }, { 9, 0, 512 }, { 10, 0, 124 }, { 10, 0, 453 }, - { 11, 0, 143 }, { 11, 0, 416 }, { 11, 0, 859 }, { 13, 0, 341 }, - { 6, 11, 442 }, { 5, 10, 827 }, { 5, 10, 64 }, { 12, 10, 581 }, - { 4, 10, 442 }, { 7, 10, 1047 }, { 7, 10, 1352 }, { 7, 10, 1643 }, - { 6, 11, 1709 }, { 5, 0, 678 }, { 6, 0, 305 }, { 7, 0, 775 }, - { 7, 0, 1065 }, { 5, 10, 977 }, { 11, 11, 69 }, { 12, 11, 105 }, - { 12, 11, 117 }, { 13, 11, 213 }, { 14, 11, 13 }, { 14, 11, 62 }, - { 14, 11, 177 }, { 14, 11, 421 }, { 15, 11, 19 }, { 18, 11, 141 }, - { 9, 11, 309 }, { 5, 0, 35 }, { 7, 0, 862 }, { 7, 0, 1886 }, - { 10, 0, 179 }, { 8, 0, 285 }, { 4, 0, 517 }, { 7, 11, 976 }, - { 9, 11, 146 }, { 10, 11, 206 }, { 10, 11, 596 }, { 13, 11, 218 }, - { 14, 11, 153 }, { 4, 10, 254 }, { 6, 0, 214 }, { 12, 0, 540 }, - { 4, 10, 275 }, { 7, 10, 1219 }, { 12, 10, 376 }, { 8, 0, 667 }, - { 11, 0, 403 }, { 18, 0, 83 }, { 12, 0, 74 }, { 10, 11, 648 }, - { 11, 11, 671 }, { 15, 11, 46 }, { 7, 0, 125 }, { 6, 10, 1753 }, - { 5, 0, 761 }, { 6, 0, 912 }, { 4, 11, 518 }, { 6, 10, 369 }, - { 6, 10, 502 }, { 7, 10, 1036 }, { 7, 11, 1136 }, { 8, 10, 348 }, - { 9, 10, 452 }, { 10, 10, 26 }, { 11, 10, 224 }, { 11, 10, 387 }, - { 11, 10, 772 }, { 12, 10, 95 }, { 12, 10, 629 }, { 13, 10, 195 }, - { 13, 10, 207 }, { 13, 10, 241 }, { 14, 10, 260 }, { 14, 10, 270 }, - { 15, 10, 140 }, { 10, 0, 131 }, { 12, 0, 72 }, { 4, 10, 269 }, - { 5, 10, 480 }, { 7, 10, 532 }, { 7, 10, 1197 }, { 7, 10, 1358 }, - { 8, 10, 291 }, { 11, 10, 349 }, { 14, 10, 396 }, { 8, 11, 689 }, - { 9, 11, 863 }, { 8, 0, 333 }, { 10, 0, 182 }, { 4, 11, 18 }, - { 7, 11, 145 }, { 7, 11, 444 }, { 7, 11, 1278 }, { 8, 11, 49 }, - { 8, 11, 400 }, { 9, 11, 71 }, { 9, 11, 250 }, { 10, 11, 459 }, - { 12, 11, 160 }, { 16, 11, 24 }, { 14, 11, 35 }, { 14, 11, 191 }, - { 7, 11, 1864 }, { 7, 0, 1338 }, { 20, 10, 15 }, { 14, 0, 94 }, - { 15, 0, 65 }, { 16, 0, 4 }, { 16, 0, 77 }, { 16, 0, 80 }, - { 17, 0, 5 }, { 12, 11, 82 }, { 15, 11, 36 }, { 5, 11, 1010 }, - { 5, 0, 449 }, { 5, 0, 646 }, { 7, 0, 86 }, { 8, 0, 103 }, - { 7, 10, 657 }, { 7, 0, 2028 }, { 10, 0, 641 }, { 8, 10, 533 }, - { 6, 0, 1 }, { 11, 11, 970 }, { 5, 11, 87 }, { 7, 11, 313 }, - { 7, 11, 1103 }, { 10, 11, 112 }, { 10, 11, 582 }, { 11, 11, 389 }, - { 11, 11, 813 }, { 12, 11, 385 }, { 13, 11, 286 }, { 14, 11, 124 }, - { 18, 11, 108 }, { 6, 0, 869 }, { 4, 11, 267 }, { 6, 0, 277 }, - { 7, 0, 1274 }, { 7, 0, 1386 }, { 18, 0, 87 }, { 6, 0, 187 }, - { 7, 0, 39 }, { 7, 0, 1203 }, { 8, 0, 380 }, { 14, 0, 117 }, - { 21, 0, 28 }, { 4, 10, 211 }, { 4, 10, 332 }, { 5, 10, 335 }, - { 6, 10, 238 }, { 7, 10, 269 }, { 7, 10, 811 }, { 7, 10, 1797 }, - { 8, 10, 836 }, { 9, 10, 507 }, { 13, 10, 242 }, { 4, 0, 785 }, - { 5, 0, 368 }, { 6, 0, 297 }, { 7, 0, 793 }, { 11, 0, 938 }, - { 7, 0, 464 }, { 8, 0, 558 }, { 11, 0, 105 }, { 12, 0, 231 }, - { 14, 0, 386 }, { 15, 0, 102 }, { 20, 0, 75 }, { 5, 10, 1009 }, - { 8, 0, 877 }, { 12, 0, 731 }, { 11, 11, 289 }, { 10, 11, 249 }, - { 11, 11, 209 }, { 4, 11, 561 }, { 6, 0, 1608 }, { 4, 11, 760 }, - { 6, 0, 1429 }, { 9, 11, 154 }, { 12, 11, 485 }, { 5, 10, 228 }, - { 6, 10, 203 }, { 7, 10, 156 }, { 8, 10, 347 }, { 9, 10, 265 }, - { 7, 0, 1010 }, { 11, 0, 733 }, { 11, 0, 759 }, { 13, 0, 34 }, - { 14, 0, 427 }, { 18, 0, 45 }, { 7, 10, 1131 }, { 7, 10, 1468 }, - { 8, 11, 255 }, { 7, 0, 1656 }, { 9, 0, 369 }, { 10, 0, 338 }, - { 10, 0, 490 }, { 11, 0, 154 }, { 11, 0, 545 }, { 11, 0, 775 }, - { 13, 0, 77 }, { 13, 0, 274 }, { 5, 11, 621 }, { 6, 0, 1038 }, - { 4, 11, 368 }, { 7, 11, 641 }, { 6, 0, 2010 }, { 8, 0, 979 }, - { 8, 0, 985 }, { 10, 0, 951 }, { 10, 0, 1011 }, { 6, 0, 1005 }, - { 19, 0, 121 }, { 5, 10, 291 }, { 5, 10, 318 }, { 7, 10, 765 }, - { 9, 10, 389 }, { 12, 10, 548 }, { 5, 0, 20 }, { 6, 0, 298 }, - { 7, 0, 659 }, { 9, 0, 219 }, { 7, 0, 1440 }, { 11, 0, 854 }, - { 11, 0, 872 }, { 11, 0, 921 }, { 12, 0, 551 }, { 13, 0, 472 }, - { 14, 0, 367 }, { 5, 0, 490 }, { 6, 0, 615 }, { 6, 0, 620 }, - { 7, 0, 683 }, { 6, 0, 1070 }, { 6, 0, 1597 }, { 11, 0, 522 }, - { 4, 0, 439 }, { 8, 0, 669 }, { 6, 0, 766 }, { 6, 0, 1143 }, - { 6, 0, 1245 }, { 10, 10, 525 }, { 11, 10, 82 }, { 9, 11, 92 }, - { 19, 11, 91 }, { 6, 0, 668 }, { 6, 0, 1218 }, { 6, 11, 525 }, - { 9, 11, 876 }, { 12, 11, 284 }, { 4, 0, 233 }, { 8, 0, 547 }, - { 4, 10, 422 }, { 5, 10, 355 }, { 17, 10, 0 }, { 6, 11, 300 }, - { 7, 11, 1515 }, { 4, 0, 482 }, { 9, 10, 905 }, { 4, 0, 886 }, - { 7, 0, 346 }, { 5, 11, 594 }, { 5, 10, 865 }, { 5, 10, 914 }, - { 6, 10, 1625 }, { 7, 0, 334 }, { 5, 0, 795 }, { 6, 0, 1741 }, - { 5, 10, 234 }, { 7, 10, 1383 }, { 6, 11, 1641 }, { 8, 11, 820 }, - { 7, 0, 371 }, { 7, 11, 1313 }, { 10, 11, 660 }, { 7, 10, 1312 }, - { 7, 0, 622 }, { 7, 0, 625 }, { 7, 0, 1750 }, { 7, 0, 339 }, - { 4, 0, 203 }, { 7, 0, 1936 }, { 15, 0, 29 }, { 16, 0, 38 }, - { 15, 11, 29 }, { 16, 11, 38 }, { 5, 0, 338 }, { 7, 0, 1256 }, - { 7, 10, 1493 }, { 10, 0, 130 }, { 6, 10, 421 }, { 7, 10, 61 }, - { 7, 10, 1540 }, { 10, 10, 501 }, { 6, 11, 389 }, { 7, 11, 149 }, - { 9, 11, 142 }, { 10, 11, 94 }, { 9, 10, 341 }, { 11, 0, 678 }, - { 12, 0, 307 }, { 14, 10, 98 }, { 6, 11, 8 }, { 7, 11, 1881 }, - { 8, 11, 91 }, { 7, 0, 2044 }, { 6, 0, 770 }, { 6, 0, 802 }, - { 6, 0, 812 }, { 7, 0, 311 }, { 9, 0, 308 }, { 12, 0, 255 }, - { 6, 10, 102 }, { 7, 10, 72 }, { 15, 10, 142 }, { 19, 10, 67 }, - { 23, 10, 30 }, { 7, 10, 823 }, { 7, 0, 1266 }, { 7, 11, 1746 }, - { 7, 10, 1870 }, { 4, 0, 400 }, { 5, 0, 267 }, { 7, 0, 232 }, - { 7, 11, 24 }, { 11, 11, 542 }, { 11, 11, 852 }, { 7, 11, 1739 }, - { 4, 11, 503 }, { 7, 11, 1661 }, { 5, 11, 130 }, { 7, 11, 1314 }, - { 9, 11, 610 }, { 10, 11, 718 }, { 11, 11, 601 }, { 11, 11, 819 }, - { 11, 11, 946 }, { 12, 11, 536 }, { 10, 11, 149 }, { 11, 11, 280 }, - { 14, 11, 336 }, { 7, 0, 739 }, { 11, 0, 690 }, { 7, 11, 1946 }, - { 8, 10, 48 }, { 8, 10, 88 }, { 8, 10, 582 }, { 8, 10, 681 }, - { 9, 10, 373 }, { 9, 10, 864 }, { 11, 10, 157 }, { 11, 10, 843 }, - { 20, 10, 27 }, { 6, 0, 990 }, { 4, 10, 88 }, { 5, 10, 137 }, - { 5, 10, 174 }, { 5, 10, 777 }, { 6, 10, 1664 }, { 6, 10, 1725 }, - { 7, 10, 77 }, { 7, 10, 426 }, { 7, 10, 1317 }, { 7, 10, 1355 }, - { 8, 10, 126 }, { 8, 10, 563 }, { 9, 10, 523 }, { 9, 10, 750 }, - { 10, 10, 310 }, { 10, 10, 836 }, { 11, 10, 42 }, { 11, 10, 318 }, - { 11, 10, 731 }, { 12, 10, 68 }, { 12, 10, 92 }, { 12, 10, 507 }, - { 12, 10, 692 }, { 13, 10, 81 }, { 13, 10, 238 }, { 13, 10, 374 }, - { 14, 10, 436 }, { 18, 10, 138 }, { 19, 10, 78 }, { 19, 10, 111 }, - { 20, 10, 55 }, { 20, 10, 77 }, { 20, 10, 92 }, { 13, 10, 418 }, - { 7, 0, 1831 }, { 4, 10, 938 }, { 6, 0, 776 }, { 6, 0, 915 }, - { 10, 10, 351 }, { 5, 11, 348 }, { 6, 11, 522 }, { 6, 10, 1668 }, - { 7, 10, 1499 }, { 8, 10, 117 }, { 9, 10, 314 }, { 10, 10, 174 }, - { 7, 10, 707 }, { 4, 0, 613 }, { 5, 10, 403 }, { 4, 11, 392 }, - { 5, 11, 433 }, { 9, 11, 633 }, { 11, 11, 629 }, { 5, 0, 763 }, - { 4, 0, 878 }, { 4, 0, 977 }, { 4, 0, 100 }, { 6, 0, 463 }, - { 4, 10, 44 }, { 5, 10, 311 }, { 7, 10, 639 }, { 7, 10, 762 }, - { 7, 10, 1827 }, { 9, 10, 8 }, { 9, 10, 462 }, { 20, 10, 83 }, - { 6, 11, 234 }, { 4, 10, 346 }, { 7, 10, 115 }, { 9, 10, 180 }, - { 9, 10, 456 }, { 10, 10, 363 }, { 5, 0, 362 }, { 5, 0, 443 }, - { 6, 0, 318 }, { 7, 0, 1019 }, { 11, 0, 623 }, { 5, 0, 463 }, - { 8, 0, 296 }, { 7, 11, 140 }, { 7, 11, 1950 }, { 8, 11, 680 }, - { 11, 11, 817 }, { 19, 11, 88 }, { 7, 11, 1222 }, { 10, 11, 386 }, - { 14, 0, 137 }, { 4, 0, 454 }, { 7, 0, 1914 }, { 6, 11, 5 }, - { 7, 10, 1051 }, { 9, 10, 545 }, { 11, 11, 249 }, { 12, 11, 313 }, - { 16, 11, 66 }, { 17, 11, 26 }, { 7, 0, 1527 }, { 17, 0, 58 }, - { 20, 11, 59 }, { 5, 0, 48 }, { 5, 0, 404 }, { 6, 0, 557 }, - { 7, 0, 458 }, { 8, 0, 597 }, { 10, 0, 455 }, { 10, 0, 606 }, - { 11, 0, 49 }, { 11, 0, 548 }, { 12, 0, 476 }, { 13, 0, 18 }, - { 13, 0, 450 }, { 5, 11, 963 }, { 6, 11, 1773 }, { 5, 0, 729 }, - { 10, 11, 586 }, { 5, 0, 442 }, { 7, 0, 1984 }, { 6, 0, 449 }, - { 16, 0, 40 }, { 4, 0, 853 }, { 7, 11, 180 }, { 8, 11, 509 }, - { 8, 11, 792 }, { 6, 10, 185 }, { 7, 10, 1899 }, { 9, 10, 875 }, - { 11, 10, 673 }, { 6, 11, 524 }, { 12, 0, 227 }, { 4, 10, 327 }, - { 5, 10, 478 }, { 7, 10, 1332 }, { 8, 10, 753 }, { 6, 0, 1491 }, - { 5, 10, 1020 }, { 5, 10, 1022 }, { 4, 10, 103 }, { 5, 10, 401 }, - { 4, 11, 931 }, { 4, 10, 499 }, { 7, 10, 1421 }, { 5, 0, 55 }, - { 7, 0, 376 }, { 12, 0, 161 }, { 5, 0, 450 }, { 6, 0, 1174 }, - { 6, 0, 1562 }, { 10, 0, 62 }, { 13, 0, 400 }, { 7, 11, 1837 }, - { 12, 0, 207 }, { 7, 0, 869 }, { 4, 11, 773 }, { 5, 11, 618 }, - { 9, 11, 756 }, { 4, 10, 96 }, { 4, 0, 213 }, { 7, 0, 223 }, - { 8, 0, 80 }, { 7, 10, 968 }, { 4, 11, 90 }, { 5, 11, 337 }, - { 5, 11, 545 }, { 7, 11, 754 }, { 9, 11, 186 }, { 10, 11, 72 }, - { 10, 11, 782 }, { 11, 11, 513 }, { 11, 11, 577 }, { 11, 11, 610 }, - { 11, 11, 889 }, { 11, 11, 961 }, { 12, 11, 354 }, { 12, 11, 362 }, - { 12, 11, 461 }, { 12, 11, 595 }, { 13, 11, 79 }, { 15, 11, 121 }, - { 7, 0, 381 }, { 7, 0, 806 }, { 7, 0, 820 }, { 8, 0, 354 }, - { 8, 0, 437 }, { 8, 0, 787 }, { 9, 0, 657 }, { 10, 0, 58 }, - { 10, 0, 339 }, { 10, 0, 749 }, { 11, 0, 914 }, { 12, 0, 162 }, - { 13, 0, 75 }, { 14, 0, 106 }, { 14, 0, 198 }, { 14, 0, 320 }, - { 14, 0, 413 }, { 18, 0, 43 }, { 8, 0, 747 }, { 8, 0, 954 }, - { 6, 0, 1073 }, { 7, 0, 556 }, { 7, 11, 151 }, { 9, 11, 329 }, - { 11, 11, 254 }, { 5, 0, 692 }, { 6, 0, 1395 }, { 6, 10, 563 }, - { 9, 10, 224 }, { 6, 0, 191 }, { 4, 0, 804 }, { 9, 11, 187 }, - { 10, 11, 36 }, { 17, 11, 44 }, { 18, 11, 64 }, { 7, 11, 165 }, - { 7, 11, 919 }, { 8, 11, 517 }, { 4, 11, 506 }, { 5, 11, 295 }, - { 7, 11, 1680 }, { 15, 11, 14 }, { 16, 11, 5 }, { 4, 0, 706 }, - { 6, 0, 162 }, { 7, 0, 1960 }, { 8, 0, 831 }, { 7, 11, 1376 }, - { 7, 11, 987 }, { 9, 11, 688 }, { 10, 11, 522 }, { 11, 11, 788 }, - { 12, 11, 566 }, { 22, 0, 35 }, { 10, 0, 426 }, { 7, 0, 1235 }, - { 7, 11, 1741 }, { 7, 11, 389 }, { 7, 11, 700 }, { 7, 11, 940 }, - { 8, 11, 514 }, { 9, 11, 116 }, { 9, 11, 535 }, { 10, 11, 118 }, - { 11, 11, 107 }, { 11, 11, 148 }, { 11, 11, 922 }, { 12, 11, 254 }, - { 12, 11, 421 }, { 14, 11, 238 }, { 6, 0, 1234 }, { 4, 11, 743 }, - { 4, 10, 910 }, { 5, 10, 832 }, { 7, 11, 1335 }, { 13, 0, 96 }, - { 7, 11, 185 }, { 18, 0, 149 }, { 4, 0, 204 }, { 9, 0, 902 }, - { 4, 11, 784 }, { 5, 11, 745 }, { 8, 0, 833 }, { 8, 0, 949 }, - { 7, 0, 366 }, { 9, 0, 287 }, { 12, 0, 199 }, { 12, 0, 556 }, - { 12, 0, 577 }, { 5, 11, 81 }, { 7, 11, 146 }, { 7, 11, 1342 }, - { 7, 11, 1446 }, { 8, 11, 53 }, { 8, 11, 561 }, { 8, 11, 694 }, - { 8, 11, 754 }, { 9, 11, 97 }, { 9, 11, 115 }, { 9, 11, 894 }, - { 10, 11, 462 }, { 10, 11, 813 }, { 11, 11, 230 }, { 11, 11, 657 }, - { 11, 11, 699 }, { 11, 11, 748 }, { 12, 11, 119 }, { 12, 11, 200 }, - { 12, 11, 283 }, { 14, 11, 273 }, { 17, 11, 15 }, { 5, 11, 408 }, - { 9, 11, 747 }, { 9, 11, 498 }, { 12, 11, 181 }, { 6, 0, 2020 }, - { 8, 0, 992 }, { 5, 0, 356 }, { 7, 0, 224 }, { 6, 0, 784 }, - { 7, 0, 630 }, { 9, 0, 567 }, { 11, 0, 150 }, { 11, 0, 444 }, - { 13, 0, 119 }, { 8, 10, 528 }, { 9, 10, 348 }, { 6, 0, 539 }, - { 4, 10, 20 }, { 5, 10, 616 }, { 14, 0, 27 }, { 7, 11, 30 }, - { 8, 11, 86 }, { 8, 11, 315 }, { 8, 11, 700 }, { 9, 11, 576 }, - { 9, 11, 858 }, { 11, 11, 310 }, { 11, 11, 888 }, { 11, 11, 904 }, - { 12, 11, 361 }, { 13, 11, 248 }, { 10, 11, 839 }, { 6, 0, 755 }, - { 6, 0, 1063 }, { 7, 10, 1091 }, { 7, 10, 1765 }, { 6, 11, 428 }, - { 7, 11, 524 }, { 8, 11, 169 }, { 8, 11, 234 }, { 9, 11, 480 }, - { 10, 11, 646 }, { 11, 0, 814 }, { 7, 11, 1462 }, { 11, 11, 659 }, - { 4, 10, 26 }, { 5, 10, 429 }, { 6, 10, 245 }, { 7, 10, 704 }, - { 7, 10, 1379 }, { 7, 10, 1474 }, { 7, 11, 1205 }, { 10, 11, 637 }, - { 11, 11, 803 }, { 4, 10, 621 }, { 8, 0, 987 }, { 4, 11, 266 }, - { 8, 11, 4 }, { 9, 11, 39 }, { 10, 11, 166 }, { 11, 11, 918 }, - { 12, 11, 635 }, { 20, 11, 10 }, { 22, 11, 27 }, { 22, 11, 43 }, - { 4, 0, 235 }, { 7, 0, 255 }, { 4, 0, 194 }, { 5, 0, 584 }, - { 6, 0, 384 }, { 7, 0, 583 }, { 10, 0, 761 }, { 11, 0, 760 }, - { 11, 0, 851 }, { 5, 10, 542 }, { 6, 0, 1086 }, { 5, 10, 868 }, - { 8, 0, 1016 }, { 8, 0, 1018 }, { 7, 0, 1396 }, { 7, 11, 1396 }, - { 8, 10, 433 }, { 7, 10, 1495 }, { 10, 10, 215 }, { 13, 10, 124 }, - { 7, 11, 157 }, { 8, 11, 279 }, { 9, 11, 759 }, { 16, 11, 31 }, - { 16, 11, 39 }, { 16, 11, 75 }, { 18, 11, 24 }, { 20, 11, 42 }, - { 24, 11, 1 }, { 5, 0, 562 }, { 6, 11, 604 }, { 6, 0, 913 }, - { 5, 0, 191 }, { 9, 0, 271 }, { 4, 0, 470 }, { 6, 0, 153 }, - { 7, 0, 1503 }, { 7, 0, 1923 }, { 10, 0, 701 }, { 11, 0, 132 }, - { 11, 0, 227 }, { 11, 0, 320 }, { 11, 0, 436 }, { 11, 0, 525 }, - { 11, 0, 855 }, { 11, 0, 873 }, { 12, 0, 41 }, { 12, 0, 286 }, - { 13, 0, 103 }, { 13, 0, 284 }, { 14, 0, 255 }, { 14, 0, 262 }, - { 15, 0, 117 }, { 15, 0, 127 }, { 7, 0, 475 }, { 12, 0, 45 }, - { 19, 10, 112 }, { 4, 11, 567 }, { 9, 11, 859 }, { 6, 0, 713 }, - { 6, 0, 969 }, { 6, 0, 1290 }, { 6, 0, 1551 }, { 5, 0, 327 }, - { 6, 0, 552 }, { 6, 0, 1292 }, { 7, 0, 1754 }, { 9, 0, 604 }, - { 4, 0, 223 }, { 6, 0, 359 }, { 11, 0, 3 }, { 13, 0, 108 }, - { 14, 0, 89 }, { 16, 0, 22 }, { 5, 11, 762 }, { 7, 11, 1880 }, - { 9, 11, 680 }, { 11, 11, 798 }, { 5, 0, 80 }, { 6, 0, 405 }, - { 7, 0, 403 }, { 7, 0, 1502 }, { 8, 0, 456 }, { 9, 0, 487 }, - { 9, 0, 853 }, { 9, 0, 889 }, { 10, 0, 309 }, { 11, 0, 721 }, - { 11, 0, 994 }, { 12, 0, 430 }, { 13, 0, 165 }, { 5, 11, 298 }, - { 4, 10, 647 }, { 6, 0, 2016 }, { 18, 10, 10 }, { 18, 11, 10 }, - { 4, 0, 453 }, { 5, 0, 887 }, { 6, 0, 535 }, { 8, 0, 6 }, - { 8, 0, 543 }, { 8, 0, 826 }, { 8, 0, 975 }, { 10, 0, 961 }, - { 10, 0, 962 }, { 10, 10, 220 }, { 6, 0, 1891 }, { 6, 0, 1893 }, - { 9, 0, 916 }, { 9, 0, 965 }, { 9, 0, 972 }, { 12, 0, 801 }, - { 12, 0, 859 }, { 12, 0, 883 }, { 15, 0, 226 }, { 21, 0, 51 }, - { 4, 10, 109 }, { 7, 11, 267 }, { 7, 11, 92 }, { 7, 11, 182 }, - { 8, 11, 453 }, { 9, 11, 204 }, { 11, 11, 950 }, { 12, 11, 94 }, - { 12, 11, 644 }, { 16, 11, 20 }, { 16, 11, 70 }, { 16, 11, 90 }, - { 19, 11, 55 }, { 6, 10, 1746 }, { 6, 11, 71 }, { 7, 11, 845 }, - { 7, 11, 1308 }, { 8, 11, 160 }, { 9, 11, 318 }, { 5, 0, 101 }, - { 6, 0, 88 }, { 7, 0, 263 }, { 7, 0, 628 }, { 7, 0, 1677 }, - { 8, 0, 349 }, { 9, 0, 100 }, { 10, 0, 677 }, { 14, 0, 169 }, - { 14, 0, 302 }, { 14, 0, 313 }, { 15, 0, 48 }, { 15, 0, 84 }, - { 7, 11, 237 }, { 8, 11, 664 }, { 9, 11, 42 }, { 9, 11, 266 }, - { 9, 11, 380 }, { 9, 11, 645 }, { 10, 11, 177 }, { 10, 11, 276 }, - { 10, 11, 69 }, { 4, 0, 310 }, { 7, 0, 708 }, { 7, 0, 996 }, - { 9, 0, 795 }, { 10, 0, 390 }, { 10, 0, 733 }, { 11, 0, 451 }, - { 12, 0, 249 }, { 14, 0, 115 }, { 14, 0, 286 }, { 15, 0, 100 }, - { 5, 0, 587 }, { 4, 10, 40 }, { 10, 10, 67 }, { 11, 10, 117 }, - { 11, 10, 768 }, { 11, 10, 935 }, { 6, 0, 1942 }, { 7, 0, 512 }, - { 8, 0, 983 }, { 7, 10, 992 }, { 8, 10, 301 }, { 9, 10, 722 }, - { 12, 10, 63 }, { 13, 10, 29 }, { 14, 10, 161 }, { 15, 10, 18 }, - { 8, 11, 76 }, { 11, 10, 923 }, { 6, 0, 645 }, { 6, 0, 851 }, - { 4, 0, 498 }, { 4, 11, 293 }, { 7, 0, 217 }, { 8, 0, 140 }, - { 10, 0, 610 }, { 14, 11, 352 }, { 17, 11, 53 }, { 18, 11, 146 }, - { 18, 11, 152 }, { 19, 11, 11 }, { 22, 11, 54 }, { 6, 0, 1448 }, - { 10, 11, 841 }, { 5, 0, 905 }, { 4, 11, 605 }, { 7, 11, 518 }, - { 7, 11, 1282 }, { 7, 11, 1918 }, { 10, 11, 180 }, { 11, 11, 218 }, - { 11, 11, 917 }, { 7, 10, 825 }, { 12, 10, 328 }, { 4, 0, 456 }, - { 7, 0, 105 }, { 7, 0, 358 }, { 7, 0, 1637 }, { 8, 0, 643 }, - { 11, 0, 483 }, { 6, 0, 792 }, { 6, 11, 96 }, { 7, 11, 1426 }, - { 9, 11, 691 }, { 4, 11, 651 }, { 5, 11, 289 }, { 7, 11, 688 }, - { 8, 11, 35 }, { 9, 11, 511 }, { 10, 11, 767 }, { 19, 11, 118 }, - { 22, 0, 56 }, { 5, 0, 243 }, { 5, 0, 535 }, { 6, 10, 204 }, - { 10, 10, 320 }, { 10, 10, 583 }, { 13, 10, 502 }, { 14, 10, 72 }, - { 14, 10, 274 }, { 14, 10, 312 }, { 14, 10, 344 }, { 15, 10, 159 }, - { 16, 10, 62 }, { 16, 10, 69 }, { 17, 10, 30 }, { 18, 10, 42 }, - { 18, 10, 53 }, { 18, 10, 84 }, { 18, 10, 140 }, { 19, 10, 68 }, - { 19, 10, 85 }, { 20, 10, 5 }, { 20, 10, 45 }, { 20, 10, 101 }, - { 22, 10, 7 }, { 22, 10, 20 }, { 4, 10, 558 }, { 6, 10, 390 }, - { 7, 10, 162 }, { 7, 10, 689 }, { 9, 10, 360 }, { 10, 10, 653 }, - { 18, 11, 23 }, { 7, 0, 1748 }, { 5, 10, 856 }, { 6, 10, 1672 }, - { 6, 10, 1757 }, { 6, 10, 1781 }, { 5, 0, 539 }, { 5, 0, 754 }, - { 6, 0, 876 }, { 4, 11, 704 }, { 7, 11, 1078 }, { 5, 10, 92 }, - { 10, 10, 736 }, { 12, 10, 102 }, { 17, 0, 91 }, { 5, 10, 590 }, - { 9, 10, 213 }, { 6, 0, 1565 }, { 6, 0, 91 }, { 7, 0, 435 }, - { 4, 0, 939 }, { 12, 0, 792 }, { 6, 0, 1399 }, { 4, 0, 16 }, - { 5, 0, 316 }, { 5, 0, 842 }, { 6, 0, 370 }, { 6, 0, 1778 }, - { 8, 0, 166 }, { 11, 0, 812 }, { 12, 0, 206 }, { 12, 0, 351 }, - { 14, 0, 418 }, { 16, 0, 15 }, { 16, 0, 34 }, { 18, 0, 3 }, - { 19, 0, 3 }, { 19, 0, 7 }, { 20, 0, 4 }, { 21, 0, 21 }, - { 4, 11, 720 }, { 5, 11, 306 }, { 16, 0, 95 }, { 5, 11, 431 }, - { 4, 11, 234 }, { 7, 0, 551 }, { 4, 0, 999 }, { 6, 0, 1966 }, - { 6, 0, 2042 }, { 7, 0, 619 }, { 10, 0, 547 }, { 11, 0, 122 }, - { 12, 0, 601 }, { 15, 0, 7 }, { 20, 0, 20 }, { 5, 11, 464 }, - { 6, 11, 236 }, { 7, 11, 276 }, { 7, 11, 696 }, { 7, 11, 914 }, - { 7, 11, 1108 }, { 7, 11, 1448 }, { 9, 11, 15 }, { 9, 11, 564 }, - { 10, 11, 14 }, { 12, 11, 565 }, { 13, 11, 449 }, { 14, 11, 53 }, - { 15, 11, 13 }, { 16, 11, 64 }, { 17, 11, 41 }, { 6, 0, 884 }, - { 6, 0, 1019 }, { 6, 0, 1150 }, { 6, 11, 1767 }, { 12, 11, 194 }, - { 17, 11, 107 }, { 8, 10, 503 }, { 5, 11, 840 }, { 7, 0, 671 }, - { 6, 10, 466 }, { 4, 0, 888 }, { 4, 0, 149 }, { 10, 0, 368 }, - { 4, 0, 154 }, { 7, 0, 1134 }, { 8, 0, 105 }, { 7, 0, 983 }, - { 9, 11, 642 }, { 11, 11, 236 }, { 14, 11, 193 }, { 4, 0, 31 }, - { 6, 0, 429 }, { 7, 0, 962 }, { 9, 0, 458 }, { 11, 0, 691 }, - { 6, 0, 643 }, { 6, 0, 1102 }, { 4, 0, 312 }, { 4, 11, 68 }, - { 5, 11, 634 }, { 6, 11, 386 }, { 7, 11, 794 }, { 8, 11, 273 }, - { 9, 11, 563 }, { 10, 11, 105 }, { 10, 11, 171 }, { 11, 11, 94 }, - { 11, 11, 354 }, { 5, 0, 740 }, { 7, 0, 1642 }, { 4, 11, 95 }, - { 7, 11, 416 }, { 8, 11, 211 }, { 11, 11, 830 }, { 4, 0, 236 }, - { 10, 10, 241 }, { 7, 11, 731 }, { 13, 11, 20 }, { 15, 11, 11 }, - { 5, 0, 836 }, { 5, 0, 857 }, { 6, 0, 1680 }, { 7, 0, 59 }, - { 10, 0, 68 }, { 11, 0, 494 }, { 24, 11, 6 }, { 4, 0, 81 }, - { 11, 0, 867 }, { 7, 0, 795 }, { 5, 11, 689 }, { 4, 0, 1001 }, - { 5, 0, 282 }, { 6, 0, 1932 }, { 6, 0, 1977 }, { 6, 0, 1987 }, - { 6, 0, 1992 }, { 8, 0, 650 }, { 8, 0, 919 }, { 8, 0, 920 }, - { 8, 0, 923 }, { 8, 0, 926 }, { 8, 0, 927 }, { 8, 0, 931 }, - { 8, 0, 939 }, { 8, 0, 947 }, { 8, 0, 956 }, { 8, 0, 997 }, - { 9, 0, 907 }, { 10, 0, 950 }, { 10, 0, 953 }, { 10, 0, 954 }, - { 10, 0, 956 }, { 10, 0, 958 }, { 10, 0, 959 }, { 10, 0, 964 }, - { 10, 0, 970 }, { 10, 0, 972 }, { 10, 0, 973 }, { 10, 0, 975 }, - { 10, 0, 976 }, { 10, 0, 980 }, { 10, 0, 981 }, { 10, 0, 984 }, - { 10, 0, 988 }, { 10, 0, 990 }, { 10, 0, 995 }, { 10, 0, 999 }, - { 10, 0, 1002 }, { 10, 0, 1003 }, { 10, 0, 1005 }, { 10, 0, 1006 }, - { 10, 0, 1008 }, { 10, 0, 1009 }, { 10, 0, 1012 }, { 10, 0, 1014 }, - { 10, 0, 1015 }, { 10, 0, 1019 }, { 10, 0, 1020 }, { 10, 0, 1022 }, - { 12, 0, 959 }, { 12, 0, 961 }, { 12, 0, 962 }, { 12, 0, 963 }, - { 12, 0, 964 }, { 12, 0, 965 }, { 12, 0, 967 }, { 12, 0, 968 }, - { 12, 0, 969 }, { 12, 0, 970 }, { 12, 0, 971 }, { 12, 0, 972 }, - { 12, 0, 973 }, { 12, 0, 974 }, { 12, 0, 975 }, { 12, 0, 976 }, - { 12, 0, 977 }, { 12, 0, 979 }, { 12, 0, 981 }, { 12, 0, 982 }, - { 12, 0, 983 }, { 12, 0, 984 }, { 12, 0, 985 }, { 12, 0, 986 }, - { 12, 0, 987 }, { 12, 0, 989 }, { 12, 0, 990 }, { 12, 0, 992 }, - { 12, 0, 993 }, { 12, 0, 995 }, { 12, 0, 998 }, { 12, 0, 999 }, - { 12, 0, 1000 }, { 12, 0, 1001 }, { 12, 0, 1002 }, { 12, 0, 1004 }, - { 12, 0, 1005 }, { 12, 0, 1006 }, { 12, 0, 1007 }, { 12, 0, 1008 }, - { 12, 0, 1009 }, { 12, 0, 1010 }, { 12, 0, 1011 }, { 12, 0, 1012 }, - { 12, 0, 1014 }, { 12, 0, 1015 }, { 12, 0, 1016 }, { 12, 0, 1017 }, - { 12, 0, 1018 }, { 12, 0, 1019 }, { 12, 0, 1022 }, { 12, 0, 1023 }, - { 14, 0, 475 }, { 14, 0, 477 }, { 14, 0, 478 }, { 14, 0, 479 }, - { 14, 0, 480 }, { 14, 0, 482 }, { 14, 0, 483 }, { 14, 0, 484 }, - { 14, 0, 485 }, { 14, 0, 486 }, { 14, 0, 487 }, { 14, 0, 488 }, - { 14, 0, 489 }, { 14, 0, 490 }, { 14, 0, 491 }, { 14, 0, 492 }, - { 14, 0, 493 }, { 14, 0, 494 }, { 14, 0, 495 }, { 14, 0, 496 }, - { 14, 0, 497 }, { 14, 0, 498 }, { 14, 0, 499 }, { 14, 0, 500 }, - { 14, 0, 501 }, { 14, 0, 502 }, { 14, 0, 503 }, { 14, 0, 504 }, - { 14, 0, 506 }, { 14, 0, 507 }, { 14, 0, 508 }, { 14, 0, 509 }, - { 14, 0, 510 }, { 14, 0, 511 }, { 16, 0, 113 }, { 16, 0, 114 }, - { 16, 0, 115 }, { 16, 0, 117 }, { 16, 0, 118 }, { 16, 0, 119 }, - { 16, 0, 121 }, { 16, 0, 122 }, { 16, 0, 123 }, { 16, 0, 124 }, - { 16, 0, 125 }, { 16, 0, 126 }, { 16, 0, 127 }, { 18, 0, 242 }, - { 18, 0, 243 }, { 18, 0, 244 }, { 18, 0, 245 }, { 18, 0, 248 }, - { 18, 0, 249 }, { 18, 0, 250 }, { 18, 0, 251 }, { 18, 0, 252 }, - { 18, 0, 253 }, { 18, 0, 254 }, { 18, 0, 255 }, { 20, 0, 125 }, - { 20, 0, 126 }, { 20, 0, 127 }, { 7, 11, 1717 }, { 7, 11, 1769 }, - { 10, 11, 546 }, { 7, 11, 1127 }, { 7, 11, 1572 }, { 10, 11, 297 }, - { 10, 11, 422 }, { 11, 11, 764 }, { 11, 11, 810 }, { 12, 11, 264 }, - { 13, 11, 102 }, { 13, 11, 300 }, { 13, 11, 484 }, { 14, 11, 147 }, - { 14, 11, 229 }, { 17, 11, 71 }, { 18, 11, 118 }, { 19, 11, 120 }, - { 6, 0, 1148 }, { 6, 0, 1586 }, { 4, 0, 775 }, { 7, 10, 954 }, - { 5, 11, 864 }, { 5, 11, 928 }, { 10, 11, 189 }, { 7, 10, 1958 }, - { 6, 10, 549 }, { 8, 10, 34 }, { 8, 10, 283 }, { 9, 10, 165 }, - { 10, 10, 475 }, { 5, 10, 652 }, { 5, 10, 701 }, { 7, 10, 449 }, - { 7, 11, 695 }, { 4, 10, 655 }, { 7, 10, 850 }, { 17, 10, 75 }, - { 18, 10, 137 }, { 12, 11, 682 }, { 5, 11, 523 }, { 8, 0, 970 }, - { 8, 10, 670 }, { 8, 11, 555 }, { 7, 11, 76 }, { 8, 11, 44 }, - { 9, 11, 884 }, { 10, 11, 580 }, { 11, 11, 399 }, { 11, 11, 894 }, - { 15, 11, 122 }, { 18, 11, 144 }, { 19, 11, 61 }, { 6, 10, 159 }, - { 6, 10, 364 }, { 7, 10, 516 }, { 7, 10, 1439 }, { 9, 10, 518 }, - { 4, 0, 71 }, { 5, 0, 376 }, { 7, 0, 119 }, { 10, 0, 665 }, - { 13, 10, 151 }, { 11, 0, 827 }, { 14, 0, 34 }, { 15, 0, 148 }, - { 5, 11, 518 }, { 4, 0, 479 }, { 7, 11, 1787 }, { 7, 11, 1852 }, - { 7, 10, 993 }, { 7, 0, 607 }, { 8, 0, 99 }, { 6, 0, 1960 }, - { 4, 0, 793 }, { 4, 0, 41 }, { 5, 0, 74 }, { 7, 0, 1627 }, - { 11, 0, 871 }, { 12, 0, 619 }, { 7, 0, 94 }, { 11, 0, 329 }, - { 11, 0, 965 }, { 12, 0, 241 }, { 14, 0, 354 }, { 15, 0, 22 }, - { 20, 0, 63 }, { 7, 10, 501 }, { 9, 10, 111 }, { 10, 10, 141 }, - { 11, 10, 332 }, { 13, 10, 43 }, { 13, 10, 429 }, { 14, 10, 130 }, - { 14, 10, 415 }, { 17, 10, 102 }, { 9, 0, 209 }, { 9, 0, 300 }, - { 6, 0, 1497 }, { 10, 11, 255 }, { 4, 11, 934 }, { 5, 11, 138 }, - { 8, 11, 610 }, { 5, 0, 98 }, { 6, 0, 1316 }, { 10, 11, 804 }, - { 10, 11, 832 }, { 8, 11, 96 }, { 9, 11, 36 }, { 10, 11, 607 }, - { 11, 11, 423 }, { 11, 11, 442 }, { 12, 11, 309 }, { 14, 11, 199 }, - { 15, 11, 90 }, { 17, 11, 110 }, { 4, 0, 463 }, { 5, 10, 149 }, - { 8, 10, 233 }, { 5, 10, 935 }, { 4, 11, 652 }, { 8, 11, 320 }, - { 9, 11, 13 }, { 9, 11, 398 }, { 9, 11, 727 }, { 10, 11, 75 }, - { 10, 11, 184 }, { 10, 11, 230 }, { 10, 11, 564 }, { 10, 11, 569 }, - { 11, 11, 973 }, { 12, 11, 70 }, { 12, 11, 189 }, { 13, 11, 57 }, - { 13, 11, 257 }, { 22, 11, 6 }, { 22, 11, 16 }, { 14, 0, 291 }, - { 12, 10, 582 }, { 18, 10, 131 }, { 8, 10, 801 }, { 5, 0, 984 }, - { 17, 11, 116 }, { 4, 11, 692 }, { 5, 11, 321 }, { 4, 0, 182 }, - { 6, 0, 205 }, { 7, 0, 220 }, { 4, 0, 42 }, { 9, 0, 205 }, - { 9, 0, 786 }, { 10, 0, 659 }, { 6, 0, 801 }, { 11, 11, 130 }, - { 12, 11, 609 }, { 4, 0, 635 }, { 5, 11, 345 }, { 7, 11, 1016 }, - { 11, 0, 533 }, { 4, 0, 371 }, { 4, 0, 272 }, { 7, 0, 836 }, - { 6, 0, 1282 }, { 7, 11, 1100 }, { 5, 0, 825 }, { 6, 0, 1640 }, - { 7, 11, 1325 }, { 5, 11, 673 }, { 4, 11, 287 }, { 5, 11, 1018 }, - { 7, 0, 357 }, { 6, 0, 467 }, { 9, 0, 879 }, { 7, 0, 317 }, - { 7, 0, 569 }, { 6, 0, 924 }, { 6, 0, 1588 }, { 5, 11, 34 }, - { 5, 10, 406 }, { 10, 11, 724 }, { 12, 11, 444 }, { 13, 11, 354 }, - { 18, 11, 32 }, { 23, 11, 24 }, { 23, 11, 31 }, { 24, 11, 5 }, - { 6, 0, 1795 }, { 6, 0, 1835 }, { 6, 0, 1836 }, { 6, 0, 1856 }, - { 8, 0, 844 }, { 8, 0, 849 }, { 8, 0, 854 }, { 8, 0, 870 }, - { 8, 0, 887 }, { 10, 0, 852 }, { 10, 0, 942 }, { 6, 10, 69 }, - { 7, 10, 117 }, { 9, 0, 307 }, { 4, 0, 944 }, { 6, 0, 1799 }, - { 6, 0, 1825 }, { 10, 0, 848 }, { 10, 0, 875 }, { 10, 0, 895 }, - { 10, 0, 899 }, { 10, 0, 902 }, { 12, 0, 773 }, { 11, 0, 43 }, - { 13, 0, 72 }, { 13, 0, 142 }, { 7, 10, 1830 }, { 6, 11, 382 }, - { 4, 10, 432 }, { 7, 10, 824 }, { 4, 11, 329 }, { 7, 0, 1820 }, - { 11, 11, 124 }, { 5, 10, 826 }, { 5, 0, 525 }, { 4, 11, 906 }, - { 7, 11, 1940 }, { 8, 11, 366 }, { 10, 11, 10 }, { 4, 11, 123 }, - { 4, 11, 649 }, { 5, 11, 605 }, { 7, 11, 1509 }, { 8, 11, 36 }, - { 6, 0, 110 }, { 7, 0, 1681 }, { 5, 0, 493 }, { 5, 11, 767 }, - { 4, 0, 174 }, { 7, 0, 911 }, { 10, 11, 786 }, { 8, 0, 417 }, - { 9, 0, 782 }, { 5, 10, 1000 }, { 7, 0, 733 }, { 9, 0, 583 }, - { 4, 10, 297 }, { 6, 10, 529 }, { 7, 10, 152 }, { 7, 10, 713 }, - { 7, 10, 1845 }, { 8, 10, 710 }, { 8, 10, 717 }, { 12, 10, 639 }, - { 12, 10, 685 }, { 4, 0, 32 }, { 5, 0, 215 }, { 6, 0, 269 }, - { 7, 0, 1782 }, { 7, 0, 1892 }, { 10, 0, 16 }, { 11, 0, 822 }, - { 11, 0, 954 }, { 13, 0, 481 }, { 4, 11, 273 }, { 5, 11, 658 }, - { 5, 11, 995 }, { 8, 0, 477 }, { 6, 11, 72 }, { 7, 11, 1345 }, - { 5, 0, 308 }, { 7, 0, 1088 }, { 4, 10, 520 }, { 7, 10, 575 }, - { 5, 11, 589 }, { 5, 0, 126 }, { 8, 0, 297 }, { 9, 0, 366 }, - { 12, 0, 374 }, { 7, 0, 1551 }, { 11, 0, 361 }, { 5, 11, 117 }, - { 6, 11, 514 }, { 6, 11, 541 }, { 7, 11, 1164 }, { 7, 11, 1436 }, - { 8, 11, 220 }, { 8, 11, 648 }, { 10, 11, 688 }, { 11, 11, 560 }, - { 5, 11, 686 }, { 4, 0, 946 }, { 6, 0, 1807 }, { 8, 0, 871 }, - { 10, 0, 854 }, { 10, 0, 870 }, { 10, 0, 888 }, { 10, 0, 897 }, - { 10, 0, 920 }, { 12, 0, 722 }, { 12, 0, 761 }, { 12, 0, 763 }, - { 12, 0, 764 }, { 14, 0, 454 }, { 14, 0, 465 }, { 16, 0, 107 }, - { 18, 0, 167 }, { 18, 0, 168 }, { 18, 0, 172 }, { 4, 0, 175 }, - { 7, 0, 1307 }, { 4, 0, 685 }, { 7, 11, 1834 }, { 5, 0, 797 }, - { 6, 0, 745 }, { 6, 0, 858 }, { 6, 0, 963 }, { 5, 0, 565 }, - { 5, 10, 397 }, { 6, 10, 154 }, { 7, 11, 196 }, { 7, 10, 676 }, - { 8, 10, 443 }, { 8, 10, 609 }, { 9, 10, 24 }, { 9, 10, 325 }, - { 10, 10, 35 }, { 10, 11, 765 }, { 11, 11, 347 }, { 11, 10, 535 }, - { 11, 11, 552 }, { 11, 11, 576 }, { 11, 10, 672 }, { 11, 11, 790 }, - { 11, 10, 1018 }, { 12, 11, 263 }, { 12, 10, 637 }, { 13, 11, 246 }, - { 13, 11, 270 }, { 13, 11, 395 }, { 14, 11, 74 }, { 14, 11, 176 }, - { 14, 11, 190 }, { 14, 11, 398 }, { 14, 11, 412 }, { 15, 11, 32 }, - { 15, 11, 63 }, { 16, 10, 30 }, { 16, 11, 88 }, { 19, 11, 105 }, - { 13, 11, 84 }, { 13, 11, 122 }, { 4, 0, 252 }, { 7, 0, 1068 }, - { 10, 0, 434 }, { 11, 0, 228 }, { 11, 0, 426 }, { 13, 0, 231 }, - { 18, 0, 106 }, { 20, 0, 87 }, { 9, 0, 826 }, { 4, 11, 589 }, - { 11, 11, 282 }, { 5, 11, 381 }, { 7, 11, 1792 }, { 4, 0, 791 }, - { 5, 0, 231 }, { 10, 0, 509 }, { 5, 10, 981 }, { 7, 0, 601 }, - { 9, 0, 277 }, { 9, 0, 674 }, { 10, 0, 178 }, { 10, 0, 418 }, - { 10, 0, 571 }, { 11, 0, 531 }, { 12, 0, 113 }, { 12, 0, 475 }, - { 13, 0, 99 }, { 14, 0, 428 }, { 4, 10, 56 }, { 7, 11, 616 }, - { 7, 10, 1791 }, { 8, 10, 607 }, { 8, 10, 651 }, { 10, 11, 413 }, - { 11, 10, 465 }, { 11, 10, 835 }, { 12, 10, 337 }, { 13, 10, 480 }, - { 7, 0, 1591 }, { 16, 0, 43 }, { 9, 10, 158 }, { 10, 10, 411 }, - { 7, 0, 1683 }, { 8, 0, 289 }, { 11, 0, 45 }, { 12, 0, 278 }, - { 12, 0, 537 }, { 6, 11, 120 }, { 7, 11, 1188 }, { 7, 11, 1710 }, - { 8, 11, 286 }, { 9, 11, 667 }, { 11, 11, 592 }, { 11, 11, 730 }, - { 8, 10, 617 }, { 7, 0, 1120 }, { 7, 11, 1146 }, { 11, 10, 563 }, - { 4, 11, 352 }, { 4, 10, 369 }, { 7, 11, 687 }, { 15, 11, 38 }, - { 4, 0, 399 }, { 5, 0, 119 }, { 5, 0, 494 }, { 7, 0, 751 }, - { 9, 0, 556 }, { 14, 11, 179 }, { 15, 11, 151 }, { 22, 11, 11 }, - { 4, 11, 192 }, { 5, 11, 49 }, { 6, 11, 200 }, { 6, 11, 293 }, - { 6, 11, 1696 }, { 7, 11, 488 }, { 4, 0, 398 }, { 5, 0, 660 }, - { 7, 0, 1030 }, { 6, 10, 622 }, { 7, 11, 595 }, { 13, 0, 168 }, - { 4, 11, 147 }, { 7, 0, 973 }, { 10, 10, 624 }, { 14, 10, 279 }, - { 4, 10, 363 }, { 4, 0, 642 }, { 5, 11, 934 }, { 6, 0, 1615 }, - { 7, 11, 505 }, { 7, 11, 523 }, { 7, 0, 594 }, { 7, 0, 851 }, - { 7, 0, 1858 }, { 9, 0, 411 }, { 9, 0, 574 }, { 9, 0, 666 }, - { 9, 0, 737 }, { 10, 0, 346 }, { 10, 0, 712 }, { 11, 0, 246 }, - { 11, 0, 432 }, { 11, 0, 517 }, { 11, 0, 647 }, { 11, 0, 679 }, - { 11, 0, 727 }, { 12, 0, 304 }, { 12, 0, 305 }, { 12, 0, 323 }, - { 12, 0, 483 }, { 12, 0, 572 }, { 12, 0, 593 }, { 12, 0, 602 }, - { 13, 0, 95 }, { 13, 0, 101 }, { 13, 0, 171 }, { 13, 0, 315 }, - { 13, 0, 378 }, { 13, 0, 425 }, { 13, 0, 475 }, { 14, 0, 63 }, - { 14, 0, 380 }, { 14, 0, 384 }, { 15, 0, 133 }, { 18, 0, 112 }, - { 20, 0, 72 }, { 7, 0, 1093 }, { 4, 0, 679 }, { 8, 0, 913 }, - { 10, 0, 903 }, { 10, 0, 915 }, { 12, 0, 648 }, { 12, 0, 649 }, - { 14, 0, 455 }, { 16, 0, 112 }, { 10, 11, 438 }, { 9, 0, 203 }, - { 6, 10, 292 }, { 6, 0, 1492 }, { 7, 0, 1374 }, { 8, 0, 540 }, - { 5, 10, 177 }, { 6, 10, 616 }, { 7, 10, 827 }, { 9, 10, 525 }, - { 10, 10, 656 }, { 7, 0, 1486 }, { 9, 0, 714 }, { 10, 10, 31 }, - { 8, 0, 825 }, { 6, 0, 1511 }, { 4, 11, 637 }, { 6, 0, 952 }, - { 4, 10, 161 }, { 5, 10, 631 }, { 5, 0, 143 }, { 5, 0, 769 }, - { 6, 0, 1760 }, { 7, 0, 682 }, { 7, 0, 1992 }, { 8, 0, 736 }, - { 4, 0, 700 }, { 6, 0, 1540 }, { 4, 11, 777 }, { 9, 11, 867 }, - { 10, 11, 837 }, { 7, 0, 1557 }, { 7, 10, 1684 }, { 5, 0, 860 }, - { 6, 0, 422 }, { 7, 0, 0 }, { 7, 0, 1544 }, { 9, 0, 605 }, - { 11, 0, 990 }, { 12, 0, 235 }, { 12, 0, 453 }, { 13, 0, 47 }, - { 13, 0, 266 }, { 9, 10, 469 }, { 9, 10, 709 }, { 12, 10, 512 }, - { 14, 10, 65 }, { 17, 10, 12 }, { 11, 0, 807 }, { 10, 10, 229 }, - { 11, 10, 73 }, { 11, 10, 376 }, { 6, 11, 170 }, { 7, 11, 1080 }, - { 8, 11, 395 }, { 8, 11, 487 }, { 11, 11, 125 }, { 13, 11, 147 }, - { 5, 0, 515 }, { 9, 0, 131 }, { 7, 0, 1605 }, { 11, 0, 962 }, - { 18, 0, 139 }, { 4, 0, 646 }, { 4, 0, 396 }, { 7, 0, 728 }, - { 9, 0, 117 }, { 13, 0, 202 }, { 20, 0, 51 }, { 6, 0, 121 }, - { 6, 0, 124 }, { 6, 0, 357 }, { 7, 0, 1138 }, { 7, 0, 1295 }, - { 8, 0, 162 }, { 8, 0, 508 }, { 11, 0, 655 }, { 4, 11, 535 }, - { 6, 10, 558 }, { 7, 10, 651 }, { 8, 11, 618 }, { 9, 10, 0 }, - { 10, 10, 34 }, { 11, 10, 1008 }, { 7, 11, 1245 }, { 10, 0, 357 }, - { 22, 11, 23 }, { 5, 0, 237 }, { 7, 0, 1784 }, { 7, 10, 1832 }, - { 10, 10, 374 }, { 4, 0, 713 }, { 4, 11, 46 }, { 6, 0, 1536 }, - { 10, 0, 348 }, { 5, 11, 811 }, { 6, 11, 1679 }, { 6, 11, 1714 }, - { 7, 11, 2032 }, { 11, 11, 182 }, { 14, 11, 195 }, { 6, 0, 523 }, - { 7, 0, 738 }, { 7, 10, 771 }, { 7, 10, 1731 }, { 9, 10, 405 }, - { 10, 10, 421 }, { 7, 11, 1458 }, { 9, 11, 407 }, { 11, 11, 15 }, - { 6, 11, 34 }, { 7, 11, 69 }, { 7, 11, 640 }, { 7, 11, 1089 }, - { 8, 11, 708 }, { 8, 11, 721 }, { 9, 11, 363 }, { 9, 11, 643 }, - { 10, 11, 628 }, { 20, 11, 98 }, { 5, 0, 434 }, { 7, 0, 1877 }, - { 7, 0, 571 }, { 10, 0, 366 }, { 5, 10, 881 }, { 5, 10, 885 }, - { 9, 0, 513 }, { 10, 0, 25 }, { 10, 0, 39 }, { 12, 0, 122 }, - { 12, 0, 187 }, { 4, 0, 580 }, { 5, 10, 142 }, { 6, 10, 546 }, - { 4, 11, 462 }, { 9, 0, 873 }, { 5, 10, 466 }, { 11, 10, 571 }, - { 12, 10, 198 }, { 13, 10, 283 }, { 14, 10, 186 }, { 15, 10, 21 }, - { 15, 10, 103 }, { 7, 0, 171 }, { 4, 10, 185 }, { 5, 10, 257 }, - { 5, 10, 839 }, { 5, 10, 936 }, { 9, 10, 399 }, { 10, 10, 258 }, - { 10, 10, 395 }, { 10, 10, 734 }, { 11, 10, 1014 }, { 12, 10, 23 }, - { 13, 10, 350 }, { 14, 10, 150 }, { 19, 10, 6 }, { 6, 0, 625 }, - { 7, 0, 107 }, { 7, 0, 838 }, { 8, 0, 550 }, { 10, 0, 401 }, - { 5, 11, 73 }, { 6, 11, 23 }, { 6, 11, 338 }, { 4, 0, 943 }, - { 6, 0, 1850 }, { 12, 0, 713 }, { 14, 0, 434 }, { 11, 0, 588 }, - { 11, 0, 864 }, { 11, 0, 936 }, { 11, 0, 968 }, { 12, 0, 73 }, - { 12, 0, 343 }, { 12, 0, 394 }, { 13, 0, 275 }, { 14, 0, 257 }, - { 15, 0, 160 }, { 7, 10, 404 }, { 7, 10, 1377 }, { 7, 10, 1430 }, - { 7, 10, 2017 }, { 8, 10, 149 }, { 8, 10, 239 }, { 8, 10, 512 }, - { 8, 10, 793 }, { 8, 10, 818 }, { 9, 10, 474 }, { 9, 10, 595 }, - { 10, 10, 122 }, { 10, 10, 565 }, { 10, 10, 649 }, { 10, 10, 783 }, - { 11, 10, 239 }, { 11, 10, 295 }, { 11, 10, 447 }, { 11, 10, 528 }, - { 11, 10, 639 }, { 11, 10, 800 }, { 12, 10, 25 }, { 12, 10, 157 }, - { 12, 10, 316 }, { 12, 10, 390 }, { 12, 10, 391 }, { 12, 10, 395 }, - { 12, 10, 478 }, { 12, 10, 503 }, { 12, 10, 592 }, { 12, 10, 680 }, - { 13, 10, 50 }, { 13, 10, 53 }, { 13, 10, 132 }, { 13, 10, 198 }, - { 13, 10, 322 }, { 13, 10, 415 }, { 13, 10, 511 }, { 14, 10, 71 }, - { 14, 10, 395 }, { 15, 10, 71 }, { 15, 10, 136 }, { 17, 10, 123 }, - { 18, 10, 93 }, { 19, 10, 58 }, { 5, 0, 768 }, { 11, 0, 103 }, - { 14, 0, 0 }, { 8, 10, 712 }, { 4, 0, 799 }, { 4, 0, 894 }, - { 7, 11, 725 }, { 8, 11, 498 }, { 11, 11, 268 }, { 7, 11, 1798 }, - { 7, 11, 773 }, { 13, 11, 360 }, { 4, 10, 377 }, { 24, 10, 13 }, - { 7, 0, 1673 }, { 4, 11, 583 }, { 6, 0, 1052 }, { 5, 11, 220 }, - { 12, 11, 69 }, { 4, 11, 544 }, { 4, 10, 180 }, { 7, 10, 1906 }, - { 6, 0, 272 }, { 4, 0, 441 }, { 6, 0, 1421 }, { 4, 0, 9 }, - { 5, 0, 128 }, { 7, 0, 368 }, { 11, 0, 480 }, { 20, 0, 3 }, - { 5, 11, 176 }, { 6, 11, 437 }, { 6, 11, 564 }, { 11, 11, 181 }, - { 13, 11, 183 }, { 4, 10, 491 }, { 7, 0, 1182 }, { 13, 11, 67 }, - { 6, 0, 1346 }, { 4, 10, 171 }, { 10, 10, 234 }, { 4, 10, 586 }, - { 7, 10, 1186 }, { 10, 10, 631 }, { 8, 0, 682 }, { 6, 0, 1004 }, - { 15, 0, 24 }, { 15, 11, 24 }, { 6, 0, 968 }, { 4, 0, 2 }, - { 6, 0, 742 }, { 6, 0, 793 }, { 7, 0, 545 }, { 7, 0, 894 }, - { 9, 10, 931 }, { 10, 10, 334 }, { 20, 10, 71 }, { 8, 11, 600 }, - { 5, 10, 765 }, { 9, 0, 769 }, { 12, 0, 185 }, { 4, 11, 790 }, - { 5, 11, 273 }, { 6, 11, 394 }, { 7, 0, 474 }, { 9, 0, 578 }, - { 4, 11, 135 }, { 6, 11, 127 }, { 7, 11, 1185 }, { 7, 11, 1511 }, - { 8, 11, 613 }, { 11, 11, 5 }, { 12, 11, 133 }, { 12, 11, 495 }, - { 12, 11, 586 }, { 14, 11, 385 }, { 15, 11, 118 }, { 17, 11, 20 }, - { 18, 11, 98 }, { 5, 10, 424 }, { 5, 0, 530 }, { 14, 0, 113 }, - { 6, 11, 230 }, { 7, 11, 961 }, { 7, 11, 1085 }, { 8, 11, 462 }, - { 7, 11, 1954 }, { 9, 11, 636 }, { 8, 10, 714 }, { 21, 11, 6 }, - { 7, 10, 685 }, { 9, 10, 420 }, { 10, 10, 269 }, { 10, 10, 285 }, - { 10, 10, 576 }, { 11, 10, 397 }, { 13, 10, 175 }, { 17, 10, 90 }, - { 4, 10, 429 }, { 5, 0, 556 }, { 5, 11, 162 }, { 8, 11, 68 }, - { 4, 11, 654 }, { 4, 11, 156 }, { 7, 11, 998 }, { 7, 11, 1045 }, - { 7, 11, 1860 }, { 9, 11, 48 }, { 9, 11, 692 }, { 11, 11, 419 }, - { 11, 11, 602 }, { 6, 0, 1317 }, { 8, 0, 16 }, { 9, 0, 825 }, - { 12, 0, 568 }, { 7, 11, 1276 }, { 8, 11, 474 }, { 9, 11, 652 }, - { 18, 0, 97 }, { 7, 10, 18 }, { 7, 10, 699 }, { 7, 10, 1966 }, - { 8, 10, 752 }, { 9, 10, 273 }, { 9, 10, 412 }, { 9, 10, 703 }, - { 10, 10, 71 }, { 10, 10, 427 }, { 10, 10, 508 }, { 10, 0, 703 }, - { 7, 11, 1454 }, { 10, 11, 703 }, { 4, 10, 53 }, { 5, 10, 186 }, - { 7, 10, 752 }, { 6, 0, 892 }, { 6, 0, 1571 }, { 8, 10, 575 }, - { 10, 10, 289 }, { 11, 10, 319 }, { 6, 0, 186 }, { 9, 0, 426 }, - { 6, 0, 1101 }, { 4, 10, 675 }, { 4, 0, 585 }, { 6, 0, 1870 }, - { 9, 0, 937 }, { 24, 11, 10 }, { 9, 11, 197 }, { 10, 11, 300 }, - { 12, 11, 473 }, { 13, 11, 90 }, { 13, 11, 405 }, { 4, 0, 93 }, - { 5, 0, 252 }, { 6, 0, 229 }, { 7, 0, 291 }, { 9, 0, 550 }, - { 11, 0, 644 }, { 9, 0, 749 }, { 9, 0, 162 }, { 6, 10, 209 }, - { 8, 10, 468 }, { 9, 10, 210 }, { 11, 10, 36 }, { 12, 10, 28 }, - { 12, 10, 630 }, { 13, 10, 21 }, { 13, 10, 349 }, { 14, 10, 7 }, - { 17, 10, 13 }, { 4, 0, 381 }, { 4, 11, 606 }, { 4, 10, 342 }, - { 7, 10, 1179 }, { 7, 11, 1587 }, { 7, 11, 1707 }, { 10, 11, 528 }, - { 11, 11, 504 }, { 12, 11, 39 }, { 13, 11, 265 }, { 13, 11, 439 }, - { 4, 10, 928 }, { 5, 10, 910 }, { 7, 10, 1838 }, { 7, 11, 1978 }, - { 8, 11, 676 }, { 6, 0, 762 }, { 6, 0, 796 }, { 6, 0, 956 }, - { 4, 10, 318 }, { 4, 10, 496 }, { 7, 10, 856 }, { 11, 10, 654 }, - { 9, 11, 242 }, { 4, 11, 361 }, { 5, 11, 315 }, { 4, 11, 461 }, - { 4, 11, 472 }, { 4, 0, 857 }, { 5, 0, 21 }, { 6, 0, 77 }, - { 6, 0, 157 }, { 7, 0, 974 }, { 7, 0, 1301 }, { 7, 0, 1339 }, - { 7, 0, 1490 }, { 7, 0, 1873 }, { 9, 0, 628 }, { 7, 10, 915 }, - { 8, 10, 247 }, { 19, 10, 0 }, { 4, 10, 202 }, { 5, 10, 382 }, - { 6, 10, 454 }, { 7, 10, 936 }, { 7, 10, 1803 }, { 8, 10, 758 }, - { 9, 10, 375 }, { 9, 10, 895 }, { 10, 10, 743 }, { 10, 10, 792 }, - { 11, 10, 978 }, { 11, 10, 1012 }, { 14, 10, 109 }, { 7, 11, 617 }, - { 10, 11, 498 }, { 11, 11, 501 }, { 12, 11, 16 }, { 12, 11, 150 }, - { 7, 10, 1150 }, { 7, 10, 1425 }, { 7, 10, 1453 }, { 10, 11, 747 }, - { 12, 10, 513 }, { 5, 11, 155 }, { 11, 0, 919 }, { 13, 0, 409 }, - { 10, 10, 791 }, { 10, 0, 633 }, { 11, 11, 729 }, { 7, 11, 163 }, - { 8, 11, 319 }, { 9, 11, 402 }, { 10, 11, 24 }, { 10, 11, 681 }, - { 11, 11, 200 }, { 11, 11, 567 }, { 12, 11, 253 }, { 12, 11, 410 }, - { 14, 11, 219 }, { 5, 11, 475 }, { 7, 11, 1780 }, { 9, 11, 230 }, - { 11, 11, 297 }, { 11, 11, 558 }, { 14, 11, 322 }, { 19, 11, 76 }, - { 7, 0, 332 }, { 6, 10, 445 }, { 9, 10, 909 }, { 7, 11, 1956 }, - { 8, 11, 274 }, { 6, 10, 578 }, { 7, 0, 1489 }, { 7, 11, 1848 }, - { 5, 11, 944 }, { 6, 11, 1769 }, { 4, 11, 144 }, { 8, 10, 766 }, - { 4, 0, 832 }, { 7, 10, 541 }, { 8, 0, 398 }, { 9, 0, 681 }, - { 11, 0, 632 }, { 8, 0, 645 }, { 9, 0, 791 }, { 10, 0, 93 }, - { 16, 0, 13 }, { 17, 0, 23 }, { 18, 0, 135 }, { 19, 0, 12 }, - { 20, 0, 1 }, { 20, 0, 12 }, { 20, 0, 14 }, { 6, 11, 247 }, - { 9, 11, 555 }, { 6, 0, 20 }, { 4, 0, 800 }, { 7, 0, 1841 }, - { 11, 10, 983 }, { 9, 10, 768 }, { 4, 10, 584 }, { 13, 11, 51 }, - { 6, 0, 1993 }, { 4, 11, 620 }, { 10, 11, 280 }, { 8, 0, 769 }, - { 11, 0, 290 }, { 11, 0, 665 }, { 7, 11, 1810 }, { 11, 11, 866 }, - { 12, 11, 103 }, { 13, 11, 495 }, { 17, 11, 67 }, { 19, 11, 74 }, - { 6, 0, 1426 }, { 11, 0, 60 }, { 4, 10, 326 }, { 7, 10, 1770 }, - { 7, 0, 1874 }, { 9, 0, 641 }, { 4, 10, 226 }, { 6, 0, 644 }, - { 5, 10, 426 }, { 8, 10, 30 }, { 9, 10, 2 }, { 11, 10, 549 }, - { 19, 10, 122 }, { 5, 11, 428 }, { 10, 11, 442 }, { 7, 11, 1871 }, - { 7, 0, 1757 }, { 19, 10, 117 }, { 7, 0, 937 }, { 7, 0, 1652 }, - { 6, 0, 654 }, { 6, 0, 1476 }, { 5, 11, 99 }, { 7, 0, 527 }, - { 4, 10, 345 }, { 4, 10, 385 }, { 4, 11, 397 }, { 7, 10, 265 }, - { 7, 10, 587 }, { 4, 0, 579 }, { 5, 0, 226 }, { 5, 0, 323 }, - { 7, 0, 960 }, { 6, 0, 1486 }, { 8, 11, 502 }, { 16, 11, 9 }, - { 4, 10, 347 }, { 5, 10, 423 }, { 5, 10, 996 }, { 7, 10, 1329 }, - { 7, 11, 727 }, { 18, 11, 73 }, { 4, 11, 485 }, { 7, 11, 353 }, - { 7, 10, 1259 }, { 7, 11, 1523 }, { 9, 10, 125 }, { 11, 10, 65 }, - { 6, 0, 325 }, { 5, 10, 136 }, { 6, 11, 366 }, { 7, 11, 1384 }, - { 7, 11, 1601 }, { 8, 10, 644 }, { 10, 11, 160 }, { 6, 0, 1345 }, - { 9, 11, 282 }, { 18, 0, 91 }, { 19, 0, 70 }, { 8, 0, 404 }, - { 4, 11, 157 }, { 5, 11, 471 }, { 5, 0, 973 }, { 6, 0, 135 }, - { 7, 0, 1176 }, { 8, 11, 116 }, { 11, 11, 551 }, { 14, 11, 159 }, - { 4, 0, 549 }, { 4, 10, 433 }, { 5, 10, 719 }, { 8, 0, 976 }, - { 5, 11, 160 }, { 7, 11, 363 }, { 7, 11, 589 }, { 10, 11, 170 }, - { 13, 11, 55 }, { 16, 0, 21 }, { 16, 0, 51 }, { 7, 0, 314 }, - { 7, 10, 1363 }, { 4, 11, 108 }, { 7, 11, 405 }, { 10, 11, 491 }, - { 11, 11, 498 }, { 18, 0, 4 }, { 4, 10, 555 }, { 8, 10, 536 }, - { 10, 10, 288 }, { 11, 10, 1005 }, { 7, 11, 1005 }, { 6, 0, 281 }, - { 7, 0, 6 }, { 8, 0, 282 }, { 8, 0, 480 }, { 8, 0, 499 }, - { 9, 0, 198 }, { 10, 0, 143 }, { 10, 0, 169 }, { 10, 0, 211 }, - { 10, 0, 417 }, { 10, 0, 574 }, { 11, 0, 147 }, { 11, 0, 395 }, - { 12, 0, 75 }, { 12, 0, 407 }, { 12, 0, 608 }, { 13, 0, 500 }, - { 14, 0, 251 }, { 6, 0, 1093 }, { 6, 0, 1405 }, { 9, 10, 370 }, - { 10, 10, 90 }, { 4, 11, 926 }, { 5, 11, 983 }, { 7, 0, 1776 }, - { 6, 0, 1528 }, { 4, 0, 419 }, { 4, 11, 538 }, { 6, 11, 294 }, - { 7, 11, 1267 }, { 8, 11, 624 }, { 7, 11, 1772 }, { 10, 11, 301 }, - { 4, 10, 257 }, { 7, 10, 2031 }, { 4, 0, 138 }, { 7, 0, 1012 }, - { 7, 0, 1280 }, { 9, 0, 76 }, { 7, 10, 1768 }, { 4, 11, 757 }, - { 5, 0, 29 }, { 12, 0, 638 }, { 7, 11, 655 }, { 7, 11, 1844 }, - { 7, 0, 1418 }, { 6, 11, 257 }, { 7, 11, 1522 }, { 8, 11, 469 }, - { 10, 11, 47 }, { 14, 11, 278 }, { 6, 10, 83 }, { 6, 10, 1733 }, - { 7, 10, 1389 }, { 11, 11, 204 }, { 11, 11, 243 }, { 12, 11, 293 }, - { 7, 11, 1875 }, { 6, 0, 1710 }, { 7, 0, 2038 }, { 9, 11, 299 }, - { 4, 0, 17 }, { 5, 0, 23 }, { 7, 0, 995 }, { 11, 0, 383 }, - { 11, 0, 437 }, { 12, 0, 460 }, { 12, 0, 532 }, { 5, 0, 862 }, - { 9, 10, 696 }, { 6, 0, 592 }, { 10, 0, 946 }, { 10, 11, 599 }, - { 7, 10, 1718 }, { 9, 10, 95 }, { 9, 10, 274 }, { 10, 10, 279 }, - { 10, 10, 317 }, { 10, 10, 420 }, { 11, 10, 303 }, { 11, 10, 808 }, - { 12, 10, 134 }, { 12, 10, 367 }, { 13, 10, 149 }, { 13, 10, 347 }, - { 14, 10, 349 }, { 14, 10, 406 }, { 18, 10, 22 }, { 18, 10, 89 }, - { 18, 10, 122 }, { 19, 10, 47 }, { 8, 0, 70 }, { 12, 0, 171 }, - { 13, 0, 272 }, { 5, 10, 26 }, { 4, 10, 550 }, { 9, 0, 812 }, - { 10, 0, 233 }, { 11, 0, 76 }, { 6, 0, 988 }, { 6, 0, 442 }, - { 8, 10, 822 }, { 7, 0, 896 }, { 4, 10, 902 }, { 5, 10, 809 }, - { 6, 10, 122 }, { 5, 11, 150 }, { 7, 11, 106 }, { 8, 11, 603 }, - { 9, 11, 593 }, { 9, 11, 634 }, { 10, 11, 44 }, { 10, 11, 173 }, - { 11, 11, 462 }, { 11, 11, 515 }, { 13, 11, 216 }, { 13, 11, 288 }, - { 14, 11, 400 }, { 8, 0, 483 }, { 7, 10, 262 }, { 6, 0, 1709 }, - { 5, 10, 620 }, { 4, 10, 34 }, { 5, 10, 574 }, { 7, 10, 279 }, - { 7, 10, 1624 }, { 8, 10, 601 }, { 9, 10, 170 }, { 19, 0, 119 }, - { 12, 11, 108 }, { 13, 11, 291 }, { 11, 0, 69 }, { 12, 0, 105 }, - { 12, 0, 117 }, { 13, 0, 213 }, { 14, 0, 13 }, { 14, 0, 62 }, - { 14, 0, 177 }, { 14, 0, 421 }, { 15, 0, 19 }, { 18, 0, 141 }, - { 9, 0, 309 }, { 11, 11, 278 }, { 14, 11, 73 }, { 7, 0, 608 }, - { 7, 0, 976 }, { 9, 0, 146 }, { 10, 0, 206 }, { 10, 0, 596 }, - { 13, 0, 218 }, { 14, 0, 153 }, { 5, 10, 332 }, { 6, 10, 261 }, - { 8, 10, 182 }, { 11, 10, 943 }, { 4, 11, 493 }, { 16, 11, 55 }, - { 6, 10, 1721 }, { 4, 0, 768 }, { 4, 10, 933 }, { 5, 10, 880 }, - { 7, 11, 555 }, { 7, 11, 1316 }, { 7, 11, 1412 }, { 7, 11, 1839 }, - { 9, 11, 192 }, { 9, 11, 589 }, { 11, 11, 241 }, { 11, 11, 676 }, - { 11, 11, 811 }, { 11, 11, 891 }, { 12, 11, 140 }, { 12, 11, 346 }, - { 12, 11, 479 }, { 13, 11, 30 }, { 13, 11, 49 }, { 13, 11, 381 }, - { 14, 11, 188 }, { 15, 11, 150 }, { 16, 11, 76 }, { 18, 11, 30 }, - { 20, 11, 52 }, { 4, 0, 518 }, { 7, 0, 1136 }, { 6, 11, 568 }, - { 7, 11, 112 }, { 7, 11, 1804 }, { 8, 11, 362 }, { 8, 11, 410 }, - { 8, 11, 830 }, { 9, 11, 514 }, { 11, 11, 649 }, { 14, 11, 157 }, - { 7, 11, 673 }, { 8, 0, 689 }, { 9, 0, 863 }, { 4, 0, 18 }, - { 7, 0, 145 }, { 7, 0, 444 }, { 7, 0, 1278 }, { 8, 0, 49 }, - { 8, 0, 400 }, { 9, 0, 71 }, { 9, 0, 250 }, { 10, 0, 459 }, - { 12, 0, 160 }, { 16, 0, 24 }, { 4, 11, 625 }, { 12, 0, 1020 }, - { 4, 0, 997 }, { 6, 0, 1946 }, { 6, 0, 1984 }, { 6, 0, 1998 }, - { 6, 11, 16 }, { 6, 11, 158 }, { 7, 11, 43 }, { 7, 11, 129 }, - { 7, 11, 181 }, { 8, 11, 276 }, { 8, 11, 377 }, { 10, 11, 523 }, - { 11, 11, 816 }, { 12, 11, 455 }, { 13, 11, 303 }, { 14, 11, 135 }, - { 5, 10, 812 }, { 6, 0, 658 }, { 4, 11, 1 }, { 7, 11, 1143 }, - { 7, 11, 1463 }, { 8, 11, 61 }, { 9, 11, 207 }, { 9, 11, 390 }, - { 9, 11, 467 }, { 11, 11, 836 }, { 22, 11, 26 }, { 12, 0, 106 }, - { 6, 0, 1827 }, { 10, 0, 931 }, { 18, 0, 166 }, { 20, 0, 114 }, - { 4, 10, 137 }, { 7, 10, 1178 }, { 7, 11, 1319 }, { 7, 10, 1520 }, - { 5, 0, 1010 }, { 4, 11, 723 }, { 5, 11, 895 }, { 7, 11, 1031 }, - { 8, 11, 199 }, { 8, 11, 340 }, { 9, 11, 153 }, { 9, 11, 215 }, - { 10, 11, 21 }, { 10, 11, 59 }, { 10, 11, 80 }, { 10, 11, 224 }, - { 11, 11, 229 }, { 11, 11, 652 }, { 12, 11, 192 }, { 13, 11, 146 }, - { 14, 11, 91 }, { 4, 11, 295 }, { 6, 11, 619 }, { 7, 11, 898 }, - { 7, 11, 1092 }, { 8, 11, 485 }, { 18, 11, 28 }, { 19, 11, 116 }, - { 9, 11, 51 }, { 6, 10, 1661 }, { 7, 10, 1975 }, { 7, 10, 2009 }, - { 7, 10, 2011 }, { 5, 11, 309 }, { 12, 11, 211 }, { 5, 0, 87 }, - { 7, 0, 313 }, { 7, 0, 1103 }, { 10, 0, 208 }, { 10, 0, 582 }, - { 11, 0, 389 }, { 11, 0, 813 }, { 12, 0, 385 }, { 13, 0, 286 }, - { 14, 0, 124 }, { 18, 0, 108 }, { 5, 11, 125 }, { 8, 11, 77 }, - { 10, 11, 15 }, { 4, 0, 267 }, { 5, 0, 703 }, { 9, 11, 155 }, - { 5, 11, 439 }, { 11, 11, 164 }, { 12, 11, 76 }, { 9, 0, 496 }, - { 5, 10, 89 }, { 7, 10, 1915 }, { 9, 10, 185 }, { 9, 10, 235 }, - { 10, 10, 64 }, { 10, 10, 270 }, { 10, 10, 403 }, { 10, 10, 469 }, - { 10, 10, 529 }, { 10, 10, 590 }, { 11, 10, 140 }, { 11, 10, 860 }, - { 13, 10, 1 }, { 13, 10, 422 }, { 14, 10, 341 }, { 14, 10, 364 }, - { 17, 10, 93 }, { 18, 10, 113 }, { 19, 10, 97 }, { 19, 10, 113 }, - { 5, 10, 695 }, { 7, 0, 1121 }, { 5, 10, 6 }, { 6, 10, 183 }, - { 7, 10, 680 }, { 7, 10, 978 }, { 7, 10, 1013 }, { 7, 10, 1055 }, - { 12, 10, 230 }, { 13, 10, 172 }, { 18, 10, 29 }, { 4, 11, 8 }, - { 7, 11, 1152 }, { 7, 11, 1153 }, { 7, 11, 1715 }, { 9, 11, 374 }, - { 10, 11, 478 }, { 11, 11, 648 }, { 7, 11, 1099 }, { 6, 10, 29 }, - { 11, 10, 63 }, { 4, 0, 561 }, { 10, 0, 249 }, { 11, 0, 209 }, - { 4, 0, 760 }, { 7, 11, 799 }, { 10, 11, 511 }, { 8, 11, 87 }, - { 9, 0, 154 }, { 12, 0, 485 }, { 8, 0, 255 }, { 4, 0, 323 }, - { 12, 0, 419 }, { 4, 10, 311 }, { 6, 10, 1740 }, { 4, 0, 368 }, - { 7, 0, 641 }, { 7, 10, 170 }, { 8, 10, 90 }, { 8, 10, 177 }, - { 8, 10, 415 }, { 11, 10, 714 }, { 14, 10, 281 }, { 4, 11, 69 }, - { 5, 11, 122 }, { 9, 11, 656 }, { 10, 11, 464 }, { 5, 11, 849 }, - { 6, 11, 1633 }, { 8, 0, 522 }, { 14, 0, 328 }, { 11, 10, 91 }, - { 13, 10, 129 }, { 15, 10, 101 }, { 17, 10, 125 }, { 7, 0, 562 }, - { 8, 0, 551 }, { 4, 10, 494 }, { 6, 10, 74 }, { 7, 10, 44 }, - { 11, 11, 499 }, { 12, 10, 17 }, { 15, 10, 5 }, { 20, 10, 11 }, - { 4, 10, 276 }, { 5, 10, 296 }, { 9, 0, 92 }, { 19, 0, 91 }, - { 4, 10, 7 }, { 5, 10, 90 }, { 5, 10, 158 }, { 6, 10, 542 }, - { 7, 10, 221 }, { 7, 10, 1574 }, { 9, 10, 490 }, { 10, 10, 540 }, - { 11, 10, 443 }, { 11, 10, 757 }, { 6, 0, 525 }, { 6, 0, 1976 }, - { 8, 0, 806 }, { 9, 0, 876 }, { 12, 0, 284 }, { 5, 11, 859 }, - { 7, 10, 588 }, { 7, 11, 1160 }, { 8, 11, 107 }, { 9, 10, 175 }, - { 9, 11, 291 }, { 9, 11, 439 }, { 10, 10, 530 }, { 10, 11, 663 }, - { 11, 11, 609 }, { 12, 11, 197 }, { 7, 11, 168 }, { 13, 11, 196 }, - { 13, 11, 237 }, { 11, 0, 958 }, { 5, 0, 594 }, { 7, 10, 580 }, - { 7, 10, 88 }, { 8, 10, 627 }, { 6, 0, 479 }, { 6, 0, 562 }, - { 7, 0, 1060 }, { 13, 0, 6 }, { 5, 10, 872 }, { 6, 10, 57 }, - { 7, 10, 471 }, { 9, 10, 447 }, { 9, 10, 454 }, { 8, 11, 413 }, - { 17, 11, 19 }, { 4, 11, 117 }, { 6, 11, 372 }, { 7, 11, 1905 }, - { 14, 11, 323 }, { 4, 11, 722 }, { 11, 11, 471 }, { 17, 0, 61 }, - { 5, 10, 31 }, { 6, 10, 614 }, { 8, 10, 330 }, { 12, 10, 477 }, - { 7, 10, 1200 }, { 10, 10, 460 }, { 6, 10, 424 }, { 7, 10, 1866 }, - { 6, 0, 1641 }, { 8, 0, 820 }, { 6, 0, 1556 }, { 6, 0, 1618 }, - { 9, 11, 5 }, { 12, 11, 216 }, { 12, 11, 294 }, { 12, 11, 298 }, - { 12, 11, 400 }, { 12, 11, 518 }, { 13, 11, 229 }, { 15, 11, 139 }, - { 15, 11, 155 }, { 16, 11, 79 }, { 4, 0, 302 }, { 7, 0, 1766 }, - { 5, 10, 13 }, { 6, 10, 142 }, { 6, 0, 148 }, { 7, 0, 1313 }, - { 7, 10, 116 }, { 8, 10, 322 }, { 8, 10, 755 }, { 9, 10, 548 }, - { 10, 10, 714 }, { 11, 10, 884 }, { 13, 10, 324 }, { 9, 0, 676 }, - { 9, 11, 88 }, { 11, 11, 270 }, { 5, 11, 12 }, { 7, 11, 375 }, - { 9, 11, 438 }, { 6, 0, 1674 }, { 7, 10, 1472 }, { 7, 10, 1554 }, - { 11, 0, 178 }, { 7, 10, 1071 }, { 7, 10, 1541 }, { 7, 10, 1767 }, - { 7, 10, 1806 }, { 11, 10, 162 }, { 11, 10, 242 }, { 12, 10, 605 }, - { 15, 10, 26 }, { 16, 10, 44 }, { 6, 0, 389 }, { 7, 0, 149 }, - { 9, 0, 142 }, { 10, 0, 94 }, { 12, 11, 71 }, { 17, 10, 115 }, - { 6, 0, 8 }, { 7, 0, 1881 }, { 8, 0, 91 }, { 11, 11, 966 }, - { 12, 11, 287 }, { 13, 11, 342 }, { 13, 11, 402 }, { 15, 11, 110 }, - { 15, 11, 163 }, { 4, 11, 258 }, { 8, 11, 639 }, { 6, 11, 22 }, - { 7, 11, 903 }, { 10, 11, 577 }, { 5, 11, 681 }, { 7, 10, 1111 }, - { 7, 11, 1286 }, { 9, 0, 112 }, { 8, 10, 1 }, { 10, 10, 326 }, - { 5, 10, 488 }, { 6, 10, 527 }, { 7, 10, 489 }, { 7, 10, 1636 }, - { 8, 10, 121 }, { 8, 10, 144 }, { 8, 10, 359 }, { 9, 10, 193 }, - { 9, 10, 241 }, { 9, 10, 336 }, { 9, 10, 882 }, { 11, 10, 266 }, - { 11, 10, 372 }, { 11, 10, 944 }, { 12, 10, 401 }, { 12, 10, 641 }, - { 4, 11, 664 }, { 5, 11, 804 }, { 6, 0, 747 }, { 6, 0, 1015 }, - { 7, 0, 1746 }, { 9, 10, 31 }, { 10, 10, 244 }, { 10, 10, 699 }, - { 12, 10, 149 }, { 13, 10, 497 }, { 5, 10, 377 }, { 7, 0, 24 }, - { 6, 0, 1352 }, { 5, 11, 32 }, { 17, 10, 101 }, { 7, 0, 1530 }, - { 10, 0, 158 }, { 13, 0, 13 }, { 13, 0, 137 }, { 13, 0, 258 }, - { 14, 0, 111 }, { 14, 0, 225 }, { 14, 0, 253 }, { 14, 0, 304 }, - { 14, 0, 339 }, { 14, 0, 417 }, { 18, 0, 33 }, { 4, 0, 503 }, - { 7, 0, 1661 }, { 5, 0, 130 }, { 6, 0, 845 }, { 7, 0, 1314 }, - { 9, 0, 610 }, { 10, 0, 718 }, { 11, 0, 601 }, { 11, 0, 819 }, - { 11, 0, 946 }, { 12, 0, 536 }, { 10, 0, 149 }, { 11, 0, 280 }, - { 14, 0, 336 }, { 6, 0, 1401 }, { 7, 0, 1946 }, { 8, 0, 663 }, - { 16, 0, 8 }, { 6, 0, 1607 }, { 7, 10, 2023 }, { 4, 11, 289 }, - { 7, 11, 629 }, { 7, 11, 1698 }, { 7, 11, 1711 }, { 12, 11, 215 }, - { 6, 11, 450 }, { 8, 11, 109 }, { 10, 0, 882 }, { 10, 0, 883 }, - { 10, 0, 914 }, { 10, 0, 928 }, { 5, 10, 843 }, { 8, 11, 705 }, - { 4, 10, 554 }, { 5, 10, 536 }, { 5, 0, 417 }, { 9, 10, 79 }, - { 11, 10, 625 }, { 17, 10, 7 }, { 7, 11, 1238 }, { 14, 11, 37 }, - { 4, 0, 392 }, { 7, 0, 1597 }, { 5, 0, 433 }, { 9, 0, 633 }, - { 11, 0, 629 }, { 4, 10, 424 }, { 7, 10, 336 }, { 8, 10, 785 }, - { 6, 11, 355 }, { 6, 0, 234 }, { 7, 0, 769 }, { 9, 0, 18 }, - { 10, 0, 358 }, { 4, 10, 896 }, { 6, 10, 1777 }, { 10, 11, 323 }, - { 7, 0, 140 }, { 7, 0, 1950 }, { 8, 0, 680 }, { 11, 0, 817 }, - { 19, 0, 88 }, { 7, 0, 1222 }, { 10, 0, 386 }, { 11, 11, 908 }, - { 11, 0, 249 }, { 12, 0, 313 }, { 16, 0, 66 }, { 17, 0, 26 }, - { 6, 0, 5 }, { 7, 10, 750 }, { 9, 10, 223 }, { 11, 10, 27 }, - { 11, 10, 466 }, { 12, 10, 624 }, { 14, 10, 265 }, { 18, 10, 61 }, - { 6, 11, 26 }, { 6, 0, 1216 }, { 5, 0, 963 }, { 6, 0, 1773 }, - { 4, 11, 414 }, { 5, 11, 467 }, { 9, 11, 654 }, { 10, 11, 451 }, - { 12, 11, 59 }, { 13, 11, 375 }, { 7, 11, 17 }, { 4, 10, 603 }, - { 5, 10, 661 }, { 4, 10, 11 }, { 6, 10, 128 }, { 7, 10, 231 }, - { 7, 10, 1533 }, { 10, 10, 725 }, { 7, 11, 955 }, { 7, 0, 180 }, - { 8, 0, 509 }, { 8, 0, 792 }, { 4, 10, 476 }, { 4, 0, 1002 }, - { 5, 11, 538 }, { 7, 10, 1807 }, { 4, 0, 931 }, { 7, 0, 943 }, - { 11, 0, 614 }, { 12, 0, 747 }, { 7, 0, 1837 }, { 9, 10, 20 }, - { 10, 10, 324 }, { 10, 10, 807 }, { 11, 10, 488 }, { 6, 0, 641 }, - { 6, 11, 280 }, { 10, 11, 502 }, { 11, 11, 344 }, { 12, 11, 38 }, - { 5, 11, 45 }, { 7, 11, 1161 }, { 11, 11, 448 }, { 11, 11, 880 }, - { 13, 11, 139 }, { 13, 11, 407 }, { 15, 11, 16 }, { 17, 11, 95 }, - { 18, 11, 66 }, { 18, 11, 88 }, { 18, 11, 123 }, { 21, 11, 7 }, - { 9, 0, 280 }, { 10, 0, 134 }, { 22, 0, 22 }, { 23, 0, 5 }, - { 23, 0, 29 }, { 8, 11, 777 }, { 4, 0, 90 }, { 5, 0, 545 }, - { 7, 0, 754 }, { 9, 0, 186 }, { 10, 0, 72 }, { 10, 0, 782 }, - { 11, 0, 577 }, { 11, 0, 610 }, { 11, 0, 960 }, { 12, 0, 354 }, - { 12, 0, 362 }, { 12, 0, 595 }, { 4, 11, 410 }, { 7, 11, 521 }, - { 7, 11, 1778 }, { 5, 10, 112 }, { 6, 10, 103 }, { 6, 10, 150 }, - { 10, 10, 356 }, { 4, 0, 742 }, { 7, 0, 151 }, { 9, 0, 329 }, - { 11, 0, 254 }, { 8, 0, 853 }, { 8, 0, 881 }, { 8, 0, 911 }, - { 8, 0, 912 }, { 10, 0, 872 }, { 12, 0, 741 }, { 12, 0, 742 }, - { 24, 0, 18 }, { 4, 11, 573 }, { 8, 11, 655 }, { 6, 0, 921 }, - { 6, 0, 934 }, { 9, 0, 187 }, { 10, 0, 36 }, { 11, 0, 1016 }, - { 17, 0, 44 }, { 18, 0, 64 }, { 7, 0, 833 }, { 8, 0, 517 }, - { 4, 0, 506 }, { 5, 0, 295 }, { 7, 0, 1680 }, { 4, 10, 708 }, - { 8, 10, 15 }, { 9, 10, 50 }, { 9, 10, 386 }, { 11, 10, 18 }, - { 11, 10, 529 }, { 12, 10, 228 }, { 7, 0, 251 }, { 7, 0, 1701 }, - { 8, 0, 436 }, { 4, 10, 563 }, { 7, 10, 592 }, { 7, 10, 637 }, - { 7, 10, 770 }, { 8, 10, 463 }, { 9, 10, 60 }, { 9, 10, 335 }, - { 9, 10, 904 }, { 10, 10, 73 }, { 11, 10, 434 }, { 12, 10, 585 }, - { 13, 10, 331 }, { 18, 10, 110 }, { 20, 10, 60 }, { 4, 10, 502 }, - { 8, 0, 584 }, { 6, 10, 347 }, { 10, 10, 161 }, { 7, 0, 987 }, - { 9, 0, 688 }, { 10, 0, 522 }, { 11, 0, 788 }, { 12, 0, 137 }, - { 12, 0, 566 }, { 14, 0, 9 }, { 14, 0, 24 }, { 14, 0, 64 }, - { 7, 11, 899 }, { 14, 11, 325 }, { 4, 0, 214 }, { 5, 0, 500 }, - { 5, 10, 102 }, { 6, 10, 284 }, { 7, 10, 1079 }, { 7, 10, 1423 }, - { 7, 10, 1702 }, { 8, 10, 470 }, { 9, 10, 554 }, { 9, 10, 723 }, - { 11, 10, 333 }, { 7, 10, 246 }, { 7, 10, 840 }, { 6, 10, 10 }, - { 8, 10, 571 }, { 9, 10, 739 }, { 15, 10, 91 }, { 5, 10, 626 }, - { 18, 0, 195 }, { 6, 0, 1775 }, { 7, 0, 389 }, { 7, 0, 700 }, - { 7, 0, 940 }, { 8, 0, 514 }, { 9, 0, 116 }, { 9, 0, 535 }, - { 10, 0, 118 }, { 11, 0, 107 }, { 11, 0, 148 }, { 11, 0, 922 }, - { 12, 0, 254 }, { 12, 0, 421 }, { 14, 0, 238 }, { 5, 10, 18 }, - { 6, 10, 526 }, { 13, 10, 24 }, { 13, 10, 110 }, { 19, 10, 5 }, - { 19, 10, 44 }, { 4, 0, 743 }, { 11, 0, 292 }, { 4, 10, 309 }, - { 5, 10, 462 }, { 7, 10, 970 }, { 7, 10, 1097 }, { 22, 10, 30 }, - { 22, 10, 33 }, { 11, 11, 338 }, { 7, 11, 1598 }, { 7, 0, 1283 }, - { 9, 0, 227 }, { 11, 0, 325 }, { 11, 0, 408 }, { 14, 0, 180 }, - { 18, 0, 47 }, { 4, 0, 953 }, { 6, 0, 1805 }, { 6, 0, 1814 }, - { 6, 0, 1862 }, { 12, 0, 774 }, { 6, 11, 611 }, { 7, 11, 1733 }, - { 7, 11, 1464 }, { 5, 0, 81 }, { 7, 0, 146 }, { 7, 0, 1342 }, - { 8, 0, 53 }, { 8, 0, 561 }, { 8, 0, 694 }, { 8, 0, 754 }, - { 9, 0, 115 }, { 9, 0, 179 }, { 9, 0, 894 }, { 10, 0, 462 }, - { 10, 0, 813 }, { 11, 0, 230 }, { 11, 0, 657 }, { 11, 0, 699 }, - { 11, 0, 748 }, { 12, 0, 119 }, { 12, 0, 200 }, { 12, 0, 283 }, - { 14, 0, 273 }, { 5, 0, 408 }, { 6, 0, 789 }, { 6, 0, 877 }, - { 6, 0, 1253 }, { 6, 0, 1413 }, { 9, 0, 747 }, { 6, 10, 1704 }, - { 7, 11, 663 }, { 6, 0, 1910 }, { 6, 0, 1915 }, { 6, 0, 1923 }, - { 9, 0, 913 }, { 9, 0, 928 }, { 9, 0, 950 }, { 9, 0, 954 }, - { 9, 0, 978 }, { 9, 0, 993 }, { 12, 0, 812 }, { 12, 0, 819 }, - { 12, 0, 831 }, { 12, 0, 833 }, { 12, 0, 838 }, { 12, 0, 909 }, - { 12, 0, 928 }, { 12, 0, 931 }, { 12, 0, 950 }, { 15, 0, 186 }, - { 15, 0, 187 }, { 15, 0, 195 }, { 15, 0, 196 }, { 15, 0, 209 }, - { 15, 0, 215 }, { 15, 0, 236 }, { 15, 0, 241 }, { 15, 0, 249 }, - { 15, 0, 253 }, { 18, 0, 180 }, { 18, 0, 221 }, { 18, 0, 224 }, - { 18, 0, 227 }, { 18, 0, 229 }, { 21, 0, 60 }, { 7, 0, 1826 }, - { 7, 0, 1938 }, { 11, 0, 490 }, { 18, 0, 143 }, { 5, 10, 86 }, - { 7, 10, 743 }, { 9, 10, 85 }, { 10, 10, 281 }, { 10, 10, 432 }, - { 12, 10, 251 }, { 13, 10, 118 }, { 14, 10, 378 }, { 5, 10, 524 }, - { 5, 10, 744 }, { 13, 11, 442 }, { 10, 10, 107 }, { 12, 10, 436 }, - { 7, 11, 503 }, { 6, 0, 1162 }, { 4, 10, 927 }, { 7, 0, 30 }, - { 8, 0, 86 }, { 8, 0, 315 }, { 8, 0, 700 }, { 9, 0, 576 }, - { 9, 0, 858 }, { 10, 0, 414 }, { 11, 0, 310 }, { 11, 0, 888 }, - { 11, 0, 904 }, { 12, 0, 361 }, { 13, 0, 248 }, { 13, 0, 371 }, - { 14, 0, 142 }, { 12, 10, 670 }, { 18, 10, 94 }, { 6, 0, 721 }, - { 4, 11, 113 }, { 5, 11, 163 }, { 5, 11, 735 }, { 7, 11, 1009 }, - { 7, 10, 1149 }, { 9, 11, 9 }, { 9, 10, 156 }, { 9, 11, 771 }, - { 12, 11, 90 }, { 13, 11, 138 }, { 13, 11, 410 }, { 15, 11, 128 }, - { 10, 0, 839 }, { 5, 10, 778 }, { 9, 0, 617 }, { 5, 10, 502 }, - { 8, 10, 196 }, { 10, 10, 283 }, { 11, 10, 406 }, { 6, 0, 428 }, - { 7, 0, 524 }, { 8, 0, 169 }, { 8, 0, 234 }, { 9, 0, 480 }, - { 10, 0, 646 }, { 5, 10, 855 }, { 6, 0, 1648 }, { 7, 0, 1205 }, - { 10, 0, 637 }, { 7, 0, 1596 }, { 4, 11, 935 }, { 5, 11, 823 }, - { 5, 11, 269 }, { 7, 11, 434 }, { 7, 11, 891 }, { 8, 11, 339 }, - { 9, 11, 702 }, { 11, 11, 594 }, { 11, 11, 718 }, { 17, 11, 100 }, - { 7, 11, 878 }, { 9, 11, 485 }, { 13, 11, 264 }, { 4, 0, 266 }, - { 8, 0, 4 }, { 9, 0, 39 }, { 10, 0, 166 }, { 11, 0, 918 }, - { 12, 0, 635 }, { 20, 0, 10 }, { 22, 0, 27 }, { 22, 0, 43 }, - { 22, 0, 52 }, { 6, 11, 1713 }, { 7, 10, 1400 }, { 9, 10, 446 }, - { 10, 10, 45 }, { 7, 11, 900 }, { 4, 0, 862 }, { 6, 0, 1554 }, - { 7, 11, 1033 }, { 19, 0, 16 }, { 19, 11, 16 }, { 7, 11, 1208 }, - { 7, 0, 157 }, { 8, 0, 279 }, { 6, 0, 604 }, { 8, 0, 391 }, - { 13, 10, 455 }, { 15, 10, 99 }, { 15, 10, 129 }, { 16, 10, 68 }, - { 7, 10, 172 }, { 7, 0, 945 }, { 11, 0, 713 }, { 11, 0, 744 }, - { 4, 0, 973 }, { 10, 0, 877 }, { 10, 0, 937 }, { 10, 0, 938 }, - { 12, 0, 711 }, { 11, 0, 1022 }, { 4, 10, 568 }, { 14, 11, 143 }, - { 4, 0, 567 }, { 9, 0, 859 }, { 4, 10, 732 }, { 7, 0, 1846 }, - { 8, 0, 628 }, { 8, 10, 733 }, { 5, 0, 762 }, { 4, 10, 428 }, - { 7, 10, 1789 }, { 10, 0, 784 }, { 13, 0, 191 }, { 7, 10, 2015 }, - { 12, 10, 665 }, { 5, 0, 298 }, { 7, 0, 633 }, { 7, 0, 905 }, - { 7, 0, 909 }, { 7, 0, 1538 }, { 9, 0, 767 }, { 12, 0, 636 }, - { 10, 10, 806 }, { 4, 0, 795 }, { 11, 0, 301 }, { 7, 0, 1970 }, - { 5, 11, 625 }, { 7, 11, 1617 }, { 7, 11, 275 }, { 7, 11, 37 }, - { 8, 11, 425 }, { 8, 11, 693 }, { 9, 11, 720 }, { 10, 11, 380 }, - { 10, 11, 638 }, { 11, 11, 273 }, { 11, 11, 307 }, { 11, 11, 473 }, - { 12, 11, 61 }, { 15, 11, 43 }, { 7, 11, 198 }, { 6, 0, 1236 }, - { 7, 0, 369 }, { 12, 0, 644 }, { 12, 0, 645 }, { 16, 0, 90 }, - { 19, 0, 15 }, { 21, 0, 27 }, { 6, 0, 71 }, { 7, 0, 845 }, - { 8, 0, 160 }, { 9, 0, 318 }, { 6, 10, 1623 }, { 6, 10, 1681 }, - { 6, 0, 1447 }, { 6, 0, 1255 }, { 10, 0, 735 }, { 8, 0, 76 }, - { 4, 11, 168 }, { 6, 10, 1748 }, { 8, 10, 715 }, { 9, 10, 802 }, - { 10, 10, 46 }, { 10, 10, 819 }, { 13, 10, 308 }, { 14, 10, 351 }, - { 14, 10, 363 }, { 18, 10, 67 }, { 7, 11, 91 }, { 6, 0, 474 }, - { 4, 10, 63 }, { 5, 10, 347 }, { 5, 10, 749 }, { 10, 0, 841 }, - { 5, 10, 366 }, { 6, 0, 836 }, { 4, 11, 225 }, { 7, 0, 1622 }, - { 7, 10, 89 }, { 12, 0, 735 }, { 6, 0, 1601 }, { 10, 11, 145 }, - { 6, 0, 1390 }, { 9, 0, 804 }, { 14, 0, 394 }, { 6, 11, 15 }, - { 7, 11, 70 }, { 10, 11, 240 }, { 19, 11, 93 }, { 6, 0, 96 }, - { 7, 0, 1426 }, { 4, 0, 651 }, { 5, 0, 289 }, { 7, 11, 956 }, - { 7, 10, 977 }, { 7, 11, 1157 }, { 7, 11, 1506 }, { 7, 11, 1606 }, - { 7, 11, 1615 }, { 7, 11, 1619 }, { 7, 11, 1736 }, { 7, 11, 1775 }, - { 8, 11, 590 }, { 9, 11, 324 }, { 9, 11, 736 }, { 9, 11, 774 }, - { 9, 11, 776 }, { 9, 11, 784 }, { 10, 11, 567 }, { 10, 11, 708 }, - { 11, 11, 518 }, { 11, 11, 613 }, { 11, 11, 695 }, { 11, 11, 716 }, - { 11, 11, 739 }, { 11, 11, 770 }, { 11, 11, 771 }, { 11, 11, 848 }, - { 11, 11, 857 }, { 11, 11, 931 }, { 11, 11, 947 }, { 12, 11, 326 }, - { 12, 11, 387 }, { 12, 11, 484 }, { 12, 11, 528 }, { 12, 11, 552 }, - { 12, 11, 613 }, { 13, 11, 189 }, { 13, 11, 256 }, { 13, 11, 340 }, - { 13, 11, 432 }, { 13, 11, 436 }, { 13, 11, 440 }, { 13, 11, 454 }, - { 14, 11, 174 }, { 14, 11, 220 }, { 14, 11, 284 }, { 14, 11, 390 }, - { 17, 11, 121 }, { 7, 0, 688 }, { 8, 0, 35 }, { 9, 0, 511 }, - { 10, 0, 767 }, { 19, 0, 118 }, { 6, 0, 667 }, { 4, 0, 513 }, - { 5, 10, 824 }, { 5, 10, 941 }, { 7, 10, 440 }, { 8, 10, 230 }, - { 11, 10, 106 }, { 6, 0, 2034 }, { 7, 11, 1399 }, { 15, 11, 66 }, - { 7, 11, 1529 }, { 4, 11, 145 }, { 6, 11, 176 }, { 7, 11, 395 }, - { 9, 11, 562 }, { 16, 11, 28 }, { 4, 11, 501 }, { 4, 0, 704 }, - { 6, 0, 1524 }, { 7, 0, 1078 }, { 6, 11, 464 }, { 6, 11, 509 }, - { 10, 11, 82 }, { 20, 11, 91 }, { 23, 11, 13 }, { 4, 0, 720 }, - { 5, 0, 306 }, { 5, 0, 431 }, { 7, 0, 1196 }, { 4, 10, 914 }, - { 5, 10, 800 }, { 5, 10, 852 }, { 7, 11, 1189 }, { 10, 0, 54 }, - { 13, 10, 115 }, { 7, 10, 564 }, { 14, 10, 168 }, { 5, 0, 464 }, - { 6, 0, 236 }, { 7, 0, 696 }, { 7, 0, 914 }, { 7, 0, 1108 }, - { 7, 0, 1448 }, { 9, 0, 15 }, { 9, 0, 564 }, { 10, 0, 14 }, - { 12, 0, 565 }, { 13, 0, 449 }, { 14, 0, 53 }, { 15, 0, 13 }, - { 16, 0, 64 }, { 17, 0, 41 }, { 4, 10, 918 }, { 5, 10, 876 }, - { 6, 0, 1418 }, { 6, 10, 1764 }, { 4, 10, 92 }, { 5, 10, 274 }, - { 6, 0, 907 }, { 4, 11, 114 }, { 8, 10, 501 }, { 9, 11, 492 }, - { 13, 11, 462 }, { 14, 11, 215 }, { 4, 11, 77 }, { 5, 11, 361 }, - { 6, 11, 139 }, { 6, 11, 401 }, { 6, 11, 404 }, { 7, 11, 413 }, - { 7, 11, 715 }, { 7, 11, 1716 }, { 11, 11, 279 }, { 12, 11, 179 }, - { 12, 11, 258 }, { 13, 11, 244 }, { 14, 11, 358 }, { 6, 0, 1767 }, - { 12, 0, 194 }, { 17, 0, 107 }, { 6, 11, 1717 }, { 5, 10, 743 }, - { 14, 11, 329 }, { 4, 10, 49 }, { 7, 10, 280 }, { 7, 10, 1633 }, - { 5, 0, 840 }, { 7, 11, 1061 }, { 8, 11, 82 }, { 11, 11, 250 }, - { 12, 11, 420 }, { 13, 11, 184 }, { 7, 11, 724 }, { 6, 0, 900 }, - { 8, 10, 47 }, { 6, 0, 1436 }, { 16, 11, 0 }, { 6, 0, 675 }, - { 7, 0, 1008 }, { 7, 0, 1560 }, { 9, 0, 642 }, { 11, 0, 236 }, - { 14, 0, 193 }, { 5, 10, 272 }, { 5, 10, 908 }, { 5, 10, 942 }, - { 8, 10, 197 }, { 9, 10, 47 }, { 11, 10, 538 }, { 11, 10, 742 }, - { 4, 0, 68 }, { 5, 0, 628 }, { 5, 0, 634 }, { 6, 0, 386 }, - { 7, 0, 794 }, { 8, 0, 273 }, { 9, 0, 563 }, { 10, 0, 105 }, - { 10, 0, 171 }, { 11, 0, 94 }, { 11, 0, 354 }, { 7, 10, 1911 }, - { 9, 10, 891 }, { 4, 0, 95 }, { 6, 0, 1297 }, { 6, 0, 1604 }, - { 7, 0, 416 }, { 11, 0, 830 }, { 6, 11, 513 }, { 7, 11, 1052 }, - { 7, 0, 731 }, { 13, 0, 20 }, { 15, 0, 11 }, { 9, 11, 899 }, - { 10, 0, 850 }, { 12, 0, 697 }, { 4, 0, 662 }, { 7, 11, 1417 }, - { 12, 11, 382 }, { 17, 11, 48 }, { 24, 11, 12 }, { 5, 0, 736 }, - { 4, 0, 861 }, { 4, 10, 407 }, { 4, 10, 560 }, { 13, 10, 490 }, - { 6, 11, 545 }, { 7, 11, 565 }, { 7, 11, 1669 }, { 10, 11, 114 }, - { 11, 11, 642 }, { 12, 11, 618 }, { 6, 0, 871 }, { 6, 0, 1000 }, - { 5, 0, 864 }, { 10, 0, 648 }, { 11, 0, 671 }, { 15, 0, 46 }, - { 5, 11, 5 }, { 5, 0, 928 }, { 11, 0, 90 }, { 13, 0, 7 }, - { 4, 10, 475 }, { 11, 10, 35 }, { 13, 10, 71 }, { 13, 10, 177 }, - { 14, 10, 422 }, { 8, 0, 332 }, { 7, 11, 192 }, { 6, 0, 1055 }, - { 8, 11, 763 }, { 11, 0, 986 }, { 12, 0, 682 }, { 7, 0, 76 }, - { 8, 0, 44 }, { 9, 0, 884 }, { 10, 0, 580 }, { 11, 0, 399 }, - { 11, 0, 894 }, { 15, 0, 122 }, { 7, 11, 1237 }, { 7, 10, 636 }, - { 11, 0, 300 }, { 6, 10, 222 }, { 7, 10, 1620 }, { 8, 10, 409 }, - { 9, 10, 693 }, { 4, 11, 87 }, { 5, 11, 250 }, { 10, 11, 601 }, - { 13, 11, 298 }, { 13, 11, 353 }, { 13, 11, 376 }, { 5, 0, 518 }, - { 10, 0, 340 }, { 11, 0, 175 }, { 21, 0, 16 }, { 12, 0, 771 }, - { 6, 0, 1108 }, { 9, 0, 831 }, { 4, 0, 836 }, { 7, 0, 1852 }, - { 4, 0, 957 }, { 6, 0, 1804 }, { 8, 0, 842 }, { 8, 0, 843 }, - { 8, 0, 851 }, { 8, 0, 855 }, { 12, 0, 767 }, { 7, 11, 814 }, - { 4, 11, 57 }, { 7, 11, 1195 }, { 7, 11, 1438 }, { 7, 11, 1548 }, - { 7, 11, 1835 }, { 7, 11, 1904 }, { 9, 11, 757 }, { 10, 11, 604 }, - { 11, 11, 519 }, { 5, 10, 882 }, { 10, 0, 246 }, { 4, 0, 934 }, - { 5, 0, 202 }, { 8, 0, 610 }, { 7, 11, 1897 }, { 12, 11, 290 }, - { 13, 11, 80 }, { 13, 11, 437 }, { 17, 11, 74 }, { 8, 0, 96 }, - { 9, 0, 36 }, { 10, 0, 607 }, { 10, 0, 804 }, { 10, 0, 832 }, - { 11, 0, 423 }, { 11, 0, 442 }, { 12, 0, 309 }, { 14, 0, 199 }, - { 15, 0, 90 }, { 17, 0, 110 }, { 4, 10, 426 }, { 7, 0, 654 }, - { 8, 0, 240 }, { 6, 10, 58 }, { 7, 10, 745 }, { 7, 10, 1969 }, - { 8, 10, 675 }, { 9, 10, 479 }, { 9, 10, 731 }, { 10, 10, 330 }, - { 10, 10, 593 }, { 10, 10, 817 }, { 11, 10, 32 }, { 11, 10, 133 }, - { 11, 10, 221 }, { 17, 10, 68 }, { 9, 0, 13 }, { 9, 0, 398 }, - { 9, 0, 727 }, { 10, 0, 75 }, { 10, 0, 184 }, { 10, 0, 230 }, - { 10, 0, 564 }, { 10, 0, 569 }, { 11, 0, 973 }, { 12, 0, 70 }, - { 12, 0, 189 }, { 13, 0, 57 }, { 13, 0, 257 }, { 4, 11, 209 }, - { 7, 11, 902 }, { 7, 0, 391 }, { 9, 10, 538 }, { 6, 0, 403 }, - { 6, 11, 303 }, { 7, 11, 335 }, { 7, 11, 1437 }, { 7, 11, 1668 }, - { 8, 11, 553 }, { 8, 11, 652 }, { 8, 11, 656 }, { 9, 11, 558 }, - { 11, 11, 743 }, { 21, 11, 18 }, { 4, 11, 559 }, { 11, 0, 75 }, - { 14, 0, 267 }, { 6, 0, 815 }, { 13, 11, 2 }, { 13, 0, 366 }, - { 9, 0, 631 }, { 5, 11, 1017 }, { 5, 0, 345 }, { 7, 0, 1016 }, - { 5, 11, 709 }, { 6, 11, 1745 }, { 5, 10, 566 }, { 7, 0, 952 }, - { 6, 10, 48 }, { 9, 10, 139 }, { 10, 10, 399 }, { 11, 10, 469 }, - { 12, 10, 634 }, { 13, 10, 223 }, { 5, 0, 673 }, { 9, 0, 850 }, - { 7, 11, 8 }, { 8, 11, 206 }, { 6, 0, 662 }, { 21, 0, 35 }, - { 4, 0, 287 }, { 5, 0, 1018 }, { 6, 10, 114 }, { 7, 10, 1224 }, - { 7, 10, 1556 }, { 8, 10, 3 }, { 8, 10, 576 }, { 9, 10, 267 }, - { 4, 0, 884 }, { 5, 0, 34 }, { 10, 0, 724 }, { 12, 0, 444 }, - { 13, 0, 354 }, { 18, 0, 32 }, { 23, 0, 24 }, { 23, 0, 31 }, - { 24, 0, 5 }, { 5, 10, 933 }, { 4, 11, 776 }, { 10, 0, 151 }, - { 8, 0, 427 }, { 6, 0, 382 }, { 4, 0, 329 }, { 9, 0, 846 }, - { 10, 0, 827 }, { 10, 11, 33 }, { 9, 0, 279 }, { 10, 0, 407 }, - { 14, 0, 84 }, { 22, 0, 18 }, { 7, 11, 1297 }, { 8, 11, 406 }, - { 4, 0, 906 }, { 8, 0, 366 }, { 6, 0, 843 }, { 6, 0, 1443 }, - { 7, 0, 1372 }, { 10, 0, 992 }, { 4, 0, 123 }, { 5, 0, 605 }, - { 7, 0, 1509 }, { 8, 0, 36 }, { 4, 0, 649 }, { 8, 11, 175 }, - { 10, 11, 168 }, { 10, 11, 573 }, { 5, 0, 767 }, { 6, 0, 1018 }, - { 7, 11, 1305 }, { 12, 10, 30 }, { 13, 10, 148 }, { 14, 10, 87 }, - { 14, 10, 182 }, { 16, 10, 42 }, { 20, 10, 70 }, { 6, 11, 607 }, - { 4, 0, 273 }, { 5, 0, 658 }, { 5, 0, 995 }, { 6, 0, 72 }, - { 11, 11, 174 }, { 10, 0, 483 }, { 12, 0, 368 }, { 7, 10, 56 }, - { 7, 10, 1989 }, { 8, 10, 337 }, { 8, 10, 738 }, { 9, 10, 600 }, - { 13, 10, 447 }, { 14, 10, 92 }, { 5, 11, 784 }, { 10, 10, 666 }, - { 7, 0, 1345 }, { 11, 11, 882 }, { 6, 0, 1293 }, { 5, 0, 589 }, - { 6, 0, 1988 }, { 5, 0, 117 }, { 6, 0, 514 }, { 6, 0, 541 }, - { 7, 0, 1164 }, { 7, 0, 1436 }, { 8, 0, 220 }, { 8, 0, 648 }, - { 10, 0, 688 }, { 11, 0, 560 }, { 8, 0, 379 }, { 5, 0, 686 }, - { 7, 10, 866 }, { 7, 10, 1163 }, { 4, 10, 328 }, { 9, 11, 14 }, - { 9, 11, 441 }, { 10, 11, 306 }, { 11, 11, 9 }, { 4, 10, 101 }, - { 7, 10, 1171 }, { 5, 10, 833 }, { 8, 10, 744 }, { 5, 11, 161 }, - { 7, 11, 839 }, { 7, 11, 887 }, { 7, 0, 196 }, { 10, 0, 765 }, - { 11, 0, 347 }, { 11, 0, 552 }, { 11, 0, 790 }, { 12, 0, 263 }, - { 13, 0, 246 }, { 13, 0, 270 }, { 13, 0, 395 }, { 14, 0, 176 }, - { 14, 0, 190 }, { 14, 0, 398 }, { 14, 0, 412 }, { 15, 0, 32 }, - { 15, 0, 63 }, { 16, 0, 88 }, { 19, 0, 105 }, { 6, 10, 9 }, - { 6, 10, 397 }, { 7, 10, 53 }, { 7, 10, 1742 }, { 10, 10, 632 }, - { 11, 10, 828 }, { 12, 10, 146 }, { 5, 0, 381 }, { 7, 0, 1792 }, - { 6, 0, 1452 }, { 7, 11, 429 }, { 8, 0, 367 }, { 10, 0, 760 }, - { 14, 0, 79 }, { 20, 0, 17 }, { 24, 0, 0 }, { 7, 0, 616 }, - { 10, 0, 413 }, { 11, 10, 417 }, { 12, 10, 223 }, { 12, 10, 265 }, - { 7, 11, 1611 }, { 13, 11, 14 }, { 15, 11, 44 }, { 19, 11, 13 }, - { 20, 11, 76 }, { 7, 0, 1229 }, { 6, 0, 120 }, { 7, 0, 1188 }, - { 7, 0, 1710 }, { 8, 0, 286 }, { 9, 0, 667 }, { 11, 0, 592 }, - { 11, 0, 730 }, { 7, 11, 1814 }, { 7, 0, 1146 }, { 4, 10, 186 }, - { 5, 10, 157 }, { 8, 10, 168 }, { 10, 10, 6 }, { 4, 0, 352 }, - { 7, 0, 687 }, { 4, 0, 192 }, { 5, 0, 49 }, { 6, 0, 200 }, - { 6, 0, 293 }, { 6, 0, 1696 }, { 7, 0, 1151 }, { 5, 10, 875 }, - { 5, 10, 773 }, { 5, 10, 991 }, { 6, 10, 1635 }, { 6, 10, 1788 }, - { 7, 10, 111 }, { 8, 10, 581 }, { 6, 0, 935 }, { 6, 0, 1151 }, - { 6, 0, 1050 }, { 4, 0, 650 }, { 4, 0, 147 }, { 11, 0, 194 }, - { 12, 0, 62 }, { 12, 0, 88 }, { 11, 11, 194 }, { 12, 11, 62 }, - { 12, 11, 88 }, { 6, 0, 339 }, { 7, 0, 923 }, { 6, 10, 1747 }, - { 7, 11, 643 }, { 8, 11, 236 }, { 5, 0, 934 }, { 7, 10, 1364 }, - { 7, 10, 1907 }, { 13, 10, 158 }, { 4, 10, 659 }, { 4, 10, 404 }, - { 7, 10, 675 }, { 7, 11, 581 }, { 9, 11, 644 }, { 9, 11, 699 }, - { 13, 0, 211 }, { 14, 0, 133 }, { 14, 0, 204 }, { 15, 0, 64 }, - { 15, 0, 69 }, { 15, 0, 114 }, { 16, 0, 10 }, { 19, 0, 23 }, - { 19, 0, 35 }, { 19, 0, 39 }, { 19, 0, 51 }, { 19, 0, 71 }, - { 19, 0, 75 }, { 24, 0, 15 }, { 5, 10, 391 }, { 5, 11, 54 }, - { 7, 11, 1513 }, { 7, 0, 222 }, { 8, 0, 341 }, { 5, 10, 540 }, - { 6, 10, 1697 }, { 6, 10, 78 }, { 4, 11, 744 }, { 8, 0, 293 }, - { 9, 11, 701 }, { 7, 11, 930 }, { 10, 11, 402 }, { 10, 11, 476 }, - { 13, 11, 452 }, { 18, 11, 55 }, { 19, 11, 104 }, { 4, 0, 637 }, - { 5, 10, 460 }, { 8, 11, 50 }, { 9, 11, 624 }, { 4, 11, 572 }, - { 6, 0, 1159 }, { 4, 10, 199 }, { 11, 10, 34 }, { 6, 0, 847 }, - { 6, 10, 388 }, { 6, 11, 43 }, { 7, 11, 38 }, { 8, 11, 248 }, - { 9, 11, 504 }, { 10, 11, 513 }, { 9, 0, 683 }, { 4, 10, 511 }, - { 6, 10, 608 }, { 9, 10, 333 }, { 10, 10, 602 }, { 11, 10, 441 }, - { 11, 10, 723 }, { 11, 10, 976 }, { 12, 10, 357 }, { 9, 0, 867 }, - { 10, 0, 837 }, { 6, 0, 944 }, { 7, 11, 326 }, { 7, 0, 1809 }, - { 5, 10, 938 }, { 7, 11, 783 }, { 8, 10, 707 }, { 5, 11, 766 }, - { 5, 11, 363 }, { 6, 0, 170 }, { 7, 0, 1080 }, { 8, 0, 395 }, - { 8, 0, 487 }, { 13, 0, 147 }, { 6, 11, 258 }, { 12, 11, 409 }, - { 4, 0, 535 }, { 8, 0, 618 }, { 5, 11, 249 }, { 20, 11, 82 }, - { 6, 0, 1379 }, { 21, 11, 15 }, { 7, 0, 1625 }, { 22, 0, 23 }, - { 5, 11, 393 }, { 6, 11, 378 }, { 7, 11, 1981 }, { 9, 11, 32 }, - { 9, 11, 591 }, { 10, 11, 685 }, { 10, 11, 741 }, { 14, 11, 382 }, - { 5, 11, 788 }, { 7, 11, 1968 }, { 10, 11, 19 }, { 11, 11, 911 }, - { 7, 11, 1401 }, { 7, 11, 1476 }, { 4, 11, 61 }, { 5, 11, 58 }, - { 5, 11, 171 }, { 5, 11, 635 }, { 5, 11, 683 }, { 5, 11, 700 }, - { 6, 11, 291 }, { 6, 11, 566 }, { 7, 11, 1650 }, { 11, 11, 523 }, - { 12, 11, 273 }, { 12, 11, 303 }, { 15, 11, 39 }, { 15, 11, 111 }, - { 6, 10, 469 }, { 7, 10, 1709 }, { 10, 10, 515 }, { 4, 0, 778 }, - { 6, 11, 589 }, { 4, 0, 46 }, { 5, 0, 811 }, { 6, 0, 1679 }, - { 6, 0, 1714 }, { 7, 0, 2032 }, { 7, 0, 1458 }, { 9, 0, 407 }, - { 11, 0, 15 }, { 12, 0, 651 }, { 21, 0, 37 }, { 7, 0, 938 }, - { 4, 10, 500 }, { 6, 0, 34 }, { 7, 0, 69 }, { 7, 0, 1089 }, - { 7, 0, 1281 }, { 8, 0, 708 }, { 8, 0, 721 }, { 9, 0, 363 }, - { 20, 0, 98 }, { 10, 11, 231 }, { 19, 11, 124 }, { 7, 11, 726 }, - { 24, 11, 9 }, { 5, 10, 68 }, { 6, 10, 383 }, { 8, 11, 583 }, - { 4, 11, 917 }, { 5, 11, 1005 }, { 11, 10, 216 }, { 11, 10, 340 }, - { 7, 11, 1675 }, { 8, 0, 441 }, { 10, 0, 314 }, { 15, 0, 3 }, - { 4, 11, 919 }, { 4, 10, 337 }, { 6, 10, 353 }, { 7, 10, 1934 }, - { 8, 10, 488 }, { 9, 10, 429 }, { 7, 0, 889 }, { 7, 10, 1795 }, - { 8, 10, 259 }, { 9, 10, 135 }, { 9, 10, 177 }, { 9, 10, 860 }, - { 10, 10, 825 }, { 11, 10, 115 }, { 11, 10, 370 }, { 11, 10, 405 }, - { 11, 10, 604 }, { 12, 10, 10 }, { 12, 10, 667 }, { 12, 10, 669 }, - { 13, 10, 76 }, { 14, 10, 310 }, { 15, 10, 76 }, { 15, 10, 147 }, - { 20, 10, 23 }, { 4, 10, 15 }, { 4, 11, 255 }, { 5, 10, 22 }, - { 5, 11, 302 }, { 6, 11, 132 }, { 6, 10, 244 }, { 7, 10, 40 }, - { 7, 11, 128 }, { 7, 10, 200 }, { 7, 11, 283 }, { 7, 10, 906 }, - { 7, 10, 1199 }, { 7, 11, 1299 }, { 9, 10, 616 }, { 10, 11, 52 }, - { 10, 11, 514 }, { 10, 10, 716 }, { 11, 10, 635 }, { 11, 10, 801 }, - { 11, 11, 925 }, { 12, 10, 458 }, { 13, 11, 92 }, { 14, 11, 309 }, - { 4, 0, 462 }, { 9, 11, 173 }, { 7, 10, 1735 }, { 8, 0, 525 }, - { 5, 10, 598 }, { 7, 10, 791 }, { 8, 10, 108 }, { 9, 10, 123 }, - { 5, 0, 73 }, { 6, 0, 23 }, { 6, 0, 338 }, { 4, 0, 676 }, - { 4, 10, 683 }, { 7, 0, 725 }, { 8, 0, 498 }, { 11, 0, 268 }, - { 12, 0, 21 }, { 23, 0, 7 }, { 7, 0, 773 }, { 4, 10, 155 }, - { 7, 10, 1689 }, { 4, 0, 164 }, { 5, 0, 730 }, { 5, 10, 151 }, - { 5, 10, 741 }, { 6, 11, 210 }, { 7, 10, 498 }, { 7, 10, 870 }, - { 7, 10, 1542 }, { 12, 10, 213 }, { 14, 10, 36 }, { 14, 10, 391 }, - { 17, 10, 111 }, { 18, 10, 6 }, { 18, 10, 46 }, { 18, 10, 151 }, - { 19, 10, 36 }, { 20, 10, 32 }, { 20, 10, 56 }, { 20, 10, 69 }, - { 20, 10, 102 }, { 21, 10, 4 }, { 22, 10, 8 }, { 22, 10, 10 }, - { 22, 10, 14 }, { 22, 10, 31 }, { 4, 10, 624 }, { 7, 10, 1752 }, - { 4, 0, 583 }, { 9, 0, 936 }, { 15, 0, 214 }, { 18, 0, 199 }, - { 24, 0, 26 }, { 6, 11, 588 }, { 7, 0, 1462 }, { 11, 0, 659 }, - { 4, 11, 284 }, { 6, 11, 223 }, { 5, 0, 220 }, { 11, 0, 803 }, - { 4, 0, 544 }, { 4, 10, 492 }, { 5, 10, 451 }, { 16, 0, 98 }, - { 20, 0, 119 }, { 4, 11, 218 }, { 7, 11, 526 }, { 15, 11, 137 }, - { 7, 10, 835 }, { 4, 11, 270 }, { 5, 11, 192 }, { 6, 11, 332 }, - { 7, 11, 1322 }, { 13, 11, 9 }, { 13, 10, 70 }, { 14, 11, 104 }, - { 14, 11, 311 }, { 4, 10, 539 }, { 12, 11, 661 }, { 5, 0, 176 }, - { 6, 0, 437 }, { 6, 0, 564 }, { 11, 0, 181 }, { 13, 0, 183 }, - { 7, 0, 1192 }, { 6, 10, 113 }, { 7, 10, 436 }, { 8, 10, 718 }, - { 7, 10, 520 }, { 7, 0, 1878 }, { 12, 11, 196 }, { 7, 11, 379 }, - { 8, 11, 481 }, { 9, 11, 377 }, { 5, 11, 1003 }, { 6, 11, 149 }, - { 9, 11, 746 }, { 8, 11, 262 }, { 9, 11, 627 }, { 10, 11, 18 }, - { 11, 11, 214 }, { 11, 11, 404 }, { 11, 11, 457 }, { 11, 11, 780 }, - { 11, 11, 849 }, { 11, 11, 913 }, { 13, 11, 330 }, { 13, 11, 401 }, - { 14, 11, 200 }, { 21, 0, 26 }, { 8, 11, 304 }, { 4, 11, 142 }, - { 7, 0, 944 }, { 4, 0, 790 }, { 5, 0, 273 }, { 6, 0, 394 }, - { 6, 0, 855 }, { 4, 0, 135 }, { 6, 0, 127 }, { 7, 0, 1185 }, - { 7, 0, 1511 }, { 8, 0, 613 }, { 11, 0, 5 }, { 12, 0, 336 }, - { 12, 0, 495 }, { 12, 0, 586 }, { 12, 0, 660 }, { 12, 0, 668 }, - { 14, 0, 385 }, { 15, 0, 118 }, { 17, 0, 20 }, { 18, 0, 98 }, - { 6, 0, 230 }, { 9, 0, 752 }, { 18, 0, 109 }, { 12, 10, 610 }, - { 13, 10, 431 }, { 16, 10, 59 }, { 7, 0, 1954 }, { 7, 11, 925 }, - { 4, 11, 471 }, { 5, 11, 51 }, { 6, 11, 602 }, { 8, 11, 484 }, - { 10, 11, 195 }, { 12, 11, 159 }, { 4, 10, 307 }, { 8, 11, 688 }, - { 4, 11, 697 }, { 7, 11, 812 }, { 7, 11, 1261 }, { 7, 11, 1360 }, - { 9, 11, 632 }, { 12, 11, 352 }, { 5, 0, 162 }, { 8, 0, 68 }, - { 5, 10, 964 }, { 4, 0, 654 }, { 8, 11, 212 }, { 4, 0, 156 }, - { 7, 0, 998 }, { 7, 0, 1045 }, { 7, 0, 1860 }, { 9, 0, 48 }, - { 9, 0, 692 }, { 11, 0, 419 }, { 11, 0, 602 }, { 5, 11, 221 }, - { 4, 11, 373 }, { 5, 11, 283 }, { 6, 11, 480 }, { 7, 11, 609 }, - { 14, 11, 216 }, { 4, 0, 240 }, { 6, 11, 192 }, { 9, 11, 793 }, - { 17, 11, 55 }, { 4, 10, 75 }, { 5, 10, 180 }, { 6, 10, 500 }, - { 7, 10, 58 }, { 7, 10, 710 }, { 10, 10, 645 }, { 4, 11, 132 }, - { 5, 11, 69 }, { 5, 10, 649 }, { 7, 11, 1242 }, { 6, 10, 276 }, - { 7, 10, 282 }, { 7, 10, 879 }, { 7, 10, 924 }, { 8, 10, 459 }, - { 9, 10, 599 }, { 9, 10, 754 }, { 11, 10, 574 }, { 12, 10, 128 }, - { 12, 10, 494 }, { 13, 10, 52 }, { 13, 10, 301 }, { 15, 10, 30 }, - { 15, 10, 132 }, { 4, 10, 200 }, { 4, 11, 111 }, { 7, 11, 302 }, - { 9, 0, 197 }, { 10, 0, 300 }, { 12, 0, 473 }, { 13, 0, 90 }, - { 13, 0, 405 }, { 4, 11, 767 }, { 6, 11, 42 }, { 7, 11, 1416 }, - { 7, 11, 1590 }, { 7, 11, 2005 }, { 8, 11, 131 }, { 8, 11, 466 }, - { 9, 11, 672 }, { 13, 11, 252 }, { 20, 11, 103 }, { 8, 0, 958 }, - { 8, 0, 999 }, { 10, 0, 963 }, { 10, 0, 1001 }, { 7, 10, 1621 }, - { 7, 0, 858 }, { 4, 0, 606 }, { 9, 11, 444 }, { 6, 11, 44 }, - { 8, 11, 368 }, { 11, 11, 172 }, { 4, 11, 570 }, { 5, 11, 120 }, - { 11, 11, 624 }, { 7, 0, 1978 }, { 8, 0, 676 }, { 6, 10, 225 }, - { 9, 10, 211 }, { 7, 0, 972 }, { 11, 0, 102 }, { 8, 10, 687 }, - { 6, 11, 227 }, { 7, 11, 1589 }, { 8, 10, 58 }, { 9, 10, 724 }, - { 11, 10, 809 }, { 13, 10, 113 }, { 17, 10, 72 }, { 4, 0, 361 }, - { 5, 0, 315 }, { 4, 0, 461 }, { 6, 10, 345 }, { 7, 10, 1247 }, - { 4, 0, 472 }, { 8, 10, 767 }, { 8, 10, 803 }, { 9, 10, 301 }, - { 9, 10, 903 }, { 7, 11, 1333 }, { 7, 11, 477 }, { 7, 10, 1949 }, - { 8, 10, 674 }, { 6, 0, 905 }, { 10, 0, 747 }, { 5, 0, 155 }, - { 6, 10, 259 }, { 7, 0, 163 }, { 8, 0, 319 }, { 9, 0, 402 }, - { 10, 0, 24 }, { 10, 0, 681 }, { 11, 0, 200 }, { 12, 0, 253 }, - { 12, 0, 410 }, { 14, 0, 219 }, { 5, 0, 475 }, { 7, 0, 1780 }, - { 9, 0, 230 }, { 11, 0, 297 }, { 11, 0, 558 }, { 14, 0, 322 }, - { 19, 0, 76 }, { 6, 11, 1667 }, { 7, 11, 2036 }, { 10, 11, 600 }, - { 8, 10, 254 }, { 6, 0, 848 }, { 7, 0, 1956 }, { 6, 11, 511 }, - { 12, 11, 132 }, { 5, 11, 568 }, { 6, 11, 138 }, { 7, 11, 1293 }, - { 6, 0, 631 }, { 9, 0, 838 }, { 21, 0, 36 }, { 4, 11, 565 }, - { 8, 11, 23 }, { 8, 11, 827 }, { 5, 0, 944 }, { 6, 0, 1769 }, - { 4, 0, 144 }, { 6, 0, 842 }, { 6, 0, 1400 }, { 4, 11, 922 }, - { 5, 11, 1023 }, { 5, 10, 248 }, { 9, 10, 800 }, { 10, 10, 693 }, - { 11, 10, 482 }, { 11, 10, 734 }, { 11, 10, 789 }, { 7, 11, 1002 }, - { 11, 11, 145 }, { 4, 10, 116 }, { 5, 10, 95 }, { 5, 10, 445 }, - { 7, 10, 1688 }, { 8, 10, 29 }, { 9, 10, 272 }, { 11, 10, 509 }, - { 11, 10, 915 }, { 14, 0, 369 }, { 18, 0, 72 }, { 7, 10, 1641 }, - { 4, 11, 740 }, { 5, 10, 543 }, { 12, 11, 116 }, { 6, 0, 247 }, - { 9, 0, 555 }, { 5, 10, 181 }, { 8, 10, 41 }, { 5, 10, 657 }, - { 8, 0, 996 }, { 10, 10, 709 }, { 7, 0, 189 }, { 8, 10, 202 }, - { 10, 10, 536 }, { 8, 11, 402 }, { 4, 11, 716 }, { 13, 11, 31 }, - { 10, 0, 280 }, { 10, 0, 797 }, { 9, 10, 423 }, { 12, 10, 89 }, - { 8, 10, 113 }, { 9, 10, 877 }, { 10, 10, 554 }, { 11, 10, 83 }, - { 12, 10, 136 }, { 19, 10, 109 }, { 5, 10, 976 }, { 7, 0, 746 }, - { 4, 10, 206 }, { 8, 0, 526 }, { 11, 0, 345 }, { 8, 0, 1017 }, - { 8, 11, 152 }, { 9, 11, 53 }, { 9, 11, 268 }, { 9, 11, 901 }, - { 10, 11, 518 }, { 10, 11, 829 }, { 11, 11, 188 }, { 13, 11, 74 }, - { 14, 11, 46 }, { 15, 11, 17 }, { 15, 11, 33 }, { 17, 11, 40 }, - { 18, 11, 36 }, { 19, 11, 20 }, { 22, 11, 1 }, { 24, 11, 2 }, - { 5, 11, 736 }, { 8, 11, 532 }, { 5, 0, 428 }, { 10, 0, 651 }, - { 7, 11, 681 }, { 7, 0, 1162 }, { 7, 0, 327 }, { 13, 0, 230 }, - { 17, 0, 113 }, { 8, 10, 226 }, { 10, 10, 537 }, { 11, 10, 570 }, - { 11, 10, 605 }, { 11, 10, 799 }, { 11, 10, 804 }, { 12, 10, 85 }, - { 12, 10, 516 }, { 12, 10, 623 }, { 12, 11, 677 }, { 13, 10, 361 }, - { 14, 10, 77 }, { 14, 10, 78 }, { 19, 10, 110 }, { 4, 0, 792 }, - { 7, 0, 1717 }, { 10, 0, 546 }, { 4, 10, 769 }, { 4, 11, 684 }, - { 8, 11, 384 }, { 4, 10, 551 }, { 6, 0, 1203 }, { 9, 10, 57 }, - { 9, 10, 459 }, { 10, 10, 425 }, { 11, 10, 119 }, { 12, 10, 184 }, - { 12, 10, 371 }, { 13, 10, 358 }, { 17, 10, 51 }, { 5, 0, 672 }, - { 5, 10, 814 }, { 8, 10, 10 }, { 9, 10, 421 }, { 9, 10, 729 }, - { 10, 10, 609 }, { 11, 10, 689 }, { 10, 0, 189 }, { 6, 10, 624 }, - { 7, 11, 110 }, { 7, 11, 188 }, { 8, 11, 290 }, { 8, 11, 591 }, - { 9, 11, 382 }, { 9, 11, 649 }, { 11, 11, 71 }, { 11, 11, 155 }, - { 11, 11, 313 }, { 12, 11, 5 }, { 13, 11, 325 }, { 14, 11, 287 }, - { 5, 0, 99 }, { 6, 0, 1053 }, { 7, 0, 298 }, { 7, 11, 360 }, - { 7, 11, 425 }, { 9, 11, 66 }, { 9, 11, 278 }, { 10, 11, 644 }, - { 4, 0, 397 }, { 8, 0, 555 }, { 9, 10, 269 }, { 4, 10, 528 }, - { 4, 11, 900 }, { 5, 11, 861 }, { 6, 0, 1157 }, { 5, 11, 254 }, - { 7, 11, 985 }, { 8, 11, 73 }, { 7, 11, 1959 }, { 8, 11, 683 }, - { 12, 0, 398 }, { 20, 0, 39 }, { 21, 0, 11 }, { 22, 0, 41 }, - { 4, 0, 485 }, { 7, 0, 353 }, { 7, 0, 1523 }, { 6, 0, 366 }, - { 7, 0, 1384 }, { 7, 0, 1601 }, { 10, 0, 787 }, { 9, 0, 282 }, - { 5, 10, 104 }, { 6, 10, 173 }, { 7, 10, 1631 }, { 11, 11, 146 }, - { 4, 0, 157 }, { 5, 0, 471 }, { 6, 0, 941 }, { 4, 11, 725 }, - { 7, 0, 1336 }, { 8, 10, 138 }, { 8, 10, 342 }, { 9, 10, 84 }, - { 10, 10, 193 }, { 11, 10, 883 }, { 12, 10, 359 }, { 6, 11, 196 }, - { 8, 0, 116 }, { 5, 11, 831 }, { 6, 0, 787 }, { 6, 10, 95 }, - { 6, 10, 406 }, { 10, 10, 409 }, { 10, 10, 447 }, { 11, 10, 44 }, - { 12, 10, 100 }, { 5, 0, 160 }, { 7, 0, 363 }, { 7, 0, 589 }, - { 10, 0, 170 }, { 13, 0, 55 }, { 6, 0, 1815 }, { 4, 0, 866 }, - { 6, 0, 889 }, { 6, 0, 1067 }, { 6, 0, 1183 }, { 4, 11, 321 }, - { 6, 11, 569 }, { 5, 11, 848 }, { 6, 11, 66 }, { 4, 11, 36 }, - { 6, 10, 1636 }, { 7, 11, 1387 }, { 10, 11, 205 }, { 11, 11, 755 }, - { 13, 11, 271 }, { 4, 0, 689 }, { 9, 0, 820 }, { 4, 10, 282 }, - { 7, 10, 1034 }, { 11, 10, 398 }, { 11, 10, 634 }, { 12, 10, 1 }, - { 12, 10, 79 }, { 12, 10, 544 }, { 14, 10, 237 }, { 17, 10, 10 }, - { 18, 10, 20 }, { 4, 0, 108 }, { 7, 0, 804 }, { 11, 0, 498 }, - { 4, 11, 887 }, { 6, 0, 1119 }, { 7, 11, 620 }, { 6, 11, 165 }, - { 10, 11, 388 }, { 5, 0, 244 }, { 5, 10, 499 }, { 6, 10, 476 }, - { 7, 10, 600 }, { 7, 10, 888 }, { 7, 10, 1096 }, { 12, 0, 609 }, - { 7, 0, 1005 }, { 4, 0, 412 }, { 5, 0, 581 }, { 4, 11, 719 }, - { 7, 11, 155 }, { 7, 10, 296 }, { 7, 10, 596 }, { 8, 10, 560 }, - { 8, 10, 586 }, { 9, 10, 612 }, { 11, 10, 304 }, { 12, 10, 46 }, - { 13, 10, 89 }, { 14, 10, 112 }, { 17, 10, 122 }, { 4, 0, 895 }, - { 5, 0, 772 }, { 14, 11, 307 }, { 7, 0, 1898 }, { 4, 0, 926 }, - { 5, 0, 983 }, { 4, 11, 353 }, { 6, 11, 146 }, { 6, 11, 1789 }, - { 7, 11, 288 }, { 7, 11, 990 }, { 7, 11, 1348 }, { 9, 11, 665 }, - { 9, 11, 898 }, { 11, 11, 893 }, { 14, 11, 212 }, { 4, 0, 538 }, - { 5, 11, 532 }, { 6, 0, 294 }, { 7, 0, 1267 }, { 8, 0, 624 }, - { 13, 0, 496 }, { 7, 0, 1325 }, { 4, 11, 45 }, { 7, 11, 1257 }, - { 10, 0, 301 }, { 9, 0, 298 }, { 12, 0, 291 }, { 13, 0, 276 }, - { 14, 0, 6 }, { 17, 0, 18 }, { 21, 0, 32 }, { 7, 10, 1599 }, - { 7, 10, 1723 }, { 8, 10, 79 }, { 8, 10, 106 }, { 8, 10, 190 }, - { 8, 10, 302 }, { 8, 10, 383 }, { 8, 10, 713 }, { 9, 10, 119 }, - { 9, 10, 233 }, { 9, 10, 419 }, { 9, 10, 471 }, { 10, 10, 181 }, - { 10, 10, 406 }, { 11, 10, 57 }, { 11, 10, 85 }, { 11, 10, 120 }, - { 11, 10, 177 }, { 11, 10, 296 }, { 11, 10, 382 }, { 11, 10, 454 }, - { 11, 10, 758 }, { 11, 10, 999 }, { 12, 10, 27 }, { 12, 10, 131 }, - { 12, 10, 245 }, { 12, 10, 312 }, { 12, 10, 446 }, { 12, 10, 454 }, - { 13, 10, 98 }, { 13, 10, 426 }, { 13, 10, 508 }, { 14, 10, 163 }, - { 14, 10, 272 }, { 14, 10, 277 }, { 14, 10, 370 }, { 15, 10, 95 }, - { 15, 10, 138 }, { 15, 10, 167 }, { 17, 10, 38 }, { 20, 10, 96 }, - { 4, 0, 757 }, { 6, 0, 1263 }, { 4, 0, 820 }, { 6, 10, 1759 }, - { 5, 0, 722 }, { 8, 11, 816 }, { 10, 10, 372 }, { 17, 10, 16 }, - { 6, 0, 1039 }, { 4, 0, 991 }, { 6, 0, 2028 }, { 5, 10, 258 }, - { 7, 0, 1875 }, { 11, 0, 124 }, { 6, 11, 559 }, { 6, 11, 1691 }, - { 7, 11, 586 }, { 5, 0, 324 }, { 7, 0, 881 }, { 8, 10, 134 }, - { 9, 10, 788 }, { 12, 10, 438 }, { 7, 11, 1823 }, { 11, 11, 693 }, - { 6, 0, 1348 }, { 6, 0, 1545 }, { 6, 0, 911 }, { 4, 0, 954 }, - { 8, 0, 329 }, { 8, 0, 414 }, { 7, 10, 1948 }, { 7, 10, 2004 }, - { 5, 0, 517 }, { 6, 10, 439 }, { 7, 10, 780 }, { 7, 10, 1040 }, - { 4, 0, 816 }, { 5, 10, 1 }, { 6, 10, 81 }, { 10, 10, 520 }, - { 9, 0, 713 }, { 10, 0, 222 }, { 5, 10, 482 }, { 8, 10, 98 }, - { 10, 10, 700 }, { 10, 10, 822 }, { 11, 10, 302 }, { 11, 10, 778 }, - { 12, 10, 50 }, { 12, 10, 127 }, { 12, 10, 396 }, { 13, 10, 62 }, - { 13, 10, 328 }, { 14, 10, 122 }, { 19, 10, 72 }, { 9, 0, 33 }, - { 5, 10, 2 }, { 7, 10, 1494 }, { 8, 10, 589 }, { 6, 10, 512 }, - { 7, 10, 797 }, { 8, 10, 253 }, { 9, 10, 77 }, { 10, 10, 1 }, - { 10, 11, 108 }, { 10, 10, 129 }, { 10, 10, 225 }, { 11, 11, 116 }, - { 11, 10, 118 }, { 11, 10, 226 }, { 11, 10, 251 }, { 11, 10, 430 }, - { 11, 10, 701 }, { 11, 10, 974 }, { 11, 10, 982 }, { 12, 10, 64 }, - { 12, 10, 260 }, { 12, 10, 488 }, { 12, 10, 690 }, { 6, 11, 456 }, - { 5, 11, 925 }, { 5, 0, 150 }, { 7, 0, 106 }, { 7, 0, 774 }, - { 8, 0, 603 }, { 9, 0, 593 }, { 9, 0, 634 }, { 10, 0, 44 }, - { 10, 0, 173 }, { 11, 0, 462 }, { 11, 0, 515 }, { 13, 0, 216 }, - { 13, 0, 288 }, { 14, 0, 400 }, { 9, 10, 347 }, { 5, 0, 748 }, - { 6, 0, 553 }, { 12, 0, 108 }, { 13, 0, 291 }, { 7, 0, 420 }, - { 4, 10, 12 }, { 7, 10, 522 }, { 7, 10, 809 }, { 8, 10, 797 }, - { 13, 10, 88 }, { 6, 11, 193 }, { 7, 11, 240 }, { 7, 11, 1682 }, - { 10, 11, 51 }, { 10, 11, 640 }, { 11, 11, 410 }, { 13, 11, 82 }, - { 14, 11, 247 }, { 14, 11, 331 }, { 14, 11, 377 }, { 5, 10, 528 }, - { 7, 0, 1777 }, { 4, 0, 493 }, { 16, 0, 55 }, { 8, 11, 633 }, - { 11, 0, 81 }, { 6, 0, 980 }, { 8, 0, 321 }, { 20, 10, 109 }, - { 5, 10, 266 }, { 9, 10, 290 }, { 9, 10, 364 }, { 10, 10, 293 }, - { 11, 10, 606 }, { 14, 10, 45 }, { 6, 0, 568 }, { 7, 0, 112 }, - { 7, 0, 1804 }, { 8, 0, 362 }, { 8, 0, 410 }, { 8, 0, 830 }, - { 9, 0, 514 }, { 11, 0, 649 }, { 14, 0, 157 }, { 4, 0, 74 }, - { 6, 0, 510 }, { 6, 10, 594 }, { 9, 10, 121 }, { 10, 10, 49 }, - { 10, 10, 412 }, { 11, 10, 834 }, { 6, 0, 838 }, { 8, 10, 748 }, - { 4, 10, 466 }, { 4, 0, 625 }, { 7, 11, 1443 }, { 4, 11, 237 }, - { 7, 11, 514 }, { 9, 10, 378 }, { 13, 10, 162 }, { 6, 0, 16 }, - { 6, 0, 158 }, { 7, 0, 43 }, { 7, 0, 129 }, { 7, 0, 181 }, - { 8, 0, 276 }, { 8, 0, 377 }, { 10, 0, 523 }, { 11, 0, 816 }, - { 12, 0, 455 }, { 13, 0, 303 }, { 14, 0, 135 }, { 7, 0, 281 }, - { 4, 0, 1 }, { 7, 0, 1143 }, { 7, 0, 1463 }, { 8, 0, 61 }, - { 9, 0, 207 }, { 9, 0, 390 }, { 9, 0, 467 }, { 11, 0, 836 }, - { 6, 11, 392 }, { 7, 11, 65 }, { 7, 11, 2019 }, { 4, 10, 667 }, - { 4, 0, 723 }, { 5, 0, 895 }, { 7, 0, 1031 }, { 8, 0, 199 }, - { 8, 0, 340 }, { 9, 0, 153 }, { 9, 0, 215 }, { 10, 0, 21 }, - { 10, 0, 59 }, { 10, 0, 80 }, { 10, 0, 224 }, { 10, 0, 838 }, - { 11, 0, 229 }, { 11, 0, 652 }, { 12, 0, 192 }, { 13, 0, 146 }, - { 14, 0, 91 }, { 4, 0, 295 }, { 9, 0, 51 }, { 9, 11, 222 }, - { 10, 11, 43 }, { 11, 11, 900 }, { 5, 0, 309 }, { 12, 0, 211 }, - { 5, 0, 125 }, { 8, 0, 77 }, { 10, 0, 15 }, { 8, 11, 604 }, - { 10, 0, 789 }, { 5, 0, 173 }, { 4, 10, 39 }, { 7, 10, 1843 }, - { 8, 10, 407 }, { 11, 10, 144 }, { 12, 10, 523 }, { 10, 11, 265 }, - { 5, 0, 439 }, { 4, 10, 510 }, { 7, 0, 648 }, { 7, 0, 874 }, - { 11, 0, 164 }, { 12, 0, 76 }, { 18, 0, 9 }, { 7, 10, 1980 }, - { 10, 10, 487 }, { 10, 10, 809 }, { 12, 0, 111 }, { 14, 0, 294 }, - { 19, 0, 45 }, { 13, 10, 260 }, { 18, 10, 63 }, { 5, 11, 549 }, - { 6, 10, 570 }, { 4, 0, 8 }, { 7, 0, 1152 }, { 7, 0, 1153 }, - { 7, 0, 1715 }, { 9, 0, 374 }, { 10, 0, 478 }, { 11, 0, 648 }, - { 7, 0, 1099 }, { 5, 0, 575 }, { 6, 0, 354 }, { 7, 0, 701 }, - { 7, 11, 36 }, { 8, 11, 201 }, { 8, 11, 605 }, { 4, 10, 787 }, - { 8, 11, 156 }, { 6, 0, 518 }, { 21, 11, 13 }, { 12, 11, 224 }, - { 6, 0, 702 }, { 4, 10, 516 }, { 5, 11, 724 }, { 10, 11, 305 }, - { 11, 11, 151 }, { 12, 11, 33 }, { 12, 11, 121 }, { 12, 11, 381 }, - { 17, 11, 3 }, { 17, 11, 27 }, { 17, 11, 78 }, { 18, 11, 18 }, - { 19, 11, 54 }, { 21, 11, 5 }, { 8, 0, 87 }, { 4, 11, 523 }, - { 5, 11, 638 }, { 11, 10, 887 }, { 14, 10, 365 }, { 14, 10, 375 }, - { 10, 0, 438 }, { 8, 10, 821 }, { 7, 11, 1908 }, { 6, 11, 242 }, - { 7, 11, 227 }, { 7, 11, 1581 }, { 8, 11, 104 }, { 9, 11, 113 }, - { 9, 11, 220 }, { 9, 11, 427 }, { 10, 11, 74 }, { 10, 11, 239 }, - { 11, 11, 579 }, { 11, 11, 1023 }, { 13, 11, 4 }, { 13, 11, 204 }, - { 13, 11, 316 }, { 18, 11, 95 }, { 20, 11, 86 }, { 4, 0, 69 }, - { 5, 0, 122 }, { 5, 0, 849 }, { 6, 0, 1633 }, { 9, 0, 656 }, - { 10, 0, 464 }, { 7, 0, 1802 }, { 4, 10, 10 }, { 11, 10, 786 }, - { 7, 11, 861 }, { 11, 0, 499 }, { 7, 0, 476 }, { 7, 0, 1592 }, - { 10, 0, 87 }, { 5, 10, 684 }, { 4, 0, 840 }, { 6, 10, 27 }, - { 14, 0, 283 }, { 6, 0, 1620 }, { 7, 11, 1328 }, { 8, 11, 494 }, - { 5, 0, 859 }, { 7, 0, 1160 }, { 8, 0, 107 }, { 9, 0, 291 }, - { 9, 0, 439 }, { 10, 0, 663 }, { 11, 0, 609 }, { 12, 0, 197 }, - { 7, 11, 1306 }, { 8, 11, 505 }, { 9, 11, 482 }, { 10, 11, 126 }, - { 11, 11, 225 }, { 12, 11, 347 }, { 12, 11, 449 }, { 13, 11, 19 }, - { 14, 11, 218 }, { 5, 11, 268 }, { 10, 11, 764 }, { 12, 11, 120 }, - { 13, 11, 39 }, { 17, 11, 127 }, { 17, 10, 56 }, { 7, 11, 1672 }, - { 10, 11, 472 }, { 11, 11, 189 }, { 15, 11, 51 }, { 6, 10, 342 }, - { 6, 10, 496 }, { 8, 10, 275 }, { 9, 10, 206 }, { 5, 0, 600 }, - { 4, 0, 117 }, { 6, 0, 372 }, { 7, 0, 1905 }, { 14, 0, 323 }, - { 4, 10, 909 }, { 5, 10, 940 }, { 7, 11, 1471 }, { 4, 10, 891 }, - { 4, 0, 722 }, { 11, 0, 471 }, { 4, 11, 384 }, { 7, 11, 1022 }, - { 4, 10, 687 }, { 9, 0, 5 }, { 12, 0, 216 }, { 12, 0, 294 }, - { 12, 0, 298 }, { 12, 0, 400 }, { 12, 0, 518 }, { 13, 0, 229 }, - { 15, 0, 139 }, { 7, 11, 1703 }, { 7, 11, 1602 }, { 10, 11, 698 }, - { 12, 11, 212 }, { 13, 11, 307 }, { 6, 10, 41 }, { 13, 10, 160 }, - { 7, 11, 1077 }, { 9, 11, 159 }, { 11, 11, 28 }, { 12, 11, 603 }, - { 4, 0, 514 }, { 7, 0, 1304 }, { 10, 0, 477 }, { 6, 0, 1774 }, - { 9, 0, 88 }, { 11, 0, 270 }, { 5, 0, 12 }, { 7, 0, 375 }, - { 9, 0, 438 }, { 6, 10, 1718 }, { 4, 11, 515 }, { 8, 10, 778 }, - { 8, 11, 632 }, { 8, 11, 697 }, { 9, 11, 854 }, { 6, 0, 362 }, - { 6, 0, 997 }, { 18, 0, 51 }, { 7, 0, 816 }, { 7, 0, 1241 }, - { 9, 0, 283 }, { 9, 0, 520 }, { 10, 0, 213 }, { 10, 0, 307 }, - { 10, 0, 463 }, { 10, 0, 671 }, { 10, 0, 746 }, { 11, 0, 401 }, - { 11, 0, 794 }, { 12, 0, 517 }, { 18, 0, 107 }, { 19, 0, 115 }, - { 5, 10, 115 }, { 22, 11, 28 }, { 4, 11, 136 }, { 5, 11, 551 }, - { 14, 10, 314 }, { 4, 0, 258 }, { 6, 0, 22 }, { 7, 0, 903 }, - { 7, 0, 1963 }, { 8, 0, 639 }, { 10, 0, 577 }, { 5, 0, 681 }, - { 8, 0, 782 }, { 13, 0, 130 }, { 17, 0, 84 }, { 5, 10, 193 }, - { 12, 10, 178 }, { 9, 11, 17 }, { 10, 11, 291 }, { 7, 11, 1287 }, - { 9, 11, 44 }, { 10, 11, 552 }, { 10, 11, 642 }, { 11, 11, 839 }, - { 12, 11, 274 }, { 12, 11, 275 }, { 12, 11, 372 }, { 13, 11, 91 }, - { 14, 11, 125 }, { 7, 10, 174 }, { 4, 0, 664 }, { 5, 0, 804 }, - { 11, 0, 1013 }, { 6, 0, 942 }, { 6, 0, 1349 }, { 6, 0, 1353 }, - { 6, 0, 1450 }, { 7, 11, 1518 }, { 11, 11, 694 }, { 11, 0, 356 }, - { 4, 10, 122 }, { 5, 10, 796 }, { 5, 10, 952 }, { 6, 10, 1660 }, - { 6, 10, 1671 }, { 8, 10, 567 }, { 9, 10, 687 }, { 9, 10, 742 }, - { 10, 10, 686 }, { 11, 10, 682 }, { 12, 10, 281 }, { 5, 0, 32 }, - { 6, 11, 147 }, { 7, 11, 886 }, { 9, 11, 753 }, { 10, 11, 268 }, - { 5, 10, 179 }, { 7, 10, 1095 }, { 7, 10, 1213 }, { 4, 10, 66 }, - { 7, 10, 722 }, { 7, 10, 904 }, { 7, 10, 352 }, { 9, 11, 245 }, - { 10, 11, 137 }, { 4, 0, 289 }, { 7, 0, 629 }, { 7, 0, 1698 }, - { 7, 0, 1711 }, { 12, 0, 215 }, { 5, 11, 414 }, { 6, 0, 1975 }, - { 7, 11, 1762 }, { 6, 0, 450 }, { 8, 0, 109 }, { 13, 10, 35 }, - { 6, 11, 599 }, { 8, 0, 705 }, { 5, 0, 664 }, { 6, 11, 1749 }, - { 11, 11, 402 }, { 12, 11, 109 }, { 12, 11, 431 }, { 13, 11, 179 }, - { 13, 11, 206 }, { 14, 11, 175 }, { 14, 11, 217 }, { 16, 11, 3 }, - { 20, 11, 53 }, { 7, 0, 1238 }, { 6, 11, 1627 }, { 4, 11, 488 }, - { 13, 0, 318 }, { 10, 10, 592 }, { 10, 10, 753 }, { 12, 10, 317 }, - { 12, 10, 355 }, { 12, 10, 465 }, { 12, 10, 469 }, { 12, 10, 560 }, - { 12, 10, 578 }, { 5, 10, 564 }, { 4, 11, 83 }, { 12, 11, 676 }, - { 6, 0, 1872 }, { 6, 0, 1906 }, { 6, 0, 1907 }, { 9, 0, 934 }, - { 9, 0, 956 }, { 9, 0, 960 }, { 9, 0, 996 }, { 12, 0, 794 }, - { 12, 0, 876 }, { 12, 0, 880 }, { 12, 0, 918 }, { 15, 0, 230 }, - { 18, 0, 234 }, { 18, 0, 238 }, { 21, 0, 38 }, { 21, 0, 62 }, - { 6, 10, 556 }, { 6, 11, 278 }, { 9, 0, 103 }, { 7, 10, 544 }, - { 8, 10, 719 }, { 10, 10, 61 }, { 4, 10, 5 }, { 5, 10, 498 }, - { 8, 10, 637 }, { 9, 10, 521 }, { 7, 0, 777 }, { 12, 0, 229 }, - { 12, 0, 239 }, { 15, 0, 12 }, { 12, 11, 229 }, { 12, 11, 239 }, - { 15, 11, 12 }, { 6, 0, 26 }, { 7, 11, 388 }, { 7, 11, 644 }, - { 11, 11, 781 }, { 7, 11, 229 }, { 8, 11, 59 }, { 9, 11, 190 }, - { 9, 11, 257 }, { 10, 11, 378 }, { 12, 11, 191 }, { 5, 10, 927 }, - { 7, 10, 1441 }, { 4, 10, 893 }, { 5, 10, 780 }, { 5, 10, 893 }, - { 4, 0, 414 }, { 5, 0, 467 }, { 9, 0, 654 }, { 10, 0, 451 }, - { 12, 0, 59 }, { 13, 0, 375 }, { 14, 0, 173 }, { 7, 0, 17 }, - { 7, 0, 1350 }, { 5, 10, 238 }, { 7, 0, 955 }, { 4, 0, 960 }, - { 10, 0, 887 }, { 12, 0, 753 }, { 18, 0, 161 }, { 18, 0, 162 }, - { 24, 0, 19 }, { 8, 11, 344 }, { 6, 10, 1729 }, { 9, 11, 288 }, - { 4, 11, 660 }, { 4, 0, 217 }, { 5, 0, 710 }, { 7, 0, 760 }, - { 7, 0, 1926 }, { 9, 0, 428 }, { 9, 0, 708 }, { 10, 0, 254 }, - { 10, 0, 296 }, { 10, 0, 720 }, { 11, 0, 109 }, { 11, 0, 255 }, - { 12, 0, 165 }, { 12, 0, 315 }, { 13, 0, 107 }, { 13, 0, 203 }, - { 14, 0, 54 }, { 14, 0, 99 }, { 14, 0, 114 }, { 14, 0, 388 }, - { 16, 0, 85 }, { 17, 0, 9 }, { 17, 0, 33 }, { 20, 0, 25 }, - { 20, 0, 28 }, { 20, 0, 29 }, { 21, 0, 9 }, { 21, 0, 10 }, - { 21, 0, 34 }, { 22, 0, 17 }, { 4, 10, 60 }, { 7, 10, 1800 }, - { 8, 10, 314 }, { 9, 10, 700 }, { 11, 10, 487 }, { 7, 11, 1035 }, - { 10, 11, 737 }, { 7, 11, 690 }, { 9, 11, 217 }, { 9, 11, 587 }, - { 12, 11, 521 }, { 6, 0, 919 }, { 7, 11, 706 }, { 7, 11, 1058 }, - { 10, 11, 538 }, { 7, 10, 1853 }, { 10, 10, 437 }, { 8, 10, 419 }, - { 6, 0, 280 }, { 10, 0, 502 }, { 11, 0, 344 }, { 12, 0, 38 }, - { 5, 0, 45 }, { 7, 0, 1161 }, { 11, 0, 448 }, { 11, 0, 880 }, - { 13, 0, 139 }, { 13, 0, 407 }, { 15, 0, 16 }, { 17, 0, 95 }, - { 18, 0, 66 }, { 18, 0, 88 }, { 18, 0, 123 }, { 21, 0, 7 }, - { 11, 11, 92 }, { 11, 11, 196 }, { 11, 11, 409 }, { 11, 11, 450 }, - { 11, 11, 666 }, { 11, 11, 777 }, { 12, 11, 262 }, { 13, 11, 385 }, - { 13, 11, 393 }, { 15, 11, 115 }, { 16, 11, 45 }, { 17, 11, 82 }, - { 8, 0, 777 }, { 6, 11, 1744 }, { 4, 0, 410 }, { 7, 0, 521 }, - { 5, 10, 828 }, { 6, 0, 673 }, { 7, 0, 1110 }, { 7, 0, 1778 }, - { 7, 10, 176 }, { 7, 10, 178 }, { 5, 10, 806 }, { 7, 11, 268 }, - { 7, 10, 1976 }, { 8, 11, 569 }, { 4, 11, 733 }, { 9, 11, 194 }, - { 10, 11, 92 }, { 11, 11, 198 }, { 12, 11, 84 }, { 12, 11, 87 }, - { 13, 11, 128 }, { 16, 11, 74 }, { 5, 0, 341 }, { 7, 0, 1129 }, - { 11, 0, 414 }, { 4, 10, 51 }, { 6, 10, 4 }, { 7, 10, 591 }, - { 7, 10, 849 }, { 7, 10, 951 }, { 7, 10, 1613 }, { 7, 10, 1760 }, - { 7, 10, 1988 }, { 9, 10, 434 }, { 10, 10, 754 }, { 11, 10, 25 }, - { 11, 10, 37 }, { 5, 10, 902 }, { 7, 10, 928 }, { 7, 0, 787 }, - { 4, 0, 436 }, { 6, 10, 270 }, { 7, 0, 1587 }, { 7, 0, 1707 }, - { 6, 0, 377 }, { 7, 0, 1025 }, { 9, 0, 613 }, { 17, 0, 104 }, - { 7, 11, 982 }, { 7, 11, 1361 }, { 10, 11, 32 }, { 15, 11, 56 }, - { 11, 0, 96 }, { 4, 0, 451 }, { 4, 10, 416 }, { 14, 10, 372 }, - { 5, 10, 152 }, { 5, 10, 197 }, { 7, 11, 306 }, { 7, 10, 340 }, - { 7, 10, 867 }, { 10, 10, 548 }, { 10, 10, 581 }, { 11, 10, 6 }, - { 12, 10, 3 }, { 12, 10, 19 }, { 14, 10, 110 }, { 14, 10, 289 }, - { 6, 0, 680 }, { 6, 11, 609 }, { 7, 0, 483 }, { 7, 10, 190 }, - { 8, 10, 28 }, { 8, 10, 141 }, { 8, 10, 444 }, { 8, 10, 811 }, - { 9, 10, 468 }, { 11, 10, 334 }, { 12, 10, 24 }, { 12, 10, 386 }, - { 12, 10, 576 }, { 10, 0, 916 }, { 5, 10, 757 }, { 5, 10, 721 }, - { 7, 10, 1553 }, { 5, 11, 178 }, { 6, 0, 937 }, { 4, 10, 898 }, - { 5, 0, 739 }, { 19, 0, 82 }, { 7, 0, 663 }, { 18, 0, 128 }, - { 5, 10, 277 }, { 13, 10, 247 }, { 6, 0, 1087 }, { 4, 10, 435 }, - { 6, 11, 381 }, { 7, 11, 645 }, { 7, 11, 694 }, { 8, 11, 546 }, - { 7, 0, 503 }, { 7, 0, 1885 }, { 6, 0, 1965 }, { 8, 0, 925 }, - { 10, 0, 955 }, { 4, 0, 113 }, { 5, 0, 163 }, { 5, 0, 735 }, - { 7, 0, 1009 }, { 9, 0, 9 }, { 9, 0, 771 }, { 12, 0, 90 }, - { 13, 0, 138 }, { 13, 0, 410 }, { 15, 0, 128 }, { 4, 0, 324 }, - { 10, 0, 104 }, { 7, 0, 460 }, { 5, 10, 265 }, { 6, 10, 212 }, - { 5, 11, 105 }, { 7, 11, 261 }, { 7, 11, 1107 }, { 7, 11, 1115 }, - { 7, 11, 1354 }, { 7, 11, 1588 }, { 7, 11, 1705 }, { 7, 11, 1902 }, - { 9, 11, 465 }, { 10, 11, 248 }, { 10, 11, 349 }, { 10, 11, 647 }, - { 11, 11, 527 }, { 11, 11, 660 }, { 11, 11, 669 }, { 12, 11, 529 }, - { 13, 11, 305 }, { 5, 11, 438 }, { 9, 11, 694 }, { 12, 11, 627 }, - { 13, 11, 210 }, { 24, 11, 11 }, { 4, 0, 935 }, { 5, 0, 823 }, - { 4, 10, 702 }, { 5, 0, 269 }, { 7, 0, 434 }, { 7, 0, 891 }, - { 8, 0, 339 }, { 9, 0, 702 }, { 11, 0, 594 }, { 11, 0, 718 }, - { 17, 0, 100 }, { 5, 10, 808 }, { 7, 10, 2045 }, { 7, 0, 1014 }, - { 9, 0, 485 }, { 13, 0, 264 }, { 6, 0, 1713 }, { 7, 0, 1810 }, - { 11, 0, 866 }, { 12, 0, 103 }, { 13, 0, 495 }, { 12, 11, 233 }, - { 4, 0, 423 }, { 10, 0, 949 }, { 10, 0, 1013 }, { 7, 0, 900 }, - { 8, 11, 25 }, { 10, 11, 826 }, { 5, 10, 166 }, { 8, 10, 739 }, - { 12, 10, 511 }, { 6, 0, 2018 }, { 7, 11, 1270 }, { 11, 11, 612 }, - { 4, 10, 119 }, { 5, 10, 170 }, { 5, 10, 447 }, { 7, 10, 1708 }, - { 7, 10, 1889 }, { 9, 10, 357 }, { 9, 10, 719 }, { 12, 10, 486 }, - { 12, 10, 596 }, { 12, 0, 574 }, { 12, 11, 574 }, { 4, 11, 308 }, - { 6, 0, 964 }, { 6, 0, 1206 }, { 6, 0, 1302 }, { 4, 10, 450 }, - { 7, 10, 1158 }, { 7, 11, 150 }, { 8, 11, 649 }, { 14, 0, 213 }, - { 20, 0, 38 }, { 9, 11, 45 }, { 9, 11, 311 }, { 13, 11, 42 }, - { 6, 11, 521 }, { 7, 10, 1375 }, { 7, 10, 1466 }, { 10, 10, 331 }, - { 4, 10, 754 }, { 5, 11, 339 }, { 7, 11, 1442 }, { 14, 11, 3 }, - { 15, 11, 41 }, { 19, 11, 66 }, { 8, 11, 378 }, { 6, 0, 1022 }, - { 5, 10, 850 }, { 8, 10, 799 }, { 14, 0, 143 }, { 7, 0, 2029 }, - { 6, 11, 1628 }, { 8, 0, 523 }, { 22, 0, 34 }, { 5, 0, 625 }, - { 7, 0, 1617 }, { 7, 0, 275 }, { 7, 10, 238 }, { 7, 10, 2033 }, - { 8, 10, 120 }, { 8, 10, 188 }, { 8, 10, 659 }, { 9, 10, 598 }, - { 10, 10, 466 }, { 12, 10, 342 }, { 12, 10, 588 }, { 13, 10, 503 }, - { 14, 10, 246 }, { 15, 10, 92 }, { 7, 0, 37 }, { 8, 0, 425 }, - { 8, 0, 693 }, { 9, 0, 720 }, { 10, 0, 380 }, { 10, 0, 638 }, - { 11, 0, 273 }, { 11, 0, 473 }, { 12, 0, 61 }, { 15, 0, 43 }, - { 7, 11, 829 }, { 7, 0, 1943 }, { 4, 0, 765 }, { 5, 11, 486 }, - { 7, 11, 1349 }, { 7, 11, 1635 }, { 8, 11, 17 }, { 10, 11, 217 }, - { 10, 11, 295 }, { 4, 10, 201 }, { 7, 10, 1744 }, { 8, 10, 602 }, - { 11, 10, 247 }, { 11, 10, 826 }, { 17, 10, 65 }, { 10, 11, 558 }, - { 11, 0, 551 }, { 14, 0, 159 }, { 8, 10, 164 }, { 18, 10, 62 }, - { 11, 11, 176 }, { 4, 0, 168 }, { 8, 0, 1010 }, { 6, 0, 1994 }, - { 7, 0, 91 }, { 10, 0, 532 }, { 7, 10, 1243 }, { 7, 0, 1884 }, - { 4, 10, 907 }, { 5, 10, 100 }, { 10, 10, 329 }, { 12, 10, 416 }, - { 21, 10, 29 }, { 6, 11, 447 }, { 4, 10, 176 }, { 5, 10, 636 }, - { 5, 10, 998 }, { 7, 10, 9 }, { 7, 10, 1508 }, { 8, 10, 26 }, - { 9, 10, 317 }, { 9, 10, 358 }, { 10, 10, 210 }, { 10, 10, 292 }, - { 10, 10, 533 }, { 11, 10, 555 }, { 12, 10, 526 }, { 12, 10, 607 }, - { 13, 10, 263 }, { 13, 10, 459 }, { 14, 10, 271 }, { 4, 11, 609 }, - { 7, 11, 756 }, { 6, 0, 15 }, { 7, 0, 70 }, { 10, 0, 240 }, - { 19, 0, 93 }, { 4, 11, 930 }, { 5, 11, 947 }, { 6, 0, 1227 }, - { 6, 0, 1534 }, { 5, 11, 939 }, { 5, 11, 962 }, { 5, 11, 651 }, - { 8, 11, 170 }, { 9, 11, 61 }, { 9, 11, 63 }, { 10, 11, 23 }, - { 10, 11, 37 }, { 10, 11, 834 }, { 11, 11, 4 }, { 11, 11, 187 }, - { 11, 11, 281 }, { 11, 11, 503 }, { 11, 11, 677 }, { 12, 11, 96 }, - { 12, 11, 130 }, { 12, 11, 244 }, { 14, 11, 5 }, { 14, 11, 40 }, - { 14, 11, 162 }, { 14, 11, 202 }, { 18, 11, 133 }, { 4, 11, 406 }, - { 5, 11, 579 }, { 12, 11, 492 }, { 22, 11, 15 }, { 11, 0, 392 }, - { 6, 10, 610 }, { 10, 10, 127 }, { 13, 10, 27 }, { 7, 0, 655 }, - { 7, 0, 1844 }, { 8, 10, 119 }, { 4, 0, 145 }, { 6, 0, 176 }, - { 7, 0, 395 }, { 9, 0, 562 }, { 4, 0, 501 }, { 12, 11, 145 }, - { 8, 0, 1019 }, { 6, 0, 509 }, { 11, 0, 267 }, { 6, 11, 17 }, - { 7, 11, 16 }, { 7, 11, 1001 }, { 7, 11, 1982 }, { 9, 11, 886 }, - { 10, 11, 489 }, { 10, 11, 800 }, { 11, 11, 782 }, { 12, 11, 320 }, - { 13, 11, 467 }, { 14, 11, 145 }, { 14, 11, 387 }, { 15, 11, 119 }, - { 17, 11, 17 }, { 6, 0, 1099 }, { 5, 11, 458 }, { 7, 11, 1983 }, - { 8, 11, 0 }, { 8, 11, 171 }, { 9, 11, 120 }, { 9, 11, 732 }, - { 10, 11, 473 }, { 11, 11, 656 }, { 11, 11, 998 }, { 18, 11, 0 }, - { 18, 11, 2 }, { 19, 11, 21 }, { 12, 11, 427 }, { 18, 11, 38 }, - { 10, 0, 948 }, { 10, 0, 968 }, { 7, 10, 126 }, { 8, 10, 84 }, - { 8, 10, 790 }, { 4, 0, 114 }, { 9, 0, 492 }, { 13, 0, 462 }, - { 14, 0, 215 }, { 6, 10, 64 }, { 12, 10, 377 }, { 13, 10, 309 }, - { 4, 0, 77 }, { 5, 0, 361 }, { 6, 0, 139 }, { 6, 0, 401 }, - { 6, 0, 404 }, { 7, 0, 413 }, { 7, 0, 715 }, { 7, 0, 1716 }, - { 11, 0, 279 }, { 12, 0, 179 }, { 12, 0, 258 }, { 13, 0, 244 }, - { 14, 0, 358 }, { 6, 0, 1717 }, { 7, 0, 772 }, { 7, 0, 1061 }, - { 7, 0, 1647 }, { 8, 0, 82 }, { 11, 0, 250 }, { 11, 0, 607 }, - { 12, 0, 311 }, { 12, 0, 420 }, { 13, 0, 184 }, { 13, 0, 367 }, - { 7, 10, 1104 }, { 11, 10, 269 }, { 11, 10, 539 }, { 11, 10, 627 }, - { 11, 10, 706 }, { 11, 10, 975 }, { 12, 10, 248 }, { 12, 10, 434 }, - { 12, 10, 600 }, { 12, 10, 622 }, { 13, 10, 297 }, { 13, 10, 485 }, - { 14, 10, 69 }, { 14, 10, 409 }, { 15, 10, 108 }, { 7, 0, 724 }, - { 4, 11, 512 }, { 4, 11, 519 }, { 5, 11, 342 }, { 6, 0, 1133 }, - { 17, 11, 29 }, { 11, 10, 977 }, { 13, 10, 507 }, { 6, 0, 841 }, - { 6, 0, 1042 }, { 6, 0, 1194 }, { 10, 0, 993 }, { 12, 0, 1021 }, - { 6, 11, 31 }, { 7, 11, 491 }, { 7, 11, 530 }, { 8, 11, 592 }, - { 9, 10, 34 }, { 11, 11, 53 }, { 11, 10, 484 }, { 11, 11, 779 }, - { 12, 11, 167 }, { 12, 11, 411 }, { 14, 11, 14 }, { 14, 11, 136 }, - { 15, 11, 72 }, { 16, 11, 17 }, { 16, 11, 72 }, { 4, 0, 1021 }, - { 6, 0, 2037 }, { 5, 11, 907 }, { 7, 0, 373 }, { 8, 0, 335 }, - { 8, 0, 596 }, { 9, 0, 488 }, { 6, 10, 1700 }, { 7, 10, 293 }, - { 7, 10, 382 }, { 7, 10, 1026 }, { 7, 10, 1087 }, { 7, 10, 2027 }, - { 8, 10, 252 }, { 8, 10, 727 }, { 8, 10, 729 }, { 9, 10, 30 }, - { 9, 10, 199 }, { 9, 10, 231 }, { 9, 10, 251 }, { 9, 10, 334 }, - { 9, 10, 361 }, { 9, 10, 712 }, { 10, 10, 55 }, { 10, 10, 60 }, - { 10, 10, 232 }, { 10, 10, 332 }, { 10, 10, 384 }, { 10, 10, 396 }, - { 10, 10, 504 }, { 10, 10, 542 }, { 10, 10, 652 }, { 11, 10, 20 }, - { 11, 10, 48 }, { 11, 10, 207 }, { 11, 10, 291 }, { 11, 10, 298 }, - { 11, 10, 342 }, { 11, 10, 365 }, { 11, 10, 394 }, { 11, 10, 620 }, - { 11, 10, 705 }, { 11, 10, 1017 }, { 12, 10, 123 }, { 12, 10, 340 }, - { 12, 10, 406 }, { 12, 10, 643 }, { 13, 10, 61 }, { 13, 10, 269 }, - { 13, 10, 311 }, { 13, 10, 319 }, { 13, 10, 486 }, { 14, 10, 234 }, - { 15, 10, 62 }, { 15, 10, 85 }, { 16, 10, 71 }, { 18, 10, 119 }, - { 20, 10, 105 }, { 22, 0, 37 }, { 4, 11, 208 }, { 5, 11, 106 }, - { 6, 11, 531 }, { 8, 11, 408 }, { 9, 11, 188 }, { 10, 11, 572 }, - { 4, 0, 564 }, { 6, 0, 513 }, { 7, 0, 1052 }, { 4, 0, 825 }, - { 9, 0, 899 }, { 12, 11, 441 }, { 6, 0, 778 }, { 5, 11, 379 }, - { 7, 0, 1417 }, { 12, 0, 382 }, { 17, 0, 48 }, { 24, 0, 12 }, - { 4, 11, 241 }, { 7, 0, 1116 }, { 6, 10, 379 }, { 7, 10, 270 }, - { 8, 10, 176 }, { 8, 10, 183 }, { 9, 10, 432 }, { 9, 10, 661 }, - { 12, 10, 247 }, { 12, 10, 617 }, { 18, 10, 125 }, { 5, 10, 792 }, - { 5, 10, 900 }, { 6, 0, 545 }, { 7, 0, 565 }, { 7, 0, 1669 }, - { 10, 0, 114 }, { 11, 0, 642 }, { 12, 0, 618 }, { 5, 0, 5 }, - { 10, 11, 7 }, { 4, 11, 259 }, { 7, 0, 192 }, { 6, 0, 701 }, - { 8, 0, 763 }, { 7, 10, 1979 }, { 4, 10, 901 }, { 5, 10, 776 }, - { 10, 0, 755 }, { 19, 0, 29 }, { 5, 0, 759 }, { 4, 11, 173 }, - { 5, 11, 312 }, { 5, 11, 512 }, { 7, 11, 1285 }, { 7, 11, 1603 }, - { 7, 11, 1691 }, { 9, 11, 464 }, { 11, 11, 195 }, { 12, 11, 279 }, - { 12, 11, 448 }, { 14, 11, 11 }, { 19, 11, 102 }, { 7, 0, 370 }, - { 7, 0, 1007 }, { 7, 0, 1177 }, { 7, 0, 1565 }, { 7, 0, 1237 }, - { 4, 0, 87 }, { 5, 0, 250 }, { 13, 0, 298 }, { 4, 11, 452 }, - { 5, 11, 583 }, { 5, 11, 817 }, { 6, 11, 433 }, { 7, 11, 593 }, - { 7, 11, 720 }, { 7, 11, 1378 }, { 8, 11, 161 }, { 9, 11, 284 }, - { 10, 11, 313 }, { 11, 11, 886 }, { 4, 11, 547 }, { 7, 11, 1409 }, - { 8, 11, 722 }, { 4, 10, 37 }, { 5, 10, 334 }, { 7, 10, 1253 }, - { 4, 10, 508 }, { 12, 0, 107 }, { 18, 0, 31 }, { 8, 11, 420 }, - { 11, 11, 193 }, { 7, 0, 814 }, { 7, 11, 409 }, { 12, 0, 991 }, - { 4, 0, 57 }, { 7, 0, 1195 }, { 7, 0, 1438 }, { 7, 0, 1548 }, - { 7, 0, 1835 }, { 7, 0, 1904 }, { 9, 0, 757 }, { 10, 0, 604 }, - { 11, 0, 519 }, { 4, 0, 540 }, { 10, 11, 308 }, { 4, 10, 533 }, - { 8, 0, 608 }, { 16, 11, 65 }, { 4, 0, 1014 }, { 6, 0, 2029 }, - { 4, 0, 209 }, { 7, 0, 902 }, { 5, 11, 1002 }, { 8, 11, 745 }, - { 6, 0, 2030 }, { 6, 0, 303 }, { 7, 0, 335 }, { 7, 0, 1437 }, - { 7, 0, 1668 }, { 8, 0, 553 }, { 8, 0, 652 }, { 8, 0, 656 }, - { 9, 0, 558 }, { 11, 0, 743 }, { 21, 0, 18 }, { 5, 11, 575 }, - { 6, 11, 354 }, { 7, 11, 701 }, { 4, 11, 239 }, { 6, 11, 477 }, - { 7, 11, 1607 }, { 11, 11, 68 }, { 11, 11, 617 }, { 4, 0, 559 }, - { 8, 0, 527 }, { 18, 0, 60 }, { 19, 0, 24 }, { 5, 10, 920 }, - { 10, 0, 511 }, { 5, 0, 1017 }, { 5, 0, 675 }, { 10, 10, 391 }, - { 11, 0, 156 }, { 7, 10, 1952 }, { 10, 11, 369 }, { 4, 11, 367 }, - { 5, 0, 709 }, { 6, 0, 698 }, { 6, 0, 887 }, { 14, 10, 126 }, - { 6, 0, 1745 }, { 4, 10, 483 }, { 13, 11, 299 }, { 14, 11, 75 }, - { 5, 0, 714 }, { 7, 0, 8 }, { 8, 0, 206 }, { 10, 10, 480 }, - { 4, 11, 694 }, { 9, 10, 495 }, { 18, 10, 104 }, { 7, 11, 1248 }, - { 11, 11, 621 }, { 11, 11, 702 }, { 12, 11, 687 }, { 4, 0, 776 }, - { 11, 10, 1009 }, { 7, 0, 1272 }, { 6, 0, 1059 }, { 8, 10, 653 }, - { 13, 10, 93 }, { 19, 10, 14 }, { 7, 11, 213 }, { 8, 0, 406 }, - { 5, 10, 172 }, { 4, 0, 947 }, { 8, 0, 175 }, { 10, 0, 168 }, - { 10, 0, 573 }, { 4, 0, 870 }, { 6, 0, 1567 }, { 23, 11, 28 }, - { 6, 11, 472 }, { 5, 10, 260 }, { 8, 11, 132 }, { 4, 11, 751 }, - { 11, 11, 390 }, { 12, 11, 32 }, { 4, 11, 409 }, { 5, 11, 78 }, - { 12, 0, 554 }, { 6, 11, 473 }, { 17, 11, 105 }, { 5, 0, 784 }, - { 8, 0, 908 }, { 8, 11, 306 }, { 11, 0, 882 }, { 6, 0, 358 }, - { 7, 0, 1393 }, { 8, 0, 396 }, { 10, 0, 263 }, { 14, 0, 154 }, - { 16, 0, 48 }, { 17, 0, 8 }, { 7, 11, 1759 }, { 8, 11, 396 }, - { 10, 11, 263 }, { 14, 11, 154 }, { 16, 11, 48 }, { 17, 11, 8 }, - { 13, 11, 163 }, { 13, 11, 180 }, { 18, 11, 78 }, { 20, 11, 35 }, - { 14, 0, 32 }, { 18, 0, 85 }, { 20, 0, 2 }, { 24, 0, 16 }, - { 7, 0, 228 }, { 10, 0, 770 }, { 8, 10, 167 }, { 8, 10, 375 }, - { 9, 10, 82 }, { 9, 10, 561 }, { 10, 10, 620 }, { 4, 0, 845 }, - { 9, 0, 14 }, { 9, 0, 441 }, { 10, 0, 306 }, { 11, 0, 9 }, - { 11, 0, 966 }, { 12, 0, 287 }, { 13, 0, 342 }, { 13, 0, 402 }, - { 15, 0, 110 }, { 15, 0, 163 }, { 8, 10, 194 }, { 8, 10, 756 }, - { 6, 0, 1578 }, { 4, 0, 967 }, { 6, 0, 1820 }, { 6, 0, 1847 }, - { 12, 0, 716 }, { 8, 0, 594 }, { 7, 0, 1428 }, { 7, 0, 1640 }, - { 7, 0, 1867 }, { 9, 0, 169 }, { 9, 0, 182 }, { 9, 0, 367 }, - { 9, 0, 478 }, { 9, 0, 506 }, { 9, 0, 551 }, { 9, 0, 557 }, - { 9, 0, 648 }, { 9, 0, 697 }, { 9, 0, 705 }, { 9, 0, 725 }, - { 9, 0, 787 }, { 9, 0, 794 }, { 10, 0, 198 }, { 10, 0, 214 }, - { 10, 0, 267 }, { 10, 0, 275 }, { 10, 0, 456 }, { 10, 0, 551 }, - { 10, 0, 561 }, { 10, 0, 613 }, { 10, 0, 627 }, { 10, 0, 668 }, - { 10, 0, 675 }, { 10, 0, 691 }, { 10, 0, 695 }, { 10, 0, 707 }, - { 10, 0, 715 }, { 11, 0, 183 }, { 11, 0, 201 }, { 11, 0, 244 }, - { 11, 0, 262 }, { 11, 0, 352 }, { 11, 0, 439 }, { 11, 0, 493 }, - { 11, 0, 572 }, { 11, 0, 591 }, { 11, 0, 608 }, { 11, 0, 611 }, - { 11, 0, 646 }, { 11, 0, 674 }, { 11, 0, 711 }, { 11, 0, 751 }, - { 11, 0, 761 }, { 11, 0, 776 }, { 11, 0, 785 }, { 11, 0, 850 }, - { 11, 0, 853 }, { 11, 0, 862 }, { 11, 0, 865 }, { 11, 0, 868 }, - { 11, 0, 875 }, { 11, 0, 898 }, { 11, 0, 902 }, { 11, 0, 903 }, - { 11, 0, 910 }, { 11, 0, 932 }, { 11, 0, 942 }, { 11, 0, 957 }, - { 11, 0, 967 }, { 11, 0, 972 }, { 12, 0, 148 }, { 12, 0, 195 }, - { 12, 0, 220 }, { 12, 0, 237 }, { 12, 0, 318 }, { 12, 0, 339 }, - { 12, 0, 393 }, { 12, 0, 445 }, { 12, 0, 450 }, { 12, 0, 474 }, - { 12, 0, 505 }, { 12, 0, 509 }, { 12, 0, 533 }, { 12, 0, 591 }, - { 12, 0, 594 }, { 12, 0, 597 }, { 12, 0, 621 }, { 12, 0, 633 }, - { 12, 0, 642 }, { 13, 0, 59 }, { 13, 0, 60 }, { 13, 0, 145 }, - { 13, 0, 239 }, { 13, 0, 250 }, { 13, 0, 329 }, { 13, 0, 344 }, - { 13, 0, 365 }, { 13, 0, 372 }, { 13, 0, 387 }, { 13, 0, 403 }, - { 13, 0, 414 }, { 13, 0, 456 }, { 13, 0, 470 }, { 13, 0, 478 }, - { 13, 0, 483 }, { 13, 0, 489 }, { 14, 0, 55 }, { 14, 0, 57 }, - { 14, 0, 81 }, { 14, 0, 90 }, { 14, 0, 148 }, { 14, 0, 239 }, - { 14, 0, 266 }, { 14, 0, 321 }, { 14, 0, 326 }, { 14, 0, 327 }, - { 14, 0, 330 }, { 14, 0, 347 }, { 14, 0, 355 }, { 14, 0, 401 }, - { 14, 0, 404 }, { 14, 0, 411 }, { 14, 0, 414 }, { 14, 0, 416 }, - { 14, 0, 420 }, { 15, 0, 61 }, { 15, 0, 74 }, { 15, 0, 87 }, - { 15, 0, 88 }, { 15, 0, 94 }, { 15, 0, 96 }, { 15, 0, 116 }, - { 15, 0, 149 }, { 15, 0, 154 }, { 16, 0, 50 }, { 16, 0, 63 }, - { 16, 0, 73 }, { 17, 0, 2 }, { 17, 0, 66 }, { 17, 0, 92 }, - { 17, 0, 103 }, { 17, 0, 112 }, { 17, 0, 120 }, { 18, 0, 50 }, - { 18, 0, 54 }, { 18, 0, 82 }, { 18, 0, 86 }, { 18, 0, 90 }, - { 18, 0, 111 }, { 18, 0, 115 }, { 18, 0, 156 }, { 19, 0, 40 }, - { 19, 0, 79 }, { 20, 0, 78 }, { 21, 0, 22 }, { 7, 11, 883 }, - { 5, 0, 161 }, { 7, 0, 839 }, { 4, 0, 782 }, { 13, 11, 293 }, - { 14, 11, 56 }, { 5, 11, 617 }, { 11, 11, 50 }, { 7, 10, 22 }, - { 17, 0, 64 }, { 5, 10, 639 }, { 7, 10, 1249 }, { 11, 10, 896 }, - { 10, 0, 998 }, { 7, 11, 2042 }, { 4, 11, 546 }, { 14, 11, 233 }, - { 6, 0, 1043 }, { 6, 0, 1574 }, { 6, 0, 1496 }, { 4, 10, 102 }, - { 7, 10, 815 }, { 7, 10, 1699 }, { 11, 10, 964 }, { 12, 0, 781 }, - { 14, 0, 461 }, { 4, 11, 313 }, { 5, 11, 577 }, { 6, 0, 639 }, - { 6, 0, 1114 }, { 9, 0, 817 }, { 8, 11, 184 }, { 13, 11, 433 }, - { 7, 0, 1814 }, { 7, 11, 935 }, { 10, 0, 997 }, { 12, 0, 958 }, - { 4, 0, 812 }, { 9, 11, 625 }, { 4, 10, 899 }, { 8, 10, 795 }, - { 5, 11, 886 }, { 6, 11, 46 }, { 6, 11, 1790 }, { 7, 11, 14 }, - { 7, 11, 732 }, { 7, 11, 1654 }, { 8, 11, 95 }, { 8, 11, 327 }, - { 8, 11, 616 }, { 10, 11, 598 }, { 10, 11, 769 }, { 11, 11, 134 }, - { 11, 11, 747 }, { 12, 11, 378 }, { 14, 11, 97 }, { 8, 0, 139 }, - { 6, 10, 52 }, { 9, 10, 104 }, { 9, 10, 559 }, { 12, 10, 308 }, - { 19, 10, 87 }, { 5, 11, 1021 }, { 4, 10, 604 }, { 4, 10, 301 }, - { 8, 10, 779 }, { 7, 0, 643 }, { 8, 0, 236 }, { 4, 11, 153 }, - { 6, 0, 1172 }, { 19, 10, 32 }, { 5, 11, 798 }, { 6, 0, 1338 }, - { 4, 11, 587 }, { 6, 11, 598 }, { 7, 11, 42 }, { 8, 11, 695 }, - { 10, 11, 212 }, { 11, 11, 158 }, { 14, 11, 196 }, { 17, 11, 85 }, - { 7, 10, 508 }, { 5, 11, 957 }, { 5, 11, 1008 }, { 7, 11, 249 }, - { 4, 11, 129 }, { 7, 11, 465 }, { 5, 0, 54 }, { 7, 11, 470 }, - { 7, 11, 1057 }, { 7, 11, 1201 }, { 9, 11, 755 }, { 11, 11, 906 }, - { 12, 11, 527 }, { 7, 11, 908 }, { 18, 11, 7 }, { 5, 11, 148 }, - { 8, 11, 450 }, { 16, 11, 1 }, { 4, 0, 256 }, { 7, 0, 1488 }, - { 9, 0, 351 }, { 6, 10, 310 }, { 7, 10, 1849 }, { 8, 10, 72 }, - { 8, 10, 272 }, { 8, 10, 431 }, { 9, 10, 12 }, { 10, 10, 563 }, - { 10, 10, 630 }, { 10, 10, 796 }, { 10, 10, 810 }, { 11, 10, 367 }, - { 11, 10, 599 }, { 11, 10, 686 }, { 12, 10, 672 }, { 6, 0, 1885 }, - { 6, 0, 1898 }, { 6, 0, 1899 }, { 12, 0, 955 }, { 4, 0, 714 }, - { 5, 0, 469 }, { 6, 0, 1270 }, { 6, 0, 1456 }, { 4, 0, 744 }, - { 6, 0, 313 }, { 7, 10, 537 }, { 8, 10, 64 }, { 9, 10, 127 }, - { 10, 10, 496 }, { 12, 10, 510 }, { 13, 10, 384 }, { 4, 11, 217 }, - { 4, 10, 244 }, { 5, 11, 710 }, { 7, 10, 233 }, { 7, 11, 1926 }, - { 9, 11, 428 }, { 9, 11, 708 }, { 10, 11, 254 }, { 10, 11, 296 }, - { 10, 11, 720 }, { 11, 11, 109 }, { 11, 11, 255 }, { 12, 11, 165 }, - { 12, 11, 315 }, { 13, 11, 107 }, { 13, 11, 203 }, { 14, 11, 54 }, - { 14, 11, 99 }, { 14, 11, 114 }, { 14, 11, 388 }, { 16, 11, 85 }, - { 17, 11, 9 }, { 17, 11, 33 }, { 20, 11, 25 }, { 20, 11, 28 }, - { 20, 11, 29 }, { 21, 11, 9 }, { 21, 11, 10 }, { 21, 11, 34 }, - { 22, 11, 17 }, { 10, 0, 402 }, { 7, 0, 969 }, { 18, 0, 55 }, - { 8, 0, 50 }, { 9, 0, 624 }, { 6, 0, 1355 }, { 4, 0, 572 }, - { 6, 10, 1650 }, { 10, 10, 702 }, { 11, 10, 245 }, { 10, 0, 847 }, - { 14, 0, 445 }, { 6, 0, 43 }, { 7, 0, 38 }, { 8, 0, 248 }, - { 10, 0, 513 }, { 5, 0, 369 }, { 9, 10, 338 }, { 5, 0, 766 }, - { 5, 0, 363 }, { 5, 10, 896 }, { 8, 11, 392 }, { 11, 11, 54 }, - { 13, 11, 173 }, { 13, 11, 294 }, { 20, 11, 7 }, { 6, 0, 678 }, - { 7, 11, 1230 }, { 8, 11, 531 }, { 6, 0, 258 }, { 12, 0, 409 }, - { 5, 0, 249 }, { 20, 0, 82 }, { 7, 10, 1117 }, { 8, 10, 539 }, - { 5, 0, 393 }, { 6, 0, 378 }, { 7, 0, 1981 }, { 9, 0, 32 }, - { 9, 0, 591 }, { 10, 0, 685 }, { 10, 0, 741 }, { 14, 0, 382 }, - { 5, 0, 788 }, { 6, 0, 1281 }, { 6, 0, 1295 }, { 7, 0, 1968 }, - { 13, 0, 509 }, { 4, 0, 61 }, { 5, 0, 58 }, { 5, 0, 171 }, - { 5, 0, 683 }, { 6, 0, 291 }, { 6, 0, 566 }, { 7, 0, 1650 }, - { 11, 0, 523 }, { 12, 0, 273 }, { 12, 0, 303 }, { 15, 0, 39 }, - { 15, 0, 111 }, { 6, 0, 706 }, { 6, 0, 1283 }, { 6, 0, 589 }, - { 7, 11, 1433 }, { 5, 11, 435 }, { 7, 0, 1059 }, { 13, 0, 54 }, - { 5, 10, 4 }, { 5, 10, 810 }, { 6, 10, 13 }, { 6, 10, 538 }, - { 6, 10, 1690 }, { 6, 10, 1726 }, { 7, 10, 1819 }, { 8, 10, 148 }, - { 8, 10, 696 }, { 8, 10, 791 }, { 12, 10, 125 }, { 15, 10, 9 }, - { 7, 10, 1268 }, { 5, 11, 85 }, { 6, 11, 419 }, { 7, 11, 134 }, - { 7, 11, 305 }, { 7, 11, 361 }, { 7, 11, 1337 }, { 8, 11, 71 }, - { 12, 11, 519 }, { 9, 0, 824 }, { 12, 11, 688 }, { 5, 11, 691 }, - { 7, 11, 345 }, { 7, 10, 1385 }, { 9, 11, 94 }, { 11, 10, 582 }, - { 11, 10, 650 }, { 11, 10, 901 }, { 11, 10, 949 }, { 12, 11, 169 }, - { 12, 10, 232 }, { 12, 10, 236 }, { 13, 10, 413 }, { 13, 10, 501 }, - { 18, 10, 116 }, { 4, 0, 917 }, { 5, 0, 1005 }, { 7, 0, 1598 }, - { 5, 11, 183 }, { 6, 11, 582 }, { 9, 11, 344 }, { 10, 11, 679 }, - { 12, 11, 435 }, { 4, 10, 925 }, { 5, 10, 803 }, { 8, 10, 698 }, - { 10, 10, 828 }, { 4, 0, 919 }, { 7, 11, 511 }, { 11, 10, 992 }, - { 4, 0, 255 }, { 5, 0, 302 }, { 6, 0, 132 }, { 7, 0, 128 }, - { 7, 0, 283 }, { 7, 0, 1299 }, { 10, 0, 52 }, { 10, 0, 514 }, - { 11, 0, 925 }, { 13, 0, 92 }, { 14, 0, 309 }, { 6, 0, 1369 }, - { 7, 10, 1847 }, { 6, 0, 328 }, { 7, 11, 1993 }, { 8, 11, 684 }, - { 5, 10, 383 }, { 9, 0, 173 }, { 6, 11, 583 }, { 6, 0, 1411 }, - { 19, 0, 65 }, { 5, 11, 704 }, { 8, 11, 357 }, { 10, 11, 745 }, - { 14, 11, 426 }, { 17, 11, 94 }, { 19, 11, 57 }, { 9, 10, 660 }, - { 10, 10, 347 }, { 4, 11, 179 }, { 5, 11, 198 }, { 5, 11, 697 }, - { 7, 11, 347 }, { 7, 11, 971 }, { 8, 11, 181 }, { 10, 11, 711 }, - { 13, 0, 442 }, { 11, 0, 842 }, { 11, 0, 924 }, { 13, 0, 317 }, - { 13, 0, 370 }, { 13, 0, 469 }, { 13, 0, 471 }, { 14, 0, 397 }, - { 18, 0, 69 }, { 18, 0, 145 }, { 7, 10, 572 }, { 9, 10, 592 }, - { 11, 10, 680 }, { 12, 10, 356 }, { 12, 10, 550 }, { 14, 11, 19 }, - { 14, 11, 28 }, { 16, 11, 29 }, { 8, 0, 534 }, { 4, 11, 243 }, - { 5, 11, 203 }, { 7, 11, 19 }, { 7, 11, 71 }, { 7, 11, 113 }, - { 10, 11, 405 }, { 11, 11, 357 }, { 14, 11, 240 }, { 6, 0, 210 }, - { 10, 0, 845 }, { 10, 0, 862 }, { 7, 11, 1351 }, { 9, 11, 581 }, - { 10, 11, 639 }, { 11, 11, 453 }, { 12, 11, 584 }, { 7, 11, 1450 }, - { 11, 11, 99 }, { 10, 0, 892 }, { 12, 0, 719 }, { 16, 0, 105 }, - { 4, 0, 284 }, { 6, 0, 223 }, { 6, 11, 492 }, { 5, 11, 134 }, - { 6, 11, 408 }, { 6, 11, 495 }, { 7, 11, 1593 }, { 8, 0, 529 }, - { 9, 0, 807 }, { 4, 0, 218 }, { 7, 0, 526 }, { 15, 0, 137 }, - { 6, 0, 1444 }, { 14, 11, 4 }, { 4, 11, 665 }, { 4, 0, 270 }, - { 5, 0, 192 }, { 6, 0, 332 }, { 7, 0, 1322 }, { 4, 11, 248 }, - { 7, 11, 137 }, { 9, 11, 349 }, { 12, 0, 661 }, { 7, 0, 1517 }, - { 11, 0, 597 }, { 14, 0, 76 }, { 14, 0, 335 }, { 20, 0, 33 }, - { 7, 10, 748 }, { 11, 10, 700 }, { 5, 11, 371 }, { 7, 11, 563 }, - { 18, 11, 57 }, { 5, 10, 127 }, { 5, 0, 418 }, { 4, 11, 374 }, - { 7, 11, 547 }, { 7, 11, 1700 }, { 7, 11, 1833 }, { 11, 11, 858 }, - { 6, 10, 198 }, { 12, 10, 83 }, { 7, 11, 1812 }, { 13, 11, 259 }, - { 13, 11, 356 }, { 14, 11, 242 }, { 19, 11, 114 }, { 7, 0, 379 }, - { 8, 0, 481 }, { 9, 0, 377 }, { 5, 10, 276 }, { 6, 10, 55 }, - { 7, 10, 1369 }, { 10, 11, 286 }, { 5, 0, 1003 }, { 6, 0, 149 }, - { 6, 10, 1752 }, { 8, 10, 726 }, { 8, 0, 262 }, { 9, 0, 627 }, - { 10, 0, 18 }, { 11, 0, 214 }, { 11, 0, 404 }, { 11, 0, 457 }, - { 11, 0, 780 }, { 11, 0, 913 }, { 13, 0, 401 }, { 14, 0, 200 }, - { 6, 11, 1647 }, { 7, 11, 1552 }, { 7, 11, 2010 }, { 9, 11, 494 }, - { 9, 11, 509 }, { 7, 0, 742 }, { 8, 0, 304 }, { 4, 0, 142 }, - { 5, 10, 764 }, { 6, 10, 309 }, { 7, 10, 331 }, { 10, 10, 550 }, - { 7, 10, 1062 }, { 6, 11, 123 }, { 7, 11, 214 }, { 7, 10, 986 }, - { 9, 11, 728 }, { 10, 11, 157 }, { 11, 11, 346 }, { 11, 11, 662 }, - { 15, 11, 106 }, { 7, 10, 1573 }, { 7, 0, 925 }, { 9, 0, 799 }, - { 4, 0, 471 }, { 5, 0, 51 }, { 6, 0, 602 }, { 8, 0, 484 }, - { 10, 0, 195 }, { 8, 0, 688 }, { 4, 0, 697 }, { 6, 0, 1169 }, - { 6, 0, 1241 }, { 6, 10, 194 }, { 7, 10, 133 }, { 10, 10, 493 }, - { 10, 10, 570 }, { 11, 10, 664 }, { 12, 0, 751 }, { 7, 0, 929 }, - { 10, 0, 452 }, { 11, 0, 878 }, { 16, 0, 33 }, { 5, 10, 24 }, - { 5, 10, 569 }, { 6, 10, 3 }, { 6, 10, 119 }, { 6, 10, 143 }, - { 6, 10, 440 }, { 7, 10, 599 }, { 7, 10, 1686 }, { 7, 10, 1854 }, - { 8, 10, 424 }, { 9, 10, 43 }, { 9, 10, 584 }, { 9, 10, 760 }, - { 10, 10, 328 }, { 11, 10, 159 }, { 11, 10, 253 }, { 12, 10, 487 }, - { 12, 10, 531 }, { 4, 11, 707 }, { 13, 11, 106 }, { 18, 11, 49 }, - { 19, 11, 41 }, { 5, 0, 221 }, { 5, 11, 588 }, { 6, 11, 393 }, - { 6, 0, 1437 }, { 6, 11, 211 }, { 7, 11, 1690 }, { 11, 11, 486 }, - { 12, 11, 369 }, { 5, 10, 14 }, { 5, 10, 892 }, { 6, 10, 283 }, - { 7, 10, 234 }, { 8, 10, 537 }, { 4, 0, 988 }, { 8, 0, 955 }, - { 7, 0, 1251 }, { 4, 10, 126 }, { 8, 10, 635 }, { 19, 10, 34 }, - { 4, 10, 316 }, { 7, 10, 1561 }, { 9, 10, 861 }, { 4, 10, 64 }, - { 5, 10, 352 }, { 5, 10, 720 }, { 6, 10, 368 }, { 11, 10, 359 }, - { 6, 0, 192 }, { 4, 0, 132 }, { 5, 0, 69 }, { 7, 0, 1242 }, - { 7, 10, 1577 }, { 10, 10, 304 }, { 10, 10, 549 }, { 12, 10, 365 }, - { 13, 10, 220 }, { 13, 10, 240 }, { 14, 10, 33 }, { 4, 0, 111 }, - { 7, 0, 865 }, { 6, 11, 219 }, { 5, 11, 582 }, { 6, 11, 1646 }, - { 7, 11, 99 }, { 7, 11, 1962 }, { 7, 11, 1986 }, { 8, 11, 515 }, - { 8, 11, 773 }, { 9, 11, 23 }, { 9, 11, 491 }, { 12, 11, 620 }, - { 14, 11, 52 }, { 17, 11, 50 }, { 4, 0, 767 }, { 7, 11, 568 }, - { 20, 11, 21 }, { 6, 0, 42 }, { 7, 0, 1416 }, { 7, 0, 2005 }, - { 8, 0, 131 }, { 8, 0, 466 }, { 9, 0, 672 }, { 13, 0, 252 }, - { 20, 0, 103 }, { 5, 11, 851 }, { 7, 0, 1050 }, { 6, 10, 175 }, - { 9, 10, 289 }, { 5, 10, 432 }, { 5, 10, 913 }, { 6, 0, 44 }, - { 8, 0, 368 }, { 7, 11, 784 }, { 4, 0, 570 }, { 5, 0, 120 }, - { 11, 10, 595 }, { 12, 0, 29 }, { 6, 0, 227 }, { 7, 0, 1589 }, - { 4, 11, 98 }, { 7, 11, 1365 }, { 9, 11, 422 }, { 9, 11, 670 }, - { 10, 11, 775 }, { 11, 11, 210 }, { 13, 11, 26 }, { 13, 11, 457 }, - { 13, 11, 476 }, { 12, 10, 80 }, { 5, 10, 931 }, { 6, 10, 1698 }, - { 5, 0, 522 }, { 6, 0, 1120 }, { 7, 0, 1529 }, { 12, 0, 739 }, - { 14, 0, 448 }, { 14, 0, 467 }, { 11, 10, 526 }, { 11, 10, 939 }, - { 13, 10, 290 }, { 5, 10, 774 }, { 6, 10, 1637 }, { 6, 10, 1686 }, - { 6, 10, 1751 }, { 6, 0, 1667 }, { 7, 0, 2036 }, { 7, 10, 1167 }, - { 11, 10, 934 }, { 13, 10, 391 }, { 17, 10, 76 }, { 9, 11, 147 }, - { 6, 10, 260 }, { 7, 10, 1484 }, { 11, 11, 821 }, { 12, 11, 110 }, - { 12, 11, 153 }, { 18, 11, 41 }, { 22, 11, 19 }, { 6, 0, 511 }, - { 12, 0, 132 }, { 6, 10, 573 }, { 5, 0, 568 }, { 6, 0, 138 }, - { 7, 0, 1293 }, { 4, 0, 1020 }, { 8, 0, 258 }, { 9, 0, 208 }, - { 9, 0, 359 }, { 4, 0, 565 }, { 8, 0, 23 }, { 8, 0, 827 }, - { 6, 0, 344 }, { 4, 0, 922 }, { 5, 0, 1023 }, { 13, 11, 477 }, - { 14, 11, 120 }, { 20, 11, 61 }, { 6, 0, 240 }, { 5, 11, 209 }, - { 6, 11, 30 }, { 11, 11, 56 }, { 11, 11, 305 }, { 6, 0, 171 }, - { 7, 0, 1002 }, { 7, 0, 1324 }, { 9, 0, 415 }, { 14, 0, 230 }, - { 18, 0, 68 }, { 4, 10, 292 }, { 4, 10, 736 }, { 5, 10, 871 }, - { 6, 10, 1689 }, { 7, 10, 1944 }, { 9, 10, 580 }, { 9, 11, 635 }, - { 11, 11, 559 }, { 4, 11, 150 }, { 5, 11, 303 }, { 6, 11, 327 }, - { 6, 10, 63 }, { 7, 10, 920 }, { 5, 10, 793 }, { 8, 11, 192 }, - { 10, 11, 78 }, { 10, 11, 555 }, { 11, 11, 308 }, { 13, 11, 359 }, - { 19, 11, 95 }, { 7, 11, 786 }, { 7, 11, 1712 }, { 8, 0, 402 }, - { 6, 0, 754 }, { 6, 11, 1638 }, { 7, 11, 79 }, { 7, 11, 496 }, - { 9, 11, 138 }, { 10, 11, 336 }, { 11, 11, 12 }, { 12, 11, 412 }, - { 12, 11, 440 }, { 14, 11, 305 }, { 4, 0, 716 }, { 13, 0, 31 }, - { 5, 0, 982 }, { 8, 0, 691 }, { 8, 0, 731 }, { 5, 10, 67 }, - { 6, 10, 62 }, { 6, 10, 374 }, { 7, 10, 1391 }, { 9, 10, 790 }, - { 12, 10, 47 }, { 11, 11, 556 }, { 23, 11, 1 }, { 7, 11, 204 }, - { 7, 11, 415 }, { 8, 11, 42 }, { 10, 11, 85 }, { 11, 11, 33 }, - { 11, 11, 564 }, { 12, 11, 571 }, { 21, 11, 1 }, { 8, 0, 888 }, - { 7, 11, 610 }, { 7, 11, 1501 }, { 4, 10, 391 }, { 7, 10, 1169 }, - { 5, 0, 847 }, { 9, 0, 840 }, { 10, 0, 803 }, { 9, 0, 823 }, - { 6, 0, 785 }, { 8, 0, 152 }, { 9, 0, 53 }, { 9, 0, 268 }, - { 9, 0, 901 }, { 10, 0, 518 }, { 10, 0, 829 }, { 11, 0, 188 }, - { 13, 0, 74 }, { 14, 0, 46 }, { 15, 0, 17 }, { 15, 0, 33 }, - { 17, 0, 40 }, { 18, 0, 36 }, { 19, 0, 20 }, { 22, 0, 1 }, - { 24, 0, 2 }, { 4, 11, 3 }, { 5, 11, 247 }, { 5, 11, 644 }, - { 7, 11, 744 }, { 7, 11, 1207 }, { 7, 11, 1225 }, { 7, 11, 1909 }, - { 18, 11, 147 }, { 8, 0, 532 }, { 7, 0, 681 }, { 4, 10, 271 }, - { 12, 0, 314 }, { 12, 0, 677 }, { 4, 0, 684 }, { 8, 0, 384 }, - { 5, 11, 285 }, { 9, 11, 67 }, { 13, 11, 473 }, { 15, 11, 82 }, - { 4, 10, 253 }, { 5, 10, 544 }, { 7, 10, 300 }, { 9, 10, 340 }, - { 7, 0, 110 }, { 7, 0, 447 }, { 8, 0, 290 }, { 8, 0, 591 }, - { 9, 0, 382 }, { 9, 0, 649 }, { 11, 0, 71 }, { 11, 0, 155 }, - { 11, 0, 313 }, { 12, 0, 5 }, { 13, 0, 325 }, { 14, 0, 287 }, - { 6, 0, 1818 }, { 8, 0, 1007 }, { 10, 0, 321 }, { 7, 0, 360 }, - { 7, 0, 425 }, { 9, 0, 66 }, { 9, 0, 278 }, { 10, 0, 644 }, - { 5, 10, 818 }, { 5, 0, 385 }, { 5, 10, 541 }, { 6, 10, 94 }, - { 6, 10, 499 }, { 7, 10, 230 }, { 11, 10, 321 }, { 4, 10, 920 }, - { 5, 10, 25 }, { 5, 10, 790 }, { 6, 10, 457 }, { 7, 10, 853 }, - { 8, 10, 788 }, { 4, 0, 900 }, { 5, 0, 861 }, { 5, 0, 254 }, - { 7, 0, 985 }, { 8, 0, 73 }, { 7, 0, 1959 }, { 8, 0, 683 }, - { 6, 10, 1765 }, { 5, 10, 822 }, { 4, 10, 634 }, { 4, 11, 29 }, - { 6, 11, 532 }, { 7, 11, 1628 }, { 7, 11, 1648 }, { 9, 11, 303 }, - { 9, 11, 350 }, { 10, 11, 433 }, { 11, 11, 97 }, { 11, 11, 557 }, - { 11, 11, 745 }, { 12, 11, 289 }, { 12, 11, 335 }, { 12, 11, 348 }, - { 12, 11, 606 }, { 13, 11, 116 }, { 13, 11, 233 }, { 13, 11, 466 }, - { 14, 11, 181 }, { 14, 11, 209 }, { 14, 11, 232 }, { 14, 11, 236 }, - { 14, 11, 300 }, { 16, 11, 41 }, { 20, 11, 97 }, { 19, 0, 86 }, - { 6, 10, 36 }, { 7, 10, 658 }, { 8, 10, 454 }, { 7, 11, 1692 }, - { 4, 0, 725 }, { 5, 11, 501 }, { 7, 11, 1704 }, { 9, 11, 553 }, - { 11, 11, 520 }, { 12, 11, 557 }, { 13, 11, 249 }, { 6, 0, 196 }, - { 5, 0, 831 }, { 8, 0, 723 }, { 7, 0, 1897 }, { 13, 0, 80 }, - { 13, 0, 437 }, { 17, 0, 74 }, { 4, 0, 992 }, { 6, 0, 627 }, - { 8, 0, 994 }, { 7, 11, 1294 }, { 4, 10, 104 }, { 5, 0, 848 }, - { 6, 0, 66 }, { 8, 0, 764 }, { 4, 0, 36 }, { 7, 0, 1387 }, - { 10, 0, 205 }, { 11, 0, 755 }, { 6, 0, 1046 }, { 6, 0, 1485 }, - { 6, 0, 950 }, { 4, 0, 887 }, { 14, 0, 450 }, { 20, 0, 111 }, - { 7, 0, 620 }, { 7, 0, 831 }, { 9, 10, 542 }, { 9, 10, 566 }, - { 10, 10, 728 }, { 6, 0, 165 }, { 10, 0, 388 }, { 11, 10, 263 }, - { 4, 0, 719 }, { 7, 0, 155 }, { 10, 10, 468 }, { 6, 11, 453 }, - { 16, 11, 36 }, { 6, 11, 129 }, { 5, 0, 533 }, { 7, 0, 755 }, - { 10, 0, 780 }, { 6, 0, 1465 }, { 4, 0, 353 }, { 6, 0, 146 }, - { 6, 0, 1789 }, { 7, 0, 427 }, { 7, 0, 990 }, { 7, 0, 1348 }, - { 9, 0, 665 }, { 9, 0, 898 }, { 11, 0, 893 }, { 14, 0, 212 }, - { 7, 10, 87 }, { 14, 10, 288 }, { 4, 0, 45 }, { 7, 0, 1257 }, - { 12, 0, 7 }, { 7, 10, 988 }, { 7, 10, 1939 }, { 9, 10, 64 }, - { 9, 10, 502 }, { 12, 10, 34 }, { 13, 10, 12 }, { 13, 10, 234 }, - { 19, 10, 77 }, { 4, 0, 607 }, { 5, 11, 60 }, { 6, 11, 504 }, - { 7, 11, 614 }, { 7, 11, 1155 }, { 12, 11, 0 }, { 7, 10, 141 }, - { 8, 11, 198 }, { 11, 11, 29 }, { 12, 11, 534 }, { 12, 0, 65 }, - { 8, 0, 816 }, { 4, 10, 619 }, { 11, 0, 88 }, { 5, 10, 246 }, - { 8, 10, 189 }, { 9, 10, 355 }, { 9, 10, 512 }, { 10, 10, 124 }, - { 10, 10, 453 }, { 11, 10, 143 }, { 11, 10, 416 }, { 11, 10, 859 }, - { 13, 10, 341 }, { 4, 11, 379 }, { 7, 11, 1397 }, { 4, 0, 600 }, - { 9, 0, 621 }, { 5, 0, 367 }, { 6, 0, 561 }, { 6, 0, 559 }, - { 6, 0, 1691 }, { 6, 0, 585 }, { 6, 11, 585 }, { 7, 11, 1228 }, - { 4, 11, 118 }, { 5, 10, 678 }, { 6, 11, 274 }, { 6, 11, 361 }, - { 7, 11, 75 }, { 13, 11, 441 }, { 7, 11, 1818 }, { 9, 11, 841 }, - { 5, 0, 573 }, { 6, 0, 287 }, { 7, 10, 862 }, { 7, 10, 1886 }, - { 10, 10, 179 }, { 4, 10, 517 }, { 12, 11, 693 }, { 5, 11, 314 }, - { 6, 11, 221 }, { 7, 11, 419 }, { 10, 11, 650 }, { 11, 11, 396 }, - { 12, 11, 156 }, { 13, 11, 369 }, { 14, 11, 333 }, { 17, 11, 47 }, - { 12, 10, 540 }, { 8, 10, 667 }, { 11, 10, 403 }, { 18, 10, 83 }, - { 6, 0, 672 }, { 5, 10, 761 }, { 9, 0, 157 }, { 10, 10, 131 }, - { 12, 10, 72 }, { 7, 0, 714 }, { 6, 11, 460 }, { 6, 0, 456 }, - { 5, 0, 925 }, { 5, 11, 682 }, { 7, 11, 1887 }, { 8, 11, 510 }, - { 8, 11, 475 }, { 5, 11, 1016 }, { 9, 0, 19 }, { 7, 11, 602 }, - { 8, 11, 179 }, { 10, 11, 781 }, { 12, 11, 126 }, { 6, 11, 329 }, - { 10, 11, 111 }, { 6, 0, 822 }, { 6, 0, 1473 }, { 16, 11, 86 }, - { 11, 0, 113 }, { 11, 11, 113 }, { 5, 11, 821 }, { 6, 11, 1687 }, - { 5, 10, 449 }, { 7, 0, 463 }, { 17, 0, 69 }, { 8, 10, 103 }, - { 7, 10, 2028 }, { 10, 10, 641 }, { 6, 0, 193 }, { 7, 0, 240 }, - { 7, 0, 1682 }, { 10, 0, 51 }, { 10, 0, 640 }, { 11, 0, 410 }, - { 13, 0, 82 }, { 14, 0, 247 }, { 14, 0, 331 }, { 14, 0, 377 }, - { 6, 0, 471 }, { 11, 0, 411 }, { 14, 0, 2 }, { 5, 11, 71 }, - { 7, 11, 1407 }, { 9, 11, 388 }, { 9, 11, 704 }, { 10, 11, 261 }, - { 10, 11, 619 }, { 11, 11, 547 }, { 11, 11, 619 }, { 15, 11, 157 }, - { 8, 0, 633 }, { 7, 0, 1148 }, { 6, 0, 554 }, { 7, 0, 1392 }, - { 12, 0, 129 }, { 7, 10, 1274 }, { 7, 10, 1386 }, { 7, 11, 2008 }, - { 9, 11, 337 }, { 10, 11, 517 }, { 18, 10, 87 }, { 7, 0, 803 }, - { 8, 0, 542 }, { 6, 10, 187 }, { 7, 10, 1203 }, { 8, 10, 380 }, - { 14, 10, 117 }, { 21, 10, 28 }, { 6, 10, 297 }, { 7, 10, 793 }, - { 11, 10, 938 }, { 8, 0, 438 }, { 11, 0, 363 }, { 7, 10, 464 }, - { 11, 10, 105 }, { 12, 10, 231 }, { 14, 10, 386 }, { 15, 10, 102 }, - { 20, 10, 75 }, { 5, 11, 16 }, { 6, 11, 86 }, { 6, 11, 603 }, - { 7, 11, 292 }, { 7, 11, 561 }, { 8, 11, 257 }, { 8, 11, 382 }, - { 9, 11, 721 }, { 9, 11, 778 }, { 11, 11, 581 }, { 12, 11, 466 }, - { 6, 0, 717 }, { 4, 11, 486 }, { 5, 11, 491 }, { 4, 0, 875 }, - { 4, 11, 72 }, { 6, 11, 265 }, { 7, 11, 847 }, { 4, 0, 237 }, - { 7, 0, 514 }, { 6, 0, 392 }, { 7, 0, 65 }, { 7, 0, 2019 }, - { 12, 11, 261 }, { 7, 11, 922 }, { 9, 11, 404 }, { 12, 0, 563 }, - { 14, 0, 101 }, { 18, 0, 129 }, { 7, 10, 1010 }, { 11, 10, 733 }, - { 11, 10, 759 }, { 13, 10, 34 }, { 18, 10, 45 }, { 7, 10, 1656 }, - { 9, 10, 369 }, { 10, 10, 338 }, { 10, 10, 490 }, { 11, 10, 154 }, - { 11, 10, 545 }, { 11, 10, 775 }, { 13, 10, 77 }, { 13, 10, 274 }, - { 4, 0, 444 }, { 10, 0, 146 }, { 12, 0, 9 }, { 11, 11, 163 }, - { 7, 0, 1260 }, { 7, 0, 1790 }, { 9, 0, 222 }, { 10, 0, 43 }, - { 11, 0, 900 }, { 9, 11, 234 }, { 10, 0, 971 }, { 9, 0, 761 }, - { 6, 0, 699 }, { 8, 11, 434 }, { 6, 0, 1116 }, { 7, 0, 1366 }, - { 5, 10, 20 }, { 6, 11, 197 }, { 6, 10, 298 }, { 7, 10, 659 }, - { 8, 11, 205 }, { 9, 10, 219 }, { 4, 11, 490 }, { 11, 11, 820 }, - { 22, 11, 51 }, { 7, 10, 1440 }, { 11, 10, 854 }, { 11, 10, 872 }, - { 11, 10, 921 }, { 12, 10, 551 }, { 13, 10, 472 }, { 14, 10, 367 }, - { 12, 11, 13 }, { 4, 0, 829 }, { 12, 0, 242 }, { 4, 10, 439 }, - { 8, 10, 669 }, { 6, 0, 593 }, { 6, 11, 452 }, { 7, 11, 312 }, - { 10, 11, 219 }, { 4, 11, 333 }, { 9, 11, 176 }, { 12, 11, 353 }, - { 13, 11, 187 }, { 7, 0, 36 }, { 8, 0, 201 }, { 8, 0, 605 }, - { 12, 0, 224 }, { 4, 10, 233 }, { 6, 0, 1430 }, { 6, 0, 1806 }, - { 4, 0, 523 }, { 5, 0, 638 }, { 6, 0, 1889 }, { 9, 0, 958 }, - { 9, 0, 971 }, { 9, 0, 976 }, { 12, 0, 796 }, { 12, 0, 799 }, - { 12, 0, 808 }, { 12, 0, 835 }, { 12, 0, 836 }, { 12, 0, 914 }, - { 12, 0, 946 }, { 15, 0, 216 }, { 15, 0, 232 }, { 18, 0, 183 }, - { 18, 0, 187 }, { 18, 0, 194 }, { 18, 0, 212 }, { 18, 0, 232 }, - { 21, 0, 49 }, { 4, 10, 482 }, { 6, 0, 827 }, { 6, 0, 1434 }, - { 7, 10, 346 }, { 6, 0, 2043 }, { 6, 0, 242 }, { 7, 0, 227 }, - { 7, 0, 1581 }, { 8, 0, 104 }, { 9, 0, 113 }, { 9, 0, 220 }, - { 9, 0, 427 }, { 10, 0, 136 }, { 10, 0, 239 }, { 11, 0, 579 }, - { 11, 0, 1023 }, { 13, 0, 4 }, { 13, 0, 204 }, { 13, 0, 316 }, - { 20, 0, 86 }, { 6, 11, 1685 }, { 7, 0, 148 }, { 8, 0, 284 }, - { 13, 0, 63 }, { 14, 0, 10 }, { 7, 11, 584 }, { 6, 0, 1249 }, - { 7, 0, 861 }, { 7, 10, 334 }, { 5, 10, 795 }, { 6, 10, 1741 }, - { 9, 11, 70 }, { 4, 0, 807 }, { 7, 11, 135 }, { 8, 11, 7 }, - { 8, 11, 62 }, { 9, 11, 243 }, { 10, 11, 658 }, { 10, 11, 697 }, - { 11, 11, 456 }, { 11, 11, 756 }, { 9, 11, 395 }, { 10, 11, 79 }, - { 9, 11, 108 }, { 19, 0, 94 }, { 8, 0, 494 }, { 7, 11, 631 }, - { 7, 10, 622 }, { 7, 0, 1510 }, { 7, 10, 1750 }, { 4, 10, 203 }, - { 7, 10, 1936 }, { 7, 11, 406 }, { 7, 11, 459 }, { 8, 11, 606 }, - { 11, 11, 726 }, { 7, 0, 1306 }, { 8, 0, 505 }, { 9, 0, 482 }, - { 10, 0, 126 }, { 11, 0, 225 }, { 12, 0, 347 }, { 12, 0, 449 }, - { 13, 0, 19 }, { 14, 0, 218 }, { 14, 0, 435 }, { 5, 0, 268 }, - { 10, 0, 764 }, { 12, 0, 120 }, { 13, 0, 39 }, { 17, 0, 127 }, - { 14, 11, 68 }, { 11, 10, 678 }, { 12, 10, 307 }, { 12, 11, 268 }, - { 12, 11, 640 }, { 14, 11, 119 }, { 7, 10, 2044 }, { 5, 11, 612 }, - { 4, 11, 372 }, { 7, 11, 482 }, { 8, 11, 158 }, { 9, 11, 602 }, - { 9, 11, 615 }, { 10, 11, 245 }, { 10, 11, 678 }, { 10, 11, 744 }, - { 11, 11, 248 }, { 11, 11, 806 }, { 7, 10, 311 }, { 9, 10, 308 }, - { 12, 10, 255 }, { 4, 0, 384 }, { 7, 0, 1022 }, { 5, 11, 854 }, - { 7, 11, 1991 }, { 7, 10, 1266 }, { 4, 10, 400 }, { 5, 10, 267 }, - { 7, 10, 232 }, { 7, 0, 1703 }, { 9, 0, 159 }, { 11, 0, 661 }, - { 12, 0, 603 }, { 4, 0, 964 }, { 14, 0, 438 }, { 14, 0, 444 }, - { 14, 0, 456 }, { 22, 0, 60 }, { 22, 0, 63 }, { 9, 11, 106 }, - { 9, 11, 163 }, { 9, 11, 296 }, { 10, 11, 167 }, { 10, 11, 172 }, - { 10, 11, 777 }, { 11, 11, 16 }, { 8, 0, 583 }, { 4, 0, 515 }, - { 8, 0, 632 }, { 8, 0, 697 }, { 9, 0, 854 }, { 5, 11, 195 }, - { 7, 11, 1685 }, { 6, 0, 1123 }, { 6, 0, 1365 }, { 6, 11, 328 }, - { 7, 11, 1997 }, { 8, 11, 730 }, { 11, 11, 1006 }, { 4, 0, 136 }, - { 5, 0, 551 }, { 6, 0, 1782 }, { 7, 0, 1287 }, { 9, 0, 44 }, - { 10, 0, 552 }, { 10, 0, 642 }, { 11, 0, 839 }, { 12, 0, 274 }, - { 12, 0, 275 }, { 12, 0, 372 }, { 13, 0, 91 }, { 14, 0, 125 }, - { 5, 11, 751 }, { 11, 11, 797 }, { 12, 11, 203 }, { 5, 0, 732 }, - { 7, 0, 679 }, { 8, 0, 313 }, { 4, 10, 100 }, { 7, 11, 821 }, - { 10, 0, 361 }, { 14, 0, 316 }, { 6, 0, 595 }, { 6, 0, 147 }, - { 7, 0, 886 }, { 9, 0, 753 }, { 10, 0, 268 }, { 5, 10, 362 }, - { 5, 10, 443 }, { 6, 10, 318 }, { 7, 10, 1019 }, { 11, 10, 623 }, - { 5, 10, 463 }, { 8, 10, 296 }, { 4, 10, 454 }, { 5, 11, 950 }, - { 5, 11, 994 }, { 6, 11, 351 }, { 10, 0, 137 }, { 5, 10, 48 }, - { 5, 10, 404 }, { 6, 10, 557 }, { 7, 10, 458 }, { 8, 10, 597 }, - { 10, 10, 455 }, { 10, 10, 606 }, { 11, 10, 49 }, { 11, 10, 548 }, - { 12, 10, 476 }, { 13, 10, 18 }, { 13, 10, 450 }, { 5, 0, 414 }, - { 7, 0, 1762 }, { 5, 11, 421 }, { 7, 11, 47 }, { 5, 10, 442 }, - { 7, 10, 1984 }, { 6, 0, 599 }, { 6, 0, 1749 }, { 6, 0, 1627 }, - { 4, 0, 488 }, { 4, 11, 350 }, { 9, 11, 751 }, { 4, 0, 83 }, - { 12, 0, 676 }, { 5, 11, 967 }, { 7, 0, 1639 }, { 5, 10, 55 }, - { 12, 10, 161 }, { 4, 11, 473 }, { 7, 11, 623 }, { 8, 11, 808 }, - { 9, 11, 871 }, { 9, 11, 893 }, { 11, 11, 38 }, { 11, 11, 431 }, - { 12, 11, 112 }, { 12, 11, 217 }, { 12, 11, 243 }, { 12, 11, 562 }, - { 12, 11, 683 }, { 13, 11, 141 }, { 13, 11, 197 }, { 13, 11, 227 }, - { 13, 11, 406 }, { 13, 11, 487 }, { 14, 11, 156 }, { 14, 11, 203 }, - { 14, 11, 224 }, { 14, 11, 256 }, { 18, 11, 58 }, { 22, 11, 0 }, - { 5, 10, 450 }, { 7, 11, 736 }, { 11, 11, 264 }, { 6, 0, 278 }, - { 4, 11, 222 }, { 7, 11, 286 }, { 8, 11, 629 }, { 7, 10, 869 }, - { 12, 0, 97 }, { 16, 0, 14 }, { 6, 0, 1085 }, { 4, 10, 213 }, - { 7, 10, 223 }, { 8, 10, 80 }, { 7, 0, 388 }, { 7, 0, 644 }, - { 11, 0, 781 }, { 4, 0, 849 }, { 7, 0, 229 }, { 8, 0, 59 }, - { 9, 0, 190 }, { 10, 0, 378 }, { 12, 0, 191 }, { 7, 10, 381 }, - { 7, 10, 806 }, { 7, 10, 820 }, { 8, 10, 354 }, { 8, 10, 437 }, - { 8, 10, 787 }, { 9, 10, 657 }, { 10, 10, 58 }, { 10, 10, 339 }, - { 10, 10, 749 }, { 11, 10, 914 }, { 12, 10, 162 }, { 13, 10, 75 }, - { 14, 10, 106 }, { 14, 10, 198 }, { 14, 10, 320 }, { 14, 10, 413 }, - { 18, 10, 43 }, { 13, 11, 306 }, { 8, 10, 747 }, { 6, 0, 1115 }, - { 16, 0, 94 }, { 16, 0, 108 }, { 8, 11, 146 }, { 6, 0, 700 }, - { 6, 0, 817 }, { 6, 0, 1002 }, { 5, 10, 692 }, { 4, 11, 465 }, - { 7, 11, 1663 }, { 6, 10, 191 }, { 6, 0, 1414 }, { 7, 11, 913 }, - { 4, 0, 660 }, { 7, 0, 1035 }, { 10, 0, 737 }, { 6, 10, 162 }, - { 7, 10, 1960 }, { 8, 10, 831 }, { 4, 10, 706 }, { 7, 0, 690 }, - { 9, 0, 217 }, { 9, 0, 587 }, { 12, 0, 521 }, { 10, 10, 426 }, - { 7, 10, 1235 }, { 6, 11, 82 }, { 7, 11, 138 }, { 7, 11, 517 }, - { 9, 11, 673 }, { 11, 11, 238 }, { 10, 0, 272 }, { 5, 11, 495 }, - { 7, 11, 834 }, { 9, 11, 733 }, { 11, 11, 378 }, { 6, 0, 1744 }, - { 4, 0, 1011 }, { 7, 11, 828 }, { 14, 11, 116 }, { 4, 0, 733 }, - { 9, 0, 194 }, { 10, 0, 92 }, { 11, 0, 198 }, { 12, 0, 84 }, - { 13, 0, 128 }, { 5, 11, 559 }, { 10, 0, 57 }, { 10, 0, 277 }, - { 6, 11, 21 }, { 6, 11, 1737 }, { 7, 11, 1444 }, { 8, 11, 224 }, - { 4, 10, 204 }, { 9, 10, 902 }, { 8, 10, 833 }, { 11, 0, 348 }, - { 12, 0, 99 }, { 18, 0, 1 }, { 18, 0, 11 }, { 19, 0, 4 }, - { 7, 10, 366 }, { 9, 10, 287 }, { 12, 10, 199 }, { 12, 10, 556 }, - { 12, 10, 577 }, { 6, 0, 1981 }, { 8, 0, 936 }, { 21, 0, 33 }, - { 22, 0, 40 }, { 5, 11, 519 }, { 10, 11, 204 }, { 5, 10, 356 }, - { 7, 10, 224 }, { 6, 0, 775 }, { 7, 0, 306 }, { 7, 10, 630 }, - { 9, 10, 567 }, { 11, 10, 150 }, { 11, 10, 444 }, { 13, 10, 119 }, - { 5, 0, 979 }, { 6, 10, 539 }, { 5, 0, 611 }, { 4, 11, 402 }, - { 7, 11, 1679 }, { 5, 0, 178 }, { 7, 11, 2 }, { 8, 11, 323 }, - { 8, 11, 479 }, { 5, 11, 59 }, { 7, 11, 672 }, { 4, 0, 1010 }, - { 6, 0, 1969 }, { 10, 11, 237 }, { 5, 11, 412 }, { 18, 11, 34 }, - { 7, 11, 1740 }, { 18, 11, 48 }, { 6, 0, 664 }, { 11, 10, 814 }, - { 4, 11, 85 }, { 7, 11, 549 }, { 5, 11, 94 }, { 5, 11, 457 }, - { 4, 0, 390 }, { 6, 0, 1510 }, { 4, 10, 235 }, { 7, 10, 255 }, - { 4, 10, 194 }, { 5, 10, 584 }, { 6, 11, 11 }, { 6, 10, 384 }, - { 7, 11, 187 }, { 7, 10, 583 }, { 10, 10, 761 }, { 11, 10, 760 }, - { 11, 10, 851 }, { 4, 11, 522 }, { 11, 11, 802 }, { 7, 0, 493 }, - { 10, 11, 776 }, { 13, 11, 345 }, { 14, 11, 425 }, { 18, 0, 37 }, - { 4, 11, 52 }, { 7, 11, 661 }, { 6, 0, 724 }, { 6, 0, 829 }, - { 5, 11, 520 }, { 5, 10, 562 }, { 4, 11, 281 }, { 5, 11, 38 }, - { 7, 11, 194 }, { 7, 11, 668 }, { 7, 11, 1893 }, { 9, 11, 397 }, - { 5, 10, 191 }, { 9, 10, 271 }, { 7, 0, 1537 }, { 14, 0, 96 }, - { 15, 0, 73 }, { 5, 0, 473 }, { 11, 0, 168 }, { 4, 10, 470 }, - { 6, 10, 153 }, { 7, 10, 1503 }, { 7, 10, 1923 }, { 10, 10, 701 }, - { 11, 10, 132 }, { 11, 10, 227 }, { 11, 10, 320 }, { 11, 10, 436 }, - { 11, 10, 525 }, { 11, 10, 855 }, { 12, 10, 41 }, { 12, 10, 286 }, - { 13, 10, 103 }, { 13, 10, 284 }, { 14, 10, 255 }, { 14, 10, 262 }, - { 15, 10, 117 }, { 15, 10, 127 }, { 5, 0, 105 }, { 5, 0, 438 }, - { 9, 0, 694 }, { 12, 0, 627 }, { 13, 0, 210 }, { 5, 10, 327 }, - { 6, 10, 552 }, { 7, 10, 1754 }, { 9, 10, 604 }, { 6, 0, 1256 }, - { 24, 0, 11 }, { 5, 11, 448 }, { 11, 11, 98 }, { 11, 11, 524 }, - { 7, 0, 1626 }, { 5, 10, 80 }, { 6, 10, 405 }, { 7, 10, 403 }, - { 7, 10, 1502 }, { 8, 10, 456 }, { 9, 10, 487 }, { 9, 10, 853 }, - { 9, 10, 889 }, { 10, 10, 309 }, { 11, 10, 721 }, { 11, 10, 994 }, - { 12, 10, 430 }, { 13, 10, 165 }, { 14, 11, 16 }, { 18, 11, 44 }, - { 4, 0, 779 }, { 8, 0, 25 }, { 10, 0, 826 }, { 4, 10, 453 }, - { 5, 10, 887 }, { 6, 10, 535 }, { 8, 10, 6 }, { 8, 10, 543 }, - { 8, 10, 826 }, { 9, 11, 461 }, { 12, 11, 632 }, { 4, 0, 308 }, - { 7, 0, 741 }, { 4, 0, 671 }, { 7, 0, 150 }, { 8, 0, 649 }, - { 8, 0, 1020 }, { 9, 0, 99 }, { 6, 11, 336 }, { 8, 11, 552 }, - { 9, 11, 285 }, { 10, 11, 99 }, { 11, 11, 568 }, { 6, 0, 521 }, - { 5, 0, 339 }, { 14, 0, 3 }, { 15, 0, 41 }, { 15, 0, 166 }, - { 19, 0, 66 }, { 6, 11, 423 }, { 7, 11, 665 }, { 7, 11, 1210 }, - { 9, 11, 218 }, { 13, 11, 222 }, { 6, 0, 543 }, { 5, 10, 101 }, - { 5, 11, 256 }, { 6, 10, 88 }, { 7, 10, 1677 }, { 9, 10, 100 }, - { 10, 10, 677 }, { 14, 10, 169 }, { 14, 10, 302 }, { 14, 10, 313 }, - { 15, 10, 48 }, { 15, 10, 84 }, { 4, 10, 310 }, { 7, 10, 708 }, - { 7, 10, 996 }, { 9, 10, 795 }, { 10, 10, 390 }, { 10, 10, 733 }, - { 11, 10, 451 }, { 12, 10, 249 }, { 14, 10, 115 }, { 14, 10, 286 }, - { 15, 10, 100 }, { 5, 10, 587 }, { 13, 11, 417 }, { 14, 11, 129 }, - { 15, 11, 15 }, { 6, 0, 1358 }, { 8, 11, 554 }, { 4, 10, 498 }, - { 7, 10, 217 }, { 8, 10, 140 }, { 10, 10, 610 }, { 7, 11, 989 }, - { 7, 11, 634 }, { 6, 0, 155 }, { 12, 0, 234 }, { 7, 11, 462 }, - { 4, 11, 618 }, { 6, 0, 1628 }, { 4, 0, 766 }, { 4, 11, 339 }, - { 5, 10, 905 }, { 7, 11, 259 }, { 7, 0, 829 }, { 4, 11, 759 }, - { 13, 11, 169 }, { 7, 0, 1445 }, { 4, 10, 456 }, { 7, 10, 358 }, - { 7, 10, 1637 }, { 8, 10, 643 }, { 11, 10, 483 }, { 5, 0, 486 }, - { 7, 0, 1349 }, { 5, 11, 688 }, { 7, 11, 712 }, { 7, 0, 1635 }, - { 8, 0, 17 }, { 10, 0, 217 }, { 10, 0, 295 }, { 12, 0, 2 }, - { 12, 11, 2 }, { 10, 0, 558 }, { 22, 10, 56 }, { 4, 11, 278 }, - { 5, 11, 465 }, { 7, 11, 1367 }, { 8, 11, 482 }, { 5, 10, 535 }, - { 6, 0, 1362 }, { 6, 0, 1461 }, { 10, 11, 274 }, { 10, 11, 625 }, - { 11, 11, 530 }, { 5, 0, 599 }, { 5, 11, 336 }, { 6, 11, 341 }, - { 6, 11, 478 }, { 6, 11, 1763 }, { 8, 11, 386 }, { 7, 10, 1748 }, - { 9, 11, 151 }, { 6, 0, 1376 }, { 5, 10, 539 }, { 7, 11, 73 }, - { 7, 11, 1971 }, { 11, 11, 283 }, { 9, 0, 93 }, { 11, 0, 474 }, - { 6, 10, 91 }, { 7, 10, 435 }, { 6, 0, 447 }, { 5, 11, 396 }, - { 6, 11, 501 }, { 4, 10, 16 }, { 5, 10, 316 }, { 5, 10, 842 }, - { 6, 10, 370 }, { 6, 10, 1778 }, { 8, 10, 166 }, { 11, 10, 812 }, - { 12, 10, 206 }, { 12, 10, 351 }, { 14, 10, 418 }, { 16, 10, 15 }, - { 16, 10, 34 }, { 18, 10, 3 }, { 19, 10, 3 }, { 19, 10, 7 }, - { 20, 10, 4 }, { 21, 10, 21 }, { 7, 0, 577 }, { 7, 0, 1432 }, - { 9, 0, 475 }, { 9, 0, 505 }, { 9, 0, 526 }, { 9, 0, 609 }, - { 9, 0, 689 }, { 9, 0, 726 }, { 9, 0, 735 }, { 9, 0, 738 }, - { 10, 0, 556 }, { 10, 0, 674 }, { 10, 0, 684 }, { 11, 0, 89 }, - { 11, 0, 202 }, { 11, 0, 272 }, { 11, 0, 380 }, { 11, 0, 415 }, - { 11, 0, 505 }, { 11, 0, 537 }, { 11, 0, 550 }, { 11, 0, 562 }, - { 11, 0, 640 }, { 11, 0, 667 }, { 11, 0, 688 }, { 11, 0, 847 }, - { 11, 0, 927 }, { 11, 0, 930 }, { 11, 0, 940 }, { 12, 0, 144 }, - { 12, 0, 325 }, { 12, 0, 329 }, { 12, 0, 389 }, { 12, 0, 403 }, - { 12, 0, 451 }, { 12, 0, 515 }, { 12, 0, 604 }, { 12, 0, 616 }, - { 12, 0, 626 }, { 13, 0, 66 }, { 13, 0, 131 }, { 13, 0, 167 }, - { 13, 0, 236 }, { 13, 0, 368 }, { 13, 0, 411 }, { 13, 0, 434 }, - { 13, 0, 453 }, { 13, 0, 461 }, { 13, 0, 474 }, { 14, 0, 59 }, - { 14, 0, 60 }, { 14, 0, 139 }, { 14, 0, 152 }, { 14, 0, 276 }, - { 14, 0, 353 }, { 14, 0, 402 }, { 15, 0, 28 }, { 15, 0, 81 }, - { 15, 0, 123 }, { 15, 0, 152 }, { 18, 0, 136 }, { 20, 0, 88 }, - { 4, 11, 929 }, { 5, 11, 799 }, { 8, 11, 46 }, { 14, 0, 307 }, - { 4, 0, 609 }, { 7, 0, 756 }, { 9, 0, 544 }, { 11, 0, 413 }, - { 16, 0, 25 }, { 10, 0, 687 }, { 7, 10, 619 }, { 10, 10, 547 }, - { 11, 10, 122 }, { 12, 10, 601 }, { 4, 0, 930 }, { 5, 0, 947 }, - { 5, 0, 939 }, { 14, 0, 21 }, { 4, 11, 892 }, { 5, 11, 770 }, - { 5, 0, 962 }, { 5, 0, 651 }, { 8, 0, 170 }, { 9, 0, 61 }, - { 9, 0, 63 }, { 10, 0, 23 }, { 10, 0, 37 }, { 10, 0, 834 }, - { 11, 0, 4 }, { 11, 0, 187 }, { 11, 0, 281 }, { 11, 0, 503 }, - { 11, 0, 677 }, { 12, 0, 96 }, { 12, 0, 130 }, { 12, 0, 244 }, - { 14, 0, 5 }, { 14, 0, 40 }, { 14, 0, 162 }, { 14, 0, 202 }, - { 18, 0, 133 }, { 4, 0, 406 }, { 5, 0, 579 }, { 12, 0, 492 }, - { 22, 0, 15 }, { 7, 11, 158 }, { 7, 0, 597 }, { 4, 0, 981 }, - { 4, 10, 888 }, { 4, 10, 149 }, { 10, 10, 368 }, { 4, 0, 545 }, - { 4, 10, 154 }, { 7, 10, 1134 }, { 8, 10, 105 }, { 7, 11, 2001 }, - { 6, 0, 1558 }, { 4, 10, 31 }, { 6, 10, 429 }, { 7, 10, 962 }, - { 9, 10, 458 }, { 11, 10, 691 }, { 4, 10, 312 }, { 7, 10, 1642 }, - { 6, 0, 17 }, { 6, 0, 1304 }, { 7, 0, 16 }, { 7, 0, 1001 }, - { 9, 0, 886 }, { 10, 0, 489 }, { 10, 0, 800 }, { 11, 0, 782 }, - { 12, 0, 320 }, { 13, 0, 467 }, { 14, 0, 145 }, { 14, 0, 387 }, - { 15, 0, 119 }, { 7, 0, 1982 }, { 17, 0, 17 }, { 7, 11, 1461 }, - { 12, 11, 91 }, { 4, 10, 236 }, { 4, 11, 602 }, { 10, 0, 907 }, - { 8, 0, 110 }, { 7, 0, 272 }, { 19, 0, 53 }, { 5, 10, 836 }, - { 5, 10, 857 }, { 6, 10, 1680 }, { 5, 0, 458 }, { 7, 11, 1218 }, - { 8, 11, 303 }, { 7, 0, 1983 }, { 8, 0, 0 }, { 8, 0, 171 }, - { 9, 0, 120 }, { 9, 0, 732 }, { 10, 0, 473 }, { 11, 0, 656 }, - { 11, 0, 998 }, { 18, 0, 0 }, { 18, 0, 2 }, { 19, 0, 21 }, - { 10, 10, 68 }, { 11, 10, 494 }, { 9, 11, 662 }, { 4, 11, 13 }, - { 5, 11, 567 }, { 7, 11, 1498 }, { 9, 11, 124 }, { 11, 11, 521 }, - { 12, 11, 405 }, { 4, 10, 81 }, { 11, 10, 867 }, { 7, 11, 1006 }, - { 7, 11, 800 }, { 7, 11, 1783 }, { 10, 11, 12 }, { 9, 0, 295 }, - { 10, 0, 443 }, { 5, 10, 282 }, { 8, 10, 650 }, { 9, 10, 907 }, - { 4, 11, 735 }, { 4, 11, 170 }, { 4, 10, 775 }, { 7, 11, 323 }, - { 6, 0, 1844 }, { 10, 0, 924 }, { 11, 11, 844 }, { 12, 11, 104 }, - { 12, 11, 625 }, { 5, 11, 304 }, { 7, 11, 1403 }, { 12, 11, 498 }, - { 6, 0, 1232 }, { 4, 0, 519 }, { 10, 0, 70 }, { 12, 0, 26 }, - { 14, 0, 17 }, { 14, 0, 178 }, { 15, 0, 34 }, { 21, 0, 12 }, - { 4, 0, 993 }, { 4, 11, 148 }, { 5, 11, 742 }, { 6, 0, 31 }, - { 7, 0, 491 }, { 7, 0, 530 }, { 8, 0, 592 }, { 11, 0, 53 }, - { 11, 0, 779 }, { 12, 0, 167 }, { 12, 0, 411 }, { 14, 0, 14 }, - { 14, 0, 136 }, { 15, 0, 72 }, { 16, 0, 17 }, { 16, 0, 72 }, - { 5, 0, 907 }, { 6, 0, 733 }, { 5, 11, 111 }, { 4, 10, 71 }, - { 5, 10, 376 }, { 7, 10, 119 }, { 10, 10, 665 }, { 8, 0, 55 }, - { 8, 0, 430 }, { 8, 11, 430 }, { 4, 0, 208 }, { 5, 0, 106 }, - { 6, 0, 531 }, { 8, 0, 408 }, { 9, 0, 188 }, { 10, 0, 572 }, - { 12, 0, 56 }, { 11, 10, 827 }, { 14, 10, 34 }, { 15, 10, 148 }, - { 6, 0, 1693 }, { 5, 11, 444 }, { 4, 10, 479 }, { 12, 0, 441 }, - { 9, 0, 449 }, { 10, 0, 192 }, { 10, 0, 740 }, { 6, 0, 928 }, - { 4, 0, 241 }, { 7, 10, 607 }, { 8, 10, 99 }, { 8, 11, 123 }, - { 15, 11, 6 }, { 16, 11, 7 }, { 6, 11, 285 }, { 8, 11, 654 }, - { 11, 11, 749 }, { 12, 11, 190 }, { 12, 11, 327 }, { 13, 11, 120 }, - { 13, 11, 121 }, { 13, 11, 327 }, { 15, 11, 47 }, { 18, 11, 40 }, - { 4, 10, 41 }, { 5, 10, 74 }, { 7, 10, 1627 }, { 11, 10, 871 }, - { 12, 10, 619 }, { 7, 0, 1525 }, { 11, 10, 329 }, { 11, 10, 965 }, - { 12, 10, 241 }, { 14, 10, 354 }, { 15, 10, 22 }, { 20, 10, 63 }, - { 4, 0, 259 }, { 7, 11, 183 }, { 9, 10, 209 }, { 9, 10, 300 }, - { 5, 11, 937 }, { 7, 11, 100 }, { 5, 10, 98 }, { 4, 0, 173 }, - { 5, 0, 312 }, { 5, 0, 512 }, { 7, 0, 1285 }, { 13, 0, 185 }, - { 7, 0, 1603 }, { 7, 0, 1691 }, { 9, 0, 464 }, { 11, 0, 195 }, - { 12, 0, 279 }, { 12, 0, 448 }, { 14, 0, 11 }, { 19, 0, 102 }, - { 7, 0, 1113 }, { 5, 10, 984 }, { 4, 0, 452 }, { 5, 0, 583 }, - { 7, 0, 720 }, { 4, 0, 547 }, { 5, 0, 817 }, { 6, 0, 433 }, - { 7, 0, 593 }, { 7, 0, 1378 }, { 8, 0, 161 }, { 9, 0, 284 }, - { 10, 0, 313 }, { 11, 0, 886 }, { 8, 0, 722 }, { 4, 10, 182 }, - { 6, 10, 205 }, { 7, 10, 220 }, { 22, 0, 13 }, { 4, 10, 42 }, - { 9, 10, 205 }, { 9, 10, 786 }, { 10, 10, 659 }, { 6, 0, 289 }, - { 7, 0, 1670 }, { 12, 0, 57 }, { 23, 0, 4 }, { 4, 10, 635 }, - { 14, 0, 43 }, { 18, 0, 21 }, { 11, 10, 533 }, { 7, 0, 1694 }, - { 8, 0, 420 }, { 11, 0, 193 }, { 7, 0, 409 }, { 4, 10, 371 }, - { 4, 10, 272 }, { 7, 10, 836 }, { 5, 10, 825 }, { 6, 10, 1640 }, - { 5, 11, 251 }, { 5, 11, 956 }, { 8, 11, 268 }, { 9, 11, 214 }, - { 18, 11, 142 }, { 10, 0, 308 }, { 6, 0, 1863 }, { 13, 11, 37 }, - { 9, 10, 879 }, { 7, 10, 317 }, { 7, 10, 569 }, { 4, 11, 294 }, - { 6, 0, 790 }, { 5, 0, 1002 }, { 8, 0, 745 }, { 5, 11, 346 }, - { 5, 11, 711 }, { 8, 11, 390 }, { 7, 0, 289 }, { 5, 0, 504 }, - { 11, 0, 68 }, { 9, 10, 307 }, { 4, 0, 239 }, { 6, 0, 477 }, - { 7, 0, 1607 }, { 11, 0, 617 }, { 21, 0, 13 }, { 5, 0, 609 }, - { 5, 11, 624 }, { 5, 11, 783 }, { 7, 11, 1998 }, { 7, 11, 2047 }, - { 5, 10, 525 }, { 4, 0, 367 }, { 4, 11, 594 }, { 6, 0, 528 }, - { 5, 10, 493 }, { 4, 10, 174 }, { 7, 10, 911 }, { 8, 10, 417 }, - { 9, 10, 782 }, { 4, 0, 694 }, { 7, 0, 548 }, { 9, 0, 58 }, - { 4, 10, 32 }, { 5, 10, 215 }, { 6, 10, 269 }, { 7, 10, 1782 }, - { 7, 10, 1892 }, { 10, 10, 16 }, { 11, 10, 822 }, { 11, 10, 954 }, - { 13, 10, 481 }, { 12, 0, 687 }, { 7, 0, 1749 }, { 8, 10, 477 }, - { 4, 11, 569 }, { 5, 10, 308 }, { 7, 10, 1088 }, { 4, 0, 661 }, - { 10, 0, 1004 }, { 5, 11, 37 }, { 6, 11, 39 }, { 6, 11, 451 }, - { 7, 11, 218 }, { 7, 11, 667 }, { 7, 11, 1166 }, { 7, 11, 1687 }, - { 8, 11, 662 }, { 16, 11, 2 }, { 9, 0, 445 }, { 12, 0, 53 }, - { 13, 0, 492 }, { 5, 10, 126 }, { 8, 10, 297 }, { 9, 10, 366 }, - { 12, 10, 374 }, { 7, 10, 1551 }, { 11, 10, 361 }, { 20, 0, 74 }, - { 6, 11, 508 }, { 7, 0, 213 }, { 4, 10, 175 }, { 4, 10, 685 }, - { 6, 0, 760 }, { 6, 0, 834 }, { 6, 0, 1248 }, { 7, 11, 453 }, - { 7, 11, 635 }, { 7, 11, 796 }, { 8, 11, 331 }, { 9, 11, 328 }, - { 9, 11, 330 }, { 9, 11, 865 }, { 10, 11, 119 }, { 10, 11, 235 }, - { 11, 11, 111 }, { 11, 11, 129 }, { 11, 11, 240 }, { 12, 11, 31 }, - { 12, 11, 66 }, { 12, 11, 222 }, { 12, 11, 269 }, { 12, 11, 599 }, - { 12, 11, 689 }, { 13, 11, 186 }, { 13, 11, 364 }, { 14, 11, 345 }, - { 7, 0, 1672 }, { 11, 0, 189 }, { 5, 10, 797 }, { 5, 10, 565 }, - { 6, 0, 1548 }, { 6, 11, 98 }, { 7, 11, 585 }, { 7, 11, 702 }, - { 9, 0, 968 }, { 15, 0, 192 }, { 21, 0, 56 }, { 4, 10, 252 }, - { 6, 11, 37 }, { 7, 11, 299 }, { 7, 10, 1068 }, { 7, 11, 1666 }, - { 8, 11, 195 }, { 8, 11, 316 }, { 9, 11, 178 }, { 9, 11, 276 }, - { 9, 11, 339 }, { 9, 11, 536 }, { 10, 11, 102 }, { 10, 11, 362 }, - { 10, 10, 434 }, { 10, 11, 785 }, { 11, 11, 55 }, { 11, 11, 149 }, - { 11, 10, 228 }, { 11, 10, 426 }, { 11, 11, 773 }, { 13, 10, 231 }, - { 13, 11, 416 }, { 13, 11, 419 }, { 14, 11, 38 }, { 14, 11, 41 }, - { 14, 11, 210 }, { 18, 10, 106 }, { 20, 10, 87 }, { 4, 0, 751 }, - { 11, 0, 390 }, { 12, 0, 32 }, { 4, 0, 409 }, { 5, 0, 78 }, - { 11, 11, 458 }, { 12, 11, 15 }, { 12, 11, 432 }, { 7, 0, 1602 }, - { 10, 0, 257 }, { 10, 0, 698 }, { 11, 0, 544 }, { 11, 0, 585 }, - { 12, 0, 212 }, { 13, 0, 307 }, { 5, 10, 231 }, { 7, 10, 601 }, - { 9, 10, 277 }, { 9, 10, 674 }, { 10, 10, 178 }, { 10, 10, 418 }, - { 10, 10, 509 }, { 11, 10, 531 }, { 12, 10, 113 }, { 12, 10, 475 }, - { 13, 10, 99 }, { 14, 10, 428 }, { 6, 0, 473 }, { 17, 0, 105 }, - { 6, 0, 1949 }, { 15, 0, 156 }, { 5, 11, 645 }, { 7, 10, 1591 }, - { 16, 10, 43 }, { 7, 0, 1779 }, { 7, 10, 1683 }, { 4, 11, 290 }, - { 7, 11, 1356 }, { 6, 0, 763 }, { 6, 11, 70 }, { 7, 11, 1292 }, - { 10, 11, 762 }, { 11, 11, 288 }, { 14, 0, 29 }, { 12, 11, 428 }, - { 7, 0, 883 }, { 7, 11, 131 }, { 7, 11, 422 }, { 8, 11, 210 }, - { 12, 11, 573 }, { 6, 0, 488 }, { 4, 10, 399 }, { 5, 10, 119 }, - { 5, 10, 494 }, { 7, 10, 751 }, { 9, 10, 556 }, { 5, 0, 617 }, - { 4, 11, 936 }, { 11, 0, 50 }, { 7, 0, 1518 }, { 11, 0, 694 }, - { 9, 0, 785 }, { 4, 0, 546 }, { 7, 0, 2042 }, { 7, 11, 716 }, - { 13, 11, 97 }, { 13, 11, 251 }, { 4, 11, 653 }, { 17, 0, 22 }, - { 6, 0, 1016 }, { 4, 0, 313 }, { 5, 0, 577 }, { 8, 11, 657 }, - { 8, 0, 184 }, { 13, 0, 433 }, { 7, 0, 935 }, { 6, 0, 720 }, - { 9, 0, 114 }, { 18, 11, 80 }, { 12, 0, 186 }, { 12, 0, 292 }, - { 14, 0, 100 }, { 18, 0, 70 }, { 7, 10, 594 }, { 7, 10, 851 }, - { 7, 10, 1858 }, { 9, 10, 411 }, { 9, 10, 574 }, { 9, 10, 666 }, - { 9, 10, 737 }, { 10, 10, 346 }, { 10, 10, 712 }, { 11, 10, 246 }, - { 11, 10, 432 }, { 11, 10, 517 }, { 11, 10, 647 }, { 11, 10, 679 }, - { 11, 10, 727 }, { 12, 10, 304 }, { 12, 10, 305 }, { 12, 10, 323 }, - { 12, 10, 483 }, { 12, 10, 572 }, { 12, 10, 593 }, { 12, 10, 602 }, - { 13, 10, 95 }, { 13, 10, 101 }, { 13, 10, 171 }, { 13, 10, 315 }, - { 13, 10, 378 }, { 13, 10, 425 }, { 13, 10, 475 }, { 14, 10, 63 }, - { 14, 10, 380 }, { 14, 10, 384 }, { 15, 10, 133 }, { 18, 10, 112 }, - { 20, 10, 72 }, { 7, 10, 1093 }, { 7, 11, 1836 }, { 4, 10, 679 }, - { 9, 10, 203 }, { 11, 0, 402 }, { 12, 0, 109 }, { 12, 0, 431 }, - { 13, 0, 179 }, { 13, 0, 206 }, { 14, 0, 217 }, { 16, 0, 3 }, - { 20, 0, 53 }, { 7, 11, 1368 }, { 8, 11, 232 }, { 8, 11, 361 }, - { 10, 11, 682 }, { 10, 11, 742 }, { 9, 10, 714 }, { 5, 0, 886 }, - { 6, 0, 46 }, { 6, 0, 1790 }, { 7, 0, 14 }, { 7, 0, 732 }, - { 7, 0, 1654 }, { 8, 0, 95 }, { 8, 0, 327 }, { 8, 0, 616 }, - { 9, 0, 892 }, { 10, 0, 598 }, { 10, 0, 769 }, { 11, 0, 134 }, - { 11, 0, 747 }, { 12, 0, 378 }, { 14, 0, 97 }, { 9, 11, 534 }, - { 4, 0, 969 }, { 8, 10, 825 }, { 9, 11, 27 }, { 6, 0, 727 }, - { 14, 11, 12 }, { 5, 0, 1021 }, { 6, 0, 1190 }, { 6, 11, 1657 }, - { 5, 10, 143 }, { 5, 10, 769 }, { 6, 10, 1760 }, { 7, 10, 682 }, - { 7, 10, 1992 }, { 8, 10, 736 }, { 4, 0, 153 }, { 7, 11, 127 }, - { 5, 0, 798 }, { 4, 0, 587 }, { 6, 0, 598 }, { 7, 0, 42 }, - { 8, 0, 695 }, { 10, 0, 212 }, { 11, 0, 158 }, { 14, 0, 196 }, - { 17, 0, 85 }, { 5, 10, 860 }, { 6, 0, 1929 }, { 6, 0, 1933 }, - { 5, 0, 957 }, { 5, 0, 1008 }, { 9, 0, 577 }, { 12, 0, 141 }, - { 6, 10, 422 }, { 7, 10, 0 }, { 7, 10, 1544 }, { 8, 11, 364 }, - { 11, 10, 990 }, { 12, 10, 453 }, { 13, 10, 47 }, { 13, 10, 266 }, - { 6, 0, 1319 }, { 4, 0, 129 }, { 7, 0, 465 }, { 7, 0, 470 }, - { 7, 0, 1057 }, { 7, 0, 1201 }, { 9, 0, 755 }, { 11, 0, 906 }, - { 12, 0, 527 }, { 7, 0, 908 }, { 18, 0, 7 }, { 5, 0, 148 }, - { 8, 0, 450 }, { 5, 10, 515 }, { 9, 10, 131 }, { 7, 10, 1605 }, - { 11, 10, 962 }, { 18, 10, 139 }, { 4, 10, 646 }, { 6, 0, 1166 }, - { 4, 10, 396 }, { 7, 10, 728 }, { 9, 10, 117 }, { 13, 10, 202 }, - { 20, 10, 51 }, { 6, 10, 121 }, { 6, 10, 124 }, { 6, 10, 357 }, - { 7, 10, 1138 }, { 7, 10, 1295 }, { 8, 10, 162 }, { 11, 10, 655 }, - { 14, 0, 374 }, { 14, 11, 374 }, { 10, 0, 253 }, { 11, 0, 1003 }, - { 5, 11, 909 }, { 9, 11, 849 }, { 10, 11, 805 }, { 5, 10, 237 }, - { 7, 11, 525 }, { 7, 11, 1579 }, { 8, 11, 497 }, { 8, 11, 573 }, - { 9, 0, 46 }, { 4, 0, 879 }, { 6, 0, 806 }, { 7, 0, 1868 }, - { 6, 0, 1837 }, { 6, 0, 1846 }, { 6, 0, 730 }, { 6, 0, 881 }, - { 7, 0, 965 }, { 7, 0, 1460 }, { 7, 0, 1604 }, { 7, 11, 193 }, - { 7, 11, 397 }, { 7, 11, 1105 }, { 8, 11, 124 }, { 8, 11, 619 }, - { 9, 11, 305 }, { 10, 11, 264 }, { 11, 11, 40 }, { 12, 11, 349 }, - { 13, 11, 134 }, { 13, 11, 295 }, { 14, 11, 155 }, { 15, 11, 120 }, - { 18, 11, 105 }, { 8, 0, 506 }, { 15, 0, 10 }, { 4, 11, 262 }, - { 7, 11, 342 }, { 7, 10, 571 }, { 7, 10, 1877 }, { 10, 10, 366 }, - { 13, 11, 23 }, { 5, 11, 641 }, { 10, 0, 22 }, { 9, 10, 513 }, - { 10, 10, 39 }, { 12, 10, 122 }, { 12, 10, 187 }, { 7, 11, 1431 }, - { 22, 11, 49 }, { 4, 11, 99 }, { 6, 11, 250 }, { 6, 11, 346 }, - { 8, 11, 127 }, { 10, 11, 81 }, { 6, 0, 2014 }, { 8, 0, 928 }, - { 10, 0, 960 }, { 10, 0, 979 }, { 12, 0, 996 }, { 6, 0, 296 }, - { 4, 11, 915 }, { 5, 11, 75 }, { 9, 11, 517 }, { 10, 11, 470 }, - { 12, 11, 155 }, { 13, 11, 224 }, { 9, 10, 873 }, { 4, 0, 854 }, - { 12, 11, 18 }, { 6, 0, 587 }, { 7, 10, 107 }, { 7, 10, 838 }, - { 8, 10, 550 }, { 10, 10, 401 }, { 11, 0, 636 }, { 15, 0, 145 }, - { 17, 0, 34 }, { 19, 0, 50 }, { 23, 0, 20 }, { 11, 10, 588 }, - { 11, 10, 864 }, { 11, 10, 968 }, { 15, 10, 160 }, { 7, 11, 216 }, - { 7, 0, 982 }, { 10, 0, 32 }, { 15, 0, 56 }, { 5, 10, 768 }, - { 5, 11, 954 }, { 6, 11, 304 }, { 7, 11, 1114 }, { 8, 11, 418 }, - { 10, 11, 345 }, { 11, 11, 341 }, { 11, 11, 675 }, { 13, 11, 40 }, - { 9, 11, 410 }, { 11, 11, 425 }, { 8, 0, 941 }, { 5, 0, 435 }, - { 4, 10, 894 }, { 5, 0, 85 }, { 6, 0, 419 }, { 7, 0, 134 }, - { 7, 0, 305 }, { 7, 0, 361 }, { 7, 0, 1337 }, { 8, 0, 71 }, - { 12, 0, 519 }, { 12, 0, 688 }, { 7, 0, 740 }, { 5, 0, 691 }, - { 7, 0, 345 }, { 9, 0, 94 }, { 12, 0, 169 }, { 5, 0, 183 }, - { 6, 0, 582 }, { 10, 0, 679 }, { 12, 0, 435 }, { 6, 11, 14 }, - { 6, 0, 945 }, { 7, 0, 511 }, { 6, 11, 1708 }, { 5, 11, 113 }, - { 6, 11, 243 }, { 7, 11, 1865 }, { 11, 11, 161 }, { 16, 11, 37 }, - { 17, 11, 99 }, { 4, 11, 274 }, { 9, 0, 539 }, { 7, 0, 1993 }, - { 8, 0, 684 }, { 6, 10, 272 }, { 6, 0, 659 }, { 6, 0, 982 }, - { 4, 10, 9 }, { 5, 10, 128 }, { 7, 10, 368 }, { 11, 10, 480 }, - { 20, 10, 3 }, { 6, 0, 583 }, { 4, 0, 803 }, { 5, 0, 704 }, - { 4, 0, 179 }, { 5, 0, 198 }, { 5, 0, 697 }, { 7, 0, 347 }, - { 7, 0, 971 }, { 8, 0, 181 }, { 10, 0, 711 }, { 7, 11, 166 }, - { 8, 10, 682 }, { 4, 10, 2 }, { 7, 10, 545 }, { 7, 10, 894 }, - { 8, 11, 521 }, { 7, 0, 481 }, { 4, 0, 243 }, { 5, 0, 203 }, - { 7, 0, 19 }, { 7, 0, 71 }, { 7, 0, 113 }, { 10, 0, 405 }, - { 11, 0, 357 }, { 14, 0, 240 }, { 5, 11, 725 }, { 5, 11, 727 }, - { 7, 11, 1811 }, { 6, 0, 826 }, { 9, 11, 304 }, { 7, 0, 1450 }, - { 11, 0, 99 }, { 5, 11, 654 }, { 6, 0, 492 }, { 5, 0, 134 }, - { 6, 0, 408 }, { 6, 0, 495 }, { 7, 0, 1593 }, { 6, 11, 273 }, - { 10, 11, 188 }, { 13, 11, 377 }, { 18, 11, 77 }, { 9, 10, 769 }, - { 12, 10, 185 }, { 7, 11, 410 }, { 14, 0, 4 }, { 4, 0, 665 }, - { 6, 11, 1785 }, { 4, 0, 248 }, { 7, 0, 137 }, { 9, 0, 349 }, - { 5, 10, 530 }, { 14, 10, 113 }, { 7, 0, 1270 }, { 11, 0, 612 }, - { 4, 11, 780 }, { 5, 0, 371 }, { 7, 0, 563 }, { 7, 0, 826 }, - { 6, 0, 1535 }, { 23, 0, 21 }, { 23, 0, 23 }, { 4, 0, 374 }, - { 7, 0, 547 }, { 7, 0, 1700 }, { 7, 0, 1833 }, { 11, 0, 858 }, - { 5, 10, 556 }, { 7, 11, 612 }, { 8, 11, 545 }, { 8, 11, 568 }, - { 8, 11, 642 }, { 9, 11, 717 }, { 10, 11, 541 }, { 10, 11, 763 }, - { 11, 11, 449 }, { 12, 11, 489 }, { 13, 11, 153 }, { 13, 11, 296 }, - { 14, 11, 138 }, { 14, 11, 392 }, { 15, 11, 50 }, { 16, 11, 6 }, - { 16, 11, 12 }, { 20, 11, 9 }, { 9, 0, 311 }, { 13, 0, 42 }, - { 8, 10, 16 }, { 12, 10, 568 }, { 6, 0, 1968 }, { 6, 0, 2027 }, - { 10, 0, 991 }, { 6, 0, 1647 }, { 7, 0, 1552 }, { 7, 0, 2010 }, - { 9, 0, 494 }, { 9, 0, 509 }, { 5, 11, 948 }, { 6, 10, 186 }, - { 9, 10, 426 }, { 6, 0, 769 }, { 6, 0, 642 }, { 4, 10, 585 }, - { 6, 0, 123 }, { 7, 0, 214 }, { 9, 0, 728 }, { 10, 0, 157 }, - { 11, 0, 346 }, { 11, 0, 662 }, { 15, 0, 106 }, { 14, 11, 381 }, - { 7, 0, 1435 }, { 4, 11, 532 }, { 5, 11, 706 }, { 7, 11, 662 }, - { 5, 11, 837 }, { 6, 11, 1651 }, { 4, 10, 93 }, { 5, 10, 252 }, - { 6, 10, 229 }, { 7, 10, 291 }, { 9, 10, 550 }, { 11, 10, 644 }, - { 20, 0, 79 }, { 9, 10, 749 }, { 6, 0, 1425 }, { 9, 10, 162 }, - { 4, 11, 362 }, { 7, 11, 52 }, { 7, 11, 303 }, { 12, 11, 166 }, - { 4, 10, 381 }, { 4, 11, 330 }, { 7, 11, 933 }, { 7, 11, 2012 }, - { 8, 11, 292 }, { 7, 11, 767 }, { 4, 0, 707 }, { 5, 0, 588 }, - { 6, 0, 393 }, { 13, 0, 106 }, { 18, 0, 49 }, { 19, 0, 41 }, - { 6, 0, 211 }, { 7, 0, 1690 }, { 11, 0, 486 }, { 12, 0, 369 }, - { 9, 11, 883 }, { 4, 11, 703 }, { 7, 11, 207 }, { 4, 0, 187 }, - { 5, 0, 184 }, { 5, 0, 690 }, { 7, 0, 1869 }, { 10, 0, 756 }, - { 11, 0, 783 }, { 4, 11, 571 }, { 6, 0, 1382 }, { 5, 0, 175 }, - { 6, 10, 77 }, { 6, 10, 157 }, { 7, 10, 974 }, { 7, 10, 1301 }, - { 7, 10, 1339 }, { 7, 10, 1490 }, { 7, 10, 1873 }, { 9, 10, 628 }, - { 6, 0, 1493 }, { 5, 11, 873 }, { 5, 11, 960 }, { 6, 0, 1007 }, - { 12, 11, 93 }, { 12, 11, 501 }, { 13, 11, 362 }, { 14, 11, 151 }, - { 15, 11, 40 }, { 15, 11, 59 }, { 16, 11, 46 }, { 17, 11, 25 }, - { 18, 11, 14 }, { 18, 11, 134 }, { 19, 11, 25 }, { 19, 11, 69 }, - { 20, 11, 16 }, { 20, 11, 19 }, { 20, 11, 66 }, { 21, 11, 23 }, - { 21, 11, 25 }, { 22, 11, 42 }, { 11, 10, 919 }, { 13, 10, 409 }, - { 6, 0, 219 }, { 5, 0, 582 }, { 6, 0, 1646 }, { 7, 0, 99 }, - { 7, 0, 1962 }, { 7, 0, 1986 }, { 8, 0, 515 }, { 8, 0, 773 }, - { 9, 0, 23 }, { 9, 0, 491 }, { 12, 0, 620 }, { 14, 0, 93 }, - { 5, 0, 851 }, { 5, 11, 33 }, { 6, 11, 470 }, { 7, 11, 1291 }, - { 6, 0, 1278 }, { 7, 11, 1882 }, { 7, 10, 1489 }, { 4, 0, 1000 }, - { 10, 0, 982 }, { 8, 0, 762 }, { 8, 0, 812 }, { 9, 0, 910 }, - { 6, 11, 47 }, { 7, 11, 90 }, { 7, 11, 664 }, { 7, 11, 830 }, - { 7, 11, 1380 }, { 7, 11, 2025 }, { 8, 11, 448 }, { 8, 11, 828 }, - { 4, 0, 98 }, { 4, 0, 940 }, { 6, 0, 1819 }, { 6, 0, 1834 }, - { 6, 0, 1841 }, { 7, 0, 1365 }, { 8, 0, 859 }, { 8, 0, 897 }, - { 8, 0, 918 }, { 9, 0, 422 }, { 9, 0, 670 }, { 10, 0, 775 }, - { 10, 0, 894 }, { 10, 0, 909 }, { 10, 0, 910 }, { 10, 0, 935 }, - { 11, 0, 210 }, { 12, 0, 750 }, { 12, 0, 755 }, { 13, 0, 26 }, - { 13, 0, 457 }, { 13, 0, 476 }, { 16, 0, 100 }, { 16, 0, 109 }, - { 18, 0, 173 }, { 18, 0, 175 }, { 8, 10, 398 }, { 9, 10, 681 }, - { 11, 10, 632 }, { 9, 11, 417 }, { 9, 11, 493 }, { 8, 10, 645 }, - { 10, 0, 906 }, { 6, 0, 1730 }, { 6, 10, 20 }, { 5, 11, 1019 }, - { 6, 0, 1185 }, { 10, 0, 40 }, { 8, 10, 769 }, { 9, 0, 147 }, - { 6, 11, 208 }, { 12, 0, 650 }, { 5, 0, 209 }, { 6, 0, 30 }, - { 11, 0, 56 }, { 11, 0, 305 }, { 4, 0, 553 }, { 10, 11, 344 }, - { 6, 11, 68 }, { 7, 11, 398 }, { 7, 11, 448 }, { 7, 11, 1629 }, - { 7, 11, 1813 }, { 8, 11, 387 }, { 8, 11, 442 }, { 9, 11, 710 }, - { 10, 11, 282 }, { 10, 11, 722 }, { 5, 0, 597 }, { 14, 0, 20 }, - { 14, 11, 20 }, { 7, 0, 1614 }, { 7, 10, 1757 }, { 4, 0, 150 }, - { 5, 0, 303 }, { 6, 0, 327 }, { 7, 10, 937 }, { 16, 0, 49 }, - { 7, 10, 1652 }, { 16, 11, 49 }, { 8, 0, 192 }, { 10, 0, 78 }, - { 13, 0, 359 }, { 7, 0, 786 }, { 15, 0, 134 }, { 6, 0, 1638 }, - { 7, 0, 79 }, { 7, 0, 496 }, { 9, 0, 138 }, { 10, 0, 336 }, - { 11, 0, 12 }, { 12, 0, 412 }, { 12, 0, 440 }, { 14, 0, 305 }, - { 8, 11, 491 }, { 4, 10, 579 }, { 5, 10, 226 }, { 5, 10, 323 }, - { 7, 10, 960 }, { 7, 0, 204 }, { 7, 0, 415 }, { 8, 0, 42 }, - { 10, 0, 85 }, { 11, 0, 564 }, { 4, 0, 614 }, { 4, 11, 403 }, - { 5, 11, 441 }, { 7, 11, 450 }, { 11, 11, 101 }, { 12, 11, 193 }, - { 13, 11, 430 }, { 7, 11, 1927 }, { 7, 11, 1330 }, { 4, 0, 3 }, - { 5, 0, 247 }, { 5, 0, 644 }, { 7, 0, 744 }, { 7, 0, 1207 }, - { 7, 0, 1225 }, { 7, 0, 1909 }, { 18, 0, 147 }, { 8, 0, 942 }, - { 4, 0, 1019 }, { 6, 0, 2023 }, { 5, 11, 679 }, { 5, 10, 973 }, - { 5, 0, 285 }, { 9, 0, 67 }, { 13, 0, 473 }, { 15, 0, 82 }, - { 7, 11, 328 }, { 9, 11, 326 }, { 23, 0, 8 }, { 6, 10, 135 }, - { 7, 10, 1176 }, { 7, 11, 1128 }, { 6, 0, 1309 }, { 7, 11, 1796 }, - { 7, 10, 314 }, { 4, 11, 574 }, { 7, 11, 350 }, { 7, 11, 1024 }, - { 8, 11, 338 }, { 9, 11, 677 }, { 10, 11, 808 }, { 11, 11, 508 }, - { 7, 11, 818 }, { 17, 11, 14 }, { 17, 11, 45 }, { 18, 11, 75 }, - { 20, 11, 18 }, { 18, 10, 4 }, { 7, 11, 1081 }, { 4, 0, 29 }, - { 6, 0, 532 }, { 7, 0, 1628 }, { 7, 0, 1648 }, { 9, 0, 350 }, - { 10, 0, 433 }, { 11, 0, 97 }, { 11, 0, 557 }, { 11, 0, 745 }, - { 12, 0, 289 }, { 12, 0, 335 }, { 12, 0, 348 }, { 12, 0, 606 }, - { 13, 0, 116 }, { 13, 0, 233 }, { 13, 0, 466 }, { 14, 0, 181 }, - { 14, 0, 209 }, { 14, 0, 232 }, { 14, 0, 236 }, { 14, 0, 300 }, - { 16, 0, 41 }, { 20, 0, 97 }, { 7, 0, 318 }, { 6, 10, 281 }, - { 8, 10, 282 }, { 8, 10, 480 }, { 8, 10, 499 }, { 9, 10, 198 }, - { 10, 10, 143 }, { 10, 10, 169 }, { 10, 10, 211 }, { 10, 10, 417 }, - { 10, 10, 574 }, { 11, 10, 147 }, { 11, 10, 395 }, { 12, 10, 75 }, - { 12, 10, 407 }, { 12, 10, 608 }, { 13, 10, 500 }, { 14, 10, 251 }, - { 7, 11, 1676 }, { 7, 11, 2037 }, { 7, 0, 1692 }, { 5, 0, 501 }, - { 7, 0, 1704 }, { 9, 0, 553 }, { 11, 0, 520 }, { 12, 0, 557 }, - { 13, 0, 249 }, { 6, 0, 1527 }, { 14, 0, 324 }, { 15, 0, 55 }, - { 15, 0, 80 }, { 14, 11, 324 }, { 15, 11, 55 }, { 15, 11, 80 }, - { 7, 10, 1776 }, { 8, 0, 988 }, { 9, 11, 297 }, { 4, 10, 419 }, - { 14, 0, 223 }, { 11, 11, 234 }, { 7, 0, 1123 }, { 12, 0, 508 }, - { 14, 0, 102 }, { 14, 0, 226 }, { 16, 0, 57 }, { 4, 10, 138 }, - { 7, 10, 1012 }, { 7, 10, 1280 }, { 9, 10, 76 }, { 7, 0, 1764 }, - { 5, 10, 29 }, { 12, 10, 638 }, { 6, 0, 2015 }, { 6, 0, 1599 }, - { 10, 11, 56 }, { 6, 11, 306 }, { 7, 11, 1140 }, { 7, 11, 1340 }, - { 8, 11, 133 }, { 10, 11, 449 }, { 11, 11, 1011 }, { 6, 10, 1710 }, - { 7, 10, 2038 }, { 7, 11, 1763 }, { 12, 11, 310 }, { 6, 0, 129 }, - { 4, 10, 17 }, { 5, 10, 23 }, { 7, 10, 995 }, { 11, 10, 383 }, - { 11, 10, 437 }, { 12, 10, 460 }, { 12, 10, 532 }, { 5, 11, 329 }, - { 8, 11, 260 }, { 5, 10, 862 }, { 4, 0, 534 }, { 6, 0, 811 }, - { 7, 0, 626 }, { 4, 11, 657 }, { 4, 0, 25 }, { 5, 0, 60 }, - { 6, 0, 504 }, { 7, 0, 614 }, { 7, 0, 1155 }, { 12, 0, 0 }, - { 24, 11, 7 }, { 7, 0, 1248 }, { 11, 0, 621 }, { 11, 0, 702 }, - { 9, 0, 321 }, { 8, 10, 70 }, { 12, 10, 171 }, { 13, 10, 272 }, - { 10, 10, 233 }, { 11, 10, 76 }, { 4, 0, 379 }, { 7, 0, 1397 }, - { 6, 10, 442 }, { 5, 11, 66 }, { 7, 11, 1896 }, { 8, 11, 288 }, - { 6, 11, 1643 }, { 6, 10, 1709 }, { 4, 11, 21 }, { 5, 11, 91 }, - { 5, 11, 570 }, { 5, 11, 648 }, { 5, 11, 750 }, { 5, 11, 781 }, - { 6, 11, 54 }, { 6, 11, 112 }, { 6, 11, 402 }, { 6, 11, 1732 }, - { 7, 11, 315 }, { 7, 11, 749 }, { 7, 11, 1347 }, { 7, 11, 1900 }, - { 9, 11, 78 }, { 9, 11, 508 }, { 10, 11, 611 }, { 11, 11, 510 }, - { 11, 11, 728 }, { 13, 11, 36 }, { 14, 11, 39 }, { 16, 11, 83 }, - { 17, 11, 124 }, { 20, 11, 30 }, { 4, 0, 118 }, { 6, 0, 274 }, - { 6, 0, 361 }, { 7, 0, 75 }, { 13, 0, 441 }, { 10, 11, 322 }, - { 10, 11, 719 }, { 11, 11, 407 }, { 19, 10, 119 }, { 12, 11, 549 }, - { 14, 11, 67 }, { 19, 11, 60 }, { 11, 10, 69 }, { 12, 10, 105 }, - { 12, 10, 117 }, { 13, 10, 213 }, { 14, 10, 13 }, { 14, 10, 62 }, - { 14, 10, 177 }, { 14, 10, 421 }, { 15, 10, 19 }, { 18, 10, 141 }, - { 9, 0, 841 }, { 9, 10, 309 }, { 7, 10, 608 }, { 7, 10, 976 }, - { 8, 11, 125 }, { 8, 11, 369 }, { 8, 11, 524 }, { 9, 10, 146 }, - { 10, 10, 206 }, { 10, 11, 486 }, { 10, 10, 596 }, { 11, 11, 13 }, - { 11, 11, 381 }, { 11, 11, 736 }, { 11, 11, 766 }, { 11, 11, 845 }, - { 13, 11, 114 }, { 13, 10, 218 }, { 13, 11, 292 }, { 14, 11, 47 }, - { 14, 10, 153 }, { 12, 0, 693 }, { 7, 11, 759 }, { 5, 0, 314 }, - { 6, 0, 221 }, { 7, 0, 419 }, { 10, 0, 650 }, { 11, 0, 396 }, - { 12, 0, 156 }, { 13, 0, 369 }, { 14, 0, 333 }, { 17, 0, 47 }, - { 6, 11, 1684 }, { 6, 11, 1731 }, { 7, 11, 356 }, { 7, 11, 1932 }, - { 8, 11, 54 }, { 8, 11, 221 }, { 9, 11, 225 }, { 9, 11, 356 }, - { 10, 11, 77 }, { 10, 11, 446 }, { 10, 11, 731 }, { 12, 11, 404 }, - { 13, 11, 491 }, { 4, 11, 375 }, { 4, 10, 518 }, { 7, 10, 1136 }, - { 4, 0, 913 }, { 4, 11, 411 }, { 11, 11, 643 }, { 12, 11, 115 }, - { 4, 11, 80 }, { 5, 11, 44 }, { 8, 10, 689 }, { 9, 10, 863 }, - { 10, 0, 880 }, { 4, 10, 18 }, { 7, 10, 145 }, { 7, 10, 444 }, - { 7, 10, 1278 }, { 8, 10, 49 }, { 8, 10, 400 }, { 9, 10, 71 }, - { 9, 10, 250 }, { 10, 10, 459 }, { 12, 10, 160 }, { 16, 10, 24 }, - { 8, 0, 475 }, { 5, 0, 1016 }, { 5, 11, 299 }, { 7, 11, 1083 }, - { 7, 0, 602 }, { 8, 0, 179 }, { 10, 0, 781 }, { 12, 0, 126 }, - { 6, 0, 329 }, { 10, 0, 111 }, { 7, 0, 1864 }, { 4, 11, 219 }, - { 7, 11, 1761 }, { 9, 11, 86 }, { 6, 0, 1888 }, { 6, 0, 1892 }, - { 6, 0, 1901 }, { 6, 0, 1904 }, { 9, 0, 953 }, { 9, 0, 985 }, - { 9, 0, 991 }, { 9, 0, 1001 }, { 12, 0, 818 }, { 12, 0, 846 }, - { 12, 0, 847 }, { 12, 0, 861 }, { 12, 0, 862 }, { 12, 0, 873 }, - { 12, 0, 875 }, { 12, 0, 877 }, { 12, 0, 879 }, { 12, 0, 881 }, - { 12, 0, 884 }, { 12, 0, 903 }, { 12, 0, 915 }, { 12, 0, 926 }, - { 12, 0, 939 }, { 15, 0, 182 }, { 15, 0, 219 }, { 15, 0, 255 }, - { 18, 0, 191 }, { 18, 0, 209 }, { 18, 0, 211 }, { 21, 0, 41 }, - { 5, 11, 328 }, { 7, 11, 918 }, { 9, 0, 780 }, { 12, 0, 82 }, - { 15, 0, 36 }, { 5, 10, 1010 }, { 5, 0, 821 }, { 6, 0, 1687 }, - { 5, 11, 514 }, { 4, 0, 956 }, { 6, 0, 1180 }, { 10, 0, 112 }, - { 5, 10, 87 }, { 7, 10, 313 }, { 7, 10, 1103 }, { 10, 10, 582 }, - { 11, 10, 389 }, { 11, 10, 813 }, { 12, 10, 385 }, { 13, 10, 286 }, - { 14, 10, 124 }, { 18, 10, 108 }, { 5, 0, 71 }, { 7, 0, 1407 }, - { 9, 0, 704 }, { 10, 0, 261 }, { 10, 0, 619 }, { 11, 0, 547 }, - { 11, 0, 619 }, { 15, 0, 157 }, { 4, 0, 531 }, { 5, 0, 455 }, - { 5, 11, 301 }, { 6, 11, 571 }, { 14, 11, 49 }, { 18, 11, 102 }, - { 4, 10, 267 }, { 6, 0, 385 }, { 7, 0, 2008 }, { 9, 0, 337 }, - { 10, 0, 517 }, { 5, 11, 726 }, { 5, 11, 364 }, { 4, 11, 76 }, - { 7, 11, 1550 }, { 9, 11, 306 }, { 9, 11, 430 }, { 9, 11, 663 }, - { 10, 11, 683 }, { 11, 11, 427 }, { 11, 11, 753 }, { 12, 11, 334 }, - { 12, 11, 442 }, { 14, 11, 258 }, { 14, 11, 366 }, { 15, 11, 131 }, - { 6, 0, 1865 }, { 6, 0, 1879 }, { 6, 0, 1881 }, { 6, 0, 1894 }, - { 6, 0, 1908 }, { 9, 0, 915 }, { 9, 0, 926 }, { 9, 0, 940 }, - { 9, 0, 943 }, { 9, 0, 966 }, { 9, 0, 980 }, { 9, 0, 989 }, - { 9, 0, 1005 }, { 9, 0, 1010 }, { 12, 0, 813 }, { 12, 0, 817 }, - { 12, 0, 840 }, { 12, 0, 843 }, { 12, 0, 855 }, { 12, 0, 864 }, - { 12, 0, 871 }, { 12, 0, 872 }, { 12, 0, 899 }, { 12, 0, 905 }, - { 12, 0, 924 }, { 15, 0, 171 }, { 15, 0, 181 }, { 15, 0, 224 }, - { 15, 0, 235 }, { 15, 0, 251 }, { 18, 0, 184 }, { 9, 11, 52 }, - { 5, 0, 16 }, { 6, 0, 86 }, { 6, 0, 603 }, { 7, 0, 292 }, - { 7, 0, 561 }, { 8, 0, 257 }, { 8, 0, 382 }, { 9, 0, 721 }, - { 9, 0, 778 }, { 11, 0, 581 }, { 12, 0, 466 }, { 4, 0, 486 }, - { 5, 0, 491 }, { 7, 10, 1121 }, { 4, 0, 72 }, { 6, 0, 265 }, - { 7, 0, 1300 }, { 7, 11, 1183 }, { 10, 10, 249 }, { 11, 10, 209 }, - { 4, 10, 561 }, { 9, 11, 519 }, { 4, 11, 656 }, { 4, 10, 760 }, - { 7, 11, 779 }, { 9, 10, 154 }, { 12, 10, 485 }, { 7, 11, 1793 }, - { 7, 11, 144 }, { 8, 10, 255 }, { 5, 0, 621 }, { 4, 10, 368 }, - { 7, 10, 641 }, { 7, 11, 1373 }, { 7, 11, 554 }, { 7, 11, 605 }, - { 13, 11, 10 }, { 9, 0, 234 }, { 5, 0, 815 }, { 6, 0, 1688 }, - { 6, 0, 1755 }, { 5, 11, 838 }, { 5, 11, 841 }, { 6, 11, 1649 }, - { 7, 0, 1987 }, { 7, 0, 2040 }, { 8, 0, 743 }, { 5, 11, 1012 }, - { 6, 0, 197 }, { 8, 0, 205 }, { 6, 0, 314 }, { 6, 11, 314 }, - { 16, 11, 53 }, { 6, 11, 251 }, { 7, 11, 365 }, { 7, 11, 1357 }, - { 7, 11, 1497 }, { 8, 11, 154 }, { 13, 11, 281 }, { 5, 11, 340 }, - { 6, 0, 452 }, { 7, 0, 312 }, { 10, 0, 219 }, { 10, 0, 589 }, - { 4, 0, 333 }, { 9, 0, 176 }, { 12, 0, 353 }, { 13, 0, 187 }, - { 9, 10, 92 }, { 19, 10, 91 }, { 6, 0, 1110 }, { 11, 0, 47 }, - { 11, 11, 495 }, { 6, 10, 525 }, { 8, 10, 806 }, { 9, 10, 876 }, - { 12, 10, 284 }, { 8, 11, 261 }, { 9, 11, 144 }, { 9, 11, 466 }, - { 10, 11, 370 }, { 12, 11, 470 }, { 13, 11, 144 }, { 14, 11, 348 }, - { 9, 11, 897 }, { 8, 0, 863 }, { 8, 0, 864 }, { 8, 0, 868 }, - { 8, 0, 884 }, { 10, 0, 866 }, { 10, 0, 868 }, { 10, 0, 873 }, - { 10, 0, 911 }, { 10, 0, 912 }, { 10, 0, 944 }, { 12, 0, 727 }, - { 6, 11, 248 }, { 9, 11, 546 }, { 10, 11, 535 }, { 11, 11, 681 }, - { 13, 11, 135 }, { 6, 0, 300 }, { 7, 0, 1515 }, { 6, 0, 1237 }, - { 11, 10, 958 }, { 5, 10, 594 }, { 12, 11, 250 }, { 6, 0, 1685 }, - { 6, 11, 567 }, { 7, 0, 135 }, { 8, 0, 7 }, { 8, 0, 62 }, - { 9, 0, 243 }, { 10, 0, 658 }, { 10, 0, 697 }, { 11, 0, 456 }, - { 11, 0, 756 }, { 9, 0, 395 }, { 10, 0, 79 }, { 6, 10, 1641 }, - { 8, 10, 820 }, { 4, 10, 302 }, { 7, 10, 1766 }, { 6, 11, 174 }, - { 7, 10, 1313 }, { 7, 0, 631 }, { 6, 10, 1674 }, { 6, 11, 395 }, - { 10, 0, 835 }, { 7, 0, 406 }, { 7, 0, 459 }, { 8, 0, 606 }, - { 11, 0, 726 }, { 6, 11, 617 }, { 6, 0, 979 }, { 6, 10, 389 }, - { 7, 10, 149 }, { 9, 10, 142 }, { 10, 10, 94 }, { 5, 11, 878 }, - { 5, 11, 972 }, { 6, 10, 8 }, { 7, 10, 1881 }, { 8, 10, 91 }, - { 8, 11, 511 }, { 5, 0, 612 }, { 4, 11, 351 }, { 4, 0, 372 }, - { 7, 0, 482 }, { 8, 0, 158 }, { 9, 0, 602 }, { 9, 0, 615 }, - { 10, 0, 245 }, { 10, 0, 678 }, { 10, 0, 744 }, { 11, 0, 248 }, - { 11, 0, 806 }, { 5, 0, 854 }, { 7, 0, 1991 }, { 4, 11, 286 }, - { 7, 11, 344 }, { 7, 11, 438 }, { 7, 11, 627 }, { 7, 11, 1516 }, - { 8, 11, 40 }, { 9, 11, 56 }, { 9, 11, 294 }, { 10, 11, 30 }, - { 10, 11, 259 }, { 11, 11, 969 }, { 18, 11, 148 }, { 7, 0, 1492 }, - { 5, 11, 259 }, { 7, 11, 414 }, { 7, 11, 854 }, { 14, 11, 107 }, - { 7, 10, 1746 }, { 6, 0, 833 }, { 6, 0, 998 }, { 7, 10, 24 }, - { 6, 0, 750 }, { 7, 0, 1739 }, { 4, 10, 503 }, { 7, 10, 1661 }, - { 5, 10, 130 }, { 7, 10, 1314 }, { 9, 10, 610 }, { 10, 10, 718 }, - { 11, 10, 601 }, { 11, 10, 819 }, { 11, 10, 946 }, { 12, 10, 536 }, - { 10, 10, 149 }, { 11, 10, 280 }, { 14, 10, 336 }, { 4, 11, 738 }, - { 7, 10, 1946 }, { 5, 0, 195 }, { 7, 0, 1685 }, { 7, 0, 1997 }, - { 8, 0, 730 }, { 11, 0, 1006 }, { 23, 11, 17 }, { 5, 11, 866 }, - { 14, 0, 463 }, { 14, 0, 470 }, { 22, 0, 61 }, { 5, 0, 751 }, - { 8, 0, 266 }, { 11, 0, 578 }, { 4, 10, 392 }, { 7, 10, 1597 }, - { 5, 10, 433 }, { 9, 10, 633 }, { 11, 10, 629 }, { 7, 0, 821 }, - { 6, 0, 715 }, { 6, 0, 1325 }, { 5, 11, 116 }, { 6, 0, 868 }, - { 4, 11, 457 }, { 6, 0, 959 }, { 6, 10, 234 }, { 10, 11, 199 }, - { 7, 0, 1053 }, { 7, 10, 1950 }, { 8, 10, 680 }, { 11, 10, 817 }, - { 19, 10, 88 }, { 7, 10, 1222 }, { 10, 10, 386 }, { 5, 0, 950 }, - { 5, 0, 994 }, { 6, 0, 351 }, { 6, 0, 1124 }, { 6, 0, 1081 }, - { 7, 0, 1595 }, { 6, 10, 5 }, { 11, 10, 249 }, { 12, 10, 313 }, - { 16, 10, 66 }, { 17, 10, 26 }, { 20, 0, 59 }, { 5, 11, 527 }, - { 6, 11, 189 }, { 7, 11, 859 }, { 5, 10, 963 }, { 6, 10, 1773 }, - { 11, 11, 104 }, { 11, 11, 554 }, { 15, 11, 60 }, { 15, 11, 125 }, - { 7, 0, 47 }, { 9, 0, 684 }, { 6, 11, 116 }, { 6, 0, 1606 }, - { 6, 0, 777 }, { 7, 0, 1020 }, { 8, 10, 509 }, { 8, 10, 792 }, - { 7, 0, 1094 }, { 4, 0, 350 }, { 5, 11, 487 }, { 4, 11, 86 }, - { 5, 11, 667 }, { 5, 11, 753 }, { 6, 11, 316 }, { 6, 11, 455 }, - { 7, 11, 946 }, { 7, 0, 1812 }, { 13, 0, 259 }, { 13, 0, 356 }, - { 14, 0, 242 }, { 19, 0, 114 }, { 4, 10, 931 }, { 5, 0, 967 }, - { 4, 0, 473 }, { 7, 0, 623 }, { 8, 0, 808 }, { 9, 0, 871 }, - { 9, 0, 893 }, { 11, 0, 38 }, { 11, 0, 431 }, { 12, 0, 112 }, - { 12, 0, 217 }, { 12, 0, 243 }, { 12, 0, 562 }, { 12, 0, 663 }, - { 12, 0, 683 }, { 13, 0, 141 }, { 13, 0, 197 }, { 13, 0, 227 }, - { 13, 0, 406 }, { 13, 0, 487 }, { 14, 0, 156 }, { 14, 0, 203 }, - { 14, 0, 224 }, { 14, 0, 256 }, { 18, 0, 58 }, { 22, 0, 0 }, - { 10, 0, 286 }, { 7, 10, 943 }, { 11, 10, 614 }, { 7, 10, 1837 }, - { 22, 11, 45 }, { 4, 0, 798 }, { 4, 0, 222 }, { 7, 0, 286 }, - { 8, 0, 629 }, { 4, 11, 79 }, { 7, 11, 1773 }, { 10, 11, 450 }, - { 11, 11, 589 }, { 13, 11, 332 }, { 13, 11, 493 }, { 14, 11, 183 }, - { 14, 11, 334 }, { 14, 11, 362 }, { 14, 11, 368 }, { 14, 11, 376 }, - { 14, 11, 379 }, { 19, 11, 90 }, { 19, 11, 103 }, { 19, 11, 127 }, - { 20, 11, 90 }, { 5, 0, 337 }, { 11, 0, 513 }, { 11, 0, 889 }, - { 11, 0, 961 }, { 12, 0, 461 }, { 13, 0, 79 }, { 15, 0, 121 }, - { 4, 10, 90 }, { 5, 10, 545 }, { 7, 10, 754 }, { 9, 10, 186 }, - { 10, 10, 72 }, { 10, 10, 782 }, { 11, 10, 577 }, { 11, 10, 610 }, - { 12, 10, 354 }, { 12, 10, 362 }, { 12, 10, 595 }, { 13, 0, 306 }, - { 8, 0, 146 }, { 7, 0, 1646 }, { 9, 10, 329 }, { 11, 10, 254 }, - { 13, 11, 124 }, { 4, 0, 465 }, { 7, 0, 1663 }, { 4, 0, 525 }, - { 5, 11, 663 }, { 10, 0, 299 }, { 18, 0, 74 }, { 9, 10, 187 }, - { 11, 10, 1016 }, { 17, 10, 44 }, { 7, 0, 165 }, { 7, 0, 919 }, - { 4, 10, 506 }, { 8, 10, 517 }, { 5, 10, 295 }, { 7, 10, 1680 }, - { 5, 11, 846 }, { 6, 0, 1064 }, { 5, 11, 378 }, { 7, 11, 1402 }, - { 7, 11, 1414 }, { 8, 11, 465 }, { 9, 11, 286 }, { 10, 11, 185 }, - { 10, 11, 562 }, { 10, 11, 635 }, { 11, 11, 31 }, { 11, 11, 393 }, - { 12, 11, 456 }, { 13, 11, 312 }, { 18, 11, 65 }, { 18, 11, 96 }, - { 19, 11, 89 }, { 4, 0, 596 }, { 7, 10, 987 }, { 9, 10, 688 }, - { 10, 10, 522 }, { 11, 10, 788 }, { 12, 10, 566 }, { 6, 0, 82 }, - { 7, 0, 138 }, { 7, 0, 517 }, { 7, 0, 1741 }, { 11, 0, 238 }, - { 4, 11, 648 }, { 6, 10, 1775 }, { 7, 0, 1233 }, { 7, 10, 700 }, - { 7, 10, 940 }, { 8, 10, 514 }, { 9, 10, 116 }, { 9, 10, 535 }, - { 10, 10, 118 }, { 11, 10, 107 }, { 11, 10, 148 }, { 11, 10, 922 }, - { 12, 10, 254 }, { 12, 10, 421 }, { 14, 10, 238 }, { 4, 0, 962 }, - { 6, 0, 1824 }, { 8, 0, 894 }, { 12, 0, 708 }, { 12, 0, 725 }, - { 14, 0, 451 }, { 20, 0, 94 }, { 22, 0, 59 }, { 22, 0, 62 }, - { 5, 11, 945 }, { 6, 11, 1656 }, { 6, 11, 1787 }, { 7, 11, 167 }, - { 8, 11, 824 }, { 9, 11, 391 }, { 10, 11, 375 }, { 11, 11, 185 }, - { 5, 0, 495 }, { 7, 0, 834 }, { 9, 0, 733 }, { 11, 0, 378 }, - { 4, 10, 743 }, { 7, 11, 1273 }, { 6, 0, 1204 }, { 7, 11, 1645 }, - { 8, 11, 352 }, { 9, 11, 249 }, { 11, 10, 292 }, { 5, 0, 559 }, - { 4, 11, 152 }, { 9, 0, 499 }, { 10, 0, 341 }, { 15, 0, 144 }, - { 19, 0, 49 }, { 7, 10, 1283 }, { 9, 10, 227 }, { 11, 10, 325 }, - { 11, 10, 408 }, { 14, 10, 180 }, { 18, 10, 47 }, { 6, 0, 21 }, - { 6, 0, 1737 }, { 7, 0, 1444 }, { 8, 0, 224 }, { 5, 11, 1006 }, - { 7, 0, 1446 }, { 9, 0, 97 }, { 17, 0, 15 }, { 5, 10, 81 }, - { 7, 10, 146 }, { 7, 10, 1342 }, { 8, 10, 53 }, { 8, 10, 561 }, - { 8, 10, 694 }, { 8, 10, 754 }, { 9, 10, 115 }, { 9, 10, 894 }, - { 10, 10, 462 }, { 10, 10, 813 }, { 11, 10, 230 }, { 11, 10, 657 }, - { 11, 10, 699 }, { 11, 10, 748 }, { 12, 10, 119 }, { 12, 10, 200 }, - { 12, 10, 283 }, { 14, 10, 273 }, { 5, 10, 408 }, { 9, 10, 747 }, - { 7, 11, 431 }, { 7, 11, 832 }, { 6, 0, 729 }, { 6, 0, 953 }, - { 4, 0, 727 }, { 8, 0, 565 }, { 5, 11, 351 }, { 7, 11, 264 }, - { 8, 11, 565 }, { 6, 0, 1948 }, { 5, 0, 519 }, { 5, 11, 40 }, - { 7, 11, 598 }, { 7, 11, 1638 }, { 8, 11, 78 }, { 9, 11, 166 }, - { 9, 11, 640 }, { 9, 11, 685 }, { 9, 11, 773 }, { 11, 11, 215 }, - { 13, 11, 65 }, { 14, 11, 172 }, { 14, 11, 317 }, { 17, 11, 6 }, - { 8, 11, 60 }, { 9, 11, 343 }, { 11, 11, 769 }, { 9, 11, 455 }, - { 6, 0, 1193 }, { 12, 0, 790 }, { 7, 11, 1951 }, { 8, 11, 765 }, - { 8, 11, 772 }, { 12, 11, 671 }, { 7, 11, 108 }, { 8, 11, 219 }, - { 8, 11, 388 }, { 9, 11, 639 }, { 9, 11, 775 }, { 11, 11, 275 }, - { 12, 11, 464 }, { 4, 11, 468 }, { 7, 10, 30 }, { 8, 10, 86 }, - { 8, 10, 315 }, { 8, 10, 700 }, { 9, 10, 576 }, { 9, 10, 858 }, - { 11, 10, 310 }, { 11, 10, 888 }, { 11, 10, 904 }, { 12, 10, 361 }, - { 13, 10, 248 }, { 5, 11, 15 }, { 6, 11, 56 }, { 7, 11, 1758 }, - { 8, 11, 500 }, { 9, 11, 730 }, { 11, 11, 331 }, { 13, 11, 150 }, - { 14, 11, 282 }, { 4, 0, 402 }, { 7, 0, 2 }, { 8, 0, 323 }, - { 8, 0, 479 }, { 10, 10, 839 }, { 11, 0, 580 }, { 14, 0, 201 }, - { 5, 0, 59 }, { 7, 0, 672 }, { 9, 10, 617 }, { 18, 0, 34 }, - { 6, 11, 1886 }, { 4, 0, 961 }, { 8, 0, 896 }, { 6, 0, 1285 }, - { 5, 11, 205 }, { 6, 11, 438 }, { 9, 11, 711 }, { 6, 10, 428 }, - { 7, 10, 524 }, { 8, 10, 169 }, { 8, 10, 234 }, { 9, 10, 480 }, - { 10, 10, 646 }, { 20, 0, 46 }, { 13, 0, 479 }, { 5, 11, 534 }, - { 6, 0, 2019 }, { 6, 10, 1648 }, { 4, 0, 85 }, { 7, 0, 549 }, - { 7, 10, 1205 }, { 10, 10, 637 }, { 4, 0, 663 }, { 5, 0, 94 }, - { 7, 11, 235 }, { 7, 11, 1475 }, { 15, 11, 68 }, { 18, 11, 120 }, - { 6, 11, 443 }, { 9, 11, 237 }, { 9, 11, 571 }, { 9, 11, 695 }, - { 10, 11, 139 }, { 11, 11, 715 }, { 12, 11, 417 }, { 13, 11, 421 }, - { 4, 0, 783 }, { 4, 0, 682 }, { 8, 0, 65 }, { 9, 10, 39 }, - { 10, 10, 166 }, { 11, 10, 918 }, { 12, 10, 635 }, { 20, 10, 10 }, - { 22, 10, 27 }, { 22, 10, 43 }, { 22, 10, 52 }, { 6, 0, 11 }, - { 7, 0, 187 }, { 4, 0, 522 }, { 4, 0, 52 }, { 7, 0, 661 }, - { 4, 0, 383 }, { 5, 0, 520 }, { 7, 11, 546 }, { 11, 0, 343 }, - { 14, 0, 127 }, { 4, 11, 578 }, { 7, 10, 157 }, { 7, 11, 624 }, - { 7, 11, 916 }, { 8, 10, 279 }, { 10, 11, 256 }, { 11, 11, 87 }, - { 11, 11, 703 }, { 6, 10, 604 }, { 4, 0, 281 }, { 5, 0, 38 }, - { 7, 0, 194 }, { 7, 0, 668 }, { 7, 0, 1893 }, { 9, 0, 397 }, - { 7, 10, 945 }, { 11, 10, 713 }, { 11, 10, 744 }, { 11, 10, 1022 }, - { 9, 0, 635 }, { 11, 0, 559 }, { 5, 11, 923 }, { 7, 11, 490 }, - { 12, 11, 553 }, { 13, 11, 100 }, { 14, 11, 118 }, { 15, 11, 75 }, - { 4, 0, 975 }, { 4, 10, 567 }, { 9, 10, 859 }, { 7, 10, 1846 }, - { 7, 11, 1846 }, { 8, 10, 628 }, { 8, 11, 628 }, { 20, 0, 116 }, - { 10, 11, 750 }, { 14, 0, 51 }, { 14, 11, 51 }, { 15, 11, 7 }, - { 20, 11, 20 }, { 4, 0, 858 }, { 6, 0, 1075 }, { 4, 11, 924 }, - { 5, 10, 762 }, { 8, 0, 535 }, { 5, 0, 448 }, { 10, 10, 784 }, - { 13, 10, 191 }, { 5, 10, 298 }, { 7, 0, 610 }, { 7, 0, 1501 }, - { 7, 10, 633 }, { 7, 10, 905 }, { 7, 10, 909 }, { 7, 10, 1538 }, - { 9, 10, 767 }, { 12, 10, 636 }, { 4, 11, 265 }, { 7, 11, 807 }, - { 7, 11, 950 }, { 5, 11, 93 }, { 12, 11, 267 }, { 16, 11, 26 }, - { 8, 0, 191 }, { 11, 10, 301 }, { 7, 10, 1970 }, { 7, 0, 267 }, - { 4, 0, 319 }, { 5, 0, 699 }, { 10, 0, 673 }, { 6, 0, 336 }, - { 7, 0, 92 }, { 7, 0, 182 }, { 8, 0, 453 }, { 8, 0, 552 }, - { 9, 0, 204 }, { 9, 0, 285 }, { 10, 0, 99 }, { 11, 0, 568 }, - { 11, 0, 950 }, { 12, 0, 94 }, { 16, 0, 20 }, { 16, 0, 70 }, - { 19, 0, 55 }, { 12, 10, 644 }, { 16, 10, 90 }, { 6, 0, 551 }, - { 7, 0, 1308 }, { 7, 10, 845 }, { 7, 11, 994 }, { 8, 10, 160 }, - { 9, 10, 318 }, { 19, 11, 1 }, { 19, 11, 26 }, { 22, 11, 9 }, - { 7, 0, 1406 }, { 9, 0, 218 }, { 13, 0, 222 }, { 5, 0, 256 }, - { 10, 0, 69 }, { 5, 11, 233 }, { 5, 11, 320 }, { 6, 11, 140 }, - { 7, 11, 330 }, { 8, 11, 295 }, { 6, 0, 1980 }, { 8, 0, 952 }, - { 4, 0, 833 }, { 9, 11, 678 }, { 5, 11, 978 }, { 4, 11, 905 }, - { 6, 11, 1701 }, { 9, 11, 843 }, { 10, 10, 735 }, { 8, 10, 76 }, - { 17, 0, 39 }, { 20, 0, 36 }, { 18, 0, 81 }, { 18, 11, 81 }, - { 14, 0, 352 }, { 17, 0, 53 }, { 18, 0, 146 }, { 18, 0, 152 }, - { 19, 0, 11 }, { 22, 0, 54 }, { 7, 0, 634 }, { 10, 10, 841 }, - { 4, 0, 618 }, { 4, 0, 339 }, { 7, 0, 259 }, { 17, 0, 73 }, - { 4, 11, 275 }, { 12, 11, 376 }, { 4, 11, 509 }, { 7, 11, 273 }, - { 11, 11, 377 }, { 4, 0, 759 }, { 13, 0, 169 }, { 9, 10, 804 }, - { 6, 10, 96 }, { 7, 10, 1426 }, { 4, 10, 651 }, { 5, 10, 289 }, - { 7, 0, 1075 }, { 8, 10, 35 }, { 9, 10, 511 }, { 10, 10, 767 }, - { 19, 10, 118 }, { 6, 0, 649 }, { 6, 0, 670 }, { 8, 0, 482 }, - { 5, 0, 336 }, { 6, 0, 341 }, { 6, 0, 478 }, { 6, 0, 1763 }, - { 8, 0, 386 }, { 5, 11, 802 }, { 7, 11, 2021 }, { 8, 11, 805 }, - { 14, 11, 94 }, { 15, 11, 65 }, { 16, 11, 4 }, { 16, 11, 77 }, - { 16, 11, 80 }, { 17, 11, 5 }, { 6, 0, 1035 }, { 5, 11, 167 }, - { 5, 11, 899 }, { 6, 11, 410 }, { 9, 11, 777 }, { 6, 11, 1705 }, - { 5, 0, 924 }, { 5, 0, 969 }, { 4, 10, 704 }, { 7, 0, 73 }, - { 7, 11, 10 }, { 7, 10, 1078 }, { 5, 11, 11 }, { 6, 11, 117 }, - { 6, 11, 485 }, { 7, 11, 1133 }, { 9, 11, 582 }, { 9, 11, 594 }, - { 11, 11, 21 }, { 11, 11, 818 }, { 12, 11, 535 }, { 13, 11, 86 }, - { 7, 0, 1971 }, { 4, 11, 264 }, { 7, 11, 1067 }, { 8, 11, 204 }, - { 8, 11, 385 }, { 11, 11, 953 }, { 6, 0, 1458 }, { 7, 0, 1344 }, - { 5, 0, 396 }, { 6, 0, 501 }, { 4, 10, 720 }, { 5, 10, 306 }, - { 4, 0, 929 }, { 5, 0, 799 }, { 8, 0, 46 }, { 8, 0, 740 }, - { 5, 10, 431 }, { 7, 11, 646 }, { 7, 11, 1730 }, { 11, 11, 446 }, - { 13, 11, 178 }, { 7, 0, 276 }, { 5, 10, 464 }, { 6, 10, 236 }, - { 7, 10, 696 }, { 7, 10, 914 }, { 7, 10, 1108 }, { 7, 10, 1448 }, - { 9, 10, 15 }, { 9, 10, 564 }, { 10, 10, 14 }, { 12, 10, 565 }, - { 13, 10, 449 }, { 14, 10, 53 }, { 15, 10, 13 }, { 16, 10, 64 }, - { 17, 10, 41 }, { 4, 0, 892 }, { 5, 0, 770 }, { 6, 10, 1767 }, - { 12, 10, 194 }, { 17, 10, 107 }, { 7, 0, 158 }, { 5, 10, 840 }, - { 10, 11, 608 }, { 6, 0, 1432 }, { 10, 11, 250 }, { 8, 11, 794 }, - { 9, 11, 400 }, { 10, 11, 298 }, { 14, 11, 228 }, { 23, 0, 25 }, - { 7, 11, 1131 }, { 7, 11, 1468 }, { 7, 0, 2001 }, { 9, 10, 642 }, - { 11, 10, 236 }, { 14, 10, 193 }, { 4, 10, 68 }, { 5, 10, 634 }, - { 6, 10, 386 }, { 7, 10, 794 }, { 8, 10, 273 }, { 9, 10, 563 }, - { 10, 10, 105 }, { 10, 10, 171 }, { 11, 10, 94 }, { 11, 10, 354 }, - { 8, 11, 724 }, { 4, 0, 478 }, { 11, 11, 512 }, { 13, 11, 205 }, - { 19, 11, 30 }, { 22, 11, 36 }, { 23, 11, 19 }, { 7, 0, 1461 }, - { 12, 0, 91 }, { 6, 11, 190 }, { 7, 11, 768 }, { 7, 11, 1170 }, - { 4, 0, 602 }, { 8, 0, 211 }, { 4, 10, 95 }, { 7, 10, 416 }, - { 11, 10, 830 }, { 7, 10, 731 }, { 13, 10, 20 }, { 15, 10, 11 }, - { 6, 0, 1068 }, { 7, 0, 1872 }, { 4, 0, 13 }, { 5, 0, 567 }, - { 7, 0, 1498 }, { 9, 0, 124 }, { 11, 0, 521 }, { 12, 0, 405 }, - { 7, 11, 1023 }, { 7, 0, 1006 }, { 4, 0, 735 }, { 10, 0, 812 }, - { 4, 0, 170 }, { 7, 0, 323 }, { 6, 11, 137 }, { 9, 11, 75 }, - { 9, 11, 253 }, { 10, 11, 194 }, { 10, 11, 444 }, { 5, 0, 304 }, - { 7, 0, 1403 }, { 5, 10, 864 }, { 10, 10, 648 }, { 11, 10, 671 }, - { 15, 10, 46 }, { 7, 11, 1180 }, { 5, 10, 928 }, { 4, 0, 148 }, - { 5, 0, 742 }, { 11, 10, 986 }, { 12, 10, 682 }, { 5, 0, 523 }, - { 7, 11, 1743 }, { 7, 0, 730 }, { 18, 0, 144 }, { 19, 0, 61 }, - { 8, 10, 44 }, { 9, 10, 884 }, { 10, 10, 580 }, { 11, 10, 399 }, - { 11, 10, 894 }, { 15, 10, 122 }, { 5, 11, 760 }, { 7, 11, 542 }, - { 8, 11, 135 }, { 8, 11, 496 }, { 8, 0, 981 }, { 5, 0, 111 }, - { 10, 0, 132 }, { 11, 0, 191 }, { 11, 0, 358 }, { 11, 0, 460 }, - { 7, 11, 319 }, { 7, 11, 355 }, { 7, 11, 763 }, { 10, 11, 389 }, - { 17, 11, 43 }, { 6, 0, 890 }, { 6, 0, 1420 }, { 8, 11, 557 }, - { 5, 10, 518 }, { 5, 0, 444 }, { 7, 0, 1787 }, { 7, 10, 1852 }, - { 8, 0, 123 }, { 15, 0, 6 }, { 16, 0, 7 }, { 6, 0, 2041 }, - { 10, 11, 38 }, { 11, 11, 784 }, { 8, 0, 932 }, { 5, 0, 937 }, - { 7, 0, 100 }, { 6, 0, 995 }, { 4, 11, 58 }, { 5, 11, 286 }, - { 6, 11, 319 }, { 7, 11, 402 }, { 7, 11, 1254 }, { 7, 11, 1903 }, - { 8, 11, 356 }, { 12, 11, 408 }, { 4, 11, 389 }, { 9, 11, 181 }, - { 9, 11, 255 }, { 10, 11, 8 }, { 10, 11, 29 }, { 10, 11, 816 }, - { 11, 11, 311 }, { 11, 11, 561 }, { 12, 11, 67 }, { 13, 11, 181 }, - { 10, 0, 255 }, { 5, 0, 138 }, { 4, 10, 934 }, { 8, 10, 610 }, - { 4, 0, 965 }, { 10, 0, 863 }, { 10, 0, 898 }, { 10, 10, 804 }, - { 10, 10, 832 }, { 12, 0, 631 }, { 8, 10, 96 }, { 9, 10, 36 }, - { 10, 10, 607 }, { 11, 10, 423 }, { 11, 10, 442 }, { 12, 10, 309 }, - { 14, 10, 199 }, { 15, 10, 90 }, { 17, 10, 110 }, { 6, 0, 1394 }, - { 4, 0, 652 }, { 8, 0, 320 }, { 22, 0, 6 }, { 22, 0, 16 }, - { 9, 10, 13 }, { 9, 10, 398 }, { 9, 10, 727 }, { 10, 10, 75 }, - { 10, 10, 184 }, { 10, 10, 230 }, { 10, 10, 564 }, { 10, 10, 569 }, - { 11, 10, 973 }, { 12, 10, 70 }, { 12, 10, 189 }, { 13, 10, 57 }, - { 13, 10, 257 }, { 6, 0, 897 }, { 6, 0, 1333 }, { 4, 0, 692 }, - { 5, 0, 321 }, { 5, 11, 373 }, { 7, 0, 922 }, { 5, 0, 619 }, - { 5, 0, 698 }, { 9, 10, 631 }, { 5, 10, 345 }, { 7, 10, 1016 }, - { 9, 0, 957 }, { 9, 0, 1018 }, { 12, 0, 828 }, { 12, 0, 844 }, - { 12, 0, 897 }, { 12, 0, 901 }, { 12, 0, 943 }, { 15, 0, 180 }, - { 18, 0, 197 }, { 18, 0, 200 }, { 18, 0, 213 }, { 18, 0, 214 }, - { 18, 0, 226 }, { 5, 0, 917 }, { 6, 0, 1659 }, { 7, 0, 1100 }, - { 6, 0, 1173 }, { 6, 0, 1930 }, { 5, 0, 251 }, { 5, 0, 956 }, - { 8, 0, 268 }, { 9, 0, 214 }, { 18, 0, 142 }, { 5, 10, 673 }, - { 9, 10, 850 }, { 4, 10, 287 }, { 5, 10, 1018 }, { 4, 11, 672 }, - { 5, 0, 346 }, { 5, 0, 711 }, { 8, 0, 390 }, { 11, 11, 752 }, - { 11, 11, 885 }, { 5, 10, 34 }, { 10, 10, 724 }, { 12, 10, 444 }, - { 13, 10, 354 }, { 18, 10, 32 }, { 23, 10, 24 }, { 23, 10, 31 }, - { 24, 10, 5 }, { 4, 11, 710 }, { 6, 11, 606 }, { 6, 0, 744 }, - { 6, 10, 382 }, { 5, 11, 145 }, { 4, 10, 329 }, { 7, 11, 884 }, - { 12, 11, 124 }, { 4, 11, 467 }, { 5, 11, 405 }, { 6, 11, 544 }, - { 9, 10, 846 }, { 10, 10, 827 }, { 5, 0, 624 }, { 9, 11, 372 }, - { 15, 11, 2 }, { 19, 11, 10 }, { 19, 11, 18 }, { 4, 11, 387 }, - { 7, 11, 1288 }, { 5, 0, 783 }, { 7, 0, 1998 }, { 7, 0, 2047 }, - { 4, 10, 906 }, { 8, 10, 366 }, { 7, 11, 550 }, { 4, 10, 123 }, - { 4, 10, 649 }, { 5, 10, 605 }, { 7, 10, 1509 }, { 8, 10, 36 }, - { 6, 0, 1125 }, { 4, 0, 594 }, { 5, 10, 767 }, { 7, 11, 1227 }, - { 8, 11, 467 }, { 4, 11, 576 }, { 7, 11, 1263 }, { 4, 0, 268 }, - { 7, 0, 1534 }, { 7, 11, 1534 }, { 4, 10, 273 }, { 5, 10, 658 }, - { 5, 11, 919 }, { 5, 10, 995 }, { 6, 11, 1673 }, { 5, 0, 563 }, - { 6, 10, 72 }, { 7, 10, 1345 }, { 4, 11, 82 }, { 5, 11, 333 }, - { 5, 11, 904 }, { 6, 11, 207 }, { 7, 11, 325 }, { 7, 11, 1726 }, - { 8, 11, 101 }, { 10, 11, 778 }, { 11, 11, 220 }, { 5, 0, 37 }, - { 6, 0, 39 }, { 6, 0, 451 }, { 7, 0, 218 }, { 7, 0, 667 }, - { 7, 0, 1166 }, { 7, 0, 1687 }, { 8, 0, 662 }, { 16, 0, 2 }, - { 5, 10, 589 }, { 6, 0, 1332 }, { 5, 11, 903 }, { 6, 0, 508 }, - { 5, 10, 117 }, { 6, 10, 514 }, { 6, 10, 541 }, { 7, 10, 1164 }, - { 7, 10, 1436 }, { 8, 10, 220 }, { 8, 10, 648 }, { 10, 10, 688 }, - { 11, 10, 560 }, { 12, 11, 147 }, { 6, 11, 555 }, { 7, 11, 485 }, - { 5, 10, 686 }, { 7, 0, 453 }, { 7, 0, 635 }, { 7, 0, 796 }, - { 8, 0, 331 }, { 9, 0, 330 }, { 9, 0, 865 }, { 10, 0, 119 }, - { 10, 0, 235 }, { 11, 0, 111 }, { 11, 0, 129 }, { 11, 0, 240 }, - { 12, 0, 31 }, { 12, 0, 66 }, { 12, 0, 222 }, { 12, 0, 269 }, - { 12, 0, 599 }, { 12, 0, 684 }, { 12, 0, 689 }, { 12, 0, 691 }, - { 14, 0, 345 }, { 7, 0, 1834 }, { 4, 11, 705 }, { 7, 11, 615 }, - { 10, 11, 251 }, { 8, 11, 345 }, { 9, 0, 527 }, { 6, 0, 98 }, - { 7, 0, 702 }, { 7, 0, 991 }, { 11, 0, 576 }, { 14, 0, 74 }, - { 7, 10, 196 }, { 10, 10, 765 }, { 11, 10, 347 }, { 11, 10, 552 }, - { 11, 10, 790 }, { 12, 10, 263 }, { 13, 10, 246 }, { 13, 10, 270 }, - { 13, 10, 395 }, { 14, 10, 176 }, { 14, 10, 190 }, { 14, 10, 398 }, - { 14, 10, 412 }, { 15, 10, 32 }, { 15, 10, 63 }, { 16, 10, 88 }, - { 19, 10, 105 }, { 6, 11, 90 }, { 13, 0, 84 }, { 13, 0, 122 }, - { 6, 0, 37 }, { 7, 0, 299 }, { 7, 0, 1666 }, { 8, 0, 195 }, - { 8, 0, 316 }, { 9, 0, 178 }, { 9, 0, 276 }, { 9, 0, 339 }, - { 9, 0, 536 }, { 10, 0, 102 }, { 10, 0, 362 }, { 10, 0, 785 }, - { 11, 0, 55 }, { 11, 0, 149 }, { 11, 0, 773 }, { 13, 0, 416 }, - { 13, 0, 419 }, { 14, 0, 38 }, { 14, 0, 41 }, { 14, 0, 210 }, - { 5, 10, 381 }, { 7, 10, 1792 }, { 7, 11, 813 }, { 12, 11, 497 }, - { 13, 11, 56 }, { 7, 10, 616 }, { 10, 10, 413 }, { 5, 0, 645 }, - { 6, 11, 125 }, { 7, 11, 1277 }, { 4, 0, 290 }, { 6, 0, 70 }, - { 7, 0, 1292 }, { 10, 0, 762 }, { 11, 0, 288 }, { 6, 10, 120 }, - { 7, 10, 1188 }, { 7, 10, 1710 }, { 8, 10, 286 }, { 9, 10, 667 }, - { 11, 10, 592 }, { 11, 10, 730 }, { 7, 11, 1784 }, { 7, 0, 1315 }, - { 7, 11, 1315 }, { 6, 0, 1955 }, { 7, 10, 1146 }, { 7, 0, 131 }, - { 7, 0, 422 }, { 8, 0, 210 }, { 12, 0, 573 }, { 4, 10, 352 }, - { 7, 10, 687 }, { 11, 0, 797 }, { 15, 0, 38 }, { 14, 0, 179 }, - { 15, 0, 151 }, { 22, 0, 11 }, { 7, 0, 488 }, { 4, 10, 192 }, - { 5, 10, 49 }, { 6, 10, 200 }, { 6, 10, 293 }, { 6, 10, 1696 }, - { 4, 0, 936 }, { 7, 11, 703 }, { 6, 11, 160 }, { 7, 11, 1106 }, - { 9, 11, 770 }, { 10, 11, 618 }, { 11, 11, 112 }, { 12, 11, 413 }, - { 5, 0, 453 }, { 6, 0, 441 }, { 7, 0, 595 }, { 4, 10, 650 }, - { 4, 10, 147 }, { 6, 0, 991 }, { 6, 0, 1182 }, { 12, 11, 271 }, - { 17, 11, 109 }, { 5, 10, 934 }, { 12, 11, 221 }, { 4, 0, 653 }, - { 7, 0, 505 }, { 7, 0, 523 }, { 6, 0, 903 }, { 7, 11, 479 }, - { 7, 11, 304 }, { 9, 11, 646 }, { 9, 11, 862 }, { 10, 11, 262 }, - { 11, 11, 696 }, { 12, 11, 208 }, { 15, 11, 79 }, { 19, 11, 108 }, - { 18, 0, 80 }, { 7, 11, 981 }, { 14, 0, 432 }, { 4, 0, 314 }, - { 9, 11, 152 }, { 7, 0, 1368 }, { 8, 0, 232 }, { 8, 0, 361 }, - { 10, 0, 682 }, { 10, 0, 742 }, { 7, 11, 1586 }, { 9, 0, 534 }, - { 4, 11, 434 }, { 11, 11, 663 }, { 12, 11, 210 }, { 13, 11, 166 }, - { 13, 11, 310 }, { 14, 11, 373 }, { 19, 11, 43 }, { 7, 11, 1091 }, - { 7, 11, 1765 }, { 6, 11, 550 }, { 7, 11, 652 }, { 9, 0, 27 }, - { 14, 0, 12 }, { 4, 10, 637 }, { 5, 11, 553 }, { 7, 11, 766 }, - { 10, 11, 824 }, { 7, 11, 737 }, { 8, 11, 298 }, { 8, 11, 452 }, - { 7, 0, 736 }, { 11, 0, 264 }, { 6, 0, 1657 }, { 5, 11, 292 }, - { 10, 11, 135 }, { 6, 0, 844 }, { 6, 0, 1117 }, { 7, 0, 127 }, - { 9, 10, 867 }, { 10, 10, 837 }, { 6, 0, 1184 }, { 6, 0, 1208 }, - { 6, 0, 1294 }, { 8, 0, 364 }, { 6, 0, 1415 }, { 7, 0, 1334 }, - { 11, 0, 125 }, { 6, 10, 170 }, { 7, 11, 393 }, { 8, 10, 395 }, - { 8, 10, 487 }, { 10, 11, 603 }, { 11, 11, 206 }, { 13, 10, 147 }, - { 9, 11, 748 }, { 4, 11, 912 }, { 9, 11, 232 }, { 4, 10, 535 }, - { 8, 10, 618 }, { 9, 0, 792 }, { 7, 11, 1973 }, { 8, 11, 716 }, - { 7, 11, 98 }, { 5, 0, 909 }, { 9, 0, 849 }, { 10, 0, 805 }, - { 4, 0, 630 }, { 4, 0, 699 }, { 5, 11, 733 }, { 14, 11, 103 }, - { 22, 10, 23 }, { 12, 11, 158 }, { 18, 11, 8 }, { 19, 11, 62 }, - { 20, 11, 6 }, { 22, 11, 4 }, { 23, 11, 2 }, { 23, 11, 9 }, - { 4, 0, 968 }, { 4, 10, 778 }, { 4, 10, 46 }, { 5, 10, 811 }, - { 6, 10, 1679 }, { 6, 10, 1714 }, { 7, 10, 2032 }, { 6, 0, 1446 }, - { 7, 10, 1458 }, { 9, 10, 407 }, { 11, 10, 15 }, { 7, 0, 206 }, - { 7, 0, 397 }, { 7, 0, 621 }, { 7, 0, 640 }, { 8, 0, 124 }, - { 8, 0, 619 }, { 9, 0, 305 }, { 9, 0, 643 }, { 10, 0, 264 }, - { 10, 0, 628 }, { 11, 0, 40 }, { 12, 0, 349 }, { 13, 0, 134 }, - { 13, 0, 295 }, { 14, 0, 155 }, { 15, 0, 120 }, { 18, 0, 105 }, - { 6, 10, 34 }, { 7, 10, 1089 }, { 8, 10, 708 }, { 8, 10, 721 }, - { 9, 10, 363 }, { 20, 10, 98 }, { 4, 0, 262 }, { 5, 0, 641 }, - { 7, 0, 342 }, { 9, 11, 72 }, { 4, 0, 99 }, { 6, 0, 250 }, - { 6, 0, 346 }, { 8, 0, 127 }, { 10, 0, 81 }, { 4, 0, 915 }, - { 5, 0, 75 }, { 9, 0, 517 }, { 10, 0, 470 }, { 12, 0, 155 }, - { 13, 0, 224 }, { 4, 10, 462 }, { 11, 11, 600 }, { 11, 11, 670 }, - { 13, 11, 245 }, { 14, 0, 83 }, { 5, 10, 73 }, { 6, 10, 23 }, - { 6, 10, 338 }, { 6, 0, 1031 }, { 11, 11, 923 }, { 7, 11, 164 }, - { 7, 11, 1571 }, { 9, 11, 107 }, { 12, 11, 225 }, { 6, 0, 1470 }, - { 5, 0, 954 }, { 6, 0, 304 }, { 8, 0, 418 }, { 10, 0, 345 }, - { 11, 0, 341 }, { 11, 0, 675 }, { 9, 0, 410 }, { 11, 0, 425 }, - { 4, 11, 27 }, { 5, 11, 484 }, { 5, 11, 510 }, { 6, 11, 434 }, - { 7, 11, 1000 }, { 7, 11, 1098 }, { 8, 11, 2 }, { 8, 11, 200 }, - { 6, 0, 734 }, { 12, 11, 257 }, { 7, 10, 725 }, { 8, 10, 498 }, - { 11, 10, 268 }, { 6, 0, 1822 }, { 7, 0, 1798 }, { 7, 10, 773 }, - { 4, 11, 460 }, { 4, 11, 932 }, { 5, 11, 891 }, { 6, 0, 14 }, - { 4, 10, 583 }, { 7, 10, 1462 }, { 8, 11, 625 }, { 11, 10, 659 }, - { 5, 0, 113 }, { 6, 0, 243 }, { 6, 0, 1708 }, { 7, 0, 1865 }, - { 11, 0, 161 }, { 16, 0, 37 }, { 17, 0, 99 }, { 5, 10, 220 }, - { 6, 11, 76 }, { 5, 11, 461 }, { 7, 11, 1925 }, { 12, 0, 69 }, - { 8, 11, 92 }, { 9, 11, 221 }, { 11, 10, 803 }, { 4, 10, 544 }, - { 4, 0, 274 }, { 6, 0, 922 }, { 4, 0, 541 }, { 5, 0, 627 }, - { 6, 10, 437 }, { 6, 10, 564 }, { 11, 10, 181 }, { 13, 10, 183 }, - { 7, 10, 1192 }, { 7, 0, 166 }, { 4, 11, 763 }, { 5, 11, 253 }, - { 6, 0, 849 }, { 9, 11, 73 }, { 10, 11, 110 }, { 14, 11, 185 }, - { 17, 11, 119 }, { 5, 11, 212 }, { 12, 11, 35 }, { 13, 11, 382 }, - { 5, 0, 717 }, { 9, 0, 304 }, { 8, 0, 600 }, { 5, 0, 654 }, - { 6, 0, 273 }, { 10, 0, 188 }, { 13, 0, 377 }, { 18, 0, 77 }, - { 4, 10, 790 }, { 5, 10, 273 }, { 6, 10, 394 }, { 4, 0, 543 }, - { 7, 0, 410 }, { 11, 0, 98 }, { 11, 0, 524 }, { 13, 0, 87 }, - { 4, 0, 941 }, { 7, 11, 1175 }, { 4, 0, 250 }, { 7, 0, 1612 }, - { 11, 0, 186 }, { 12, 0, 133 }, { 6, 10, 127 }, { 7, 10, 1511 }, - { 8, 10, 613 }, { 12, 10, 495 }, { 12, 10, 586 }, { 12, 10, 660 }, - { 12, 10, 668 }, { 14, 10, 385 }, { 15, 10, 118 }, { 17, 10, 20 }, - { 18, 10, 98 }, { 6, 0, 1785 }, { 5, 11, 816 }, { 6, 0, 1339 }, - { 7, 0, 961 }, { 7, 0, 1085 }, { 7, 0, 1727 }, { 8, 0, 462 }, - { 6, 10, 230 }, { 7, 11, 1727 }, { 9, 0, 636 }, { 7, 10, 1954 }, - { 4, 0, 780 }, { 5, 11, 869 }, { 5, 11, 968 }, { 6, 11, 1626 }, - { 8, 11, 734 }, { 8, 11, 784 }, { 4, 11, 542 }, { 6, 11, 1716 }, - { 6, 11, 1727 }, { 7, 11, 1082 }, { 7, 11, 1545 }, { 8, 11, 56 }, - { 8, 11, 118 }, { 8, 11, 412 }, { 8, 11, 564 }, { 9, 11, 888 }, - { 9, 11, 908 }, { 10, 11, 50 }, { 10, 11, 423 }, { 11, 11, 685 }, - { 11, 11, 697 }, { 11, 11, 933 }, { 12, 11, 299 }, { 13, 11, 126 }, - { 13, 11, 136 }, { 13, 11, 170 }, { 13, 11, 190 }, { 6, 11, 226 }, - { 4, 11, 232 }, { 9, 11, 202 }, { 10, 11, 474 }, { 12, 11, 433 }, - { 9, 11, 500 }, { 5, 0, 529 }, { 8, 10, 68 }, { 4, 10, 654 }, - { 4, 10, 156 }, { 7, 10, 998 }, { 7, 10, 1045 }, { 7, 10, 1860 }, - { 9, 10, 48 }, { 9, 10, 692 }, { 11, 10, 419 }, { 11, 10, 602 }, - { 7, 0, 1276 }, { 8, 0, 474 }, { 9, 0, 652 }, { 6, 11, 108 }, - { 7, 11, 1003 }, { 7, 11, 1181 }, { 8, 11, 343 }, { 7, 11, 1264 }, - { 7, 11, 1678 }, { 11, 11, 945 }, { 12, 11, 341 }, { 12, 11, 471 }, - { 12, 11, 569 }, { 6, 11, 1712 }, { 5, 0, 948 }, { 12, 0, 468 }, - { 19, 0, 96 }, { 20, 0, 24 }, { 4, 11, 133 }, { 7, 11, 711 }, - { 7, 11, 1298 }, { 7, 11, 1585 }, { 7, 11, 1929 }, { 6, 0, 753 }, - { 12, 0, 657 }, { 11, 0, 941 }, { 6, 11, 99 }, { 7, 11, 1808 }, - { 17, 11, 57 }, { 6, 11, 574 }, { 7, 11, 428 }, { 7, 11, 1250 }, - { 10, 11, 669 }, { 11, 11, 485 }, { 11, 11, 840 }, { 12, 11, 300 }, - { 14, 11, 250 }, { 4, 0, 532 }, { 5, 0, 706 }, { 7, 0, 662 }, - { 5, 0, 837 }, { 6, 0, 1651 }, { 11, 0, 985 }, { 7, 0, 1861 }, - { 9, 10, 197 }, { 10, 10, 300 }, { 12, 10, 473 }, { 13, 10, 90 }, - { 13, 10, 405 }, { 9, 11, 252 }, { 6, 11, 323 }, { 7, 11, 1564 }, - { 4, 0, 330 }, { 4, 0, 863 }, { 7, 0, 933 }, { 7, 0, 2012 }, - { 8, 0, 292 }, { 7, 11, 461 }, { 8, 11, 775 }, { 10, 11, 435 }, - { 4, 10, 606 }, { 4, 11, 655 }, { 7, 11, 850 }, { 17, 11, 75 }, - { 18, 11, 137 }, { 7, 0, 767 }, { 7, 10, 1978 }, { 8, 10, 676 }, - { 4, 0, 641 }, { 7, 11, 1559 }, { 6, 0, 1233 }, { 9, 0, 242 }, - { 17, 0, 114 }, { 4, 10, 361 }, { 5, 10, 315 }, { 9, 0, 883 }, - { 4, 10, 461 }, { 10, 0, 274 }, { 6, 0, 2008 }, { 6, 0, 1794 }, - { 4, 0, 703 }, { 7, 0, 207 }, { 12, 0, 285 }, { 4, 10, 472 }, - { 4, 0, 571 }, { 5, 0, 873 }, { 5, 0, 960 }, { 8, 0, 823 }, - { 9, 0, 881 }, { 8, 11, 577 }, { 7, 0, 617 }, { 10, 0, 498 }, - { 11, 0, 501 }, { 12, 0, 16 }, { 12, 0, 150 }, { 10, 10, 747 }, - { 4, 0, 431 }, { 5, 10, 155 }, { 11, 0, 283 }, { 11, 0, 567 }, - { 7, 10, 163 }, { 8, 10, 319 }, { 9, 10, 402 }, { 10, 10, 24 }, - { 10, 10, 681 }, { 11, 10, 200 }, { 12, 10, 253 }, { 12, 10, 410 }, - { 14, 10, 219 }, { 4, 11, 413 }, { 5, 11, 677 }, { 8, 11, 432 }, - { 12, 11, 280 }, { 9, 0, 401 }, { 5, 10, 475 }, { 7, 10, 1780 }, - { 11, 10, 297 }, { 11, 10, 558 }, { 14, 10, 322 }, { 19, 10, 76 }, - { 6, 0, 781 }, { 9, 0, 134 }, { 10, 0, 2 }, { 10, 0, 27 }, - { 10, 0, 333 }, { 11, 0, 722 }, { 15, 0, 1 }, { 5, 0, 33 }, - { 6, 0, 470 }, { 11, 0, 424 }, { 7, 0, 2006 }, { 12, 0, 783 }, - { 7, 10, 1956 }, { 8, 0, 274 }, { 7, 0, 1882 }, { 4, 0, 794 }, - { 7, 0, 1848 }, { 5, 10, 944 }, { 6, 10, 1769 }, { 6, 0, 47 }, - { 7, 0, 90 }, { 7, 0, 664 }, { 7, 0, 830 }, { 7, 0, 1380 }, - { 7, 0, 2025 }, { 8, 0, 448 }, { 8, 0, 828 }, { 4, 10, 144 }, - { 6, 0, 1199 }, { 4, 11, 395 }, { 11, 11, 762 }, { 7, 11, 1504 }, - { 9, 0, 417 }, { 9, 0, 493 }, { 9, 11, 174 }, { 10, 11, 164 }, - { 11, 11, 440 }, { 11, 11, 841 }, { 15, 11, 98 }, { 6, 11, 426 }, - { 11, 11, 1002 }, { 6, 0, 295 }, { 6, 0, 816 }, { 6, 10, 247 }, - { 9, 10, 555 }, { 5, 0, 1019 }, { 4, 0, 620 }, { 5, 11, 476 }, - { 10, 10, 280 }, { 10, 10, 797 }, { 11, 0, 464 }, { 5, 11, 76 }, - { 6, 11, 458 }, { 6, 11, 497 }, { 7, 11, 764 }, { 7, 11, 868 }, - { 9, 11, 658 }, { 10, 11, 594 }, { 11, 11, 173 }, { 11, 11, 566 }, - { 12, 11, 20 }, { 12, 11, 338 }, { 13, 11, 200 }, { 6, 0, 208 }, - { 4, 11, 526 }, { 7, 11, 1029 }, { 7, 11, 1054 }, { 4, 11, 636 }, - { 6, 11, 233 }, { 7, 11, 660 }, { 7, 11, 1124 }, { 17, 11, 31 }, - { 19, 11, 22 }, { 23, 11, 14 }, { 10, 0, 442 }, { 5, 10, 428 }, - { 10, 0, 930 }, { 12, 0, 778 }, { 6, 0, 68 }, { 7, 0, 448 }, - { 7, 0, 1629 }, { 7, 0, 1769 }, { 7, 0, 1813 }, { 8, 0, 442 }, - { 8, 0, 516 }, { 9, 0, 710 }, { 10, 0, 282 }, { 10, 0, 722 }, - { 7, 10, 1717 }, { 10, 10, 546 }, { 6, 0, 1128 }, { 11, 0, 844 }, - { 12, 0, 104 }, { 12, 0, 625 }, { 4, 11, 432 }, { 7, 11, 824 }, - { 10, 10, 189 }, { 5, 0, 787 }, { 5, 10, 99 }, { 4, 11, 279 }, - { 7, 11, 301 }, { 9, 11, 362 }, { 8, 0, 491 }, { 4, 10, 397 }, - { 8, 10, 555 }, { 4, 11, 178 }, { 5, 11, 399 }, { 6, 0, 711 }, - { 16, 0, 9 }, { 4, 0, 403 }, { 5, 0, 441 }, { 7, 0, 450 }, - { 10, 0, 840 }, { 11, 0, 101 }, { 12, 0, 193 }, { 13, 0, 430 }, - { 7, 11, 1246 }, { 12, 10, 398 }, { 20, 10, 39 }, { 21, 10, 11 }, - { 22, 10, 41 }, { 4, 10, 485 }, { 7, 10, 353 }, { 7, 10, 1523 }, - { 6, 10, 366 }, { 7, 10, 1384 }, { 7, 10, 1601 }, { 7, 11, 1912 }, - { 7, 0, 396 }, { 10, 0, 160 }, { 7, 11, 396 }, { 9, 10, 282 }, - { 6, 11, 1692 }, { 4, 10, 157 }, { 5, 10, 471 }, { 6, 11, 202 }, - { 10, 11, 448 }, { 11, 11, 208 }, { 12, 11, 360 }, { 17, 11, 117 }, - { 17, 11, 118 }, { 18, 11, 27 }, { 20, 11, 67 }, { 5, 0, 679 }, - { 9, 0, 326 }, { 8, 10, 116 }, { 7, 11, 872 }, { 10, 11, 516 }, - { 11, 11, 167 }, { 4, 11, 224 }, { 5, 11, 546 }, { 7, 11, 35 }, - { 8, 11, 11 }, { 8, 11, 12 }, { 9, 11, 315 }, { 9, 11, 533 }, - { 10, 11, 802 }, { 11, 11, 166 }, { 12, 11, 525 }, { 14, 11, 243 }, - { 7, 0, 1128 }, { 7, 11, 1920 }, { 5, 11, 241 }, { 8, 11, 242 }, - { 9, 11, 451 }, { 10, 11, 667 }, { 11, 11, 598 }, { 12, 11, 429 }, - { 6, 0, 737 }, { 5, 10, 160 }, { 7, 10, 363 }, { 7, 10, 589 }, - { 10, 10, 170 }, { 13, 10, 55 }, { 7, 0, 1796 }, { 14, 11, 254 }, - { 4, 0, 574 }, { 7, 0, 350 }, { 7, 0, 1024 }, { 8, 0, 338 }, - { 9, 0, 677 }, { 10, 0, 808 }, { 6, 0, 1096 }, { 9, 11, 516 }, - { 7, 0, 405 }, { 10, 0, 491 }, { 4, 10, 108 }, { 4, 11, 366 }, - { 11, 10, 498 }, { 11, 11, 337 }, { 14, 11, 303 }, { 6, 11, 1736 }, - { 7, 0, 1081 }, { 12, 11, 364 }, { 7, 10, 1005 }, { 12, 10, 609 }, - { 7, 0, 1676 }, { 4, 10, 895 }, { 5, 10, 772 }, { 7, 0, 2037 }, - { 6, 0, 1207 }, { 11, 11, 916 }, { 14, 11, 419 }, { 14, 11, 140 }, - { 20, 11, 41 }, { 6, 11, 331 }, { 8, 11, 623 }, { 9, 0, 944 }, - { 9, 0, 969 }, { 9, 0, 1022 }, { 12, 0, 913 }, { 12, 0, 936 }, - { 15, 0, 177 }, { 15, 0, 193 }, { 4, 10, 926 }, { 5, 10, 983 }, - { 5, 0, 354 }, { 7, 11, 506 }, { 8, 0, 598 }, { 9, 0, 664 }, - { 10, 0, 441 }, { 4, 11, 640 }, { 5, 11, 513 }, { 9, 0, 297 }, - { 4, 10, 538 }, { 6, 10, 294 }, { 7, 10, 1267 }, { 8, 10, 624 }, - { 7, 0, 1772 }, { 7, 11, 1888 }, { 8, 11, 289 }, { 11, 11, 45 }, - { 12, 11, 278 }, { 12, 11, 537 }, { 7, 10, 1325 }, { 10, 0, 751 }, - { 13, 0, 37 }, { 6, 0, 1828 }, { 4, 10, 757 }, { 4, 11, 394 }, - { 6, 0, 257 }, { 7, 0, 1522 }, { 4, 0, 582 }, { 9, 0, 191 }, - { 7, 11, 1931 }, { 7, 11, 574 }, { 7, 11, 1719 }, { 9, 11, 145 }, - { 4, 11, 658 }, { 10, 0, 790 }, { 4, 11, 369 }, { 9, 11, 781 }, - { 10, 11, 144 }, { 11, 11, 385 }, { 13, 11, 161 }, { 13, 11, 228 }, - { 13, 11, 268 }, { 20, 11, 107 }, { 8, 0, 469 }, { 10, 0, 47 }, - { 8, 11, 374 }, { 6, 0, 306 }, { 7, 0, 1140 }, { 7, 0, 1340 }, - { 8, 0, 133 }, { 10, 0, 449 }, { 11, 0, 1011 }, { 7, 10, 1875 }, - { 11, 10, 124 }, { 4, 11, 344 }, { 6, 11, 498 }, { 11, 11, 323 }, - { 9, 0, 299 }, { 4, 0, 837 }, { 5, 11, 906 }, { 5, 0, 329 }, - { 8, 0, 260 }, { 10, 0, 10 }, { 6, 0, 1320 }, { 4, 0, 657 }, - { 18, 0, 158 }, { 7, 0, 1191 }, { 24, 0, 7 }, { 6, 0, 1939 }, - { 8, 0, 974 }, { 10, 0, 996 }, { 7, 0, 1665 }, { 11, 11, 126 }, - { 11, 11, 287 }, { 15, 0, 8 }, { 14, 11, 149 }, { 14, 11, 399 }, - { 15, 11, 57 }, { 5, 0, 66 }, { 7, 0, 1896 }, { 8, 0, 288 }, - { 7, 0, 175 }, { 10, 0, 494 }, { 5, 10, 150 }, { 8, 10, 603 }, - { 9, 10, 593 }, { 9, 10, 634 }, { 10, 10, 173 }, { 11, 10, 462 }, - { 11, 10, 515 }, { 13, 10, 216 }, { 13, 10, 288 }, { 14, 10, 400 }, - { 6, 0, 1643 }, { 8, 11, 21 }, { 4, 0, 21 }, { 5, 0, 91 }, - { 5, 0, 648 }, { 5, 0, 750 }, { 5, 0, 781 }, { 6, 0, 54 }, - { 6, 0, 112 }, { 6, 0, 402 }, { 6, 0, 1732 }, { 7, 0, 315 }, - { 7, 0, 749 }, { 7, 0, 1427 }, { 7, 0, 1900 }, { 9, 0, 78 }, - { 9, 0, 508 }, { 10, 0, 611 }, { 10, 0, 811 }, { 11, 0, 510 }, - { 11, 0, 728 }, { 13, 0, 36 }, { 14, 0, 39 }, { 16, 0, 83 }, - { 17, 0, 124 }, { 20, 0, 30 }, { 4, 0, 668 }, { 8, 0, 570 }, - { 10, 0, 322 }, { 10, 0, 719 }, { 11, 0, 407 }, { 7, 11, 1381 }, - { 8, 11, 193 }, { 12, 10, 108 }, { 13, 10, 291 }, { 4, 11, 616 }, - { 8, 11, 692 }, { 8, 0, 125 }, { 8, 0, 369 }, { 8, 0, 524 }, - { 10, 0, 486 }, { 11, 0, 13 }, { 11, 0, 381 }, { 11, 0, 736 }, - { 11, 0, 766 }, { 11, 0, 845 }, { 13, 0, 114 }, { 13, 0, 292 }, - { 14, 0, 47 }, { 6, 0, 1247 }, { 6, 0, 1684 }, { 6, 0, 1731 }, - { 7, 0, 356 }, { 8, 0, 54 }, { 8, 0, 221 }, { 9, 0, 225 }, - { 9, 0, 356 }, { 10, 0, 77 }, { 10, 0, 446 }, { 10, 0, 731 }, - { 12, 0, 404 }, { 13, 0, 491 }, { 7, 10, 1777 }, { 4, 11, 305 }, - { 4, 10, 493 }, { 16, 10, 55 }, { 4, 0, 951 }, { 6, 0, 1809 }, - { 6, 0, 1849 }, { 8, 0, 846 }, { 8, 0, 866 }, { 8, 0, 899 }, - { 10, 0, 896 }, { 12, 0, 694 }, { 14, 0, 468 }, { 5, 11, 214 }, - { 7, 11, 603 }, { 8, 11, 611 }, { 9, 11, 686 }, { 10, 11, 88 }, - { 11, 11, 459 }, { 11, 11, 496 }, { 12, 11, 463 }, { 12, 11, 590 }, - { 13, 11, 0 }, { 14, 11, 214 }, { 4, 0, 411 }, { 4, 0, 80 }, - { 5, 0, 44 }, { 12, 11, 74 }, { 15, 0, 31 }, { 7, 0, 669 }, - { 6, 10, 568 }, { 7, 10, 1804 }, { 8, 10, 362 }, { 8, 10, 410 }, - { 8, 10, 830 }, { 9, 10, 514 }, { 11, 10, 649 }, { 14, 10, 157 }, - { 7, 0, 673 }, { 6, 11, 1703 }, { 4, 10, 625 }, { 6, 0, 1303 }, - { 5, 0, 299 }, { 7, 0, 1083 }, { 10, 0, 704 }, { 6, 0, 275 }, - { 7, 0, 408 }, { 6, 10, 158 }, { 7, 10, 129 }, { 7, 10, 181 }, - { 8, 10, 276 }, { 8, 10, 377 }, { 10, 10, 523 }, { 11, 10, 816 }, - { 12, 10, 455 }, { 13, 10, 303 }, { 14, 10, 135 }, { 4, 0, 219 }, - { 7, 0, 367 }, { 7, 0, 1713 }, { 7, 0, 1761 }, { 9, 0, 86 }, - { 9, 0, 537 }, { 10, 0, 165 }, { 12, 0, 219 }, { 12, 0, 561 }, - { 8, 0, 216 }, { 4, 10, 1 }, { 4, 11, 737 }, { 6, 11, 317 }, - { 7, 10, 1143 }, { 7, 10, 1463 }, { 9, 10, 207 }, { 9, 10, 390 }, - { 9, 10, 467 }, { 10, 11, 98 }, { 11, 11, 294 }, { 11, 10, 836 }, - { 12, 11, 60 }, { 12, 11, 437 }, { 13, 11, 64 }, { 13, 11, 380 }, - { 14, 11, 430 }, { 6, 11, 1758 }, { 8, 11, 520 }, { 9, 11, 345 }, - { 9, 11, 403 }, { 14, 11, 350 }, { 5, 11, 47 }, { 10, 11, 242 }, - { 10, 11, 579 }, { 5, 11, 139 }, { 7, 11, 1168 }, { 10, 11, 539 }, - { 7, 0, 1319 }, { 4, 10, 295 }, { 4, 10, 723 }, { 5, 10, 895 }, - { 7, 10, 1031 }, { 8, 10, 199 }, { 8, 10, 340 }, { 9, 10, 153 }, - { 9, 10, 215 }, { 10, 10, 21 }, { 10, 10, 59 }, { 10, 10, 80 }, - { 10, 10, 224 }, { 10, 10, 838 }, { 11, 10, 229 }, { 11, 10, 652 }, - { 12, 10, 192 }, { 13, 10, 146 }, { 14, 10, 91 }, { 12, 0, 428 }, - { 9, 10, 51 }, { 5, 0, 514 }, { 5, 10, 309 }, { 12, 10, 211 }, - { 6, 0, 1010 }, { 5, 10, 125 }, { 8, 10, 77 }, { 10, 10, 15 }, - { 4, 0, 55 }, { 5, 0, 301 }, { 6, 0, 571 }, { 14, 0, 49 }, - { 18, 0, 102 }, { 8, 11, 370 }, { 4, 11, 107 }, { 7, 11, 613 }, - { 8, 11, 358 }, { 8, 11, 439 }, { 8, 11, 504 }, { 9, 11, 501 }, - { 10, 11, 383 }, { 11, 11, 477 }, { 4, 11, 229 }, { 5, 0, 364 }, - { 5, 10, 439 }, { 4, 11, 903 }, { 7, 11, 1816 }, { 11, 0, 379 }, - { 12, 10, 76 }, { 4, 0, 76 }, { 4, 0, 971 }, { 7, 0, 1550 }, - { 9, 0, 306 }, { 9, 0, 430 }, { 9, 0, 663 }, { 10, 0, 683 }, - { 10, 0, 921 }, { 11, 0, 427 }, { 11, 0, 753 }, { 12, 0, 334 }, - { 12, 0, 442 }, { 14, 0, 258 }, { 14, 0, 366 }, { 15, 0, 131 }, - { 9, 0, 52 }, { 4, 11, 47 }, { 6, 11, 373 }, { 7, 11, 452 }, - { 7, 11, 543 }, { 7, 11, 1714 }, { 7, 11, 1856 }, { 9, 11, 6 }, - { 11, 11, 257 }, { 11, 11, 391 }, { 4, 10, 8 }, { 7, 10, 1152 }, - { 7, 10, 1153 }, { 7, 10, 1715 }, { 9, 10, 374 }, { 10, 10, 478 }, - { 11, 10, 648 }, { 4, 11, 785 }, { 5, 11, 368 }, { 7, 10, 1099 }, - { 7, 11, 860 }, { 5, 11, 980 }, { 6, 11, 1754 }, { 6, 0, 1258 }, - { 6, 0, 1058 }, { 6, 0, 1359 }, { 7, 11, 536 }, { 7, 11, 1331 }, - { 8, 11, 143 }, { 4, 0, 656 }, { 7, 0, 779 }, { 8, 10, 87 }, - { 5, 11, 19 }, { 6, 11, 533 }, { 18, 11, 126 }, { 7, 0, 144 }, - { 10, 10, 438 }, { 5, 11, 395 }, { 5, 11, 951 }, { 6, 11, 1776 }, - { 7, 0, 1373 }, { 7, 0, 554 }, { 7, 0, 605 }, { 13, 0, 10 }, - { 4, 10, 69 }, { 5, 10, 122 }, { 9, 10, 656 }, { 10, 10, 464 }, - { 5, 10, 849 }, { 6, 10, 1633 }, { 5, 0, 838 }, { 5, 0, 841 }, - { 6, 0, 1649 }, { 5, 0, 1012 }, { 11, 10, 499 }, { 7, 10, 476 }, - { 7, 10, 1592 }, { 10, 10, 87 }, { 6, 0, 251 }, { 7, 0, 365 }, - { 7, 0, 1357 }, { 7, 0, 1497 }, { 8, 0, 154 }, { 13, 0, 281 }, - { 4, 11, 441 }, { 4, 11, 695 }, { 7, 11, 497 }, { 9, 11, 387 }, - { 19, 11, 81 }, { 5, 0, 340 }, { 14, 10, 283 }, { 14, 11, 283 }, - { 6, 0, 810 }, { 7, 11, 1894 }, { 11, 0, 495 }, { 5, 11, 284 }, - { 6, 11, 49 }, { 6, 11, 350 }, { 7, 11, 1 }, { 7, 11, 377 }, - { 7, 11, 1693 }, { 8, 11, 18 }, { 8, 11, 678 }, { 9, 11, 161 }, - { 9, 11, 585 }, { 9, 11, 671 }, { 9, 11, 839 }, { 11, 11, 912 }, - { 13, 11, 427 }, { 5, 10, 859 }, { 7, 10, 1160 }, { 8, 10, 107 }, - { 9, 10, 291 }, { 9, 10, 439 }, { 10, 10, 663 }, { 11, 10, 609 }, - { 12, 10, 197 }, { 8, 0, 261 }, { 9, 0, 144 }, { 9, 0, 466 }, - { 10, 0, 370 }, { 12, 0, 470 }, { 13, 0, 144 }, { 14, 0, 348 }, - { 9, 0, 897 }, { 6, 0, 248 }, { 9, 0, 546 }, { 10, 0, 535 }, - { 11, 0, 681 }, { 13, 0, 135 }, { 4, 0, 358 }, { 7, 0, 1496 }, - { 6, 0, 567 }, { 8, 0, 445 }, { 4, 10, 117 }, { 6, 10, 372 }, - { 7, 10, 1905 }, { 14, 10, 323 }, { 4, 10, 722 }, { 11, 10, 471 }, - { 6, 0, 697 }, { 6, 0, 996 }, { 7, 11, 2007 }, { 9, 11, 101 }, - { 9, 11, 450 }, { 10, 11, 66 }, { 10, 11, 842 }, { 11, 11, 536 }, - { 12, 11, 587 }, { 4, 0, 577 }, { 6, 0, 1336 }, { 9, 10, 5 }, - { 12, 10, 216 }, { 12, 10, 294 }, { 12, 10, 298 }, { 12, 10, 400 }, - { 12, 10, 518 }, { 13, 10, 229 }, { 15, 10, 139 }, { 6, 0, 174 }, - { 10, 0, 917 }, { 6, 10, 1774 }, { 5, 10, 12 }, { 7, 10, 375 }, - { 9, 10, 88 }, { 9, 10, 438 }, { 11, 11, 62 }, { 11, 10, 270 }, - { 6, 11, 1766 }, { 6, 11, 0 }, { 7, 11, 84 }, { 7, 10, 816 }, - { 7, 10, 1241 }, { 9, 10, 283 }, { 9, 10, 520 }, { 10, 10, 213 }, - { 10, 10, 307 }, { 10, 10, 463 }, { 10, 10, 671 }, { 10, 10, 746 }, - { 11, 10, 401 }, { 11, 10, 794 }, { 11, 11, 895 }, { 12, 10, 517 }, - { 17, 11, 11 }, { 18, 10, 107 }, { 19, 10, 115 }, { 5, 0, 878 }, - { 5, 0, 972 }, { 6, 11, 1665 }, { 7, 11, 256 }, { 7, 11, 1388 }, - { 10, 11, 499 }, { 4, 10, 258 }, { 8, 10, 639 }, { 4, 11, 22 }, - { 5, 11, 10 }, { 6, 10, 22 }, { 7, 11, 848 }, { 7, 10, 903 }, - { 7, 10, 1963 }, { 8, 11, 97 }, { 10, 10, 577 }, { 5, 10, 681 }, - { 8, 10, 782 }, { 5, 11, 481 }, { 4, 0, 351 }, { 4, 10, 664 }, - { 5, 10, 804 }, { 11, 10, 1013 }, { 6, 11, 134 }, { 7, 11, 437 }, - { 7, 11, 959 }, { 9, 11, 37 }, { 14, 11, 285 }, { 14, 11, 371 }, - { 16, 11, 60 }, { 7, 11, 486 }, { 8, 11, 155 }, { 11, 11, 93 }, - { 12, 11, 164 }, { 4, 0, 286 }, { 7, 0, 438 }, { 7, 0, 627 }, - { 7, 0, 1516 }, { 8, 0, 40 }, { 9, 0, 56 }, { 9, 0, 294 }, - { 10, 0, 30 }, { 11, 0, 969 }, { 11, 0, 995 }, { 18, 0, 148 }, - { 5, 11, 591 }, { 7, 11, 337 }, { 6, 0, 1950 }, { 5, 10, 32 }, - { 10, 11, 500 }, { 5, 11, 380 }, { 5, 11, 650 }, { 8, 11, 310 }, - { 4, 11, 364 }, { 7, 11, 1156 }, { 7, 11, 1187 }, { 9, 11, 409 }, - { 4, 0, 738 }, { 6, 11, 482 }, { 4, 11, 781 }, { 6, 11, 487 }, - { 7, 11, 926 }, { 8, 11, 263 }, { 11, 11, 500 }, { 7, 11, 418 }, - { 6, 0, 2047 }, { 10, 0, 969 }, { 4, 10, 289 }, { 7, 10, 629 }, - { 7, 10, 1698 }, { 7, 10, 1711 }, { 12, 10, 215 }, { 6, 10, 450 }, - { 8, 10, 109 }, { 6, 0, 818 }, { 8, 10, 705 }, { 5, 0, 866 }, - { 4, 11, 94 }, { 7, 11, 1265 }, { 4, 11, 417 }, { 6, 0, 1467 }, - { 7, 10, 1238 }, { 4, 0, 972 }, { 6, 0, 1851 }, { 6, 0, 1857 }, - { 6, 0, 355 }, { 5, 0, 116 }, { 4, 0, 457 }, { 7, 11, 1411 }, - { 4, 11, 408 }, { 4, 11, 741 }, { 7, 11, 500 }, { 6, 10, 26 }, - { 14, 11, 137 }, { 5, 0, 527 }, { 6, 0, 189 }, { 7, 0, 859 }, - { 8, 0, 267 }, { 11, 0, 104 }, { 11, 0, 554 }, { 15, 0, 60 }, - { 15, 0, 125 }, { 6, 0, 1613 }, { 4, 10, 414 }, { 5, 10, 467 }, - { 9, 10, 654 }, { 10, 10, 451 }, { 12, 10, 59 }, { 13, 10, 375 }, - { 7, 10, 17 }, { 6, 0, 116 }, { 7, 11, 541 }, { 7, 10, 955 }, - { 6, 11, 73 }, { 7, 11, 177 }, { 5, 11, 576 }, { 6, 0, 886 }, - { 5, 0, 487 }, { 4, 0, 86 }, { 5, 0, 667 }, { 5, 0, 753 }, - { 6, 0, 316 }, { 6, 0, 455 }, { 7, 0, 946 }, { 14, 11, 231 }, - { 22, 0, 45 }, { 6, 0, 863 }, { 6, 0, 1953 }, { 6, 10, 280 }, - { 10, 10, 502 }, { 11, 10, 344 }, { 12, 10, 38 }, { 4, 0, 79 }, - { 7, 0, 1773 }, { 10, 0, 450 }, { 11, 0, 589 }, { 13, 0, 332 }, - { 13, 0, 493 }, { 14, 0, 183 }, { 14, 0, 334 }, { 14, 0, 362 }, - { 14, 0, 368 }, { 14, 0, 376 }, { 14, 0, 379 }, { 19, 0, 90 }, - { 19, 0, 103 }, { 19, 0, 127 }, { 20, 0, 90 }, { 5, 10, 45 }, - { 7, 10, 1161 }, { 11, 10, 448 }, { 11, 10, 880 }, { 13, 10, 139 }, - { 13, 10, 407 }, { 15, 10, 16 }, { 17, 10, 95 }, { 18, 10, 66 }, - { 18, 10, 88 }, { 18, 10, 123 }, { 21, 10, 7 }, { 8, 10, 777 }, - { 4, 10, 410 }, { 7, 10, 521 }, { 7, 10, 1778 }, { 7, 11, 538 }, - { 14, 0, 381 }, { 5, 11, 413 }, { 6, 0, 1142 }, { 6, 0, 1189 }, - { 8, 11, 495 }, { 5, 0, 663 }, { 6, 0, 1962 }, { 6, 0, 2003 }, - { 7, 11, 54 }, { 8, 11, 312 }, { 10, 11, 191 }, { 10, 11, 614 }, - { 12, 11, 567 }, { 4, 10, 436 }, { 5, 0, 846 }, { 10, 0, 528 }, - { 11, 0, 504 }, { 7, 10, 1587 }, { 7, 10, 1707 }, { 5, 0, 378 }, - { 8, 0, 465 }, { 9, 0, 286 }, { 10, 0, 185 }, { 10, 0, 562 }, - { 10, 0, 635 }, { 11, 0, 31 }, { 11, 0, 393 }, { 13, 0, 312 }, - { 18, 0, 65 }, { 18, 0, 96 }, { 19, 0, 89 }, { 7, 0, 899 }, - { 14, 0, 325 }, { 6, 11, 468 }, { 7, 11, 567 }, { 7, 11, 1478 }, - { 8, 11, 530 }, { 14, 11, 290 }, { 7, 0, 1880 }, { 9, 0, 680 }, - { 11, 0, 798 }, { 6, 0, 1770 }, { 4, 0, 648 }, { 22, 11, 35 }, - { 5, 0, 945 }, { 6, 0, 1656 }, { 6, 0, 1787 }, { 7, 0, 167 }, - { 8, 0, 824 }, { 9, 0, 391 }, { 10, 0, 375 }, { 11, 0, 185 }, - { 6, 11, 484 }, { 7, 11, 822 }, { 6, 0, 2046 }, { 7, 0, 1645 }, - { 8, 0, 352 }, { 9, 0, 249 }, { 4, 0, 152 }, { 6, 0, 611 }, - { 7, 0, 1733 }, { 6, 11, 1724 }, { 7, 11, 2022 }, { 5, 0, 1006 }, - { 13, 11, 96 }, { 5, 0, 420 }, { 7, 0, 1449 }, { 18, 11, 149 }, - { 7, 0, 832 }, { 7, 10, 663 }, { 5, 0, 351 }, { 5, 0, 40 }, - { 7, 0, 598 }, { 7, 0, 1638 }, { 8, 0, 78 }, { 9, 0, 166 }, - { 9, 0, 640 }, { 9, 0, 685 }, { 9, 0, 773 }, { 11, 0, 215 }, - { 13, 0, 65 }, { 14, 0, 172 }, { 14, 0, 317 }, { 17, 0, 6 }, - { 8, 0, 60 }, { 9, 0, 343 }, { 11, 0, 769 }, { 6, 0, 1354 }, - { 4, 0, 724 }, { 9, 0, 745 }, { 4, 11, 474 }, { 7, 0, 1951 }, - { 8, 0, 765 }, { 8, 0, 772 }, { 12, 0, 671 }, { 7, 0, 108 }, - { 8, 0, 219 }, { 8, 0, 388 }, { 9, 0, 775 }, { 11, 0, 275 }, - { 12, 0, 464 }, { 9, 0, 639 }, { 7, 10, 503 }, { 5, 11, 366 }, - { 5, 0, 15 }, { 6, 0, 56 }, { 7, 0, 1758 }, { 8, 0, 500 }, - { 9, 0, 730 }, { 11, 0, 331 }, { 13, 0, 150 }, { 14, 0, 282 }, - { 5, 11, 305 }, { 9, 11, 560 }, { 13, 11, 208 }, { 4, 10, 113 }, - { 5, 10, 163 }, { 5, 10, 735 }, { 7, 10, 1009 }, { 9, 10, 9 }, - { 9, 10, 771 }, { 12, 10, 90 }, { 13, 10, 138 }, { 13, 10, 410 }, - { 15, 10, 128 }, { 4, 10, 324 }, { 10, 10, 104 }, { 7, 11, 466 }, - { 14, 11, 27 }, { 6, 0, 1886 }, { 5, 0, 205 }, { 6, 0, 438 }, - { 9, 0, 711 }, { 4, 11, 480 }, { 6, 11, 167 }, { 6, 11, 302 }, - { 6, 11, 1642 }, { 7, 11, 130 }, { 7, 11, 656 }, { 7, 11, 837 }, - { 7, 11, 1547 }, { 7, 11, 1657 }, { 8, 11, 429 }, { 9, 11, 228 }, - { 10, 11, 643 }, { 13, 11, 289 }, { 13, 11, 343 }, { 19, 11, 101 }, - { 6, 0, 865 }, { 6, 0, 2025 }, { 8, 0, 965 }, { 7, 11, 278 }, - { 10, 11, 739 }, { 11, 11, 708 }, { 13, 11, 348 }, { 5, 0, 534 }, - { 7, 11, 1922 }, { 9, 0, 691 }, { 4, 10, 935 }, { 5, 10, 823 }, - { 6, 0, 443 }, { 9, 0, 237 }, { 9, 0, 571 }, { 9, 0, 695 }, - { 10, 0, 139 }, { 11, 0, 715 }, { 12, 0, 417 }, { 13, 0, 421 }, - { 5, 10, 269 }, { 7, 10, 434 }, { 7, 10, 891 }, { 8, 10, 339 }, - { 9, 10, 702 }, { 11, 10, 594 }, { 11, 10, 718 }, { 17, 10, 100 }, - { 6, 0, 1555 }, { 7, 0, 878 }, { 9, 10, 485 }, { 13, 10, 264 }, - { 6, 10, 1713 }, { 7, 10, 1810 }, { 11, 10, 866 }, { 12, 10, 103 }, - { 13, 10, 495 }, { 7, 10, 900 }, { 6, 0, 1410 }, { 9, 11, 316 }, - { 11, 11, 256 }, { 4, 0, 995 }, { 7, 0, 1033 }, { 4, 0, 578 }, - { 10, 0, 881 }, { 12, 0, 740 }, { 12, 0, 743 }, { 12, 0, 759 }, - { 4, 0, 822 }, { 5, 0, 923 }, { 14, 10, 143 }, { 7, 11, 1696 }, - { 6, 11, 363 }, { 7, 11, 1955 }, { 8, 11, 725 }, { 4, 0, 924 }, - { 5, 0, 665 }, { 7, 10, 2029 }, { 7, 0, 1901 }, { 4, 0, 265 }, - { 6, 0, 1092 }, { 6, 0, 1417 }, { 7, 0, 807 }, { 7, 0, 950 }, - { 5, 0, 93 }, { 12, 0, 267 }, { 13, 0, 498 }, { 7, 0, 1451 }, - { 5, 11, 813 }, { 7, 11, 2046 }, { 5, 10, 625 }, { 7, 10, 1617 }, - { 7, 0, 747 }, { 6, 0, 788 }, { 9, 0, 828 }, { 7, 0, 184 }, - { 11, 0, 307 }, { 11, 0, 400 }, { 15, 0, 130 }, { 5, 11, 712 }, - { 7, 11, 1855 }, { 8, 10, 425 }, { 8, 10, 693 }, { 9, 10, 720 }, - { 10, 10, 380 }, { 10, 10, 638 }, { 11, 11, 17 }, { 11, 10, 473 }, - { 12, 10, 61 }, { 13, 11, 321 }, { 16, 11, 67 }, { 7, 0, 198 }, - { 6, 11, 320 }, { 7, 11, 781 }, { 7, 11, 1921 }, { 9, 11, 55 }, - { 10, 11, 186 }, { 10, 11, 273 }, { 10, 11, 664 }, { 10, 11, 801 }, - { 11, 11, 996 }, { 11, 11, 997 }, { 13, 11, 157 }, { 14, 11, 170 }, - { 8, 11, 271 }, { 7, 0, 994 }, { 7, 11, 103 }, { 7, 11, 863 }, - { 11, 11, 184 }, { 14, 11, 299 }, { 17, 11, 62 }, { 11, 10, 551 }, - { 14, 10, 159 }, { 5, 0, 233 }, { 5, 0, 320 }, { 6, 0, 140 }, - { 8, 0, 295 }, { 8, 0, 615 }, { 8, 11, 615 }, { 5, 0, 978 }, - { 4, 0, 905 }, { 6, 0, 1701 }, { 9, 0, 843 }, { 4, 10, 168 }, - { 4, 0, 974 }, { 8, 0, 850 }, { 12, 0, 709 }, { 12, 0, 768 }, - { 12, 0, 786 }, { 7, 10, 91 }, { 24, 0, 6 }, { 10, 10, 532 }, - { 7, 10, 1884 }, { 4, 0, 509 }, { 6, 0, 1307 }, { 7, 0, 273 }, - { 5, 11, 77 }, { 7, 11, 1455 }, { 10, 11, 843 }, { 19, 11, 73 }, - { 22, 11, 5 }, { 4, 11, 458 }, { 7, 11, 1420 }, { 6, 11, 109 }, - { 10, 11, 382 }, { 6, 0, 201 }, { 6, 11, 330 }, { 7, 10, 70 }, - { 7, 11, 1084 }, { 10, 10, 240 }, { 11, 11, 142 }, { 19, 10, 93 }, - { 7, 0, 1041 }, { 12, 11, 328 }, { 5, 11, 354 }, { 6, 0, 1040 }, - { 5, 0, 693 }, { 6, 0, 774 }, { 11, 0, 234 }, { 4, 0, 336 }, - { 7, 0, 1399 }, { 11, 10, 392 }, { 20, 0, 22 }, { 20, 11, 22 }, - { 5, 0, 802 }, { 7, 0, 2021 }, { 8, 0, 805 }, { 5, 0, 167 }, - { 5, 0, 899 }, { 6, 0, 410 }, { 9, 0, 777 }, { 9, 0, 789 }, - { 6, 0, 1705 }, { 7, 10, 655 }, { 7, 10, 1844 }, { 4, 10, 145 }, - { 6, 10, 176 }, { 7, 10, 395 }, { 9, 10, 562 }, { 4, 10, 501 }, - { 7, 0, 10 }, { 5, 0, 11 }, { 6, 0, 117 }, { 6, 0, 485 }, - { 7, 0, 1133 }, { 9, 0, 582 }, { 9, 0, 594 }, { 10, 0, 82 }, - { 11, 0, 21 }, { 11, 0, 818 }, { 12, 0, 535 }, { 13, 0, 86 }, - { 20, 0, 91 }, { 23, 0, 13 }, { 6, 10, 509 }, { 4, 0, 264 }, - { 7, 0, 1067 }, { 8, 0, 204 }, { 8, 0, 385 }, { 11, 0, 953 }, - { 11, 11, 737 }, { 10, 0, 56 }, { 6, 0, 1917 }, { 5, 0, 470 }, - { 10, 11, 657 }, { 14, 11, 297 }, { 14, 11, 361 }, { 7, 11, 412 }, - { 7, 0, 1198 }, { 7, 11, 1198 }, { 8, 11, 556 }, { 14, 11, 123 }, - { 14, 11, 192 }, { 15, 11, 27 }, { 7, 11, 1985 }, { 14, 11, 146 }, - { 15, 11, 42 }, { 16, 11, 23 }, { 17, 11, 86 }, { 18, 11, 17 }, - { 11, 0, 1015 }, { 8, 11, 122 }, { 4, 10, 114 }, { 9, 10, 492 }, - { 13, 10, 462 }, { 14, 10, 215 }, { 4, 10, 77 }, { 5, 10, 361 }, - { 6, 10, 139 }, { 6, 10, 401 }, { 6, 10, 404 }, { 7, 10, 413 }, - { 7, 10, 715 }, { 7, 10, 1716 }, { 11, 10, 279 }, { 12, 10, 179 }, - { 12, 10, 258 }, { 13, 10, 244 }, { 14, 10, 358 }, { 6, 10, 1717 }, - { 7, 10, 1061 }, { 8, 10, 82 }, { 11, 10, 250 }, { 12, 10, 420 }, - { 13, 10, 184 }, { 5, 0, 715 }, { 7, 10, 724 }, { 9, 0, 919 }, - { 9, 0, 922 }, { 9, 0, 927 }, { 9, 0, 933 }, { 9, 0, 962 }, - { 9, 0, 1000 }, { 9, 0, 1002 }, { 9, 0, 1021 }, { 12, 0, 890 }, - { 12, 0, 907 }, { 12, 0, 930 }, { 15, 0, 207 }, { 15, 0, 228 }, - { 15, 0, 238 }, { 21, 0, 61 }, { 8, 0, 794 }, { 9, 0, 400 }, - { 10, 0, 298 }, { 14, 0, 228 }, { 5, 11, 430 }, { 5, 11, 932 }, - { 6, 11, 131 }, { 7, 11, 417 }, { 9, 11, 522 }, { 11, 11, 314 }, - { 13, 11, 390 }, { 4, 0, 867 }, { 8, 0, 724 }, { 4, 11, 507 }, - { 9, 11, 261 }, { 4, 11, 343 }, { 5, 11, 511 }, { 6, 0, 190 }, - { 7, 0, 768 }, { 7, 0, 1170 }, { 6, 10, 513 }, { 7, 10, 1052 }, - { 7, 11, 455 }, { 10, 11, 591 }, { 6, 0, 1066 }, { 9, 10, 899 }, - { 14, 0, 67 }, { 19, 0, 60 }, { 4, 0, 948 }, { 18, 0, 174 }, - { 18, 0, 176 }, { 7, 0, 1023 }, { 7, 10, 1417 }, { 12, 10, 382 }, - { 17, 10, 48 }, { 24, 10, 12 }, { 6, 11, 575 }, { 4, 0, 764 }, - { 6, 10, 545 }, { 7, 10, 565 }, { 7, 10, 1669 }, { 10, 10, 114 }, - { 11, 10, 642 }, { 12, 10, 618 }, { 6, 0, 137 }, { 9, 0, 75 }, - { 9, 0, 253 }, { 10, 0, 194 }, { 10, 0, 444 }, { 4, 0, 756 }, - { 5, 10, 5 }, { 8, 0, 1008 }, { 7, 10, 192 }, { 4, 0, 842 }, - { 11, 0, 643 }, { 12, 0, 115 }, { 8, 10, 763 }, { 11, 0, 67 }, - { 5, 10, 759 }, { 4, 0, 821 }, { 5, 0, 760 }, { 7, 0, 542 }, - { 8, 0, 135 }, { 8, 0, 496 }, { 7, 11, 580 }, { 7, 10, 370 }, - { 7, 10, 1007 }, { 7, 10, 1177 }, { 7, 10, 1565 }, { 7, 10, 1237 }, - { 12, 0, 736 }, { 7, 0, 319 }, { 7, 0, 355 }, { 7, 0, 763 }, - { 10, 0, 389 }, { 17, 0, 43 }, { 8, 11, 333 }, { 10, 11, 182 }, - { 4, 10, 87 }, { 5, 10, 250 }, { 13, 10, 298 }, { 10, 0, 786 }, - { 6, 0, 2044 }, { 8, 11, 330 }, { 12, 11, 477 }, { 7, 11, 1338 }, - { 4, 11, 125 }, { 6, 0, 1030 }, { 6, 0, 1083 }, { 4, 11, 721 }, - { 7, 10, 814 }, { 7, 11, 776 }, { 8, 11, 145 }, { 19, 11, 56 }, - { 6, 0, 1226 }, { 4, 10, 57 }, { 7, 10, 1195 }, { 7, 10, 1438 }, - { 7, 10, 1548 }, { 7, 10, 1835 }, { 7, 10, 1904 }, { 9, 10, 757 }, - { 10, 10, 604 }, { 11, 10, 519 }, { 7, 11, 792 }, { 8, 11, 147 }, - { 10, 11, 821 }, { 11, 11, 1021 }, { 9, 11, 797 }, { 4, 0, 58 }, - { 5, 0, 286 }, { 6, 0, 319 }, { 7, 0, 402 }, { 7, 0, 1254 }, - { 7, 0, 1903 }, { 8, 0, 356 }, { 12, 0, 408 }, { 4, 0, 389 }, - { 4, 0, 815 }, { 9, 0, 181 }, { 9, 0, 255 }, { 10, 0, 8 }, - { 10, 0, 29 }, { 10, 0, 816 }, { 11, 0, 311 }, { 11, 0, 561 }, - { 12, 0, 67 }, { 13, 0, 181 }, { 7, 11, 1472 }, { 7, 11, 1554 }, - { 7, 11, 1071 }, { 7, 11, 1541 }, { 7, 11, 1767 }, { 7, 11, 1806 }, - { 7, 11, 1999 }, { 9, 11, 248 }, { 10, 11, 400 }, { 11, 11, 162 }, - { 11, 11, 178 }, { 11, 11, 242 }, { 12, 11, 605 }, { 15, 11, 26 }, - { 16, 11, 44 }, { 5, 11, 168 }, { 5, 11, 930 }, { 8, 11, 74 }, - { 9, 11, 623 }, { 12, 11, 500 }, { 12, 11, 579 }, { 13, 11, 41 }, - { 15, 11, 93 }, { 6, 11, 220 }, { 7, 11, 1101 }, { 13, 11, 105 }, - { 5, 0, 474 }, { 7, 0, 507 }, { 4, 10, 209 }, { 7, 11, 507 }, - { 7, 10, 902 }, { 4, 0, 427 }, { 6, 0, 413 }, { 7, 10, 335 }, - { 7, 10, 1437 }, { 7, 10, 1668 }, { 8, 10, 553 }, { 8, 10, 652 }, - { 8, 10, 656 }, { 9, 10, 558 }, { 11, 10, 743 }, { 21, 10, 18 }, - { 4, 0, 730 }, { 6, 11, 19 }, { 7, 11, 1413 }, { 11, 11, 428 }, - { 5, 0, 373 }, { 4, 10, 559 }, { 7, 11, 96 }, { 8, 11, 401 }, - { 9, 11, 896 }, { 7, 0, 799 }, { 7, 0, 1972 }, { 5, 10, 1017 }, - { 10, 10, 511 }, { 7, 0, 1793 }, { 7, 11, 1961 }, { 7, 11, 1965 }, - { 8, 11, 702 }, { 8, 11, 750 }, { 8, 11, 150 }, { 8, 11, 737 }, - { 12, 11, 366 }, { 4, 0, 322 }, { 5, 10, 709 }, { 8, 11, 800 }, - { 9, 11, 148 }, { 9, 11, 872 }, { 9, 11, 890 }, { 11, 11, 309 }, - { 11, 11, 1001 }, { 13, 11, 267 }, { 13, 11, 323 }, { 6, 10, 1745 }, - { 7, 0, 290 }, { 8, 10, 206 }, { 7, 0, 1651 }, { 17, 0, 89 }, - { 11, 0, 2 }, { 4, 0, 672 }, { 6, 0, 1860 }, { 8, 0, 905 }, - { 10, 0, 844 }, { 10, 0, 846 }, { 10, 0, 858 }, { 12, 0, 699 }, - { 12, 0, 746 }, { 12, 0, 772 }, { 7, 11, 424 }, { 5, 11, 547 }, - { 5, 0, 737 }, { 5, 11, 490 }, { 6, 11, 615 }, { 6, 11, 620 }, - { 7, 11, 683 }, { 6, 0, 746 }, { 6, 0, 1612 }, { 4, 10, 776 }, - { 9, 11, 385 }, { 21, 11, 17 }, { 5, 0, 145 }, { 7, 10, 1272 }, - { 7, 0, 884 }, { 12, 0, 124 }, { 4, 0, 387 }, { 7, 0, 1288 }, - { 5, 11, 133 }, { 8, 10, 406 }, { 8, 11, 187 }, { 6, 0, 679 }, - { 8, 11, 8 }, { 10, 11, 0 }, { 7, 0, 550 }, { 7, 11, 798 }, - { 8, 11, 685 }, { 7, 11, 1086 }, { 17, 11, 46 }, { 8, 10, 175 }, - { 10, 10, 168 }, { 10, 10, 573 }, { 7, 0, 1305 }, { 4, 0, 576 }, - { 7, 0, 1263 }, { 6, 0, 686 }, { 6, 0, 1563 }, { 6, 0, 607 }, - { 5, 0, 919 }, { 6, 0, 1673 }, { 20, 0, 37 }, { 8, 11, 774 }, - { 10, 11, 670 }, { 12, 11, 51 }, { 5, 10, 784 }, { 11, 10, 882 }, - { 4, 0, 82 }, { 5, 0, 333 }, { 5, 0, 904 }, { 6, 0, 207 }, - { 7, 0, 325 }, { 7, 0, 1726 }, { 8, 0, 101 }, { 10, 0, 778 }, - { 11, 0, 220 }, { 7, 11, 371 }, { 4, 0, 958 }, { 5, 0, 903 }, - { 4, 11, 127 }, { 5, 11, 350 }, { 6, 11, 356 }, { 8, 11, 426 }, - { 9, 11, 572 }, { 10, 11, 247 }, { 11, 11, 312 }, { 12, 0, 147 }, - { 6, 11, 59 }, { 7, 11, 885 }, { 9, 11, 603 }, { 13, 11, 397 }, - { 10, 0, 367 }, { 9, 10, 14 }, { 9, 10, 441 }, { 11, 10, 9 }, - { 11, 10, 966 }, { 12, 10, 287 }, { 13, 10, 342 }, { 13, 10, 402 }, - { 15, 10, 110 }, { 15, 10, 163 }, { 6, 0, 690 }, { 4, 0, 705 }, - { 9, 0, 651 }, { 11, 0, 971 }, { 13, 0, 273 }, { 7, 10, 1428 }, - { 7, 10, 1640 }, { 7, 10, 1867 }, { 9, 10, 169 }, { 9, 10, 182 }, - { 9, 10, 367 }, { 9, 10, 478 }, { 9, 10, 506 }, { 9, 10, 551 }, - { 9, 10, 557 }, { 9, 10, 648 }, { 9, 10, 697 }, { 9, 10, 705 }, - { 9, 10, 725 }, { 9, 10, 787 }, { 9, 10, 794 }, { 10, 10, 198 }, - { 10, 10, 214 }, { 10, 10, 267 }, { 10, 10, 275 }, { 10, 10, 456 }, - { 10, 10, 551 }, { 10, 10, 561 }, { 10, 10, 613 }, { 10, 10, 627 }, - { 10, 10, 668 }, { 10, 10, 675 }, { 10, 10, 691 }, { 10, 10, 695 }, - { 10, 10, 707 }, { 10, 10, 715 }, { 11, 10, 183 }, { 11, 10, 201 }, - { 11, 10, 262 }, { 11, 10, 352 }, { 11, 10, 439 }, { 11, 10, 493 }, - { 11, 10, 572 }, { 11, 10, 591 }, { 11, 10, 608 }, { 11, 10, 611 }, - { 11, 10, 646 }, { 11, 10, 674 }, { 11, 10, 711 }, { 11, 10, 751 }, - { 11, 10, 761 }, { 11, 10, 776 }, { 11, 10, 785 }, { 11, 10, 850 }, - { 11, 10, 853 }, { 11, 10, 862 }, { 11, 10, 865 }, { 11, 10, 868 }, - { 11, 10, 875 }, { 11, 10, 898 }, { 11, 10, 902 }, { 11, 10, 903 }, - { 11, 10, 910 }, { 11, 10, 932 }, { 11, 10, 942 }, { 11, 10, 957 }, - { 11, 10, 967 }, { 11, 10, 972 }, { 12, 10, 148 }, { 12, 10, 195 }, - { 12, 10, 220 }, { 12, 10, 237 }, { 12, 10, 318 }, { 12, 10, 339 }, - { 12, 10, 393 }, { 12, 10, 445 }, { 12, 10, 450 }, { 12, 10, 474 }, - { 12, 10, 505 }, { 12, 10, 509 }, { 12, 10, 533 }, { 12, 10, 591 }, - { 12, 10, 594 }, { 12, 10, 597 }, { 12, 10, 621 }, { 12, 10, 633 }, - { 12, 10, 642 }, { 13, 10, 59 }, { 13, 10, 60 }, { 13, 10, 145 }, - { 13, 10, 239 }, { 13, 10, 250 }, { 13, 10, 329 }, { 13, 10, 344 }, - { 13, 10, 365 }, { 13, 10, 372 }, { 13, 10, 387 }, { 13, 10, 403 }, - { 13, 10, 414 }, { 13, 10, 456 }, { 13, 10, 470 }, { 13, 10, 478 }, - { 13, 10, 483 }, { 13, 10, 489 }, { 14, 10, 55 }, { 14, 10, 57 }, - { 14, 10, 81 }, { 14, 10, 90 }, { 14, 10, 148 }, { 14, 10, 239 }, - { 14, 10, 266 }, { 14, 10, 321 }, { 14, 10, 326 }, { 14, 10, 327 }, - { 14, 10, 330 }, { 14, 10, 347 }, { 14, 10, 355 }, { 14, 10, 401 }, - { 14, 10, 404 }, { 14, 10, 411 }, { 14, 10, 414 }, { 14, 10, 416 }, - { 14, 10, 420 }, { 15, 10, 61 }, { 15, 10, 74 }, { 15, 10, 87 }, - { 15, 10, 88 }, { 15, 10, 94 }, { 15, 10, 96 }, { 15, 10, 116 }, - { 15, 10, 149 }, { 15, 10, 154 }, { 16, 10, 50 }, { 16, 10, 63 }, - { 16, 10, 73 }, { 17, 10, 2 }, { 17, 10, 66 }, { 17, 10, 92 }, - { 17, 10, 103 }, { 17, 10, 112 }, { 17, 10, 120 }, { 18, 10, 50 }, - { 18, 10, 54 }, { 18, 10, 82 }, { 18, 10, 86 }, { 18, 10, 90 }, - { 18, 10, 111 }, { 18, 10, 115 }, { 18, 10, 156 }, { 19, 10, 40 }, - { 19, 10, 79 }, { 20, 10, 78 }, { 21, 10, 22 }, { 7, 0, 887 }, - { 5, 10, 161 }, { 7, 10, 839 }, { 14, 11, 98 }, { 6, 0, 90 }, - { 10, 11, 356 }, { 7, 11, 441 }, { 6, 11, 111 }, { 7, 11, 4 }, - { 8, 11, 163 }, { 8, 11, 776 }, { 10, 11, 566 }, { 6, 0, 908 }, - { 6, 0, 1261 }, { 7, 0, 813 }, { 12, 0, 497 }, { 13, 0, 56 }, - { 6, 0, 1235 }, { 7, 0, 429 }, { 7, 11, 1994 }, { 10, 0, 904 }, - { 6, 0, 125 }, { 7, 0, 1277 }, { 9, 0, 772 }, { 23, 0, 12 }, - { 4, 0, 841 }, { 5, 0, 386 }, { 5, 11, 386 }, { 5, 11, 297 }, - { 7, 11, 1038 }, { 6, 0, 860 }, { 6, 0, 1069 }, { 7, 11, 309 }, - { 8, 0, 946 }, { 7, 10, 1814 }, { 13, 11, 418 }, { 8, 11, 363 }, - { 10, 0, 768 }, { 11, 0, 787 }, { 22, 11, 30 }, { 22, 11, 33 }, - { 6, 0, 160 }, { 7, 0, 1106 }, { 9, 0, 770 }, { 11, 0, 112 }, - { 12, 0, 413 }, { 11, 11, 216 }, { 11, 11, 340 }, { 8, 10, 139 }, - { 7, 11, 1390 }, { 7, 11, 808 }, { 4, 11, 280 }, { 12, 0, 271 }, - { 17, 0, 109 }, { 7, 10, 643 }, { 8, 10, 236 }, { 12, 11, 54 }, - { 4, 11, 421 }, { 5, 11, 548 }, { 11, 0, 719 }, { 12, 0, 36 }, - { 13, 0, 337 }, { 7, 0, 581 }, { 9, 0, 644 }, { 9, 0, 699 }, - { 11, 11, 511 }, { 13, 11, 394 }, { 14, 11, 298 }, { 14, 11, 318 }, - { 18, 11, 103 }, { 7, 0, 304 }, { 9, 0, 646 }, { 9, 0, 862 }, - { 11, 0, 696 }, { 12, 0, 208 }, { 15, 0, 79 }, { 19, 0, 108 }, - { 4, 0, 631 }, { 7, 0, 1126 }, { 7, 0, 1536 }, { 7, 11, 1527 }, - { 8, 0, 880 }, { 10, 0, 869 }, { 10, 0, 913 }, { 7, 0, 1513 }, - { 5, 10, 54 }, { 6, 11, 254 }, { 9, 11, 109 }, { 10, 11, 103 }, - { 7, 0, 981 }, { 5, 11, 729 }, { 4, 10, 744 }, { 4, 0, 434 }, - { 6, 0, 550 }, { 7, 0, 930 }, { 10, 0, 476 }, { 13, 0, 452 }, - { 19, 0, 104 }, { 6, 11, 1630 }, { 10, 10, 402 }, { 18, 10, 55 }, - { 5, 0, 553 }, { 10, 0, 824 }, { 8, 0, 452 }, { 8, 0, 151 }, - { 9, 10, 624 }, { 4, 10, 572 }, { 4, 0, 772 }, { 5, 11, 671 }, - { 5, 0, 292 }, { 10, 0, 135 }, { 4, 11, 889 }, { 12, 11, 207 }, - { 9, 0, 504 }, { 6, 10, 43 }, { 7, 10, 38 }, { 8, 10, 248 }, - { 10, 10, 513 }, { 6, 0, 1089 }, { 7, 11, 1910 }, { 4, 11, 627 }, - { 5, 11, 775 }, { 7, 0, 783 }, { 5, 10, 766 }, { 5, 10, 363 }, - { 7, 0, 387 }, { 7, 11, 387 }, { 7, 0, 393 }, { 10, 0, 603 }, - { 11, 0, 206 }, { 7, 11, 202 }, { 11, 11, 362 }, { 11, 11, 948 }, - { 12, 11, 388 }, { 6, 11, 507 }, { 7, 11, 451 }, { 8, 11, 389 }, - { 12, 11, 490 }, { 13, 11, 16 }, { 13, 11, 215 }, { 13, 11, 351 }, - { 18, 11, 132 }, { 19, 11, 125 }, { 4, 0, 912 }, { 9, 0, 232 }, - { 7, 11, 841 }, { 6, 10, 258 }, { 12, 10, 409 }, { 5, 10, 249 }, - { 20, 10, 82 }, { 8, 11, 566 }, { 6, 0, 977 }, { 7, 11, 1214 }, - { 7, 0, 1973 }, { 8, 0, 716 }, { 7, 0, 98 }, { 5, 0, 733 }, - { 5, 11, 912 }, { 6, 11, 1695 }, { 5, 10, 393 }, { 6, 10, 378 }, - { 7, 10, 1981 }, { 9, 10, 32 }, { 9, 10, 591 }, { 10, 10, 685 }, - { 10, 10, 741 }, { 14, 10, 382 }, { 5, 10, 788 }, { 10, 0, 19 }, - { 11, 0, 911 }, { 7, 10, 1968 }, { 13, 10, 509 }, { 5, 0, 668 }, - { 5, 11, 236 }, { 6, 11, 572 }, { 8, 11, 492 }, { 11, 11, 618 }, - { 16, 11, 56 }, { 7, 11, 1789 }, { 4, 0, 360 }, { 5, 0, 635 }, - { 5, 0, 700 }, { 5, 10, 58 }, { 5, 10, 171 }, { 5, 10, 683 }, - { 6, 10, 291 }, { 6, 10, 566 }, { 7, 10, 1650 }, { 11, 10, 523 }, - { 12, 10, 273 }, { 12, 10, 303 }, { 15, 10, 39 }, { 15, 10, 111 }, - { 5, 0, 901 }, { 6, 10, 589 }, { 5, 11, 190 }, { 8, 11, 318 }, - { 12, 0, 656 }, { 7, 0, 726 }, { 24, 0, 9 }, { 4, 10, 917 }, - { 5, 10, 1005 }, { 7, 10, 1598 }, { 6, 11, 491 }, { 4, 10, 919 }, - { 5, 11, 434 }, { 9, 0, 72 }, { 6, 0, 1269 }, { 6, 0, 1566 }, - { 6, 0, 1621 }, { 9, 0, 463 }, { 10, 0, 595 }, { 4, 10, 255 }, - { 5, 10, 302 }, { 6, 10, 132 }, { 7, 10, 128 }, { 7, 10, 283 }, - { 7, 10, 1299 }, { 10, 10, 52 }, { 10, 10, 514 }, { 11, 10, 925 }, - { 13, 10, 92 }, { 14, 10, 309 }, { 7, 0, 1454 }, { 6, 0, 1287 }, - { 11, 0, 600 }, { 13, 0, 245 }, { 9, 10, 173 }, { 8, 0, 989 }, - { 7, 0, 164 }, { 7, 0, 1571 }, { 9, 0, 107 }, { 12, 0, 225 }, - { 6, 0, 1061 }, { 13, 10, 442 }, { 4, 0, 27 }, { 5, 0, 484 }, - { 5, 0, 510 }, { 6, 0, 434 }, { 7, 0, 1000 }, { 7, 0, 1098 }, - { 8, 0, 2 }, { 7, 11, 85 }, { 7, 11, 247 }, { 8, 11, 585 }, - { 10, 11, 163 }, { 10, 11, 316 }, { 11, 11, 103 }, { 14, 11, 0 }, - { 6, 0, 1127 }, { 4, 0, 460 }, { 6, 0, 852 }, { 6, 10, 210 }, - { 4, 0, 932 }, { 5, 0, 891 }, { 6, 0, 588 }, { 19, 11, 83 }, - { 8, 0, 625 }, { 4, 10, 284 }, { 6, 10, 223 }, { 6, 0, 76 }, - { 8, 0, 92 }, { 9, 0, 221 }, { 4, 11, 124 }, { 10, 11, 457 }, - { 11, 11, 121 }, { 11, 11, 169 }, { 11, 11, 422 }, { 11, 11, 870 }, - { 12, 11, 214 }, { 13, 11, 389 }, { 14, 11, 187 }, { 15, 11, 77 }, - { 9, 11, 618 }, { 10, 11, 482 }, { 4, 10, 218 }, { 7, 10, 526 }, - { 15, 10, 137 }, { 13, 0, 9 }, { 14, 0, 104 }, { 14, 0, 311 }, - { 4, 10, 270 }, { 5, 10, 192 }, { 6, 10, 332 }, { 7, 10, 1322 }, - { 12, 10, 661 }, { 7, 11, 1193 }, { 6, 11, 107 }, { 7, 11, 638 }, - { 7, 11, 1632 }, { 9, 11, 396 }, { 4, 0, 763 }, { 4, 0, 622 }, - { 5, 11, 370 }, { 6, 11, 1756 }, { 5, 0, 253 }, { 7, 0, 546 }, - { 9, 0, 73 }, { 10, 0, 110 }, { 14, 0, 185 }, { 17, 0, 119 }, - { 5, 11, 204 }, { 7, 0, 624 }, { 7, 0, 916 }, { 10, 0, 256 }, - { 11, 0, 87 }, { 7, 10, 379 }, { 8, 10, 481 }, { 9, 10, 377 }, - { 5, 0, 212 }, { 12, 0, 35 }, { 13, 0, 382 }, { 5, 11, 970 }, - { 6, 11, 1706 }, { 9, 0, 746 }, { 5, 10, 1003 }, { 6, 10, 149 }, - { 10, 0, 150 }, { 11, 0, 849 }, { 13, 0, 330 }, { 8, 10, 262 }, - { 9, 10, 627 }, { 11, 10, 214 }, { 11, 10, 404 }, { 11, 10, 457 }, - { 11, 10, 780 }, { 11, 10, 913 }, { 13, 10, 401 }, { 14, 10, 200 }, - { 6, 0, 1466 }, { 7, 11, 3 }, { 6, 0, 1299 }, { 4, 11, 35 }, - { 5, 11, 121 }, { 5, 11, 483 }, { 5, 11, 685 }, { 6, 11, 489 }, - { 7, 11, 1204 }, { 8, 11, 394 }, { 7, 10, 742 }, { 4, 10, 142 }, - { 8, 10, 304 }, { 4, 11, 921 }, { 5, 11, 1007 }, { 6, 0, 1518 }, - { 6, 0, 1229 }, { 7, 0, 1175 }, { 5, 0, 816 }, { 12, 0, 159 }, - { 4, 10, 471 }, { 4, 11, 712 }, { 5, 10, 51 }, { 6, 10, 602 }, - { 7, 10, 925 }, { 8, 10, 484 }, { 10, 10, 195 }, { 6, 11, 1629 }, - { 5, 0, 869 }, { 5, 0, 968 }, { 6, 0, 1626 }, { 8, 0, 734 }, - { 8, 0, 784 }, { 4, 0, 542 }, { 6, 0, 1716 }, { 6, 0, 1727 }, - { 7, 0, 1082 }, { 7, 0, 1545 }, { 8, 0, 56 }, { 8, 0, 118 }, - { 8, 0, 412 }, { 8, 0, 564 }, { 9, 0, 888 }, { 9, 0, 908 }, - { 10, 0, 50 }, { 10, 0, 423 }, { 11, 0, 685 }, { 11, 0, 697 }, - { 11, 0, 933 }, { 12, 0, 299 }, { 13, 0, 126 }, { 13, 0, 136 }, - { 13, 0, 170 }, { 13, 0, 190 }, { 8, 10, 688 }, { 4, 10, 697 }, - { 4, 0, 232 }, { 9, 0, 202 }, { 10, 0, 474 }, { 12, 0, 433 }, - { 8, 0, 212 }, { 6, 0, 108 }, { 7, 0, 1003 }, { 7, 0, 1181 }, - { 8, 0, 111 }, { 8, 0, 343 }, { 5, 10, 221 }, { 7, 11, 1255 }, - { 5, 11, 485 }, { 6, 0, 1712 }, { 14, 0, 216 }, { 5, 0, 643 }, - { 6, 0, 516 }, { 4, 11, 285 }, { 5, 11, 317 }, { 6, 11, 301 }, - { 7, 11, 7 }, { 8, 11, 153 }, { 10, 11, 766 }, { 11, 11, 468 }, - { 12, 11, 467 }, { 13, 11, 143 }, { 4, 0, 133 }, { 7, 0, 711 }, - { 7, 0, 1298 }, { 7, 0, 1585 }, { 6, 0, 650 }, { 7, 11, 512 }, - { 6, 0, 99 }, { 7, 0, 1808 }, { 17, 0, 57 }, { 6, 0, 246 }, - { 6, 0, 574 }, { 7, 0, 428 }, { 9, 0, 793 }, { 10, 0, 669 }, - { 11, 0, 485 }, { 11, 0, 840 }, { 12, 0, 300 }, { 14, 0, 250 }, - { 17, 0, 55 }, { 4, 10, 132 }, { 5, 10, 69 }, { 7, 10, 1242 }, - { 8, 0, 1023 }, { 7, 0, 302 }, { 4, 10, 111 }, { 7, 0, 1871 }, - { 4, 0, 728 }, { 9, 0, 252 }, { 4, 10, 767 }, { 6, 0, 461 }, - { 7, 0, 1590 }, { 7, 10, 1416 }, { 7, 10, 2005 }, { 8, 10, 131 }, - { 8, 10, 466 }, { 9, 10, 672 }, { 13, 10, 252 }, { 20, 10, 103 }, - { 6, 0, 323 }, { 7, 0, 1564 }, { 7, 0, 461 }, { 8, 0, 775 }, - { 6, 10, 44 }, { 8, 10, 368 }, { 11, 0, 172 }, { 4, 0, 464 }, - { 4, 10, 570 }, { 5, 10, 120 }, { 9, 11, 269 }, { 6, 10, 227 }, - { 7, 10, 1589 }, { 6, 11, 1719 }, { 6, 11, 1735 }, { 7, 11, 2016 }, - { 7, 11, 2020 }, { 8, 11, 837 }, { 9, 11, 852 }, { 7, 0, 727 }, - { 18, 0, 73 }, { 4, 0, 1023 }, { 7, 11, 852 }, { 7, 10, 1529 }, - { 8, 0, 577 }, { 10, 11, 568 }, { 6, 0, 1037 }, { 8, 11, 67 }, - { 10, 11, 419 }, { 4, 0, 413 }, { 5, 0, 677 }, { 8, 0, 432 }, - { 12, 0, 280 }, { 10, 0, 600 }, { 6, 10, 1667 }, { 7, 11, 967 }, - { 7, 10, 2036 }, { 13, 11, 11 }, { 6, 10, 511 }, { 12, 10, 132 }, - { 6, 0, 799 }, { 5, 10, 568 }, { 6, 10, 138 }, { 7, 10, 1293 }, - { 8, 0, 159 }, { 4, 10, 565 }, { 8, 10, 827 }, { 7, 0, 646 }, - { 7, 0, 1730 }, { 11, 0, 446 }, { 13, 0, 178 }, { 4, 10, 922 }, - { 5, 10, 1023 }, { 7, 11, 11 }, { 4, 0, 395 }, { 11, 0, 145 }, - { 7, 10, 1002 }, { 9, 0, 174 }, { 10, 0, 164 }, { 11, 0, 440 }, - { 11, 0, 514 }, { 11, 0, 841 }, { 15, 0, 98 }, { 21, 0, 20 }, - { 6, 0, 426 }, { 10, 0, 608 }, { 11, 0, 1002 }, { 7, 11, 320 }, - { 8, 11, 51 }, { 12, 11, 481 }, { 12, 11, 570 }, { 20, 11, 106 }, - { 9, 0, 977 }, { 9, 0, 983 }, { 4, 11, 445 }, { 10, 0, 250 }, - { 11, 0, 100 }, { 6, 0, 1982 }, { 8, 10, 402 }, { 5, 11, 239 }, - { 4, 10, 716 }, { 13, 10, 31 }, { 5, 0, 476 }, { 7, 11, 83 }, - { 7, 11, 1990 }, { 8, 11, 130 }, { 11, 11, 720 }, { 8, 10, 691 }, - { 8, 10, 731 }, { 5, 11, 123 }, { 6, 11, 530 }, { 7, 11, 348 }, - { 7, 11, 1419 }, { 5, 0, 76 }, { 6, 0, 458 }, { 6, 0, 497 }, - { 7, 0, 868 }, { 9, 0, 658 }, { 10, 0, 594 }, { 11, 0, 173 }, - { 11, 0, 566 }, { 12, 0, 20 }, { 12, 0, 338 }, { 13, 0, 200 }, - { 9, 11, 139 }, { 10, 11, 399 }, { 11, 11, 469 }, { 12, 11, 634 }, - { 13, 11, 223 }, { 9, 10, 840 }, { 10, 10, 803 }, { 5, 10, 847 }, - { 11, 11, 223 }, { 12, 11, 168 }, { 4, 11, 210 }, { 8, 0, 447 }, - { 9, 10, 53 }, { 9, 10, 268 }, { 9, 10, 901 }, { 10, 10, 518 }, - { 10, 10, 829 }, { 11, 10, 188 }, { 13, 10, 74 }, { 14, 10, 46 }, - { 15, 10, 17 }, { 15, 10, 33 }, { 17, 10, 40 }, { 18, 10, 36 }, - { 19, 10, 20 }, { 22, 10, 1 }, { 24, 10, 2 }, { 4, 0, 526 }, - { 7, 0, 1029 }, { 7, 0, 1054 }, { 19, 11, 59 }, { 22, 11, 2 }, - { 4, 0, 636 }, { 6, 0, 1875 }, { 6, 0, 1920 }, { 9, 0, 999 }, - { 12, 0, 807 }, { 12, 0, 825 }, { 15, 0, 179 }, { 15, 0, 190 }, - { 18, 0, 182 }, { 8, 10, 532 }, { 6, 0, 1699 }, { 7, 0, 660 }, - { 7, 0, 1124 }, { 17, 0, 31 }, { 19, 0, 22 }, { 23, 0, 14 }, - { 7, 10, 681 }, { 4, 11, 430 }, { 12, 10, 677 }, { 4, 10, 684 }, - { 8, 10, 384 }, { 4, 11, 756 }, { 5, 11, 213 }, { 7, 0, 188 }, - { 7, 10, 110 }, { 8, 10, 290 }, { 8, 10, 591 }, { 9, 10, 382 }, - { 9, 10, 649 }, { 11, 10, 71 }, { 11, 10, 155 }, { 11, 10, 313 }, - { 12, 10, 5 }, { 13, 10, 325 }, { 14, 10, 287 }, { 7, 10, 360 }, - { 7, 10, 425 }, { 9, 10, 66 }, { 9, 10, 278 }, { 10, 10, 644 }, - { 14, 11, 164 }, { 4, 0, 279 }, { 7, 0, 301 }, { 9, 0, 362 }, - { 6, 11, 586 }, { 7, 0, 1743 }, { 4, 0, 178 }, { 5, 0, 399 }, - { 4, 10, 900 }, { 5, 10, 861 }, { 5, 10, 254 }, { 7, 10, 985 }, - { 8, 10, 73 }, { 5, 11, 108 }, { 7, 10, 1959 }, { 8, 10, 683 }, - { 5, 11, 219 }, { 4, 11, 193 }, { 5, 11, 916 }, { 7, 11, 364 }, - { 10, 11, 398 }, { 10, 11, 726 }, { 11, 11, 317 }, { 11, 11, 626 }, - { 12, 11, 142 }, { 12, 11, 288 }, { 12, 11, 678 }, { 13, 11, 313 }, - { 15, 11, 113 }, { 18, 11, 114 }, { 21, 11, 30 }, { 22, 11, 53 }, - { 6, 11, 241 }, { 7, 11, 907 }, { 8, 11, 832 }, { 9, 11, 342 }, - { 10, 11, 729 }, { 11, 11, 284 }, { 11, 11, 445 }, { 11, 11, 651 }, - { 11, 11, 863 }, { 13, 11, 398 }, { 18, 11, 99 }, { 4, 0, 872 }, - { 6, 0, 831 }, { 6, 0, 1692 }, { 6, 0, 202 }, { 6, 0, 1006 }, - { 9, 0, 832 }, { 10, 0, 636 }, { 11, 0, 208 }, { 12, 0, 360 }, - { 17, 0, 118 }, { 18, 0, 27 }, { 20, 0, 67 }, { 9, 11, 734 }, - { 4, 10, 725 }, { 7, 11, 993 }, { 10, 11, 666 }, { 6, 0, 1954 }, - { 6, 10, 196 }, { 7, 0, 872 }, { 10, 0, 516 }, { 11, 0, 167 }, - { 5, 10, 831 }, { 4, 11, 562 }, { 9, 11, 254 }, { 11, 11, 879 }, - { 9, 0, 313 }, { 4, 0, 224 }, { 4, 11, 786 }, { 11, 0, 24 }, - { 12, 0, 170 }, { 8, 10, 723 }, { 5, 0, 546 }, { 7, 0, 35 }, - { 8, 0, 11 }, { 8, 0, 12 }, { 9, 0, 315 }, { 9, 0, 533 }, - { 10, 0, 802 }, { 11, 0, 166 }, { 12, 0, 525 }, { 14, 0, 243 }, - { 7, 0, 1937 }, { 13, 10, 80 }, { 13, 10, 437 }, { 17, 10, 74 }, - { 5, 0, 241 }, { 8, 0, 242 }, { 9, 0, 451 }, { 10, 0, 667 }, - { 11, 0, 598 }, { 12, 0, 429 }, { 22, 0, 46 }, { 6, 0, 1273 }, - { 9, 0, 830 }, { 5, 10, 848 }, { 6, 10, 66 }, { 8, 10, 764 }, - { 6, 0, 825 }, { 6, 0, 993 }, { 4, 0, 1006 }, { 10, 0, 327 }, - { 13, 0, 271 }, { 4, 10, 36 }, { 7, 10, 1387 }, { 11, 10, 755 }, - { 6, 0, 1023 }, { 7, 0, 1580 }, { 4, 0, 366 }, { 9, 0, 516 }, - { 4, 10, 887 }, { 6, 0, 1736 }, { 7, 0, 1891 }, { 6, 11, 216 }, - { 7, 11, 901 }, { 7, 11, 1343 }, { 8, 11, 493 }, { 6, 10, 165 }, - { 10, 10, 388 }, { 7, 11, 341 }, { 11, 11, 219 }, { 4, 10, 719 }, - { 7, 10, 155 }, { 6, 0, 1935 }, { 4, 0, 826 }, { 6, 0, 331 }, - { 6, 0, 1605 }, { 8, 0, 623 }, { 11, 0, 139 }, { 11, 0, 171 }, - { 7, 11, 1734 }, { 10, 11, 115 }, { 11, 11, 420 }, { 12, 11, 154 }, - { 13, 11, 404 }, { 14, 11, 346 }, { 15, 11, 54 }, { 15, 11, 112 }, - { 7, 0, 288 }, { 4, 10, 353 }, { 6, 10, 146 }, { 6, 10, 1789 }, - { 7, 10, 990 }, { 7, 10, 1348 }, { 9, 10, 665 }, { 9, 10, 898 }, - { 11, 10, 893 }, { 14, 10, 212 }, { 6, 0, 916 }, { 6, 0, 1592 }, - { 7, 0, 1888 }, { 4, 10, 45 }, { 7, 10, 1257 }, { 5, 11, 1011 }, - { 8, 11, 701 }, { 11, 11, 596 }, { 4, 11, 54 }, { 5, 11, 666 }, - { 7, 11, 1039 }, { 7, 11, 1130 }, { 9, 11, 195 }, { 10, 11, 302 }, - { 6, 0, 1471 }, { 6, 0, 1570 }, { 4, 0, 394 }, { 12, 10, 65 }, - { 8, 10, 816 }, { 7, 0, 1931 }, { 7, 0, 574 }, { 7, 0, 1719 }, - { 6, 11, 467 }, { 4, 0, 658 }, { 9, 0, 781 }, { 10, 0, 144 }, - { 11, 0, 385 }, { 13, 0, 161 }, { 13, 0, 228 }, { 13, 0, 268 }, - { 20, 0, 107 }, { 6, 11, 1669 }, { 8, 0, 374 }, { 7, 0, 735 }, - { 4, 0, 344 }, { 6, 0, 498 }, { 11, 0, 323 }, { 7, 0, 586 }, - { 7, 0, 1063 }, { 6, 10, 559 }, { 6, 10, 1691 }, { 9, 0, 155 }, - { 5, 0, 906 }, { 7, 11, 122 }, { 9, 11, 259 }, { 10, 11, 84 }, - { 11, 11, 470 }, { 12, 11, 541 }, { 13, 11, 379 }, { 6, 0, 1139 }, - { 10, 0, 108 }, { 11, 0, 116 }, { 6, 10, 456 }, { 5, 10, 925 }, - { 5, 11, 82 }, { 5, 11, 131 }, { 7, 11, 1755 }, { 8, 11, 31 }, - { 9, 11, 168 }, { 9, 11, 764 }, { 11, 11, 869 }, { 6, 11, 605 }, - { 5, 11, 278 }, { 9, 11, 68 }, { 4, 11, 163 }, { 5, 11, 201 }, - { 5, 11, 307 }, { 5, 11, 310 }, { 6, 11, 335 }, { 7, 11, 284 }, - { 8, 11, 165 }, { 7, 11, 1660 }, { 6, 11, 33 }, { 7, 11, 1244 }, - { 4, 0, 616 }, { 8, 11, 483 }, { 8, 0, 857 }, { 8, 0, 902 }, - { 8, 0, 910 }, { 10, 0, 879 }, { 12, 0, 726 }, { 4, 11, 199 }, - { 11, 11, 34 }, { 8, 0, 692 }, { 6, 10, 193 }, { 7, 10, 240 }, - { 7, 10, 1682 }, { 10, 10, 51 }, { 10, 10, 640 }, { 11, 10, 410 }, - { 13, 10, 82 }, { 14, 10, 247 }, { 14, 10, 331 }, { 14, 10, 377 }, - { 6, 0, 823 }, { 6, 0, 983 }, { 11, 10, 411 }, { 4, 0, 305 }, - { 8, 10, 633 }, { 10, 11, 203 }, { 6, 0, 681 }, { 6, 11, 326 }, - { 7, 11, 677 }, { 9, 11, 425 }, { 5, 0, 214 }, { 7, 0, 603 }, - { 8, 0, 611 }, { 9, 0, 686 }, { 10, 0, 88 }, { 11, 0, 459 }, - { 11, 0, 496 }, { 12, 0, 463 }, { 12, 0, 590 }, { 13, 0, 0 }, - { 8, 0, 1004 }, { 14, 0, 23 }, { 6, 0, 1703 }, { 19, 11, 8 }, - { 17, 11, 56 }, { 7, 0, 1443 }, { 4, 10, 237 }, { 7, 10, 514 }, - { 6, 0, 714 }, { 17, 0, 19 }, { 5, 11, 358 }, { 7, 11, 473 }, - { 7, 11, 1184 }, { 10, 11, 662 }, { 13, 11, 212 }, { 13, 11, 304 }, - { 13, 11, 333 }, { 17, 11, 98 }, { 4, 0, 737 }, { 10, 0, 98 }, - { 11, 0, 294 }, { 12, 0, 60 }, { 12, 0, 437 }, { 13, 0, 64 }, - { 13, 0, 380 }, { 14, 0, 430 }, { 6, 10, 392 }, { 7, 10, 65 }, - { 7, 10, 2019 }, { 6, 0, 1758 }, { 8, 0, 520 }, { 9, 0, 345 }, - { 9, 0, 403 }, { 14, 0, 350 }, { 5, 0, 47 }, { 10, 0, 242 }, - { 10, 0, 579 }, { 5, 0, 139 }, { 7, 0, 1168 }, { 10, 0, 539 }, - { 6, 0, 1459 }, { 13, 0, 388 }, { 13, 11, 388 }, { 6, 0, 253 }, - { 7, 10, 1260 }, { 7, 10, 1790 }, { 10, 0, 252 }, { 9, 10, 222 }, - { 11, 10, 900 }, { 12, 0, 745 }, { 5, 11, 946 }, { 4, 0, 107 }, - { 7, 0, 613 }, { 8, 0, 439 }, { 8, 0, 504 }, { 9, 0, 501 }, - { 10, 0, 383 }, { 11, 0, 477 }, { 7, 11, 1485 }, { 4, 0, 871 }, - { 7, 11, 411 }, { 7, 11, 590 }, { 8, 11, 631 }, { 9, 11, 323 }, - { 10, 11, 355 }, { 11, 11, 491 }, { 12, 11, 143 }, { 12, 11, 402 }, - { 13, 11, 73 }, { 14, 11, 408 }, { 15, 11, 107 }, { 18, 11, 71 }, - { 4, 0, 229 }, { 4, 0, 903 }, { 12, 0, 71 }, { 5, 0, 549 }, - { 4, 0, 47 }, { 6, 0, 373 }, { 7, 0, 452 }, { 7, 0, 543 }, - { 7, 0, 1828 }, { 7, 0, 1856 }, { 9, 0, 6 }, { 11, 0, 257 }, - { 11, 0, 391 }, { 7, 11, 1467 }, { 8, 11, 328 }, { 10, 11, 544 }, - { 11, 11, 955 }, { 13, 11, 320 }, { 17, 11, 83 }, { 5, 0, 980 }, - { 6, 0, 1754 }, { 8, 0, 865 }, { 5, 0, 705 }, { 9, 0, 606 }, - { 7, 0, 161 }, { 8, 10, 201 }, { 8, 10, 605 }, { 15, 11, 35 }, - { 5, 11, 835 }, { 6, 11, 483 }, { 12, 10, 224 }, { 7, 0, 536 }, - { 7, 0, 1331 }, { 8, 0, 143 }, { 6, 0, 1388 }, { 5, 0, 724 }, - { 10, 0, 305 }, { 11, 0, 151 }, { 12, 0, 33 }, { 12, 0, 121 }, - { 12, 0, 381 }, { 17, 0, 3 }, { 17, 0, 27 }, { 17, 0, 78 }, - { 18, 0, 18 }, { 19, 0, 54 }, { 21, 0, 5 }, { 4, 10, 523 }, - { 5, 10, 638 }, { 5, 0, 19 }, { 6, 0, 533 }, { 5, 0, 395 }, - { 5, 0, 951 }, { 6, 0, 1776 }, { 7, 0, 1908 }, { 4, 0, 846 }, - { 10, 0, 74 }, { 11, 0, 663 }, { 12, 0, 210 }, { 13, 0, 166 }, - { 13, 0, 310 }, { 14, 0, 373 }, { 18, 0, 95 }, { 19, 0, 43 }, - { 6, 10, 242 }, { 7, 10, 227 }, { 7, 10, 1581 }, { 8, 10, 104 }, - { 9, 10, 113 }, { 9, 10, 220 }, { 9, 10, 427 }, { 10, 10, 239 }, - { 11, 10, 579 }, { 11, 10, 1023 }, { 13, 10, 4 }, { 13, 10, 204 }, - { 13, 10, 316 }, { 20, 10, 86 }, { 9, 11, 716 }, { 11, 11, 108 }, - { 13, 11, 123 }, { 14, 11, 252 }, { 19, 11, 38 }, { 21, 11, 3 }, - { 23, 11, 11 }, { 8, 0, 372 }, { 9, 0, 122 }, { 10, 0, 175 }, - { 4, 11, 677 }, { 7, 11, 1374 }, { 8, 11, 540 }, { 7, 10, 861 }, - { 4, 0, 695 }, { 7, 0, 497 }, { 9, 0, 387 }, { 19, 0, 81 }, - { 8, 0, 937 }, { 6, 0, 718 }, { 7, 0, 1328 }, { 8, 10, 494 }, - { 4, 11, 331 }, { 6, 0, 1581 }, { 5, 11, 747 }, { 5, 0, 284 }, - { 6, 0, 49 }, { 6, 0, 350 }, { 7, 0, 1 }, { 7, 0, 377 }, - { 7, 0, 1693 }, { 8, 0, 18 }, { 8, 0, 678 }, { 9, 0, 161 }, - { 9, 0, 585 }, { 9, 0, 671 }, { 9, 0, 839 }, { 11, 0, 912 }, - { 13, 0, 427 }, { 7, 10, 1306 }, { 8, 10, 505 }, { 9, 10, 482 }, - { 10, 10, 126 }, { 11, 10, 225 }, { 12, 10, 347 }, { 12, 10, 449 }, - { 13, 10, 19 }, { 14, 10, 218 }, { 14, 10, 435 }, { 10, 10, 764 }, - { 12, 10, 120 }, { 13, 10, 39 }, { 17, 10, 127 }, { 4, 0, 597 }, - { 5, 10, 268 }, { 6, 0, 1094 }, { 4, 0, 1008 }, { 6, 0, 1973 }, - { 4, 0, 811 }, { 11, 0, 908 }, { 7, 0, 1471 }, { 5, 11, 326 }, - { 4, 10, 384 }, { 7, 10, 1022 }, { 7, 0, 1935 }, { 8, 0, 324 }, - { 12, 0, 42 }, { 4, 11, 691 }, { 7, 11, 1935 }, { 8, 11, 324 }, - { 9, 11, 35 }, { 10, 11, 680 }, { 11, 11, 364 }, { 12, 11, 42 }, - { 13, 11, 357 }, { 18, 11, 16 }, { 7, 0, 2014 }, { 7, 0, 2007 }, - { 9, 0, 101 }, { 9, 0, 450 }, { 10, 0, 66 }, { 10, 0, 842 }, - { 11, 0, 536 }, { 12, 0, 587 }, { 6, 11, 32 }, { 7, 11, 385 }, - { 7, 11, 757 }, { 7, 11, 1916 }, { 8, 11, 37 }, { 8, 11, 94 }, - { 8, 11, 711 }, { 9, 11, 541 }, { 10, 11, 162 }, { 10, 11, 795 }, - { 11, 11, 989 }, { 11, 11, 1010 }, { 12, 11, 14 }, { 14, 11, 308 }, - { 11, 0, 586 }, { 7, 10, 1703 }, { 7, 0, 1077 }, { 11, 0, 28 }, - { 9, 10, 159 }, { 12, 10, 603 }, { 6, 0, 1221 }, { 8, 10, 583 }, - { 6, 11, 152 }, { 6, 11, 349 }, { 6, 11, 1682 }, { 7, 11, 1252 }, - { 8, 11, 112 }, { 9, 11, 435 }, { 9, 11, 668 }, { 10, 11, 290 }, - { 10, 11, 319 }, { 10, 11, 815 }, { 11, 11, 180 }, { 11, 11, 837 }, - { 12, 11, 240 }, { 13, 11, 152 }, { 13, 11, 219 }, { 14, 11, 158 }, - { 11, 0, 62 }, { 4, 10, 515 }, { 8, 10, 632 }, { 8, 10, 697 }, - { 9, 10, 854 }, { 6, 0, 1766 }, { 4, 11, 581 }, { 6, 11, 126 }, - { 7, 11, 573 }, { 8, 11, 397 }, { 14, 11, 44 }, { 22, 0, 28 }, - { 11, 0, 670 }, { 22, 0, 25 }, { 4, 10, 136 }, { 5, 10, 551 }, - { 6, 0, 1665 }, { 7, 0, 256 }, { 7, 0, 1388 }, { 10, 0, 499 }, - { 4, 0, 22 }, { 5, 0, 10 }, { 7, 0, 1576 }, { 8, 0, 97 }, - { 6, 10, 1782 }, { 5, 0, 481 }, { 7, 10, 1287 }, { 9, 10, 44 }, - { 10, 10, 552 }, { 10, 10, 642 }, { 11, 10, 839 }, { 12, 10, 274 }, - { 12, 10, 275 }, { 12, 10, 372 }, { 13, 10, 91 }, { 14, 10, 125 }, - { 5, 11, 926 }, { 7, 11, 1232 }, { 9, 11, 531 }, { 6, 0, 134 }, - { 7, 0, 437 }, { 7, 0, 1824 }, { 9, 0, 37 }, { 14, 0, 285 }, - { 14, 0, 371 }, { 7, 0, 486 }, { 8, 0, 155 }, { 11, 0, 93 }, - { 12, 0, 164 }, { 6, 0, 1391 }, { 6, 0, 1442 }, { 5, 11, 670 }, - { 5, 0, 591 }, { 6, 10, 147 }, { 7, 10, 886 }, { 7, 11, 1957 }, - { 9, 10, 753 }, { 10, 10, 268 }, { 5, 0, 380 }, { 5, 0, 650 }, - { 7, 0, 1173 }, { 8, 0, 310 }, { 4, 0, 364 }, { 7, 0, 1156 }, - { 7, 0, 1187 }, { 9, 0, 409 }, { 7, 11, 1621 }, { 6, 0, 482 }, - { 5, 11, 506 }, { 4, 0, 781 }, { 6, 0, 487 }, { 7, 0, 926 }, - { 8, 0, 263 }, { 11, 0, 500 }, { 10, 10, 137 }, { 7, 11, 242 }, - { 11, 11, 96 }, { 5, 10, 414 }, { 7, 10, 1762 }, { 6, 0, 804 }, - { 5, 11, 834 }, { 7, 11, 1202 }, { 8, 11, 14 }, { 9, 11, 481 }, - { 9, 11, 880 }, { 6, 10, 599 }, { 4, 0, 94 }, { 7, 0, 1265 }, - { 4, 0, 415 }, { 4, 0, 417 }, { 5, 0, 348 }, { 6, 0, 522 }, - { 6, 10, 1749 }, { 7, 11, 1526 }, { 10, 11, 465 }, { 6, 10, 1627 }, - { 4, 0, 1012 }, { 4, 10, 488 }, { 4, 11, 357 }, { 6, 11, 172 }, - { 7, 11, 143 }, { 9, 11, 413 }, { 4, 10, 83 }, { 4, 11, 590 }, - { 18, 11, 76 }, { 12, 10, 676 }, { 7, 11, 287 }, { 8, 11, 355 }, - { 9, 11, 293 }, { 9, 11, 743 }, { 6, 10, 278 }, { 6, 0, 1803 }, - { 18, 0, 165 }, { 24, 0, 21 }, { 5, 11, 169 }, { 7, 11, 333 }, - { 8, 11, 45 }, { 12, 10, 97 }, { 12, 11, 97 }, { 4, 0, 408 }, - { 4, 0, 741 }, { 7, 0, 500 }, { 4, 11, 198 }, { 7, 10, 388 }, - { 7, 10, 644 }, { 11, 10, 781 }, { 4, 11, 24 }, { 5, 11, 140 }, - { 5, 11, 185 }, { 7, 11, 1500 }, { 11, 11, 565 }, { 11, 11, 838 }, - { 6, 0, 1321 }, { 9, 0, 257 }, { 7, 10, 229 }, { 8, 10, 59 }, - { 9, 10, 190 }, { 10, 10, 378 }, { 12, 10, 191 }, { 4, 11, 334 }, - { 5, 11, 593 }, { 7, 11, 1885 }, { 6, 0, 1138 }, { 4, 0, 249 }, - { 6, 0, 73 }, { 7, 0, 177 }, { 5, 0, 576 }, { 14, 0, 231 }, - { 9, 0, 288 }, { 4, 10, 660 }, { 7, 10, 1035 }, { 10, 10, 737 }, - { 7, 0, 1487 }, { 6, 0, 989 }, { 9, 0, 433 }, { 7, 10, 690 }, - { 9, 10, 587 }, { 12, 10, 521 }, { 7, 0, 1264 }, { 7, 0, 1678 }, - { 11, 0, 945 }, { 12, 0, 341 }, { 12, 0, 471 }, { 12, 0, 569 }, - { 4, 11, 709 }, { 5, 11, 897 }, { 5, 11, 224 }, { 13, 11, 174 }, - { 18, 11, 52 }, { 7, 11, 1840 }, { 6, 10, 1744 }, { 12, 0, 87 }, - { 16, 0, 74 }, { 4, 10, 733 }, { 9, 10, 194 }, { 10, 10, 92 }, - { 11, 10, 198 }, { 12, 10, 84 }, { 13, 10, 128 }, { 12, 0, 779 }, - { 7, 0, 538 }, { 4, 11, 608 }, { 5, 11, 497 }, { 5, 0, 413 }, - { 7, 11, 1375 }, { 7, 11, 1466 }, { 10, 11, 331 }, { 8, 0, 495 }, - { 6, 11, 540 }, { 8, 11, 136 }, { 7, 0, 54 }, { 8, 0, 312 }, - { 10, 0, 191 }, { 10, 0, 614 }, { 12, 0, 567 }, { 6, 0, 468 }, - { 7, 0, 567 }, { 7, 0, 1478 }, { 8, 0, 530 }, { 14, 0, 290 }, - { 5, 11, 999 }, { 4, 11, 299 }, { 7, 10, 306 }, { 7, 11, 1004 }, - { 14, 11, 296 }, { 6, 0, 1484 }, { 5, 10, 979 }, { 6, 0, 609 }, - { 9, 0, 815 }, { 12, 11, 137 }, { 14, 11, 9 }, { 14, 11, 24 }, - { 14, 11, 64 }, { 5, 11, 456 }, { 6, 0, 484 }, { 7, 0, 822 }, - { 5, 10, 178 }, { 8, 11, 180 }, { 4, 11, 755 }, { 9, 0, 900 }, - { 7, 0, 1335 }, { 6, 0, 1724 }, { 7, 0, 2022 }, { 7, 11, 1139 }, - { 5, 0, 640 }, { 4, 10, 390 }, { 6, 0, 1831 }, { 10, 11, 633 }, - { 7, 11, 566 }, { 4, 11, 890 }, { 5, 11, 805 }, { 5, 11, 819 }, - { 5, 11, 961 }, { 6, 11, 396 }, { 6, 11, 1631 }, { 6, 11, 1678 }, - { 7, 11, 1967 }, { 7, 11, 2041 }, { 9, 11, 630 }, { 11, 11, 8 }, - { 11, 11, 1019 }, { 12, 11, 176 }, { 13, 11, 225 }, { 14, 11, 292 }, - { 21, 11, 24 }, { 4, 0, 474 }, { 6, 0, 1103 }, { 7, 0, 1504 }, - { 6, 0, 1576 }, { 6, 0, 961 }, { 6, 0, 1034 }, { 12, 0, 655 }, - { 11, 11, 514 }, { 21, 11, 20 }, { 5, 0, 305 }, { 7, 11, 1815 }, - { 7, 11, 1505 }, { 10, 11, 190 }, { 10, 11, 634 }, { 11, 11, 792 }, - { 12, 11, 358 }, { 12, 11, 447 }, { 5, 11, 0 }, { 6, 11, 536 }, - { 7, 11, 604 }, { 13, 11, 445 }, { 17, 11, 126 }, { 7, 0, 1236 }, - { 5, 10, 105 }, { 4, 0, 480 }, { 6, 0, 217 }, { 6, 0, 302 }, - { 6, 0, 1642 }, { 7, 0, 130 }, { 7, 0, 837 }, { 7, 0, 1321 }, - { 7, 0, 1547 }, { 7, 0, 1657 }, { 8, 0, 429 }, { 9, 0, 228 }, - { 13, 0, 289 }, { 13, 0, 343 }, { 19, 0, 101 }, { 6, 11, 232 }, - { 6, 11, 412 }, { 7, 11, 1074 }, { 8, 11, 9 }, { 8, 11, 157 }, - { 8, 11, 786 }, { 9, 11, 196 }, { 9, 11, 352 }, { 9, 11, 457 }, - { 10, 11, 337 }, { 11, 11, 232 }, { 11, 11, 877 }, { 12, 11, 480 }, - { 12, 11, 546 }, { 5, 10, 438 }, { 7, 11, 958 }, { 9, 10, 694 }, - { 12, 10, 627 }, { 13, 11, 38 }, { 13, 10, 210 }, { 4, 11, 382 }, - { 8, 11, 579 }, { 7, 0, 278 }, { 10, 0, 739 }, { 11, 0, 708 }, - { 13, 0, 348 }, { 4, 11, 212 }, { 7, 11, 1206 }, { 7, 11, 1898 }, - { 6, 0, 708 }, { 6, 0, 1344 }, { 24, 10, 11 }, { 9, 11, 768 }, - { 6, 0, 1840 }, { 12, 0, 233 }, { 8, 10, 25 }, { 10, 10, 826 }, - { 6, 0, 2017 }, { 5, 11, 655 }, { 6, 0, 1488 }, { 11, 11, 290 }, - { 4, 10, 308 }, { 6, 0, 1590 }, { 6, 0, 1800 }, { 6, 0, 1259 }, - { 16, 0, 28 }, { 6, 11, 231 }, { 7, 11, 95 }, { 8, 11, 423 }, - { 5, 11, 300 }, { 7, 10, 150 }, { 8, 10, 649 }, { 7, 11, 1874 }, - { 9, 11, 641 }, { 6, 11, 237 }, { 7, 11, 611 }, { 8, 11, 100 }, - { 9, 11, 416 }, { 11, 11, 335 }, { 12, 11, 173 }, { 18, 11, 101 }, - { 9, 0, 45 }, { 6, 10, 521 }, { 17, 0, 36 }, { 14, 11, 26 }, - { 18, 11, 150 }, { 7, 0, 1442 }, { 14, 0, 22 }, { 5, 10, 339 }, - { 15, 10, 41 }, { 15, 10, 166 }, { 19, 10, 66 }, { 8, 0, 378 }, - { 6, 11, 581 }, { 7, 11, 1119 }, { 6, 0, 1507 }, { 19, 11, 117 }, - { 11, 0, 39 }, { 6, 0, 1054 }, { 6, 0, 363 }, { 7, 0, 1955 }, - { 8, 0, 725 }, { 6, 0, 2036 }, { 5, 11, 199 }, { 6, 0, 1871 }, - { 9, 0, 935 }, { 9, 0, 961 }, { 9, 0, 1004 }, { 9, 0, 1016 }, - { 12, 0, 805 }, { 12, 0, 852 }, { 12, 0, 853 }, { 12, 0, 869 }, - { 12, 0, 882 }, { 12, 0, 896 }, { 12, 0, 906 }, { 12, 0, 917 }, - { 12, 0, 940 }, { 15, 0, 170 }, { 15, 0, 176 }, { 15, 0, 188 }, - { 15, 0, 201 }, { 15, 0, 205 }, { 15, 0, 212 }, { 15, 0, 234 }, - { 15, 0, 244 }, { 18, 0, 181 }, { 18, 0, 193 }, { 18, 0, 196 }, - { 18, 0, 201 }, { 18, 0, 202 }, { 18, 0, 210 }, { 18, 0, 217 }, - { 18, 0, 235 }, { 18, 0, 236 }, { 18, 0, 237 }, { 21, 0, 54 }, - { 21, 0, 55 }, { 21, 0, 58 }, { 21, 0, 59 }, { 24, 0, 22 }, - { 6, 10, 1628 }, { 9, 0, 805 }, { 5, 0, 813 }, { 7, 0, 2046 }, - { 14, 11, 42 }, { 5, 0, 712 }, { 6, 0, 1240 }, { 11, 0, 17 }, - { 13, 0, 321 }, { 16, 0, 67 }, { 4, 0, 617 }, { 7, 10, 829 }, - { 6, 0, 320 }, { 7, 0, 781 }, { 7, 0, 1921 }, { 9, 0, 55 }, - { 10, 0, 186 }, { 10, 0, 273 }, { 10, 0, 664 }, { 10, 0, 801 }, - { 11, 0, 996 }, { 11, 0, 997 }, { 13, 0, 157 }, { 14, 0, 170 }, - { 8, 0, 271 }, { 5, 10, 486 }, { 7, 10, 1349 }, { 18, 11, 91 }, - { 19, 11, 70 }, { 10, 0, 445 }, { 7, 10, 1635 }, { 8, 10, 17 }, - { 10, 10, 295 }, { 8, 11, 404 }, { 7, 0, 103 }, { 7, 0, 863 }, - { 11, 0, 184 }, { 17, 0, 62 }, { 10, 10, 558 }, { 9, 0, 659 }, - { 6, 11, 312 }, { 6, 11, 1715 }, { 10, 11, 584 }, { 11, 11, 546 }, - { 11, 11, 692 }, { 12, 11, 259 }, { 12, 11, 295 }, { 13, 11, 46 }, - { 13, 11, 154 }, { 6, 0, 676 }, { 4, 11, 588 }, { 4, 11, 231 }, - { 5, 11, 61 }, { 6, 11, 104 }, { 7, 11, 729 }, { 7, 11, 964 }, - { 7, 11, 1658 }, { 12, 11, 414 }, { 6, 11, 263 }, { 10, 11, 757 }, - { 11, 0, 337 }, { 14, 0, 303 }, { 7, 11, 1363 }, { 4, 11, 320 }, - { 12, 0, 506 }, { 6, 10, 447 }, { 5, 0, 77 }, { 7, 0, 1455 }, - { 10, 0, 843 }, { 19, 0, 73 }, { 7, 10, 577 }, { 7, 10, 1432 }, - { 9, 10, 475 }, { 9, 10, 505 }, { 9, 10, 526 }, { 9, 10, 609 }, - { 9, 10, 689 }, { 9, 10, 726 }, { 9, 10, 735 }, { 9, 10, 738 }, - { 10, 10, 556 }, { 10, 10, 674 }, { 10, 10, 684 }, { 11, 10, 89 }, - { 11, 10, 202 }, { 11, 10, 272 }, { 11, 10, 380 }, { 11, 10, 415 }, - { 11, 10, 505 }, { 11, 10, 537 }, { 11, 10, 550 }, { 11, 10, 562 }, - { 11, 10, 640 }, { 11, 10, 667 }, { 11, 10, 688 }, { 11, 10, 847 }, - { 11, 10, 927 }, { 11, 10, 930 }, { 11, 10, 940 }, { 12, 10, 144 }, - { 12, 10, 325 }, { 12, 10, 329 }, { 12, 10, 389 }, { 12, 10, 403 }, - { 12, 10, 451 }, { 12, 10, 515 }, { 12, 10, 604 }, { 12, 10, 616 }, - { 12, 10, 626 }, { 13, 10, 66 }, { 13, 10, 131 }, { 13, 10, 167 }, - { 13, 10, 236 }, { 13, 10, 368 }, { 13, 10, 411 }, { 13, 10, 434 }, - { 13, 10, 453 }, { 13, 10, 461 }, { 13, 10, 474 }, { 14, 10, 59 }, - { 14, 10, 60 }, { 14, 10, 139 }, { 14, 10, 152 }, { 14, 10, 276 }, - { 14, 10, 353 }, { 14, 10, 402 }, { 15, 10, 28 }, { 15, 10, 81 }, - { 15, 10, 123 }, { 15, 10, 152 }, { 18, 10, 136 }, { 20, 10, 88 }, - { 4, 0, 458 }, { 7, 0, 1420 }, { 6, 0, 109 }, { 10, 0, 382 }, - { 4, 11, 405 }, { 4, 10, 609 }, { 7, 10, 756 }, { 7, 11, 817 }, - { 9, 10, 544 }, { 11, 10, 413 }, { 14, 11, 58 }, { 14, 10, 307 }, - { 16, 10, 25 }, { 17, 11, 37 }, { 18, 11, 124 }, { 6, 0, 330 }, - { 7, 0, 1084 }, { 11, 0, 142 }, { 5, 11, 974 }, { 4, 10, 930 }, - { 5, 10, 947 }, { 5, 10, 939 }, { 14, 11, 394 }, { 16, 0, 91 }, - { 17, 0, 87 }, { 5, 11, 235 }, { 5, 10, 962 }, { 7, 11, 1239 }, - { 11, 11, 131 }, { 12, 11, 370 }, { 11, 0, 492 }, { 5, 10, 651 }, - { 8, 10, 170 }, { 9, 10, 61 }, { 9, 10, 63 }, { 10, 10, 23 }, - { 10, 10, 37 }, { 10, 10, 834 }, { 11, 10, 4 }, { 11, 10, 281 }, - { 11, 10, 503 }, { 11, 10, 677 }, { 12, 10, 96 }, { 12, 10, 130 }, - { 12, 10, 244 }, { 14, 10, 5 }, { 14, 10, 40 }, { 14, 10, 162 }, - { 14, 10, 202 }, { 18, 10, 133 }, { 4, 10, 406 }, { 5, 10, 579 }, - { 12, 10, 492 }, { 22, 10, 15 }, { 9, 11, 137 }, { 10, 11, 221 }, - { 6, 0, 1239 }, { 11, 0, 211 }, { 12, 0, 145 }, { 7, 11, 390 }, - { 10, 11, 140 }, { 7, 11, 1418 }, { 7, 11, 1144 }, { 6, 0, 1049 }, - { 7, 0, 321 }, { 6, 10, 17 }, { 7, 10, 1001 }, { 7, 10, 1982 }, - { 9, 10, 886 }, { 10, 10, 489 }, { 10, 10, 800 }, { 11, 10, 782 }, - { 12, 10, 320 }, { 13, 10, 467 }, { 14, 10, 145 }, { 14, 10, 387 }, - { 15, 10, 119 }, { 17, 10, 17 }, { 5, 11, 407 }, { 11, 11, 489 }, - { 19, 11, 37 }, { 20, 11, 73 }, { 22, 11, 38 }, { 5, 10, 458 }, - { 7, 0, 1985 }, { 7, 10, 1983 }, { 8, 10, 0 }, { 8, 10, 171 }, - { 9, 10, 120 }, { 9, 10, 732 }, { 10, 10, 473 }, { 11, 10, 656 }, - { 11, 10, 998 }, { 18, 10, 0 }, { 18, 10, 2 }, { 19, 10, 21 }, - { 5, 11, 325 }, { 7, 11, 1483 }, { 8, 11, 5 }, { 8, 11, 227 }, - { 9, 11, 105 }, { 10, 11, 585 }, { 12, 11, 614 }, { 8, 0, 122 }, - { 4, 0, 234 }, { 7, 11, 1196 }, { 6, 0, 976 }, { 6, 0, 1098 }, - { 6, 0, 1441 }, { 7, 0, 253 }, { 8, 0, 549 }, { 6, 11, 621 }, - { 13, 11, 504 }, { 16, 11, 19 }, { 4, 10, 519 }, { 5, 0, 430 }, - { 5, 0, 932 }, { 6, 0, 131 }, { 7, 0, 417 }, { 9, 0, 522 }, - { 11, 0, 314 }, { 13, 0, 390 }, { 14, 0, 149 }, { 14, 0, 399 }, - { 15, 0, 57 }, { 5, 10, 907 }, { 6, 10, 31 }, { 6, 11, 218 }, - { 7, 10, 491 }, { 7, 10, 530 }, { 8, 10, 592 }, { 11, 10, 53 }, - { 11, 10, 779 }, { 12, 10, 167 }, { 12, 10, 411 }, { 14, 10, 14 }, - { 14, 10, 136 }, { 15, 10, 72 }, { 16, 10, 17 }, { 16, 10, 72 }, - { 12, 11, 330 }, { 7, 11, 454 }, { 7, 11, 782 }, { 8, 11, 768 }, - { 4, 0, 507 }, { 10, 11, 676 }, { 12, 11, 462 }, { 6, 0, 630 }, - { 9, 0, 811 }, { 4, 10, 208 }, { 5, 10, 106 }, { 6, 10, 531 }, - { 8, 10, 408 }, { 9, 10, 188 }, { 10, 10, 572 }, { 4, 0, 343 }, - { 5, 0, 511 }, { 6, 10, 1693 }, { 6, 11, 164 }, { 4, 0, 448 }, - { 7, 0, 455 }, { 10, 0, 591 }, { 7, 0, 1381 }, { 12, 10, 441 }, - { 22, 11, 50 }, { 9, 10, 449 }, { 10, 10, 192 }, { 10, 10, 740 }, - { 6, 0, 575 }, { 4, 10, 241 }, { 6, 0, 1175 }, { 6, 0, 653 }, - { 6, 0, 1761 }, { 6, 0, 1198 }, { 4, 10, 259 }, { 6, 11, 343 }, - { 7, 11, 195 }, { 9, 11, 226 }, { 10, 11, 197 }, { 10, 11, 575 }, - { 11, 11, 502 }, { 11, 11, 899 }, { 7, 0, 1127 }, { 7, 0, 1572 }, - { 10, 0, 297 }, { 10, 0, 422 }, { 11, 0, 764 }, { 11, 0, 810 }, - { 12, 0, 264 }, { 13, 0, 102 }, { 13, 0, 300 }, { 13, 0, 484 }, - { 14, 0, 147 }, { 14, 0, 229 }, { 17, 0, 71 }, { 18, 0, 118 }, - { 19, 0, 120 }, { 7, 11, 666 }, { 4, 0, 678 }, { 4, 10, 173 }, - { 5, 10, 312 }, { 5, 10, 512 }, { 7, 10, 1285 }, { 7, 10, 1603 }, - { 7, 10, 1691 }, { 9, 10, 464 }, { 11, 10, 195 }, { 12, 10, 279 }, - { 12, 10, 448 }, { 14, 10, 11 }, { 19, 10, 102 }, { 16, 0, 99 }, - { 18, 0, 164 }, { 7, 11, 1125 }, { 9, 11, 143 }, { 11, 11, 61 }, - { 14, 11, 405 }, { 22, 11, 21 }, { 9, 11, 260 }, { 4, 10, 452 }, - { 5, 10, 583 }, { 5, 10, 817 }, { 6, 10, 433 }, { 7, 10, 593 }, - { 7, 10, 720 }, { 7, 10, 1378 }, { 8, 10, 161 }, { 9, 10, 284 }, - { 10, 10, 313 }, { 11, 10, 886 }, { 4, 10, 547 }, { 8, 10, 722 }, - { 14, 0, 35 }, { 14, 0, 191 }, { 13, 0, 45 }, { 10, 0, 121 }, - { 4, 0, 125 }, { 6, 0, 1622 }, { 5, 11, 959 }, { 8, 10, 420 }, - { 11, 10, 193 }, { 4, 0, 721 }, { 7, 10, 409 }, { 8, 0, 145 }, - { 7, 0, 792 }, { 8, 0, 147 }, { 10, 0, 821 }, { 11, 0, 970 }, - { 11, 0, 1021 }, { 8, 11, 173 }, { 6, 11, 266 }, { 4, 0, 715 }, - { 7, 0, 1999 }, { 10, 10, 308 }, { 5, 0, 531 }, { 5, 0, 168 }, - { 5, 0, 930 }, { 8, 0, 74 }, { 9, 0, 623 }, { 12, 0, 500 }, - { 12, 0, 579 }, { 16, 0, 65 }, { 10, 11, 246 }, { 6, 0, 220 }, - { 7, 0, 1101 }, { 13, 0, 105 }, { 14, 11, 314 }, { 5, 10, 1002 }, - { 8, 10, 745 }, { 6, 0, 960 }, { 20, 0, 0 }, { 20, 11, 0 }, - { 4, 0, 1005 }, { 4, 10, 239 }, { 6, 10, 477 }, { 7, 10, 1607 }, - { 11, 10, 68 }, { 11, 10, 617 }, { 6, 0, 19 }, { 7, 0, 1413 }, - { 11, 0, 428 }, { 21, 10, 13 }, { 7, 0, 96 }, { 8, 0, 401 }, - { 8, 0, 703 }, { 9, 0, 896 }, { 8, 11, 300 }, { 6, 0, 1595 }, - { 17, 0, 116 }, { 8, 0, 1021 }, { 7, 0, 1961 }, { 7, 0, 1965 }, - { 7, 0, 2030 }, { 8, 0, 150 }, { 8, 0, 702 }, { 8, 0, 737 }, - { 8, 0, 750 }, { 12, 0, 366 }, { 11, 11, 75 }, { 14, 11, 267 }, - { 4, 10, 367 }, { 8, 0, 800 }, { 9, 0, 148 }, { 9, 0, 872 }, - { 9, 0, 890 }, { 11, 0, 309 }, { 11, 0, 1001 }, { 13, 0, 267 }, - { 13, 0, 323 }, { 5, 11, 427 }, { 5, 11, 734 }, { 7, 11, 478 }, - { 8, 11, 52 }, { 7, 11, 239 }, { 11, 11, 217 }, { 14, 11, 165 }, - { 4, 11, 323 }, { 12, 11, 419 }, { 13, 0, 299 }, { 14, 0, 75 }, - { 6, 11, 87 }, { 6, 11, 1734 }, { 7, 11, 20 }, { 7, 11, 1056 }, - { 8, 11, 732 }, { 9, 11, 406 }, { 9, 11, 911 }, { 10, 11, 694 }, - { 6, 0, 1383 }, { 4, 10, 694 }, { 5, 11, 613 }, { 9, 0, 779 }, - { 4, 0, 598 }, { 12, 10, 687 }, { 6, 0, 970 }, { 7, 0, 424 }, - { 5, 0, 547 }, { 7, 11, 32 }, { 7, 11, 984 }, { 8, 11, 85 }, - { 8, 11, 709 }, { 9, 11, 579 }, { 9, 11, 847 }, { 9, 11, 856 }, - { 10, 11, 799 }, { 11, 11, 258 }, { 11, 11, 1007 }, { 12, 11, 331 }, - { 12, 11, 615 }, { 13, 11, 188 }, { 13, 11, 435 }, { 14, 11, 8 }, - { 15, 11, 165 }, { 16, 11, 27 }, { 20, 11, 40 }, { 6, 0, 1222 }, - { 6, 0, 1385 }, { 4, 0, 876 }, { 10, 11, 151 }, { 7, 10, 213 }, - { 4, 11, 167 }, { 7, 11, 82 }, { 5, 0, 133 }, { 6, 11, 24 }, - { 7, 11, 74 }, { 7, 11, 678 }, { 9, 11, 258 }, { 5, 11, 62 }, - { 6, 11, 534 }, { 7, 11, 684 }, { 7, 11, 1043 }, { 7, 11, 1072 }, - { 8, 11, 280 }, { 8, 11, 541 }, { 8, 11, 686 }, { 10, 11, 519 }, - { 11, 11, 252 }, { 12, 11, 282 }, { 8, 0, 187 }, { 8, 0, 8 }, - { 10, 0, 0 }, { 10, 0, 818 }, { 11, 0, 988 }, { 4, 11, 359 }, - { 11, 0, 429 }, { 15, 0, 51 }, { 7, 10, 1672 }, { 8, 0, 685 }, - { 5, 11, 211 }, { 7, 11, 88 }, { 8, 11, 627 }, { 6, 0, 472 }, - { 8, 0, 132 }, { 6, 11, 145 }, { 13, 11, 336 }, { 4, 10, 751 }, - { 11, 10, 390 }, { 12, 10, 32 }, { 6, 0, 938 }, { 6, 0, 1060 }, - { 4, 11, 263 }, { 4, 10, 409 }, { 5, 10, 78 }, { 9, 0, 874 }, - { 8, 0, 774 }, { 10, 0, 670 }, { 12, 0, 51 }, { 4, 11, 916 }, - { 6, 10, 473 }, { 7, 10, 1602 }, { 10, 10, 698 }, { 12, 10, 212 }, - { 13, 10, 307 }, { 17, 10, 105 }, { 18, 0, 92 }, { 15, 10, 156 }, - { 4, 0, 830 }, { 9, 0, 701 }, { 4, 11, 599 }, { 6, 11, 1634 }, - { 7, 11, 5 }, { 7, 11, 55 }, { 7, 11, 67 }, { 7, 11, 97 }, - { 7, 11, 691 }, { 7, 11, 979 }, { 7, 11, 1697 }, { 8, 11, 207 }, - { 8, 11, 214 }, { 8, 11, 231 }, { 8, 11, 294 }, { 8, 11, 336 }, - { 8, 11, 428 }, { 8, 11, 451 }, { 8, 11, 460 }, { 8, 11, 471 }, - { 8, 11, 622 }, { 8, 11, 626 }, { 8, 11, 679 }, { 8, 11, 759 }, - { 8, 11, 829 }, { 9, 11, 11 }, { 9, 11, 246 }, { 9, 11, 484 }, - { 9, 11, 573 }, { 9, 11, 706 }, { 9, 11, 762 }, { 9, 11, 798 }, - { 9, 11, 855 }, { 9, 11, 870 }, { 9, 11, 912 }, { 10, 11, 303 }, - { 10, 11, 335 }, { 10, 11, 424 }, { 10, 11, 461 }, { 10, 11, 543 }, - { 10, 11, 759 }, { 10, 11, 814 }, { 11, 11, 59 }, { 11, 11, 199 }, - { 11, 11, 235 }, { 11, 11, 475 }, { 11, 11, 590 }, { 11, 11, 929 }, - { 11, 11, 963 }, { 12, 11, 114 }, { 12, 11, 182 }, { 12, 11, 226 }, - { 12, 11, 332 }, { 12, 11, 439 }, { 12, 11, 575 }, { 12, 11, 598 }, - { 13, 11, 8 }, { 13, 11, 125 }, { 13, 11, 194 }, { 13, 11, 287 }, - { 14, 11, 197 }, { 14, 11, 383 }, { 15, 11, 53 }, { 17, 11, 63 }, - { 19, 11, 46 }, { 19, 11, 98 }, { 19, 11, 106 }, { 20, 11, 85 }, - { 4, 0, 127 }, { 5, 0, 350 }, { 6, 0, 356 }, { 8, 0, 426 }, - { 9, 0, 572 }, { 10, 0, 247 }, { 11, 0, 312 }, { 6, 0, 1215 }, - { 6, 0, 59 }, { 9, 0, 603 }, { 13, 0, 397 }, { 7, 11, 1853 }, - { 10, 11, 437 }, { 6, 0, 1762 }, { 19, 11, 126 }, { 7, 10, 883 }, - { 13, 0, 293 }, { 14, 0, 56 }, { 5, 10, 617 }, { 11, 10, 50 }, - { 5, 11, 187 }, { 7, 10, 1518 }, { 11, 10, 694 }, { 7, 0, 441 }, - { 6, 0, 111 }, { 7, 0, 4 }, { 8, 0, 163 }, { 8, 0, 776 }, - { 10, 0, 566 }, { 4, 0, 806 }, { 4, 11, 215 }, { 9, 11, 38 }, - { 10, 11, 3 }, { 11, 11, 23 }, { 11, 11, 127 }, { 11, 11, 796 }, - { 14, 0, 233 }, { 4, 10, 546 }, { 7, 10, 2042 }, { 7, 0, 1994 }, - { 6, 0, 1739 }, { 7, 11, 1530 }, { 8, 0, 393 }, { 5, 0, 297 }, - { 7, 0, 1038 }, { 14, 0, 359 }, { 19, 0, 52 }, { 20, 0, 47 }, - { 7, 0, 309 }, { 4, 10, 313 }, { 5, 10, 577 }, { 8, 10, 184 }, - { 13, 10, 433 }, { 7, 10, 935 }, { 12, 10, 186 }, { 12, 10, 292 }, - { 14, 10, 100 }, { 18, 10, 70 }, { 8, 0, 363 }, { 14, 0, 175 }, - { 11, 10, 402 }, { 12, 10, 109 }, { 12, 10, 431 }, { 13, 10, 179 }, - { 13, 10, 206 }, { 14, 10, 217 }, { 16, 10, 3 }, { 20, 10, 53 }, - { 5, 10, 886 }, { 6, 10, 46 }, { 6, 10, 1790 }, { 7, 10, 14 }, - { 7, 10, 732 }, { 7, 10, 1654 }, { 8, 10, 95 }, { 8, 10, 327 }, - { 8, 10, 616 }, { 9, 10, 892 }, { 10, 10, 598 }, { 10, 10, 769 }, - { 11, 10, 134 }, { 11, 10, 747 }, { 12, 10, 378 }, { 14, 10, 97 }, - { 8, 0, 666 }, { 7, 0, 1675 }, { 6, 0, 655 }, { 6, 0, 1600 }, - { 7, 0, 808 }, { 5, 10, 1021 }, { 4, 11, 28 }, { 5, 11, 440 }, - { 7, 11, 248 }, { 11, 11, 833 }, { 12, 11, 344 }, { 6, 11, 1654 }, - { 4, 0, 280 }, { 12, 0, 54 }, { 4, 0, 421 }, { 5, 0, 548 }, - { 4, 10, 153 }, { 6, 11, 339 }, { 7, 11, 923 }, { 5, 11, 853 }, - { 5, 10, 798 }, { 4, 10, 587 }, { 6, 11, 249 }, { 7, 11, 1234 }, - { 11, 11, 573 }, { 6, 10, 598 }, { 7, 10, 42 }, { 8, 10, 695 }, - { 10, 10, 212 }, { 11, 10, 158 }, { 14, 10, 196 }, { 17, 10, 85 }, - { 7, 0, 249 }, { 5, 10, 957 }, { 5, 10, 1008 }, { 4, 10, 129 }, - { 7, 10, 465 }, { 6, 0, 254 }, { 7, 0, 842 }, { 7, 0, 1659 }, - { 9, 0, 109 }, { 10, 0, 103 }, { 7, 10, 908 }, { 7, 10, 1201 }, - { 9, 10, 755 }, { 11, 10, 906 }, { 12, 10, 527 }, { 18, 10, 7 }, - { 5, 0, 262 }, { 8, 10, 450 }, { 16, 0, 1 }, { 10, 11, 201 }, - { 14, 11, 319 }, { 7, 11, 49 }, { 7, 11, 392 }, { 8, 11, 20 }, - { 8, 11, 172 }, { 8, 11, 690 }, { 9, 11, 383 }, { 9, 11, 845 }, - { 10, 11, 48 }, { 11, 11, 293 }, { 11, 11, 832 }, { 11, 11, 920 }, - { 13, 11, 221 }, { 5, 11, 858 }, { 5, 11, 992 }, { 6, 0, 805 }, - { 11, 10, 1003 }, { 6, 0, 1630 }, { 6, 11, 307 }, { 7, 11, 1512 }, - { 7, 11, 1794 }, { 6, 11, 268 }, { 9, 11, 62 }, { 7, 10, 1868 }, - { 5, 0, 671 }, { 4, 0, 989 }, { 8, 0, 972 }, { 8, 0, 998 }, - { 4, 11, 423 }, { 4, 0, 889 }, { 7, 0, 1382 }, { 7, 0, 1910 }, - { 7, 10, 965 }, { 7, 10, 1460 }, { 7, 10, 1604 }, { 4, 0, 627 }, - { 5, 0, 775 }, { 10, 11, 106 }, { 6, 11, 348 }, { 7, 0, 202 }, - { 11, 0, 362 }, { 11, 0, 948 }, { 12, 0, 388 }, { 10, 11, 771 }, - { 6, 11, 613 }, { 8, 11, 223 }, { 6, 0, 560 }, { 7, 0, 451 }, - { 8, 0, 389 }, { 12, 0, 490 }, { 13, 0, 16 }, { 13, 0, 215 }, - { 13, 0, 351 }, { 18, 0, 132 }, { 19, 0, 125 }, { 7, 0, 841 }, - { 8, 0, 566 }, { 8, 0, 938 }, { 4, 11, 670 }, { 5, 0, 912 }, - { 6, 0, 1695 }, { 12, 11, 55 }, { 9, 11, 40 }, { 11, 11, 136 }, - { 7, 0, 1361 }, { 7, 10, 982 }, { 10, 10, 32 }, { 15, 10, 56 }, - { 11, 11, 259 }, { 12, 11, 270 }, { 5, 0, 236 }, { 6, 0, 572 }, - { 8, 0, 492 }, { 11, 0, 618 }, { 16, 0, 56 }, { 8, 11, 572 }, - { 9, 11, 310 }, { 9, 11, 682 }, { 9, 11, 698 }, { 6, 0, 1854 }, - { 5, 0, 190 }, { 8, 0, 318 }, { 5, 10, 435 }, { 7, 0, 1376 }, - { 4, 11, 296 }, { 6, 11, 352 }, { 7, 11, 401 }, { 7, 11, 1410 }, - { 7, 11, 1594 }, { 7, 11, 1674 }, { 8, 11, 63 }, { 8, 11, 660 }, - { 9, 11, 74 }, { 7, 0, 349 }, { 5, 10, 85 }, { 6, 10, 419 }, - { 7, 10, 305 }, { 7, 10, 361 }, { 7, 10, 1337 }, { 8, 10, 71 }, - { 12, 10, 519 }, { 4, 11, 139 }, { 4, 11, 388 }, { 12, 11, 188 }, - { 6, 0, 1972 }, { 6, 0, 2013 }, { 8, 0, 951 }, { 10, 0, 947 }, - { 10, 0, 974 }, { 10, 0, 1018 }, { 14, 0, 476 }, { 12, 10, 688 }, - { 7, 10, 740 }, { 5, 10, 691 }, { 7, 10, 345 }, { 9, 10, 94 }, - { 12, 10, 169 }, { 9, 0, 344 }, { 5, 10, 183 }, { 6, 10, 582 }, - { 10, 10, 679 }, { 12, 10, 435 }, { 7, 10, 511 }, { 4, 0, 850 }, - { 8, 11, 441 }, { 10, 11, 314 }, { 15, 11, 3 }, { 7, 10, 1993 }, - { 8, 10, 684 }, { 4, 11, 747 }, { 6, 11, 290 }, { 6, 10, 583 }, - { 7, 11, 649 }, { 7, 11, 1479 }, { 7, 11, 1583 }, { 5, 11, 232 }, - { 5, 10, 704 }, { 6, 0, 910 }, { 4, 10, 179 }, { 5, 10, 198 }, - { 5, 10, 697 }, { 7, 10, 347 }, { 7, 10, 971 }, { 8, 10, 181 }, - { 10, 10, 711 }, { 8, 11, 525 }, { 14, 0, 19 }, { 14, 0, 28 }, - { 16, 0, 29 }, { 7, 0, 85 }, { 7, 0, 247 }, { 8, 0, 585 }, - { 10, 0, 163 }, { 4, 0, 487 }, { 7, 11, 472 }, { 7, 11, 1801 }, - { 10, 11, 748 }, { 13, 11, 458 }, { 4, 10, 243 }, { 5, 10, 203 }, - { 7, 10, 19 }, { 7, 10, 71 }, { 7, 10, 113 }, { 10, 10, 405 }, - { 11, 10, 357 }, { 14, 10, 240 }, { 7, 10, 1450 }, { 11, 10, 99 }, - { 4, 11, 425 }, { 10, 0, 145 }, { 19, 0, 83 }, { 6, 10, 492 }, - { 9, 11, 247 }, { 4, 0, 1013 }, { 6, 0, 2033 }, { 5, 10, 134 }, - { 6, 10, 408 }, { 6, 10, 495 }, { 7, 10, 1593 }, { 7, 0, 1922 }, - { 6, 11, 1768 }, { 4, 0, 124 }, { 10, 0, 457 }, { 11, 0, 121 }, - { 11, 0, 169 }, { 11, 0, 870 }, { 11, 0, 874 }, { 12, 0, 214 }, - { 14, 0, 187 }, { 15, 0, 77 }, { 5, 0, 557 }, { 7, 0, 1457 }, - { 11, 0, 66 }, { 5, 11, 943 }, { 6, 11, 1779 }, { 14, 10, 4 }, - { 4, 10, 248 }, { 4, 10, 665 }, { 7, 10, 137 }, { 9, 10, 349 }, - { 7, 0, 1193 }, { 5, 11, 245 }, { 6, 11, 576 }, { 7, 11, 582 }, - { 8, 11, 225 }, { 16, 0, 82 }, { 7, 10, 1270 }, { 11, 10, 612 }, - { 5, 0, 454 }, { 10, 0, 352 }, { 10, 11, 352 }, { 18, 0, 57 }, - { 5, 10, 371 }, { 7, 10, 563 }, { 7, 0, 1333 }, { 6, 0, 107 }, - { 7, 0, 638 }, { 7, 0, 1632 }, { 9, 0, 396 }, { 6, 11, 610 }, - { 5, 0, 370 }, { 6, 0, 1756 }, { 4, 10, 374 }, { 7, 10, 547 }, - { 7, 10, 1700 }, { 7, 10, 1833 }, { 11, 10, 858 }, { 5, 0, 204 }, - { 6, 0, 1305 }, { 9, 10, 311 }, { 13, 10, 42 }, { 5, 0, 970 }, - { 6, 0, 1706 }, { 6, 10, 1647 }, { 7, 10, 1552 }, { 7, 10, 2010 }, - { 9, 10, 494 }, { 9, 10, 509 }, { 13, 11, 455 }, { 15, 11, 99 }, - { 15, 11, 129 }, { 16, 11, 68 }, { 7, 0, 3 }, { 4, 0, 35 }, - { 5, 0, 121 }, { 5, 0, 483 }, { 5, 0, 685 }, { 6, 0, 489 }, - { 6, 0, 782 }, { 6, 0, 1032 }, { 7, 0, 1204 }, { 8, 0, 394 }, - { 4, 0, 921 }, { 5, 0, 1007 }, { 8, 11, 360 }, { 10, 11, 63 }, - { 7, 0, 1696 }, { 6, 0, 1519 }, { 4, 11, 443 }, { 7, 11, 944 }, - { 6, 10, 123 }, { 7, 10, 214 }, { 9, 10, 728 }, { 10, 10, 157 }, - { 11, 10, 346 }, { 11, 10, 662 }, { 15, 10, 106 }, { 9, 0, 981 }, - { 7, 10, 1435 }, { 6, 0, 1072 }, { 4, 0, 712 }, { 6, 0, 1629 }, - { 6, 0, 728 }, { 4, 11, 298 }, { 9, 11, 483 }, { 6, 0, 1177 }, - { 6, 0, 1271 }, { 5, 11, 164 }, { 7, 11, 121 }, { 14, 11, 189 }, - { 7, 0, 1608 }, { 4, 10, 707 }, { 5, 10, 588 }, { 6, 10, 393 }, - { 13, 10, 106 }, { 18, 10, 49 }, { 19, 10, 41 }, { 23, 0, 16 }, - { 23, 11, 16 }, { 6, 10, 211 }, { 7, 10, 1690 }, { 11, 10, 486 }, - { 12, 10, 369 }, { 5, 0, 485 }, { 19, 11, 15 }, { 21, 11, 27 }, - { 4, 11, 172 }, { 9, 11, 611 }, { 10, 11, 436 }, { 12, 11, 673 }, - { 13, 11, 255 }, { 5, 11, 844 }, { 10, 11, 484 }, { 11, 11, 754 }, - { 12, 11, 457 }, { 14, 11, 171 }, { 14, 11, 389 }, { 18, 11, 153 }, - { 4, 0, 285 }, { 5, 0, 27 }, { 5, 0, 317 }, { 6, 0, 301 }, - { 7, 0, 7 }, { 8, 0, 153 }, { 10, 0, 766 }, { 11, 0, 468 }, - { 12, 0, 467 }, { 13, 0, 143 }, { 6, 0, 1462 }, { 9, 11, 263 }, - { 10, 11, 147 }, { 10, 11, 492 }, { 5, 11, 537 }, { 6, 0, 1945 }, - { 6, 0, 1986 }, { 6, 0, 1991 }, { 6, 0, 2038 }, { 6, 10, 219 }, - { 9, 11, 842 }, { 14, 0, 52 }, { 17, 0, 50 }, { 5, 10, 582 }, - { 6, 10, 1646 }, { 7, 10, 99 }, { 7, 10, 1962 }, { 7, 10, 1986 }, - { 8, 10, 515 }, { 8, 10, 773 }, { 9, 10, 23 }, { 9, 10, 491 }, - { 12, 10, 620 }, { 14, 10, 93 }, { 10, 11, 97 }, { 20, 0, 21 }, - { 20, 0, 44 }, { 5, 10, 851 }, { 8, 0, 819 }, { 11, 0, 917 }, - { 5, 11, 230 }, { 5, 11, 392 }, { 6, 11, 420 }, { 8, 10, 762 }, - { 8, 10, 812 }, { 9, 11, 568 }, { 9, 10, 910 }, { 12, 11, 612 }, - { 7, 0, 784 }, { 15, 0, 135 }, { 15, 11, 135 }, { 10, 0, 454 }, - { 12, 0, 324 }, { 4, 11, 0 }, { 5, 11, 41 }, { 7, 11, 1459 }, - { 7, 11, 1469 }, { 7, 11, 1618 }, { 7, 11, 1859 }, { 9, 11, 549 }, - { 11, 11, 905 }, { 4, 10, 98 }, { 7, 10, 1365 }, { 9, 10, 422 }, - { 9, 10, 670 }, { 10, 10, 775 }, { 11, 10, 210 }, { 13, 10, 26 }, - { 13, 10, 457 }, { 13, 10, 476 }, { 6, 0, 1719 }, { 6, 0, 1735 }, - { 7, 0, 2016 }, { 7, 0, 2020 }, { 8, 0, 837 }, { 9, 0, 852 }, - { 5, 11, 696 }, { 7, 0, 852 }, { 4, 0, 952 }, { 6, 10, 1730 }, - { 4, 11, 771 }, { 10, 0, 568 }, { 9, 0, 448 }, { 11, 0, 146 }, - { 8, 0, 67 }, { 10, 0, 419 }, { 5, 11, 921 }, { 9, 10, 147 }, - { 6, 0, 1826 }, { 10, 0, 657 }, { 14, 0, 297 }, { 14, 0, 361 }, - { 6, 0, 666 }, { 6, 0, 767 }, { 6, 0, 1542 }, { 11, 0, 729 }, - { 6, 11, 180 }, { 7, 11, 1137 }, { 8, 11, 751 }, { 11, 11, 805 }, - { 4, 11, 183 }, { 7, 11, 271 }, { 11, 11, 824 }, { 11, 11, 952 }, - { 13, 11, 278 }, { 13, 11, 339 }, { 13, 11, 482 }, { 14, 11, 424 }, - { 20, 11, 99 }, { 4, 0, 669 }, { 5, 11, 477 }, { 5, 11, 596 }, - { 6, 11, 505 }, { 7, 11, 1221 }, { 11, 11, 907 }, { 12, 11, 209 }, - { 13, 11, 214 }, { 7, 11, 1215 }, { 5, 0, 402 }, { 6, 10, 30 }, - { 11, 10, 56 }, { 11, 10, 305 }, { 7, 11, 564 }, { 14, 11, 168 }, - { 11, 0, 152 }, { 7, 0, 912 }, { 7, 10, 1614 }, { 4, 10, 150 }, - { 5, 10, 303 }, { 6, 10, 327 }, { 7, 0, 320 }, { 8, 0, 51 }, - { 9, 0, 868 }, { 10, 0, 833 }, { 12, 0, 481 }, { 12, 0, 570 }, - { 20, 0, 106 }, { 4, 0, 445 }, { 7, 11, 274 }, { 11, 11, 263 }, - { 11, 11, 479 }, { 11, 11, 507 }, { 12, 11, 277 }, { 10, 0, 555 }, - { 11, 0, 308 }, { 19, 0, 95 }, { 6, 11, 1645 }, { 8, 10, 192 }, - { 10, 10, 78 }, { 13, 10, 359 }, { 7, 10, 786 }, { 6, 11, 92 }, - { 6, 11, 188 }, { 7, 11, 1269 }, { 7, 11, 1524 }, { 7, 11, 1876 }, - { 10, 11, 228 }, { 11, 11, 1020 }, { 4, 11, 459 }, { 5, 11, 966 }, - { 11, 0, 386 }, { 6, 10, 1638 }, { 7, 10, 79 }, { 7, 10, 496 }, - { 9, 10, 138 }, { 10, 10, 336 }, { 12, 10, 412 }, { 12, 10, 440 }, - { 14, 10, 305 }, { 5, 0, 239 }, { 7, 0, 83 }, { 7, 0, 1990 }, - { 8, 0, 130 }, { 11, 0, 720 }, { 10, 11, 709 }, { 4, 0, 143 }, - { 5, 0, 550 }, { 5, 0, 752 }, { 5, 0, 123 }, { 6, 0, 530 }, - { 7, 0, 348 }, { 7, 0, 1419 }, { 7, 0, 2024 }, { 6, 11, 18 }, - { 7, 11, 179 }, { 7, 11, 721 }, { 7, 11, 932 }, { 8, 11, 548 }, - { 8, 11, 757 }, { 9, 11, 54 }, { 9, 11, 65 }, { 9, 11, 532 }, - { 9, 11, 844 }, { 10, 11, 113 }, { 10, 11, 117 }, { 10, 11, 236 }, - { 10, 11, 315 }, { 10, 11, 430 }, { 10, 11, 798 }, { 11, 11, 153 }, - { 11, 11, 351 }, { 11, 11, 375 }, { 12, 11, 78 }, { 12, 11, 151 }, - { 12, 11, 392 }, { 14, 11, 248 }, { 15, 11, 23 }, { 7, 10, 204 }, - { 7, 10, 415 }, { 8, 10, 42 }, { 10, 10, 85 }, { 11, 10, 564 }, - { 6, 0, 958 }, { 5, 11, 965 }, { 4, 0, 210 }, { 7, 11, 1429 }, - { 10, 11, 480 }, { 6, 11, 182 }, { 11, 11, 345 }, { 10, 11, 65 }, - { 10, 11, 488 }, { 10, 11, 497 }, { 4, 10, 3 }, { 5, 10, 247 }, - { 5, 10, 644 }, { 7, 10, 744 }, { 7, 10, 1207 }, { 7, 10, 1225 }, - { 7, 10, 1909 }, { 18, 10, 147 }, { 4, 0, 430 }, { 5, 10, 285 }, - { 9, 10, 67 }, { 13, 10, 473 }, { 15, 10, 82 }, { 16, 11, 16 }, - { 7, 11, 1162 }, { 9, 11, 588 }, { 10, 11, 260 }, { 23, 10, 8 }, - { 5, 0, 213 }, { 10, 0, 7 }, { 7, 0, 801 }, { 6, 11, 1786 }, - { 7, 11, 308 }, { 6, 0, 936 }, { 6, 0, 1289 }, { 5, 0, 108 }, - { 4, 0, 885 }, { 5, 0, 219 }, { 11, 0, 587 }, { 4, 0, 193 }, - { 5, 0, 916 }, { 6, 0, 1041 }, { 7, 0, 364 }, { 10, 0, 398 }, - { 10, 0, 726 }, { 11, 0, 317 }, { 11, 0, 626 }, { 12, 0, 142 }, - { 12, 0, 288 }, { 12, 0, 678 }, { 13, 0, 313 }, { 15, 0, 113 }, - { 18, 0, 114 }, { 7, 0, 1165 }, { 6, 0, 241 }, { 9, 0, 342 }, - { 10, 0, 729 }, { 11, 0, 284 }, { 11, 0, 445 }, { 11, 0, 651 }, - { 11, 0, 863 }, { 13, 0, 398 }, { 18, 0, 99 }, { 7, 0, 907 }, - { 8, 0, 832 }, { 9, 0, 303 }, { 4, 10, 29 }, { 6, 10, 532 }, - { 7, 10, 1628 }, { 7, 10, 1648 }, { 9, 10, 350 }, { 10, 10, 433 }, - { 11, 10, 97 }, { 11, 10, 557 }, { 11, 10, 745 }, { 12, 10, 289 }, - { 12, 10, 335 }, { 12, 10, 348 }, { 12, 10, 606 }, { 13, 10, 116 }, - { 13, 10, 233 }, { 13, 10, 466 }, { 14, 10, 181 }, { 14, 10, 209 }, - { 14, 10, 232 }, { 14, 10, 236 }, { 14, 10, 300 }, { 16, 10, 41 }, - { 20, 10, 97 }, { 7, 11, 423 }, { 7, 10, 1692 }, { 8, 11, 588 }, - { 6, 0, 931 }, { 6, 0, 1454 }, { 5, 10, 501 }, { 7, 10, 1704 }, - { 9, 10, 553 }, { 11, 10, 520 }, { 12, 10, 557 }, { 13, 10, 249 }, - { 8, 11, 287 }, { 4, 0, 562 }, { 9, 0, 254 }, { 11, 0, 879 }, - { 4, 0, 786 }, { 14, 11, 32 }, { 18, 11, 85 }, { 20, 11, 2 }, - { 24, 11, 16 }, { 7, 0, 1294 }, { 7, 11, 723 }, { 7, 11, 1135 }, - { 6, 0, 216 }, { 7, 0, 901 }, { 7, 0, 1343 }, { 8, 0, 493 }, - { 6, 11, 403 }, { 7, 11, 719 }, { 8, 11, 809 }, { 8, 11, 834 }, - { 5, 11, 210 }, { 6, 11, 213 }, { 7, 11, 60 }, { 10, 11, 364 }, - { 11, 11, 135 }, { 7, 0, 341 }, { 11, 0, 219 }, { 5, 11, 607 }, - { 8, 11, 326 }, { 8, 11, 490 }, { 4, 11, 701 }, { 5, 11, 472 }, - { 5, 11, 639 }, { 7, 11, 1249 }, { 9, 11, 758 }, { 11, 11, 896 }, - { 7, 11, 380 }, { 7, 11, 1947 }, { 11, 0, 130 }, { 7, 0, 1734 }, - { 10, 0, 115 }, { 11, 0, 420 }, { 12, 0, 154 }, { 13, 0, 404 }, - { 14, 0, 346 }, { 15, 0, 54 }, { 6, 10, 129 }, { 4, 11, 386 }, - { 7, 11, 41 }, { 8, 11, 405 }, { 9, 11, 497 }, { 11, 11, 110 }, - { 11, 11, 360 }, { 15, 11, 37 }, { 16, 11, 84 }, { 13, 11, 282 }, - { 5, 11, 46 }, { 7, 11, 1452 }, { 7, 11, 1480 }, { 8, 11, 634 }, - { 12, 11, 472 }, { 4, 11, 524 }, { 8, 11, 810 }, { 10, 11, 238 }, - { 13, 11, 33 }, { 5, 0, 604 }, { 5, 0, 1011 }, { 8, 0, 701 }, - { 8, 0, 856 }, { 8, 0, 858 }, { 8, 0, 879 }, { 12, 0, 702 }, - { 14, 0, 447 }, { 4, 0, 54 }, { 5, 0, 666 }, { 7, 0, 1039 }, - { 7, 0, 1130 }, { 9, 0, 195 }, { 10, 0, 302 }, { 4, 10, 25 }, - { 5, 10, 60 }, { 6, 10, 504 }, { 7, 10, 614 }, { 7, 10, 1155 }, - { 12, 10, 0 }, { 7, 10, 1248 }, { 11, 10, 621 }, { 11, 10, 702 }, - { 5, 11, 997 }, { 9, 10, 321 }, { 6, 0, 1669 }, { 6, 0, 1791 }, - { 4, 10, 379 }, { 7, 10, 1397 }, { 10, 11, 372 }, { 5, 11, 782 }, - { 5, 11, 829 }, { 6, 11, 1738 }, { 7, 0, 1228 }, { 4, 10, 118 }, - { 6, 10, 274 }, { 6, 10, 361 }, { 7, 10, 75 }, { 13, 10, 441 }, - { 4, 0, 623 }, { 9, 11, 279 }, { 10, 11, 407 }, { 14, 11, 84 }, - { 22, 11, 18 }, { 9, 10, 841 }, { 7, 0, 798 }, { 12, 10, 693 }, - { 5, 10, 314 }, { 6, 10, 221 }, { 7, 10, 419 }, { 10, 10, 650 }, - { 11, 10, 396 }, { 12, 10, 156 }, { 13, 10, 369 }, { 14, 10, 333 }, - { 17, 10, 47 }, { 7, 11, 1372 }, { 7, 0, 122 }, { 9, 0, 259 }, - { 10, 0, 84 }, { 11, 0, 470 }, { 12, 0, 541 }, { 13, 0, 379 }, - { 6, 0, 837 }, { 8, 0, 1013 }, { 4, 11, 78 }, { 5, 11, 96 }, - { 5, 11, 182 }, { 7, 11, 1724 }, { 7, 11, 1825 }, { 10, 11, 394 }, - { 10, 11, 471 }, { 11, 11, 532 }, { 14, 11, 340 }, { 17, 11, 88 }, - { 6, 0, 577 }, { 7, 11, 1964 }, { 4, 10, 913 }, { 6, 0, 460 }, - { 8, 0, 891 }, { 10, 0, 901 }, { 10, 0, 919 }, { 10, 0, 932 }, - { 12, 0, 715 }, { 12, 0, 728 }, { 12, 0, 777 }, { 14, 0, 457 }, - { 16, 0, 103 }, { 5, 0, 82 }, { 5, 0, 131 }, { 7, 0, 1755 }, - { 8, 0, 31 }, { 9, 0, 168 }, { 9, 0, 764 }, { 11, 0, 869 }, - { 8, 10, 475 }, { 6, 0, 605 }, { 5, 10, 1016 }, { 9, 11, 601 }, - { 9, 11, 619 }, { 10, 11, 505 }, { 10, 11, 732 }, { 11, 11, 355 }, - { 12, 11, 139 }, { 7, 10, 602 }, { 8, 10, 179 }, { 10, 10, 781 }, - { 12, 10, 126 }, { 6, 0, 1246 }, { 6, 10, 329 }, { 10, 10, 111 }, - { 6, 11, 215 }, { 7, 11, 1028 }, { 7, 11, 1473 }, { 7, 11, 1721 }, - { 9, 11, 424 }, { 10, 11, 779 }, { 5, 0, 278 }, { 9, 0, 68 }, - { 6, 0, 932 }, { 6, 0, 1084 }, { 16, 0, 86 }, { 4, 0, 163 }, - { 5, 0, 201 }, { 5, 0, 307 }, { 5, 0, 310 }, { 6, 0, 335 }, - { 7, 0, 284 }, { 7, 0, 1660 }, { 8, 0, 165 }, { 8, 0, 781 }, - { 6, 0, 707 }, { 6, 0, 33 }, { 7, 0, 1244 }, { 5, 10, 821 }, - { 6, 11, 67 }, { 6, 10, 1687 }, { 7, 11, 258 }, { 7, 11, 1630 }, - { 9, 11, 354 }, { 9, 11, 675 }, { 10, 11, 830 }, { 14, 11, 80 }, - { 17, 11, 80 }, { 6, 11, 141 }, { 7, 11, 225 }, { 9, 11, 59 }, - { 9, 11, 607 }, { 10, 11, 312 }, { 11, 11, 687 }, { 12, 11, 555 }, - { 13, 11, 373 }, { 13, 11, 494 }, { 20, 11, 58 }, { 6, 0, 1113 }, - { 9, 0, 388 }, { 5, 10, 71 }, { 7, 10, 1407 }, { 9, 10, 704 }, - { 10, 10, 261 }, { 10, 10, 619 }, { 11, 10, 547 }, { 11, 10, 619 }, - { 15, 10, 157 }, { 7, 0, 1953 }, { 8, 0, 720 }, { 10, 0, 203 }, - { 7, 10, 2008 }, { 9, 10, 337 }, { 10, 10, 517 }, { 6, 0, 326 }, - { 7, 0, 677 }, { 9, 0, 425 }, { 11, 11, 81 }, { 7, 0, 1316 }, - { 7, 0, 1412 }, { 7, 0, 1839 }, { 9, 0, 589 }, { 11, 0, 241 }, - { 11, 0, 676 }, { 11, 0, 811 }, { 11, 0, 891 }, { 12, 0, 140 }, - { 12, 0, 346 }, { 12, 0, 479 }, { 13, 0, 140 }, { 13, 0, 381 }, - { 14, 0, 188 }, { 18, 0, 30 }, { 20, 0, 108 }, { 5, 0, 416 }, - { 6, 10, 86 }, { 6, 10, 603 }, { 7, 10, 292 }, { 7, 10, 561 }, - { 8, 10, 257 }, { 8, 10, 382 }, { 9, 10, 721 }, { 9, 10, 778 }, - { 11, 10, 581 }, { 12, 10, 466 }, { 4, 10, 486 }, { 5, 10, 491 }, - { 6, 0, 1300 }, { 4, 10, 72 }, { 7, 0, 847 }, { 6, 10, 265 }, - { 7, 11, 430 }, { 11, 11, 46 }, { 5, 11, 602 }, { 6, 11, 106 }, - { 7, 11, 1786 }, { 7, 11, 1821 }, { 7, 11, 2018 }, { 9, 11, 418 }, - { 9, 11, 763 }, { 5, 0, 358 }, { 7, 0, 535 }, { 7, 0, 1184 }, - { 10, 0, 662 }, { 13, 0, 212 }, { 13, 0, 304 }, { 13, 0, 333 }, - { 17, 0, 98 }, { 5, 11, 65 }, { 6, 11, 416 }, { 7, 11, 1720 }, - { 7, 11, 1924 }, { 8, 11, 677 }, { 10, 11, 109 }, { 11, 11, 14 }, - { 11, 11, 70 }, { 11, 11, 569 }, { 11, 11, 735 }, { 15, 11, 153 }, - { 20, 11, 80 }, { 6, 0, 1823 }, { 8, 0, 839 }, { 8, 0, 852 }, - { 8, 0, 903 }, { 10, 0, 940 }, { 12, 0, 707 }, { 12, 0, 775 }, - { 7, 11, 1229 }, { 6, 0, 1522 }, { 12, 0, 654 }, { 8, 11, 595 }, - { 11, 0, 163 }, { 13, 0, 314 }, { 4, 0, 978 }, { 4, 0, 601 }, - { 6, 0, 2035 }, { 9, 10, 234 }, { 5, 10, 815 }, { 6, 10, 1688 }, - { 6, 10, 1755 }, { 5, 0, 946 }, { 8, 0, 434 }, { 6, 10, 197 }, - { 8, 10, 205 }, { 7, 0, 411 }, { 7, 0, 590 }, { 8, 0, 631 }, - { 9, 0, 323 }, { 10, 0, 355 }, { 11, 0, 491 }, { 12, 0, 143 }, - { 12, 0, 402 }, { 13, 0, 73 }, { 14, 0, 408 }, { 15, 0, 107 }, - { 18, 0, 71 }, { 7, 0, 1467 }, { 8, 0, 328 }, { 10, 0, 544 }, - { 11, 0, 955 }, { 12, 0, 13 }, { 13, 0, 320 }, { 17, 0, 83 }, - { 14, 0, 410 }, { 11, 0, 511 }, { 13, 0, 394 }, { 14, 0, 298 }, - { 14, 0, 318 }, { 18, 0, 103 }, { 6, 10, 452 }, { 7, 10, 312 }, - { 10, 10, 219 }, { 10, 10, 589 }, { 4, 10, 333 }, { 9, 10, 176 }, - { 12, 10, 353 }, { 13, 10, 187 }, { 7, 11, 329 }, { 4, 11, 469 }, - { 5, 0, 835 }, { 6, 0, 483 }, { 6, 11, 1743 }, { 5, 11, 929 }, - { 6, 11, 340 }, { 8, 11, 376 }, { 8, 11, 807 }, { 6, 10, 1685 }, - { 4, 0, 677 }, { 5, 11, 218 }, { 7, 11, 1610 }, { 10, 11, 83 }, - { 5, 11, 571 }, { 7, 11, 1842 }, { 4, 11, 455 }, { 9, 0, 70 }, - { 7, 0, 1405 }, { 7, 10, 135 }, { 8, 10, 7 }, { 8, 10, 62 }, - { 9, 10, 243 }, { 10, 10, 658 }, { 10, 10, 697 }, { 11, 10, 456 }, - { 11, 10, 756 }, { 9, 10, 395 }, { 10, 10, 79 }, { 9, 0, 108 }, - { 6, 11, 161 }, { 7, 11, 372 }, { 9, 11, 597 }, { 4, 11, 349 }, - { 4, 0, 777 }, { 4, 0, 331 }, { 7, 10, 631 }, { 5, 0, 747 }, - { 6, 11, 432 }, { 6, 11, 608 }, { 11, 11, 322 }, { 10, 10, 835 }, - { 5, 11, 468 }, { 7, 11, 1809 }, { 10, 11, 325 }, { 11, 11, 856 }, - { 12, 11, 345 }, { 15, 11, 104 }, { 5, 11, 223 }, { 7, 10, 406 }, - { 7, 10, 459 }, { 8, 10, 606 }, { 11, 10, 726 }, { 4, 11, 566 }, - { 14, 0, 68 }, { 4, 11, 59 }, { 7, 11, 1394 }, { 6, 11, 436 }, - { 11, 11, 481 }, { 4, 11, 48 }, { 5, 11, 271 }, { 7, 11, 953 }, - { 11, 11, 170 }, { 5, 11, 610 }, { 8, 11, 457 }, { 5, 11, 755 }, - { 7, 11, 1217 }, { 5, 10, 612 }, { 4, 11, 197 }, { 4, 0, 505 }, - { 4, 10, 372 }, { 7, 10, 482 }, { 8, 10, 158 }, { 9, 10, 602 }, - { 9, 10, 615 }, { 10, 10, 245 }, { 10, 10, 678 }, { 10, 10, 744 }, - { 11, 10, 248 }, { 11, 10, 806 }, { 5, 0, 326 }, { 5, 10, 854 }, - { 7, 10, 1991 }, { 4, 0, 691 }, { 18, 0, 16 }, { 6, 0, 628 }, - { 9, 0, 35 }, { 10, 0, 680 }, { 10, 0, 793 }, { 11, 0, 364 }, - { 13, 0, 357 }, { 15, 0, 164 }, { 10, 0, 654 }, { 6, 0, 32 }, - { 7, 0, 385 }, { 7, 0, 757 }, { 7, 0, 1916 }, { 8, 0, 37 }, - { 8, 0, 94 }, { 8, 0, 711 }, { 9, 0, 541 }, { 10, 0, 162 }, - { 10, 0, 795 }, { 11, 0, 989 }, { 11, 0, 1010 }, { 12, 0, 14 }, - { 14, 0, 308 }, { 5, 11, 217 }, { 6, 0, 152 }, { 6, 0, 349 }, - { 6, 0, 1682 }, { 7, 0, 1252 }, { 8, 0, 112 }, { 9, 0, 435 }, - { 9, 0, 668 }, { 10, 0, 290 }, { 10, 0, 319 }, { 10, 0, 815 }, - { 11, 0, 180 }, { 11, 0, 837 }, { 12, 0, 240 }, { 13, 0, 152 }, - { 13, 0, 219 }, { 14, 0, 158 }, { 4, 0, 581 }, { 6, 0, 726 }, - { 5, 10, 195 }, { 7, 10, 1685 }, { 6, 0, 126 }, { 7, 0, 573 }, - { 8, 0, 397 }, { 14, 0, 44 }, { 10, 0, 89 }, { 7, 10, 1997 }, - { 8, 10, 730 }, { 11, 10, 1006 }, { 6, 0, 1531 }, { 6, 0, 1167 }, - { 5, 0, 926 }, { 12, 0, 203 }, { 5, 10, 751 }, { 4, 11, 165 }, - { 7, 11, 1398 }, { 7, 11, 1829 }, { 7, 0, 1232 }, { 9, 0, 531 }, - { 7, 10, 821 }, { 6, 0, 943 }, { 5, 0, 670 }, { 4, 0, 880 }, - { 11, 0, 231 }, { 6, 0, 1617 }, { 7, 0, 1957 }, { 5, 11, 9 }, - { 7, 11, 297 }, { 7, 11, 966 }, { 12, 11, 306 }, { 6, 0, 975 }, - { 6, 0, 985 }, { 5, 10, 950 }, { 5, 10, 994 }, { 6, 10, 351 }, - { 12, 11, 21 }, { 23, 11, 7 }, { 5, 11, 146 }, { 6, 11, 411 }, - { 10, 11, 721 }, { 7, 0, 242 }, { 7, 0, 1942 }, { 6, 11, 177 }, - { 7, 11, 467 }, { 5, 0, 421 }, { 7, 10, 47 }, { 9, 10, 684 }, - { 5, 0, 834 }, { 7, 0, 1202 }, { 8, 0, 14 }, { 9, 0, 481 }, - { 9, 0, 880 }, { 10, 0, 465 }, { 6, 0, 688 }, { 9, 0, 834 }, - { 4, 10, 350 }, { 4, 0, 855 }, { 4, 0, 357 }, { 6, 0, 172 }, - { 7, 0, 143 }, { 9, 0, 413 }, { 5, 11, 200 }, { 4, 0, 590 }, - { 7, 10, 1812 }, { 13, 10, 259 }, { 13, 10, 356 }, { 14, 10, 242 }, - { 19, 10, 114 }, { 5, 10, 967 }, { 11, 0, 114 }, { 4, 10, 473 }, - { 7, 10, 623 }, { 8, 10, 808 }, { 9, 10, 871 }, { 9, 10, 893 }, - { 11, 10, 431 }, { 12, 10, 112 }, { 12, 10, 217 }, { 12, 10, 243 }, - { 12, 10, 562 }, { 12, 10, 663 }, { 12, 10, 683 }, { 13, 10, 141 }, - { 13, 10, 197 }, { 13, 10, 227 }, { 13, 10, 406 }, { 13, 10, 487 }, - { 14, 10, 156 }, { 14, 10, 203 }, { 14, 10, 224 }, { 14, 10, 256 }, - { 18, 10, 58 }, { 22, 10, 0 }, { 10, 10, 286 }, { 4, 10, 222 }, - { 7, 10, 286 }, { 8, 10, 629 }, { 5, 0, 169 }, { 7, 0, 333 }, - { 8, 0, 45 }, { 6, 11, 481 }, { 4, 0, 198 }, { 4, 0, 24 }, - { 5, 0, 140 }, { 5, 0, 185 }, { 7, 0, 1500 }, { 11, 0, 565 }, - { 11, 0, 838 }, { 4, 11, 84 }, { 7, 11, 1482 }, { 10, 11, 76 }, - { 10, 11, 142 }, { 5, 0, 585 }, { 13, 10, 306 }, { 5, 11, 1015 }, - { 4, 11, 315 }, { 5, 11, 507 }, { 7, 11, 1370 }, { 8, 10, 146 }, - { 6, 0, 691 }, { 6, 0, 1503 }, { 4, 0, 334 }, { 5, 0, 593 }, - { 4, 10, 465 }, { 7, 10, 1663 }, { 14, 11, 173 }, { 7, 0, 913 }, - { 12, 0, 116 }, { 6, 11, 1722 }, { 6, 0, 1360 }, { 4, 0, 802 }, - { 8, 11, 222 }, { 8, 11, 476 }, { 9, 11, 238 }, { 11, 11, 516 }, - { 11, 11, 575 }, { 15, 11, 109 }, { 18, 11, 100 }, { 6, 0, 308 }, - { 9, 0, 673 }, { 7, 10, 138 }, { 7, 10, 517 }, { 11, 10, 238 }, - { 4, 0, 709 }, { 6, 0, 1876 }, { 6, 0, 1895 }, { 9, 0, 994 }, - { 9, 0, 1006 }, { 12, 0, 829 }, { 12, 0, 888 }, { 12, 0, 891 }, - { 18, 0, 185 }, { 20, 10, 94 }, { 4, 0, 228 }, { 5, 0, 897 }, - { 7, 0, 1840 }, { 5, 10, 495 }, { 7, 10, 834 }, { 9, 10, 733 }, - { 11, 10, 378 }, { 5, 10, 559 }, { 6, 10, 21 }, { 6, 10, 1737 }, - { 7, 10, 1444 }, { 8, 10, 224 }, { 4, 0, 608 }, { 5, 0, 497 }, - { 6, 11, 40 }, { 7, 11, 1781 }, { 6, 0, 1573 }, { 7, 0, 2039 }, - { 6, 0, 540 }, { 8, 0, 136 }, { 4, 0, 897 }, { 5, 0, 786 }, - { 5, 10, 519 }, { 6, 0, 1878 }, { 6, 0, 1884 }, { 9, 0, 938 }, - { 9, 0, 948 }, { 9, 0, 955 }, { 9, 0, 973 }, { 9, 0, 1012 }, - { 12, 0, 895 }, { 12, 0, 927 }, { 15, 0, 254 }, { 6, 0, 1469 }, - { 5, 0, 999 }, { 4, 0, 299 }, { 7, 0, 1004 }, { 4, 0, 745 }, - { 5, 0, 578 }, { 8, 11, 574 }, { 5, 0, 456 }, { 6, 0, 1457 }, - { 7, 0, 1679 }, { 4, 10, 402 }, { 7, 0, 693 }, { 8, 0, 180 }, - { 12, 0, 163 }, { 8, 10, 323 }, { 8, 10, 479 }, { 11, 10, 580 }, - { 14, 10, 201 }, { 5, 10, 59 }, { 7, 10, 672 }, { 4, 11, 354 }, - { 18, 10, 34 }, { 4, 0, 755 }, { 7, 11, 1558 }, { 7, 0, 1740 }, - { 18, 0, 48 }, { 4, 10, 85 }, { 7, 10, 549 }, { 11, 0, 338 }, - { 5, 10, 94 }, { 6, 0, 1091 }, { 7, 11, 469 }, { 12, 0, 695 }, - { 12, 0, 704 }, { 20, 0, 113 }, { 5, 11, 830 }, { 14, 11, 338 }, - { 20, 11, 81 }, { 7, 0, 1464 }, { 6, 10, 11 }, { 7, 10, 187 }, - { 7, 0, 975 }, { 13, 0, 335 }, { 4, 10, 522 }, { 6, 0, 1979 }, - { 5, 11, 496 }, { 7, 11, 203 }, { 4, 10, 52 }, { 7, 10, 661 }, - { 7, 0, 1566 }, { 8, 0, 269 }, { 9, 0, 212 }, { 9, 0, 718 }, - { 14, 0, 15 }, { 14, 0, 132 }, { 14, 0, 227 }, { 4, 0, 890 }, - { 5, 0, 805 }, { 5, 0, 819 }, { 5, 0, 961 }, { 6, 0, 396 }, - { 6, 0, 1631 }, { 6, 0, 1678 }, { 7, 0, 1967 }, { 7, 0, 2041 }, - { 9, 0, 630 }, { 11, 0, 8 }, { 11, 0, 1019 }, { 12, 0, 176 }, - { 13, 0, 225 }, { 14, 0, 292 }, { 21, 0, 24 }, { 4, 10, 383 }, - { 5, 10, 520 }, { 6, 11, 547 }, { 7, 11, 1748 }, { 5, 11, 88 }, - { 9, 11, 239 }, { 18, 11, 128 }, { 7, 11, 650 }, { 7, 11, 1310 }, - { 4, 10, 281 }, { 5, 10, 38 }, { 7, 10, 194 }, { 7, 10, 668 }, - { 7, 10, 1893 }, { 9, 10, 397 }, { 7, 0, 1815 }, { 9, 10, 635 }, - { 11, 10, 559 }, { 7, 0, 1505 }, { 10, 0, 190 }, { 10, 0, 634 }, - { 11, 0, 792 }, { 12, 0, 358 }, { 12, 0, 447 }, { 5, 0, 0 }, - { 6, 0, 536 }, { 7, 0, 604 }, { 13, 0, 445 }, { 17, 0, 126 }, - { 7, 11, 1076 }, { 9, 11, 80 }, { 11, 11, 78 }, { 11, 11, 421 }, - { 11, 11, 534 }, { 12, 11, 545 }, { 8, 0, 966 }, { 10, 0, 1023 }, - { 14, 11, 369 }, { 18, 11, 72 }, { 7, 11, 1641 }, { 6, 0, 232 }, - { 6, 0, 412 }, { 7, 0, 1074 }, { 8, 0, 9 }, { 8, 0, 157 }, - { 8, 0, 786 }, { 9, 0, 196 }, { 9, 0, 352 }, { 9, 0, 457 }, - { 10, 0, 337 }, { 11, 0, 232 }, { 11, 0, 877 }, { 12, 0, 480 }, - { 12, 0, 546 }, { 7, 0, 958 }, { 4, 0, 382 }, { 8, 0, 579 }, - { 4, 0, 212 }, { 7, 0, 1206 }, { 4, 11, 497 }, { 5, 11, 657 }, - { 7, 11, 1584 }, { 4, 0, 681 }, { 8, 0, 971 }, { 10, 0, 965 }, - { 5, 10, 448 }, { 8, 10, 535 }, { 14, 0, 16 }, { 18, 0, 44 }, - { 11, 0, 584 }, { 11, 0, 616 }, { 14, 0, 275 }, { 11, 11, 584 }, - { 11, 11, 616 }, { 14, 11, 275 }, { 8, 11, 13 }, { 7, 10, 610 }, - { 7, 10, 1501 }, { 7, 11, 642 }, { 8, 11, 250 }, { 11, 11, 123 }, - { 11, 11, 137 }, { 13, 11, 48 }, { 14, 11, 95 }, { 5, 0, 655 }, - { 17, 0, 67 }, { 19, 0, 74 }, { 6, 0, 751 }, { 6, 0, 1967 }, - { 6, 0, 231 }, { 8, 0, 423 }, { 5, 0, 300 }, { 10, 0, 1016 }, - { 4, 10, 319 }, { 5, 10, 699 }, { 10, 10, 673 }, { 6, 0, 237 }, - { 7, 0, 611 }, { 8, 0, 100 }, { 9, 0, 416 }, { 11, 0, 335 }, - { 12, 0, 173 }, { 18, 0, 101 }, { 6, 10, 336 }, { 8, 10, 552 }, - { 9, 10, 285 }, { 10, 10, 99 }, { 11, 10, 568 }, { 6, 0, 1370 }, - { 7, 10, 1406 }, { 9, 10, 218 }, { 13, 10, 222 }, { 5, 10, 256 }, - { 7, 0, 1208 }, { 14, 11, 213 }, { 20, 11, 38 }, { 6, 0, 1219 }, - { 7, 11, 1642 }, { 13, 0, 417 }, { 14, 0, 129 }, { 15, 0, 15 }, - { 10, 11, 545 }, { 12, 11, 301 }, { 17, 10, 39 }, { 20, 10, 36 }, - { 5, 0, 199 }, { 4, 11, 904 }, { 5, 11, 794 }, { 12, 0, 427 }, - { 18, 0, 38 }, { 6, 0, 949 }, { 8, 0, 665 }, { 7, 10, 634 }, - { 4, 10, 618 }, { 7, 10, 259 }, { 4, 10, 339 }, { 5, 11, 761 }, - { 13, 10, 169 }, { 4, 10, 759 }, { 5, 0, 688 }, { 7, 0, 539 }, - { 7, 0, 712 }, { 7, 11, 386 }, { 10, 11, 713 }, { 6, 0, 1186 }, - { 6, 11, 7 }, { 6, 11, 35 }, { 7, 11, 147 }, { 7, 11, 1069 }, - { 7, 11, 1568 }, { 7, 11, 1575 }, { 7, 11, 1917 }, { 8, 11, 43 }, - { 8, 11, 208 }, { 9, 11, 128 }, { 9, 11, 866 }, { 10, 11, 20 }, - { 11, 11, 981 }, { 19, 11, 33 }, { 7, 11, 893 }, { 8, 10, 482 }, - { 13, 11, 424 }, { 6, 0, 312 }, { 6, 0, 1715 }, { 10, 0, 584 }, - { 11, 0, 546 }, { 11, 0, 692 }, { 12, 0, 259 }, { 12, 0, 295 }, - { 13, 0, 46 }, { 13, 0, 154 }, { 5, 10, 336 }, { 6, 10, 341 }, - { 6, 10, 478 }, { 6, 10, 1763 }, { 8, 10, 386 }, { 9, 0, 151 }, - { 4, 0, 588 }, { 24, 0, 4 }, { 6, 11, 322 }, { 9, 11, 552 }, - { 11, 11, 274 }, { 13, 11, 209 }, { 13, 11, 499 }, { 14, 11, 85 }, - { 15, 11, 126 }, { 17, 11, 70 }, { 7, 10, 73 }, { 4, 0, 231 }, - { 5, 0, 61 }, { 6, 0, 104 }, { 7, 0, 729 }, { 7, 0, 964 }, - { 7, 0, 1658 }, { 12, 0, 414 }, { 6, 0, 263 }, { 10, 0, 757 }, - { 7, 10, 1971 }, { 4, 0, 612 }, { 5, 0, 561 }, { 4, 0, 320 }, - { 7, 10, 1344 }, { 8, 11, 83 }, { 8, 11, 817 }, { 9, 11, 28 }, - { 9, 11, 29 }, { 9, 11, 885 }, { 10, 11, 387 }, { 11, 11, 633 }, - { 11, 11, 740 }, { 13, 11, 235 }, { 13, 11, 254 }, { 15, 11, 143 }, - { 15, 11, 146 }, { 5, 10, 396 }, { 6, 10, 501 }, { 12, 11, 49 }, - { 4, 0, 225 }, { 4, 10, 929 }, { 5, 10, 799 }, { 8, 10, 46 }, - { 8, 10, 740 }, { 4, 0, 405 }, { 7, 0, 817 }, { 14, 0, 58 }, - { 17, 0, 37 }, { 18, 0, 124 }, { 5, 0, 974 }, { 4, 11, 412 }, - { 5, 11, 581 }, { 4, 10, 892 }, { 5, 10, 770 }, { 4, 0, 996 }, - { 6, 0, 2026 }, { 4, 0, 527 }, { 5, 0, 235 }, { 7, 0, 1239 }, - { 11, 0, 131 }, { 12, 0, 370 }, { 9, 0, 16 }, { 13, 0, 386 }, - { 7, 11, 421 }, { 7, 0, 956 }, { 7, 0, 1157 }, { 7, 0, 1506 }, - { 7, 0, 1606 }, { 7, 0, 1615 }, { 7, 0, 1619 }, { 7, 0, 1736 }, - { 7, 0, 1775 }, { 8, 0, 590 }, { 9, 0, 324 }, { 9, 0, 736 }, - { 9, 0, 774 }, { 9, 0, 776 }, { 9, 0, 784 }, { 10, 0, 567 }, - { 10, 0, 708 }, { 11, 0, 518 }, { 11, 0, 613 }, { 11, 0, 695 }, - { 11, 0, 716 }, { 11, 0, 739 }, { 11, 0, 770 }, { 11, 0, 771 }, - { 11, 0, 848 }, { 11, 0, 857 }, { 11, 0, 931 }, { 11, 0, 947 }, - { 12, 0, 326 }, { 12, 0, 387 }, { 12, 0, 484 }, { 12, 0, 528 }, - { 12, 0, 552 }, { 12, 0, 613 }, { 13, 0, 189 }, { 13, 0, 256 }, - { 13, 0, 340 }, { 13, 0, 432 }, { 13, 0, 436 }, { 13, 0, 440 }, - { 13, 0, 454 }, { 14, 0, 174 }, { 14, 0, 220 }, { 14, 0, 284 }, - { 14, 0, 390 }, { 17, 0, 121 }, { 7, 10, 158 }, { 9, 0, 137 }, - { 10, 0, 221 }, { 4, 11, 110 }, { 10, 11, 415 }, { 10, 11, 597 }, - { 14, 11, 206 }, { 13, 11, 496 }, { 7, 11, 205 }, { 23, 10, 25 }, - { 7, 11, 778 }, { 7, 11, 1656 }, { 7, 10, 2001 }, { 9, 11, 369 }, - { 10, 11, 338 }, { 10, 11, 490 }, { 11, 11, 154 }, { 11, 11, 545 }, - { 11, 11, 775 }, { 13, 11, 77 }, { 13, 11, 274 }, { 4, 11, 444 }, - { 10, 11, 146 }, { 12, 11, 9 }, { 7, 0, 390 }, { 10, 0, 140 }, - { 7, 0, 1144 }, { 6, 0, 464 }, { 7, 10, 1461 }, { 12, 10, 91 }, - { 4, 10, 602 }, { 4, 11, 283 }, { 7, 11, 1194 }, { 5, 0, 407 }, - { 11, 0, 204 }, { 11, 0, 243 }, { 11, 0, 489 }, { 12, 0, 293 }, - { 19, 0, 37 }, { 20, 0, 73 }, { 22, 0, 38 }, { 7, 0, 1218 }, - { 8, 0, 303 }, { 5, 0, 325 }, { 8, 0, 5 }, { 8, 0, 227 }, - { 9, 0, 105 }, { 10, 0, 585 }, { 12, 0, 614 }, { 4, 10, 13 }, - { 5, 10, 567 }, { 7, 10, 1498 }, { 9, 10, 124 }, { 11, 10, 521 }, - { 12, 10, 405 }, { 7, 10, 1006 }, { 7, 0, 800 }, { 10, 0, 12 }, - { 6, 11, 1720 }, { 7, 0, 1783 }, { 4, 10, 735 }, { 10, 10, 812 }, - { 4, 10, 170 }, { 7, 10, 323 }, { 6, 0, 621 }, { 13, 0, 504 }, - { 16, 0, 89 }, { 5, 10, 304 }, { 7, 10, 1403 }, { 9, 11, 216 }, - { 6, 0, 920 }, { 6, 0, 1104 }, { 9, 11, 183 }, { 11, 11, 286 }, - { 4, 0, 376 }, { 5, 10, 742 }, { 6, 0, 218 }, { 8, 0, 641 }, - { 11, 0, 388 }, { 12, 0, 580 }, { 7, 0, 454 }, { 7, 0, 782 }, - { 8, 0, 768 }, { 12, 0, 686 }, { 9, 11, 33 }, { 5, 10, 111 }, - { 16, 0, 0 }, { 10, 0, 676 }, { 12, 0, 462 }, { 6, 0, 164 }, - { 8, 11, 735 }, { 5, 10, 444 }, { 22, 0, 50 }, { 7, 11, 1862 }, - { 12, 11, 491 }, { 12, 11, 520 }, { 13, 11, 383 }, { 14, 11, 244 }, - { 18, 11, 12 }, { 5, 11, 132 }, { 9, 11, 486 }, { 9, 11, 715 }, - { 10, 11, 458 }, { 11, 11, 373 }, { 11, 11, 668 }, { 11, 11, 795 }, - { 11, 11, 897 }, { 12, 11, 272 }, { 12, 11, 424 }, { 12, 11, 539 }, - { 12, 11, 558 }, { 14, 11, 245 }, { 14, 11, 263 }, { 14, 11, 264 }, - { 14, 11, 393 }, { 14, 11, 403 }, { 8, 10, 123 }, { 15, 10, 6 }, - { 16, 10, 7 }, { 6, 0, 285 }, { 8, 0, 654 }, { 11, 0, 749 }, - { 12, 0, 190 }, { 12, 0, 327 }, { 13, 0, 120 }, { 13, 0, 121 }, - { 13, 0, 327 }, { 15, 0, 47 }, { 18, 0, 40 }, { 5, 11, 8 }, - { 6, 11, 89 }, { 6, 11, 400 }, { 7, 11, 1569 }, { 7, 11, 1623 }, - { 7, 11, 1850 }, { 8, 11, 218 }, { 8, 11, 422 }, { 9, 11, 570 }, - { 10, 11, 626 }, { 6, 11, 387 }, { 7, 11, 882 }, { 13, 11, 111 }, - { 6, 0, 343 }, { 7, 0, 195 }, { 9, 0, 226 }, { 10, 0, 197 }, - { 10, 0, 575 }, { 11, 0, 502 }, { 11, 0, 899 }, { 6, 11, 224 }, - { 7, 11, 877 }, { 9, 11, 647 }, { 5, 10, 937 }, { 7, 10, 100 }, - { 7, 11, 790 }, { 22, 0, 29 }, { 19, 0, 8 }, { 6, 0, 1812 }, - { 21, 0, 8 }, { 7, 11, 394 }, { 7, 0, 1125 }, { 9, 0, 143 }, - { 11, 0, 61 }, { 14, 0, 405 }, { 22, 0, 21 }, { 10, 11, 755 }, - { 19, 11, 29 }, { 9, 11, 378 }, { 13, 11, 162 }, { 7, 10, 922 }, - { 5, 10, 619 }, { 5, 10, 698 }, { 6, 0, 1327 }, { 6, 0, 1598 }, - { 9, 0, 575 }, { 9, 11, 569 }, { 12, 11, 12 }, { 12, 11, 81 }, - { 12, 11, 319 }, { 13, 11, 69 }, { 14, 11, 259 }, { 16, 11, 87 }, - { 17, 11, 1 }, { 17, 11, 21 }, { 17, 11, 24 }, { 18, 11, 15 }, - { 18, 11, 56 }, { 18, 11, 59 }, { 18, 11, 127 }, { 18, 11, 154 }, - { 19, 11, 19 }, { 20, 11, 31 }, { 6, 0, 895 }, { 7, 11, 1231 }, - { 5, 0, 959 }, { 7, 11, 124 }, { 8, 11, 38 }, { 5, 11, 261 }, - { 7, 11, 78 }, { 7, 11, 199 }, { 8, 11, 815 }, { 9, 11, 126 }, - { 10, 11, 342 }, { 5, 10, 917 }, { 6, 10, 1659 }, { 7, 0, 1759 }, - { 5, 11, 595 }, { 7, 11, 1863 }, { 8, 0, 173 }, { 6, 0, 266 }, - { 14, 0, 261 }, { 4, 11, 628 }, { 5, 10, 251 }, { 5, 10, 956 }, - { 8, 10, 268 }, { 9, 10, 214 }, { 18, 10, 142 }, { 7, 11, 266 }, - { 8, 11, 804 }, { 7, 11, 208 }, { 6, 11, 79 }, { 7, 11, 1021 }, - { 7, 11, 1519 }, { 11, 11, 704 }, { 13, 11, 396 }, { 5, 10, 346 }, - { 5, 10, 711 }, { 8, 10, 390 }, { 8, 11, 741 }, { 6, 11, 376 }, - { 6, 0, 1427 }, { 6, 0, 1033 }, { 6, 0, 1217 }, { 8, 0, 300 }, - { 5, 10, 624 }, { 6, 11, 100 }, { 7, 11, 244 }, { 7, 11, 632 }, - { 7, 11, 1609 }, { 8, 11, 178 }, { 8, 11, 638 }, { 13, 11, 58 }, - { 6, 0, 584 }, { 5, 10, 783 }, { 7, 10, 1998 }, { 7, 10, 2047 }, - { 5, 0, 427 }, { 5, 0, 734 }, { 7, 0, 478 }, { 8, 0, 52 }, - { 7, 0, 239 }, { 11, 0, 217 }, { 14, 0, 165 }, { 6, 0, 1129 }, - { 6, 0, 168 }, { 6, 0, 1734 }, { 7, 0, 20 }, { 7, 0, 1056 }, - { 8, 0, 732 }, { 9, 0, 406 }, { 9, 0, 911 }, { 10, 0, 694 }, - { 4, 10, 594 }, { 5, 11, 791 }, { 7, 11, 686 }, { 8, 11, 33 }, - { 8, 11, 238 }, { 10, 11, 616 }, { 11, 11, 467 }, { 11, 11, 881 }, - { 13, 11, 217 }, { 13, 11, 253 }, { 14, 11, 268 }, { 9, 11, 476 }, - { 6, 0, 418 }, { 5, 0, 613 }, { 4, 0, 632 }, { 4, 11, 447 }, - { 7, 0, 32 }, { 7, 0, 984 }, { 8, 0, 85 }, { 8, 0, 709 }, - { 9, 0, 579 }, { 9, 0, 847 }, { 9, 0, 856 }, { 10, 0, 799 }, - { 11, 0, 258 }, { 11, 0, 1007 }, { 12, 0, 331 }, { 12, 0, 615 }, - { 13, 0, 188 }, { 13, 0, 435 }, { 14, 0, 8 }, { 15, 0, 165 }, - { 16, 0, 27 }, { 20, 0, 40 }, { 16, 11, 35 }, { 4, 11, 128 }, - { 5, 11, 415 }, { 6, 11, 462 }, { 7, 11, 294 }, { 7, 11, 578 }, - { 10, 11, 710 }, { 11, 11, 86 }, { 5, 0, 694 }, { 8, 0, 909 }, - { 7, 0, 1109 }, { 11, 0, 7 }, { 5, 10, 37 }, { 6, 10, 39 }, - { 6, 10, 451 }, { 7, 10, 218 }, { 7, 10, 1166 }, { 7, 10, 1687 }, - { 8, 10, 662 }, { 16, 10, 2 }, { 8, 11, 587 }, { 6, 11, 427 }, - { 7, 11, 1018 }, { 10, 11, 692 }, { 4, 11, 195 }, { 6, 10, 508 }, - { 7, 11, 802 }, { 4, 0, 167 }, { 7, 0, 82 }, { 5, 0, 62 }, - { 6, 0, 24 }, { 6, 0, 534 }, { 7, 0, 74 }, { 7, 0, 678 }, - { 7, 0, 684 }, { 7, 0, 1043 }, { 7, 0, 1072 }, { 8, 0, 280 }, - { 8, 0, 541 }, { 8, 0, 686 }, { 9, 0, 258 }, { 10, 0, 519 }, - { 11, 0, 252 }, { 12, 0, 282 }, { 10, 0, 33 }, { 4, 0, 359 }, - { 5, 11, 738 }, { 7, 0, 980 }, { 9, 0, 328 }, { 13, 0, 186 }, - { 13, 0, 364 }, { 7, 10, 635 }, { 7, 10, 796 }, { 8, 10, 331 }, - { 9, 10, 330 }, { 9, 10, 865 }, { 10, 10, 119 }, { 10, 10, 235 }, - { 11, 10, 111 }, { 11, 10, 129 }, { 11, 10, 240 }, { 12, 10, 31 }, - { 12, 10, 66 }, { 12, 10, 222 }, { 12, 10, 269 }, { 12, 10, 599 }, - { 12, 10, 684 }, { 12, 10, 689 }, { 12, 10, 691 }, { 14, 10, 345 }, - { 9, 10, 527 }, { 6, 0, 596 }, { 7, 0, 585 }, { 7, 10, 702 }, - { 6, 11, 1683 }, { 5, 0, 211 }, { 6, 0, 145 }, { 13, 0, 336 }, - { 6, 0, 1130 }, { 7, 0, 873 }, { 6, 10, 37 }, { 7, 10, 1666 }, - { 8, 10, 195 }, { 8, 10, 316 }, { 9, 10, 178 }, { 9, 10, 276 }, - { 9, 10, 339 }, { 9, 10, 536 }, { 10, 10, 102 }, { 10, 10, 362 }, - { 10, 10, 785 }, { 11, 10, 55 }, { 11, 10, 149 }, { 11, 10, 773 }, - { 13, 10, 416 }, { 13, 10, 419 }, { 14, 10, 38 }, { 14, 10, 41 }, - { 14, 10, 210 }, { 8, 0, 840 }, { 8, 0, 841 }, { 4, 0, 263 }, - { 5, 11, 3 }, { 8, 11, 578 }, { 9, 11, 118 }, { 10, 11, 705 }, - { 12, 11, 383 }, { 13, 11, 279 }, { 4, 0, 916 }, { 5, 11, 229 }, - { 5, 10, 645 }, { 15, 0, 155 }, { 16, 0, 79 }, { 8, 11, 102 }, - { 10, 11, 578 }, { 10, 11, 672 }, { 12, 11, 496 }, { 13, 11, 408 }, - { 14, 11, 121 }, { 17, 11, 106 }, { 4, 0, 599 }, { 5, 0, 592 }, - { 6, 0, 1634 }, { 7, 0, 5 }, { 7, 0, 55 }, { 7, 0, 67 }, - { 7, 0, 97 }, { 7, 0, 691 }, { 7, 0, 979 }, { 7, 0, 1600 }, - { 7, 0, 1697 }, { 8, 0, 207 }, { 8, 0, 214 }, { 8, 0, 231 }, - { 8, 0, 294 }, { 8, 0, 336 }, { 8, 0, 428 }, { 8, 0, 471 }, - { 8, 0, 622 }, { 8, 0, 626 }, { 8, 0, 679 }, { 8, 0, 759 }, - { 8, 0, 829 }, { 9, 0, 11 }, { 9, 0, 246 }, { 9, 0, 484 }, - { 9, 0, 573 }, { 9, 0, 706 }, { 9, 0, 762 }, { 9, 0, 798 }, - { 9, 0, 855 }, { 9, 0, 870 }, { 9, 0, 912 }, { 10, 0, 303 }, - { 10, 0, 335 }, { 10, 0, 424 }, { 10, 0, 461 }, { 10, 0, 543 }, - { 10, 0, 759 }, { 10, 0, 814 }, { 11, 0, 59 }, { 11, 0, 199 }, - { 11, 0, 235 }, { 11, 0, 590 }, { 11, 0, 631 }, { 11, 0, 929 }, - { 11, 0, 963 }, { 11, 0, 987 }, { 12, 0, 114 }, { 12, 0, 182 }, - { 12, 0, 226 }, { 12, 0, 332 }, { 12, 0, 439 }, { 12, 0, 575 }, - { 12, 0, 598 }, { 12, 0, 675 }, { 13, 0, 8 }, { 13, 0, 125 }, - { 13, 0, 194 }, { 13, 0, 287 }, { 14, 0, 197 }, { 14, 0, 383 }, - { 15, 0, 53 }, { 17, 0, 63 }, { 19, 0, 46 }, { 19, 0, 98 }, - { 19, 0, 106 }, { 20, 0, 85 }, { 7, 0, 1356 }, { 4, 10, 290 }, - { 6, 10, 70 }, { 7, 10, 1292 }, { 10, 10, 762 }, { 11, 10, 288 }, - { 22, 11, 55 }, { 4, 0, 593 }, { 8, 11, 115 }, { 8, 11, 350 }, - { 9, 11, 489 }, { 10, 11, 128 }, { 11, 11, 306 }, { 12, 11, 373 }, - { 14, 11, 30 }, { 17, 11, 79 }, { 19, 11, 80 }, { 7, 11, 1235 }, - { 6, 0, 1392 }, { 4, 11, 230 }, { 5, 11, 702 }, { 19, 0, 126 }, - { 7, 10, 131 }, { 7, 10, 422 }, { 8, 10, 210 }, { 12, 10, 573 }, - { 6, 0, 1179 }, { 11, 11, 435 }, { 11, 10, 797 }, { 6, 11, 1728 }, - { 4, 0, 162 }, { 18, 11, 26 }, { 19, 11, 42 }, { 20, 11, 43 }, - { 21, 11, 0 }, { 23, 11, 27 }, { 24, 11, 14 }, { 4, 10, 936 }, - { 6, 0, 765 }, { 5, 10, 453 }, { 6, 10, 441 }, { 5, 0, 187 }, - { 7, 0, 1286 }, { 6, 0, 635 }, { 6, 0, 904 }, { 6, 0, 1210 }, - { 6, 0, 1489 }, { 4, 0, 215 }, { 8, 0, 890 }, { 9, 0, 38 }, - { 10, 0, 923 }, { 11, 0, 23 }, { 11, 0, 127 }, { 11, 0, 796 }, - { 6, 0, 1165 }, { 6, 0, 1306 }, { 7, 0, 716 }, { 13, 0, 97 }, - { 13, 0, 251 }, { 4, 10, 653 }, { 8, 0, 657 }, { 18, 10, 80 }, - { 5, 11, 622 }, { 7, 11, 1032 }, { 11, 11, 26 }, { 11, 11, 213 }, - { 11, 11, 707 }, { 12, 11, 380 }, { 13, 11, 226 }, { 13, 11, 355 }, - { 6, 0, 299 }, { 5, 11, 70 }, { 6, 11, 334 }, { 9, 11, 171 }, - { 11, 11, 637 }, { 12, 11, 202 }, { 14, 11, 222 }, { 17, 11, 42 }, - { 14, 0, 134 }, { 4, 11, 23 }, { 5, 11, 313 }, { 5, 11, 1014 }, - { 6, 11, 50 }, { 6, 11, 51 }, { 7, 11, 142 }, { 7, 11, 384 }, - { 9, 11, 783 }, { 11, 11, 741 }, { 4, 11, 141 }, { 7, 11, 559 }, - { 8, 11, 640 }, { 9, 11, 460 }, { 12, 11, 183 }, { 13, 11, 488 }, - { 8, 11, 614 }, { 7, 10, 1368 }, { 8, 10, 232 }, { 8, 10, 361 }, - { 10, 10, 682 }, { 10, 10, 742 }, { 9, 10, 534 }, { 6, 0, 1082 }, - { 12, 0, 658 }, { 9, 10, 27 }, { 7, 0, 2002 }, { 14, 10, 12 }, - { 4, 0, 28 }, { 5, 0, 440 }, { 7, 0, 248 }, { 11, 0, 833 }, - { 12, 0, 344 }, { 7, 10, 736 }, { 11, 10, 264 }, { 6, 10, 1657 }, - { 6, 0, 1654 }, { 10, 0, 531 }, { 5, 11, 222 }, { 9, 11, 140 }, - { 10, 11, 534 }, { 6, 0, 634 }, { 6, 0, 798 }, { 6, 0, 840 }, - { 10, 11, 503 }, { 7, 10, 127 }, { 5, 0, 853 }, { 5, 11, 154 }, - { 7, 11, 1491 }, { 10, 11, 379 }, { 10, 11, 485 }, { 6, 0, 249 }, - { 7, 0, 1234 }, { 11, 0, 573 }, { 5, 11, 716 }, { 7, 11, 1570 }, - { 12, 11, 542 }, { 8, 10, 364 }, { 10, 0, 527 }, { 4, 11, 91 }, - { 5, 11, 388 }, { 5, 11, 845 }, { 6, 11, 206 }, { 6, 11, 252 }, - { 6, 11, 365 }, { 7, 11, 136 }, { 7, 11, 531 }, { 8, 11, 264 }, - { 8, 11, 621 }, { 6, 0, 1419 }, { 7, 11, 1441 }, { 7, 0, 49 }, - { 7, 0, 392 }, { 8, 0, 20 }, { 8, 0, 172 }, { 8, 0, 690 }, - { 9, 0, 383 }, { 9, 0, 845 }, { 10, 0, 48 }, { 11, 0, 293 }, - { 11, 0, 832 }, { 11, 0, 920 }, { 11, 0, 984 }, { 13, 0, 221 }, - { 5, 0, 858 }, { 5, 0, 992 }, { 5, 0, 728 }, { 9, 10, 792 }, - { 5, 10, 909 }, { 9, 10, 849 }, { 10, 10, 805 }, { 7, 0, 525 }, - { 7, 0, 1579 }, { 8, 0, 497 }, { 8, 0, 573 }, { 6, 0, 268 }, - { 9, 0, 62 }, { 7, 11, 576 }, { 6, 0, 1201 }, { 5, 11, 771 }, - { 5, 11, 863 }, { 5, 11, 898 }, { 6, 11, 1632 }, { 6, 11, 1644 }, - { 6, 11, 1780 }, { 5, 11, 331 }, { 7, 0, 193 }, { 7, 0, 1105 }, - { 10, 0, 495 }, { 7, 10, 397 }, { 8, 10, 124 }, { 8, 10, 619 }, - { 9, 10, 305 }, { 11, 10, 40 }, { 12, 10, 349 }, { 13, 10, 134 }, - { 13, 10, 295 }, { 14, 10, 155 }, { 15, 10, 120 }, { 18, 10, 105 }, - { 10, 0, 106 }, { 6, 0, 859 }, { 5, 11, 107 }, { 7, 11, 201 }, - { 8, 11, 518 }, { 6, 11, 446 }, { 7, 11, 1817 }, { 13, 0, 23 }, - { 4, 10, 262 }, { 7, 10, 342 }, { 5, 10, 641 }, { 9, 11, 851 }, - { 6, 0, 925 }, { 9, 0, 813 }, { 4, 11, 504 }, { 6, 0, 613 }, - { 8, 0, 223 }, { 4, 10, 99 }, { 6, 10, 250 }, { 6, 10, 346 }, - { 8, 10, 127 }, { 10, 10, 81 }, { 8, 0, 953 }, { 4, 10, 915 }, - { 11, 11, 892 }, { 5, 10, 75 }, { 9, 10, 517 }, { 10, 10, 470 }, - { 12, 10, 155 }, { 13, 10, 224 }, { 4, 0, 666 }, { 7, 0, 1017 }, - { 7, 11, 996 }, { 10, 11, 390 }, { 5, 11, 883 }, { 5, 11, 975 }, - { 14, 10, 83 }, { 14, 11, 83 }, { 4, 0, 670 }, { 5, 11, 922 }, - { 6, 11, 1707 }, { 7, 0, 216 }, { 9, 0, 40 }, { 11, 0, 136 }, - { 7, 11, 787 }, { 5, 10, 954 }, { 5, 11, 993 }, { 7, 11, 515 }, - { 9, 11, 91 }, { 11, 0, 259 }, { 7, 0, 1114 }, { 9, 0, 310 }, - { 9, 0, 682 }, { 10, 0, 440 }, { 13, 0, 40 }, { 6, 10, 304 }, - { 8, 10, 418 }, { 11, 10, 341 }, { 11, 10, 675 }, { 14, 0, 296 }, - { 9, 10, 410 }, { 11, 10, 425 }, { 10, 11, 377 }, { 12, 11, 363 }, - { 13, 11, 68 }, { 13, 11, 94 }, { 14, 11, 108 }, { 14, 11, 306 }, - { 7, 0, 1401 }, { 7, 0, 1476 }, { 4, 0, 296 }, { 6, 0, 475 }, - { 7, 0, 401 }, { 7, 0, 1410 }, { 7, 0, 1594 }, { 7, 0, 1674 }, - { 8, 0, 63 }, { 8, 0, 660 }, { 9, 0, 74 }, { 4, 0, 139 }, - { 4, 0, 388 }, { 12, 0, 188 }, { 4, 0, 797 }, { 4, 11, 766 }, - { 5, 11, 103 }, { 7, 11, 921 }, { 8, 11, 580 }, { 8, 11, 593 }, - { 8, 11, 630 }, { 10, 11, 28 }, { 4, 11, 911 }, { 5, 11, 867 }, - { 5, 11, 1013 }, { 6, 10, 14 }, { 6, 0, 1572 }, { 6, 10, 1708 }, - { 21, 0, 39 }, { 5, 10, 113 }, { 6, 10, 243 }, { 7, 10, 1865 }, - { 11, 10, 161 }, { 16, 10, 37 }, { 17, 10, 99 }, { 7, 11, 1563 }, - { 13, 11, 182 }, { 5, 11, 135 }, { 6, 11, 519 }, { 7, 11, 1722 }, - { 10, 11, 271 }, { 11, 11, 261 }, { 17, 11, 54 }, { 4, 10, 274 }, - { 6, 0, 1594 }, { 4, 11, 300 }, { 5, 11, 436 }, { 7, 11, 484 }, - { 4, 0, 747 }, { 6, 0, 290 }, { 7, 0, 649 }, { 7, 0, 1479 }, - { 7, 0, 1583 }, { 5, 11, 535 }, { 19, 11, 82 }, { 5, 0, 232 }, - { 9, 0, 887 }, { 7, 10, 166 }, { 8, 0, 521 }, { 4, 0, 14 }, - { 7, 0, 472 }, { 7, 0, 1801 }, { 10, 0, 748 }, { 13, 0, 458 }, - { 6, 0, 741 }, { 6, 0, 992 }, { 16, 0, 111 }, { 9, 10, 304 }, - { 4, 0, 425 }, { 5, 11, 387 }, { 7, 11, 557 }, { 12, 11, 547 }, - { 14, 11, 86 }, { 7, 11, 1747 }, { 5, 10, 654 }, { 7, 11, 1489 }, - { 7, 0, 789 }, { 4, 11, 6 }, { 5, 11, 708 }, { 8, 11, 75 }, - { 6, 10, 273 }, { 10, 10, 188 }, { 13, 10, 377 }, { 18, 10, 77 }, - { 6, 0, 1593 }, { 4, 11, 303 }, { 7, 11, 619 }, { 10, 11, 547 }, - { 10, 11, 687 }, { 11, 11, 122 }, { 12, 11, 601 }, { 6, 0, 1768 }, - { 7, 10, 410 }, { 10, 11, 772 }, { 11, 0, 233 }, { 11, 10, 524 }, - { 5, 0, 943 }, { 6, 0, 1779 }, { 6, 10, 1785 }, { 8, 11, 529 }, - { 4, 0, 955 }, { 5, 0, 245 }, { 6, 0, 576 }, { 7, 0, 582 }, - { 8, 0, 225 }, { 4, 10, 780 }, { 14, 0, 241 }, { 6, 0, 1943 }, - { 4, 11, 106 }, { 7, 11, 310 }, { 7, 11, 1785 }, { 10, 11, 690 }, - { 11, 11, 717 }, { 6, 0, 1284 }, { 5, 11, 890 }, { 5, 11, 988 }, - { 6, 11, 626 }, { 14, 11, 431 }, { 10, 11, 706 }, { 17, 11, 32 }, - { 9, 11, 332 }, { 4, 11, 698 }, { 7, 0, 709 }, { 5, 10, 948 }, - { 10, 11, 17 }, { 8, 0, 554 }, { 6, 0, 1564 }, { 11, 10, 941 }, - { 4, 0, 443 }, { 6, 0, 909 }, { 6, 11, 84 }, { 14, 0, 280 }, - { 4, 10, 532 }, { 5, 10, 706 }, { 7, 10, 662 }, { 4, 0, 729 }, - { 5, 10, 837 }, { 6, 10, 1651 }, { 11, 10, 985 }, { 7, 10, 1861 }, - { 4, 0, 348 }, { 24, 11, 3 }, { 5, 11, 986 }, { 6, 11, 130 }, - { 7, 11, 1582 }, { 8, 11, 458 }, { 10, 11, 101 }, { 10, 11, 318 }, - { 10, 11, 823 }, { 6, 0, 758 }, { 4, 0, 298 }, { 9, 0, 848 }, - { 4, 10, 330 }, { 7, 10, 933 }, { 7, 10, 2012 }, { 8, 10, 292 }, - { 7, 11, 1644 }, { 9, 11, 129 }, { 6, 0, 1422 }, { 9, 0, 829 }, - { 7, 10, 767 }, { 5, 0, 164 }, { 7, 0, 121 }, { 14, 0, 189 }, - { 7, 0, 812 }, { 7, 0, 1261 }, { 7, 0, 1360 }, { 9, 0, 632 }, - { 12, 0, 352 }, { 7, 11, 1788 }, { 11, 0, 556 }, { 7, 11, 997 }, - { 17, 10, 114 }, { 4, 0, 172 }, { 9, 0, 611 }, { 10, 0, 436 }, - { 12, 0, 673 }, { 13, 0, 255 }, { 9, 10, 883 }, { 11, 0, 530 }, - { 10, 10, 274 }, { 5, 0, 844 }, { 6, 0, 984 }, { 13, 0, 232 }, - { 18, 0, 35 }, { 4, 10, 703 }, { 7, 10, 207 }, { 4, 10, 571 }, - { 9, 0, 263 }, { 10, 0, 147 }, { 10, 0, 492 }, { 7, 11, 1756 }, - { 9, 11, 98 }, { 5, 10, 873 }, { 5, 10, 960 }, { 8, 10, 823 }, - { 9, 10, 881 }, { 5, 0, 537 }, { 4, 0, 859 }, { 7, 11, 1046 }, - { 11, 11, 160 }, { 9, 0, 842 }, { 11, 10, 283 }, { 5, 10, 33 }, - { 6, 10, 470 }, { 11, 10, 424 }, { 6, 11, 45 }, { 7, 11, 433 }, - { 8, 11, 129 }, { 9, 11, 21 }, { 10, 11, 392 }, { 11, 11, 79 }, - { 12, 11, 499 }, { 13, 11, 199 }, { 13, 11, 451 }, { 7, 0, 1291 }, - { 7, 10, 1882 }, { 7, 11, 558 }, { 8, 11, 353 }, { 6, 0, 1482 }, - { 5, 0, 230 }, { 5, 0, 392 }, { 6, 0, 420 }, { 9, 0, 568 }, - { 12, 0, 612 }, { 6, 0, 262 }, { 7, 10, 90 }, { 7, 10, 664 }, - { 7, 10, 830 }, { 7, 10, 1380 }, { 7, 10, 2025 }, { 8, 11, 81 }, - { 8, 10, 448 }, { 8, 10, 828 }, { 9, 11, 189 }, { 9, 11, 201 }, - { 11, 11, 478 }, { 11, 11, 712 }, { 13, 11, 338 }, { 14, 0, 31 }, - { 5, 11, 353 }, { 23, 11, 26 }, { 4, 0, 753 }, { 4, 0, 0 }, - { 5, 0, 41 }, { 7, 0, 1459 }, { 7, 0, 1469 }, { 7, 0, 1859 }, - { 9, 0, 549 }, { 11, 0, 905 }, { 9, 10, 417 }, { 9, 10, 493 }, - { 7, 11, 1113 }, { 5, 0, 696 }, { 13, 11, 448 }, { 6, 10, 295 }, - { 4, 0, 834 }, { 4, 0, 771 }, { 5, 10, 1019 }, { 6, 11, 25 }, - { 7, 11, 855 }, { 7, 11, 1258 }, { 16, 11, 32 }, { 6, 0, 1076 }, - { 5, 0, 921 }, { 5, 0, 674 }, { 4, 11, 4 }, { 7, 11, 1118 }, - { 7, 11, 1320 }, { 7, 11, 1706 }, { 8, 11, 277 }, { 9, 11, 622 }, - { 10, 11, 9 }, { 11, 11, 724 }, { 12, 11, 350 }, { 12, 11, 397 }, - { 13, 11, 28 }, { 13, 11, 159 }, { 15, 11, 89 }, { 18, 11, 5 }, - { 19, 11, 9 }, { 20, 11, 34 }, { 22, 11, 47 }, { 6, 10, 208 }, - { 6, 0, 444 }, { 8, 0, 308 }, { 6, 0, 180 }, { 7, 0, 1137 }, - { 8, 0, 751 }, { 11, 0, 805 }, { 4, 0, 183 }, { 7, 0, 271 }, - { 11, 0, 824 }, { 11, 0, 952 }, { 13, 0, 278 }, { 13, 0, 339 }, - { 13, 0, 482 }, { 14, 0, 424 }, { 20, 0, 99 }, { 7, 11, 317 }, - { 7, 11, 569 }, { 4, 0, 19 }, { 5, 0, 477 }, { 5, 0, 596 }, - { 6, 0, 505 }, { 7, 0, 1221 }, { 11, 0, 907 }, { 12, 0, 209 }, - { 13, 0, 214 }, { 7, 0, 1215 }, { 6, 0, 271 }, { 7, 0, 398 }, - { 8, 0, 387 }, { 10, 0, 344 }, { 7, 10, 448 }, { 7, 10, 1629 }, - { 7, 10, 1813 }, { 8, 10, 442 }, { 9, 10, 710 }, { 10, 10, 282 }, - { 10, 10, 722 }, { 11, 10, 844 }, { 12, 10, 104 }, { 12, 10, 625 }, - { 6, 11, 255 }, { 5, 10, 787 }, { 6, 0, 1645 }, { 11, 11, 956 }, - { 23, 11, 3 }, { 6, 0, 92 }, { 6, 0, 188 }, { 7, 0, 209 }, - { 7, 0, 1269 }, { 7, 0, 1524 }, { 7, 0, 1876 }, { 8, 0, 661 }, - { 10, 0, 42 }, { 10, 0, 228 }, { 11, 0, 58 }, { 11, 0, 1020 }, - { 12, 0, 58 }, { 12, 0, 118 }, { 13, 0, 32 }, { 4, 0, 459 }, - { 5, 0, 966 }, { 4, 11, 536 }, { 7, 11, 1141 }, { 10, 11, 723 }, - { 11, 11, 371 }, { 12, 0, 330 }, { 6, 0, 1557 }, { 7, 11, 285 }, - { 7, 11, 876 }, { 8, 10, 491 }, { 7, 11, 560 }, { 6, 0, 18 }, - { 7, 0, 179 }, { 7, 0, 932 }, { 8, 0, 548 }, { 8, 0, 757 }, - { 9, 0, 54 }, { 9, 0, 65 }, { 9, 0, 532 }, { 9, 0, 844 }, - { 10, 0, 113 }, { 10, 0, 117 }, { 10, 0, 315 }, { 10, 0, 560 }, - { 10, 0, 622 }, { 10, 0, 798 }, { 11, 0, 153 }, { 11, 0, 351 }, - { 11, 0, 375 }, { 12, 0, 78 }, { 12, 0, 151 }, { 12, 0, 392 }, - { 12, 0, 666 }, { 14, 0, 248 }, { 15, 0, 23 }, { 6, 0, 1742 }, - { 4, 11, 690 }, { 4, 10, 403 }, { 5, 10, 441 }, { 7, 10, 450 }, - { 10, 10, 840 }, { 11, 10, 101 }, { 12, 10, 193 }, { 13, 10, 430 }, - { 5, 0, 965 }, { 6, 0, 182 }, { 10, 0, 65 }, { 10, 0, 488 }, - { 10, 0, 497 }, { 7, 11, 1346 }, { 6, 0, 973 }, { 6, 0, 1158 }, - { 10, 11, 200 }, { 19, 11, 2 }, { 23, 11, 22 }, { 4, 11, 190 }, - { 5, 11, 554 }, { 5, 10, 679 }, { 7, 0, 328 }, { 9, 10, 326 }, - { 5, 11, 1001 }, { 9, 0, 588 }, { 10, 0, 260 }, { 5, 11, 446 }, - { 7, 10, 1128 }, { 7, 10, 1796 }, { 19, 11, 119 }, { 6, 0, 1786 }, - { 6, 0, 1328 }, { 6, 0, 1985 }, { 8, 0, 962 }, { 10, 0, 1017 }, - { 7, 0, 308 }, { 11, 0, 508 }, { 4, 10, 574 }, { 7, 10, 350 }, - { 7, 10, 1024 }, { 8, 10, 338 }, { 9, 10, 677 }, { 10, 10, 808 }, - { 10, 11, 752 }, { 7, 10, 1081 }, { 9, 11, 96 }, { 7, 10, 1676 }, - { 7, 10, 2037 }, { 8, 0, 588 }, { 4, 11, 304 }, { 5, 0, 614 }, - { 12, 0, 793 }, { 8, 0, 287 }, { 9, 10, 297 }, { 13, 10, 37 }, - { 6, 11, 53 }, { 6, 11, 199 }, { 7, 11, 1408 }, { 8, 11, 32 }, - { 8, 11, 93 }, { 9, 11, 437 }, { 10, 11, 397 }, { 10, 11, 629 }, - { 11, 11, 593 }, { 11, 11, 763 }, { 13, 11, 326 }, { 17, 11, 35 }, - { 6, 11, 105 }, { 9, 11, 320 }, { 10, 11, 506 }, { 10, 11, 794 }, - { 5, 11, 114 }, { 5, 11, 255 }, { 13, 11, 285 }, { 12, 0, 290 }, - { 7, 11, 2035 }, { 8, 11, 19 }, { 9, 11, 89 }, { 10, 11, 831 }, - { 6, 0, 1136 }, { 7, 0, 719 }, { 8, 0, 796 }, { 8, 0, 809 }, - { 8, 0, 834 }, { 6, 10, 306 }, { 7, 10, 1140 }, { 7, 10, 1340 }, - { 8, 10, 133 }, { 10, 10, 449 }, { 11, 10, 1011 }, { 5, 0, 210 }, - { 6, 0, 213 }, { 7, 0, 60 }, { 10, 0, 364 }, { 11, 0, 135 }, - { 5, 0, 607 }, { 8, 0, 326 }, { 8, 0, 490 }, { 10, 11, 176 }, - { 4, 0, 701 }, { 5, 0, 472 }, { 7, 0, 380 }, { 9, 0, 758 }, - { 7, 0, 1947 }, { 6, 0, 1079 }, { 10, 0, 278 }, { 10, 11, 391 }, - { 5, 10, 329 }, { 8, 10, 260 }, { 11, 11, 156 }, { 4, 0, 386 }, - { 7, 0, 41 }, { 8, 0, 405 }, { 8, 0, 728 }, { 9, 0, 497 }, - { 11, 0, 110 }, { 11, 0, 360 }, { 15, 0, 37 }, { 16, 0, 84 }, - { 5, 0, 46 }, { 7, 0, 1452 }, { 7, 0, 1480 }, { 8, 0, 634 }, - { 12, 0, 472 }, { 8, 0, 961 }, { 4, 0, 524 }, { 8, 0, 810 }, - { 10, 0, 238 }, { 13, 0, 33 }, { 4, 10, 657 }, { 24, 10, 7 }, - { 5, 0, 532 }, { 5, 0, 997 }, { 7, 10, 1665 }, { 7, 11, 594 }, - { 7, 11, 851 }, { 7, 11, 1858 }, { 9, 11, 411 }, { 9, 11, 574 }, - { 9, 11, 666 }, { 9, 11, 737 }, { 10, 11, 346 }, { 10, 11, 712 }, - { 11, 11, 246 }, { 11, 11, 432 }, { 11, 11, 517 }, { 11, 11, 647 }, - { 11, 11, 679 }, { 11, 11, 727 }, { 12, 11, 304 }, { 12, 11, 305 }, - { 12, 11, 323 }, { 12, 11, 483 }, { 12, 11, 572 }, { 12, 11, 593 }, - { 12, 11, 602 }, { 13, 11, 95 }, { 13, 11, 101 }, { 13, 11, 171 }, - { 13, 11, 315 }, { 13, 11, 378 }, { 13, 11, 425 }, { 13, 11, 475 }, - { 14, 11, 63 }, { 14, 11, 380 }, { 14, 11, 384 }, { 15, 11, 133 }, - { 18, 11, 112 }, { 20, 11, 72 }, { 5, 11, 955 }, { 8, 11, 814 }, - { 6, 0, 1301 }, { 5, 10, 66 }, { 7, 10, 1896 }, { 8, 10, 288 }, - { 5, 11, 56 }, { 6, 10, 1643 }, { 6, 0, 1298 }, { 20, 11, 100 }, - { 5, 0, 782 }, { 5, 0, 829 }, { 6, 0, 671 }, { 6, 0, 1156 }, - { 6, 0, 1738 }, { 9, 11, 621 }, { 4, 0, 306 }, { 5, 0, 570 }, - { 7, 0, 1347 }, { 5, 10, 91 }, { 5, 10, 648 }, { 5, 10, 750 }, - { 5, 10, 781 }, { 6, 10, 54 }, { 6, 10, 112 }, { 6, 10, 402 }, - { 6, 10, 1732 }, { 7, 10, 315 }, { 7, 10, 749 }, { 7, 10, 1900 }, - { 9, 10, 78 }, { 9, 10, 508 }, { 10, 10, 611 }, { 10, 10, 811 }, - { 11, 10, 510 }, { 11, 10, 728 }, { 13, 10, 36 }, { 14, 10, 39 }, - { 16, 10, 83 }, { 17, 10, 124 }, { 20, 10, 30 }, { 8, 10, 570 }, - { 9, 11, 477 }, { 13, 11, 78 }, { 4, 11, 639 }, { 10, 11, 4 }, - { 10, 10, 322 }, { 10, 10, 719 }, { 11, 10, 407 }, { 11, 11, 638 }, - { 12, 11, 177 }, { 20, 11, 57 }, { 7, 0, 1823 }, { 11, 0, 693 }, - { 7, 0, 759 }, { 5, 11, 758 }, { 8, 10, 125 }, { 8, 10, 369 }, - { 8, 10, 524 }, { 10, 10, 486 }, { 11, 10, 13 }, { 11, 10, 381 }, - { 11, 10, 736 }, { 11, 10, 766 }, { 11, 10, 845 }, { 13, 10, 114 }, - { 13, 10, 292 }, { 14, 10, 47 }, { 7, 0, 1932 }, { 6, 10, 1684 }, - { 6, 10, 1731 }, { 7, 10, 356 }, { 8, 10, 54 }, { 8, 10, 221 }, - { 9, 10, 225 }, { 9, 10, 356 }, { 10, 10, 77 }, { 10, 10, 446 }, - { 10, 10, 731 }, { 12, 10, 404 }, { 13, 10, 491 }, { 7, 11, 552 }, - { 7, 11, 1112 }, { 4, 0, 78 }, { 5, 0, 96 }, { 5, 0, 182 }, - { 6, 0, 1257 }, { 7, 0, 1724 }, { 7, 0, 1825 }, { 10, 0, 394 }, - { 10, 0, 471 }, { 11, 0, 532 }, { 14, 0, 340 }, { 17, 0, 88 }, - { 11, 11, 328 }, { 7, 0, 1964 }, { 4, 10, 411 }, { 4, 10, 80 }, - { 5, 10, 44 }, { 9, 11, 133 }, { 5, 11, 110 }, { 6, 11, 169 }, - { 6, 11, 1702 }, { 7, 11, 400 }, { 8, 11, 538 }, { 9, 11, 184 }, - { 9, 11, 524 }, { 12, 11, 218 }, { 4, 0, 521 }, { 5, 10, 299 }, - { 7, 10, 1083 }, { 12, 11, 554 }, { 6, 11, 133 }, { 9, 11, 353 }, - { 12, 11, 628 }, { 18, 11, 79 }, { 6, 0, 215 }, { 7, 0, 584 }, - { 7, 0, 1028 }, { 7, 0, 1473 }, { 7, 0, 1721 }, { 9, 0, 424 }, - { 10, 0, 779 }, { 7, 0, 857 }, { 7, 0, 1209 }, { 7, 10, 1713 }, - { 9, 10, 537 }, { 10, 10, 165 }, { 12, 10, 219 }, { 12, 10, 561 }, - { 4, 10, 219 }, { 6, 11, 93 }, { 7, 11, 1422 }, { 7, 10, 1761 }, - { 7, 11, 1851 }, { 8, 11, 673 }, { 9, 10, 86 }, { 9, 11, 529 }, - { 12, 11, 43 }, { 9, 11, 371 }, { 8, 0, 671 }, { 5, 0, 328 }, - { 7, 0, 918 }, { 4, 0, 529 }, { 9, 11, 25 }, { 10, 11, 467 }, - { 10, 11, 559 }, { 4, 11, 335 }, { 7, 11, 942 }, { 6, 0, 716 }, - { 6, 0, 1509 }, { 6, 0, 67 }, { 7, 0, 258 }, { 7, 0, 1630 }, - { 9, 0, 354 }, { 9, 0, 675 }, { 10, 0, 830 }, { 14, 0, 80 }, - { 17, 0, 80 }, { 12, 10, 428 }, { 6, 0, 1112 }, { 6, 0, 141 }, - { 7, 0, 225 }, { 9, 0, 59 }, { 9, 0, 607 }, { 10, 0, 312 }, - { 11, 0, 687 }, { 12, 0, 555 }, { 13, 0, 373 }, { 13, 0, 494 }, - { 20, 0, 58 }, { 5, 10, 514 }, { 8, 11, 39 }, { 10, 11, 773 }, - { 11, 11, 84 }, { 12, 11, 205 }, { 14, 11, 1 }, { 8, 0, 783 }, - { 5, 11, 601 }, { 5, 11, 870 }, { 8, 11, 594 }, { 4, 10, 55 }, - { 5, 10, 301 }, { 6, 10, 571 }, { 14, 10, 49 }, { 18, 10, 102 }, - { 4, 11, 181 }, { 6, 11, 1652 }, { 5, 10, 364 }, { 4, 11, 97 }, - { 5, 11, 147 }, { 6, 11, 286 }, { 7, 11, 1362 }, { 13, 11, 176 }, - { 4, 10, 76 }, { 7, 10, 1550 }, { 9, 10, 306 }, { 9, 10, 430 }, - { 9, 10, 663 }, { 10, 10, 683 }, { 11, 10, 427 }, { 11, 10, 753 }, - { 12, 10, 334 }, { 12, 10, 442 }, { 14, 10, 258 }, { 14, 10, 366 }, - { 15, 10, 131 }, { 9, 10, 52 }, { 6, 0, 955 }, { 6, 0, 1498 }, - { 6, 11, 375 }, { 7, 11, 169 }, { 7, 11, 254 }, { 8, 11, 780 }, - { 7, 0, 430 }, { 11, 0, 46 }, { 14, 0, 343 }, { 14, 11, 343 }, - { 7, 0, 1183 }, { 5, 0, 602 }, { 7, 0, 2018 }, { 9, 0, 418 }, - { 9, 0, 803 }, { 7, 11, 1447 }, { 8, 0, 677 }, { 7, 11, 1044 }, - { 11, 11, 285 }, { 4, 10, 656 }, { 7, 10, 779 }, { 7, 10, 144 }, - { 5, 11, 629 }, { 7, 11, 1549 }, { 7, 10, 1373 }, { 10, 11, 209 }, - { 7, 10, 554 }, { 7, 10, 605 }, { 13, 10, 10 }, { 5, 10, 838 }, - { 5, 10, 841 }, { 6, 10, 1649 }, { 5, 10, 1012 }, { 6, 0, 1357 }, - { 6, 0, 1380 }, { 16, 0, 53 }, { 6, 0, 590 }, { 7, 10, 365 }, - { 7, 10, 1357 }, { 7, 10, 1497 }, { 8, 10, 154 }, { 13, 10, 281 }, - { 5, 10, 340 }, { 4, 11, 420 }, { 7, 0, 329 }, { 19, 11, 32 }, - { 4, 0, 469 }, { 10, 11, 429 }, { 11, 10, 495 }, { 8, 10, 261 }, - { 9, 10, 144 }, { 9, 10, 466 }, { 10, 10, 370 }, { 12, 10, 470 }, - { 13, 10, 144 }, { 14, 10, 348 }, { 14, 0, 460 }, { 4, 11, 325 }, - { 9, 10, 897 }, { 10, 11, 125 }, { 6, 0, 1743 }, { 6, 10, 248 }, - { 9, 10, 546 }, { 10, 10, 535 }, { 11, 10, 681 }, { 13, 10, 135 }, - { 4, 0, 990 }, { 5, 0, 929 }, { 6, 0, 340 }, { 8, 0, 376 }, - { 8, 0, 807 }, { 8, 0, 963 }, { 8, 0, 980 }, { 10, 0, 1007 }, - { 6, 0, 1603 }, { 12, 0, 250 }, { 4, 11, 714 }, { 5, 11, 469 }, - { 6, 10, 567 }, { 8, 10, 445 }, { 5, 0, 218 }, { 7, 0, 1610 }, - { 8, 0, 646 }, { 10, 0, 83 }, { 11, 11, 138 }, { 12, 11, 40 }, - { 7, 0, 1512 }, { 7, 0, 1794 }, { 7, 11, 1216 }, { 11, 0, 0 }, - { 16, 0, 78 }, { 4, 11, 718 }, { 5, 0, 571 }, { 4, 0, 455 }, - { 6, 0, 1012 }, { 5, 11, 124 }, { 5, 11, 144 }, { 6, 11, 548 }, - { 7, 11, 15 }, { 7, 11, 153 }, { 9, 11, 629 }, { 14, 11, 10 }, - { 6, 11, 75 }, { 7, 11, 1531 }, { 8, 11, 416 }, { 9, 11, 240 }, - { 9, 11, 275 }, { 10, 11, 100 }, { 11, 11, 658 }, { 11, 11, 979 }, - { 12, 11, 86 }, { 13, 11, 468 }, { 14, 11, 66 }, { 14, 11, 207 }, - { 15, 11, 20 }, { 15, 11, 25 }, { 16, 11, 58 }, { 4, 10, 577 }, - { 5, 11, 141 }, { 5, 11, 915 }, { 6, 11, 1783 }, { 7, 11, 211 }, - { 7, 11, 698 }, { 7, 11, 1353 }, { 9, 11, 83 }, { 9, 11, 281 }, - { 10, 11, 376 }, { 10, 11, 431 }, { 11, 11, 543 }, { 12, 11, 664 }, - { 13, 11, 280 }, { 13, 11, 428 }, { 14, 11, 61 }, { 14, 11, 128 }, - { 17, 11, 52 }, { 17, 11, 81 }, { 6, 0, 161 }, { 7, 0, 372 }, - { 9, 0, 597 }, { 4, 0, 349 }, { 10, 11, 702 }, { 11, 11, 245 }, - { 6, 0, 524 }, { 6, 10, 174 }, { 6, 0, 432 }, { 9, 0, 751 }, - { 11, 0, 322 }, { 19, 11, 94 }, { 4, 11, 338 }, { 5, 11, 400 }, - { 5, 0, 468 }, { 10, 0, 325 }, { 11, 0, 856 }, { 12, 0, 345 }, - { 15, 0, 104 }, { 5, 0, 223 }, { 4, 0, 566 }, { 4, 11, 221 }, - { 5, 11, 659 }, { 5, 11, 989 }, { 7, 11, 697 }, { 7, 11, 1211 }, - { 10, 11, 284 }, { 7, 11, 1070 }, { 4, 0, 59 }, { 7, 0, 1394 }, - { 6, 0, 436 }, { 11, 0, 481 }, { 5, 10, 878 }, { 5, 10, 972 }, - { 4, 0, 48 }, { 5, 0, 271 }, { 7, 0, 953 }, { 5, 0, 610 }, - { 8, 0, 457 }, { 4, 0, 773 }, { 5, 0, 618 }, { 9, 0, 756 }, - { 5, 0, 755 }, { 7, 0, 1217 }, { 10, 11, 507 }, { 4, 10, 351 }, - { 4, 0, 197 }, { 15, 11, 78 }, { 4, 11, 188 }, { 7, 11, 805 }, - { 11, 11, 276 }, { 14, 11, 293 }, { 5, 11, 884 }, { 11, 11, 991 }, - { 4, 10, 286 }, { 10, 0, 259 }, { 10, 0, 428 }, { 7, 10, 438 }, - { 7, 10, 627 }, { 7, 10, 1516 }, { 8, 10, 40 }, { 9, 10, 56 }, - { 9, 10, 294 }, { 11, 10, 969 }, { 11, 10, 995 }, { 18, 10, 148 }, - { 4, 0, 356 }, { 5, 0, 217 }, { 5, 0, 492 }, { 5, 0, 656 }, - { 8, 0, 544 }, { 8, 11, 544 }, { 5, 0, 259 }, { 6, 0, 1230 }, - { 7, 0, 414 }, { 7, 0, 854 }, { 14, 0, 107 }, { 4, 0, 1007 }, - { 15, 0, 14 }, { 16, 0, 5 }, { 6, 0, 1580 }, { 4, 10, 738 }, - { 4, 11, 596 }, { 4, 0, 673 }, { 5, 10, 866 }, { 6, 0, 1843 }, - { 7, 11, 1847 }, { 4, 0, 165 }, { 7, 0, 1398 }, { 7, 0, 1829 }, - { 7, 11, 1634 }, { 19, 11, 65 }, { 6, 0, 885 }, { 6, 0, 1009 }, - { 9, 0, 809 }, { 5, 10, 116 }, { 4, 10, 457 }, { 8, 11, 770 }, - { 9, 0, 498 }, { 12, 0, 181 }, { 10, 11, 361 }, { 14, 11, 316 }, - { 6, 11, 595 }, { 5, 0, 9 }, { 7, 0, 297 }, { 7, 0, 966 }, - { 12, 0, 306 }, { 4, 11, 89 }, { 5, 11, 489 }, { 6, 11, 315 }, - { 7, 11, 553 }, { 7, 11, 1745 }, { 10, 11, 243 }, { 6, 0, 1487 }, - { 4, 0, 437 }, { 5, 0, 146 }, { 6, 0, 411 }, { 10, 0, 721 }, - { 5, 10, 527 }, { 6, 10, 189 }, { 7, 10, 859 }, { 11, 10, 104 }, - { 11, 10, 554 }, { 15, 10, 60 }, { 15, 10, 125 }, { 6, 11, 1658 }, - { 9, 11, 3 }, { 10, 11, 154 }, { 11, 11, 641 }, { 13, 11, 85 }, - { 13, 11, 201 }, { 13, 11, 346 }, { 6, 0, 177 }, { 7, 0, 467 }, - { 6, 0, 1377 }, { 6, 10, 116 }, { 8, 11, 645 }, { 4, 11, 166 }, - { 5, 11, 505 }, { 6, 11, 1670 }, { 9, 11, 110 }, { 5, 10, 487 }, - { 4, 10, 86 }, { 5, 10, 667 }, { 5, 10, 753 }, { 6, 10, 316 }, - { 6, 10, 455 }, { 7, 10, 946 }, { 5, 0, 200 }, { 4, 0, 959 }, - { 6, 0, 1928 }, { 6, 0, 1957 }, { 11, 11, 203 }, { 22, 10, 45 }, - { 4, 10, 79 }, { 7, 10, 1773 }, { 10, 10, 450 }, { 11, 10, 589 }, - { 13, 10, 332 }, { 13, 10, 493 }, { 14, 10, 183 }, { 14, 10, 334 }, - { 14, 10, 362 }, { 14, 10, 368 }, { 14, 10, 376 }, { 14, 10, 379 }, - { 19, 10, 90 }, { 19, 10, 103 }, { 19, 10, 127 }, { 20, 10, 90 }, - { 6, 0, 1435 }, { 7, 11, 1275 }, { 6, 0, 481 }, { 7, 11, 445 }, - { 8, 11, 307 }, { 8, 11, 704 }, { 10, 11, 41 }, { 10, 11, 439 }, - { 11, 11, 237 }, { 11, 11, 622 }, { 12, 11, 201 }, { 7, 11, 869 }, - { 4, 0, 84 }, { 7, 0, 1482 }, { 10, 0, 76 }, { 10, 0, 142 }, - { 11, 11, 277 }, { 16, 11, 14 }, { 7, 11, 1977 }, { 4, 11, 189 }, - { 5, 11, 713 }, { 8, 11, 57 }, { 5, 0, 1015 }, { 10, 11, 371 }, - { 4, 0, 315 }, { 5, 0, 507 }, { 7, 0, 1370 }, { 4, 11, 552 }, - { 14, 10, 381 }, { 9, 0, 759 }, { 16, 0, 31 }, { 16, 0, 39 }, - { 16, 0, 75 }, { 18, 0, 24 }, { 20, 0, 42 }, { 24, 0, 1 }, - { 6, 0, 712 }, { 6, 0, 1722 }, { 5, 10, 663 }, { 5, 10, 846 }, - { 8, 0, 222 }, { 8, 0, 476 }, { 9, 0, 238 }, { 11, 0, 516 }, - { 11, 0, 575 }, { 15, 0, 109 }, { 18, 0, 100 }, { 7, 0, 1402 }, - { 7, 0, 1414 }, { 12, 0, 456 }, { 5, 10, 378 }, { 8, 10, 465 }, - { 9, 10, 286 }, { 10, 10, 185 }, { 10, 10, 562 }, { 10, 10, 635 }, - { 11, 10, 31 }, { 11, 10, 393 }, { 13, 10, 312 }, { 18, 10, 65 }, - { 18, 10, 96 }, { 19, 10, 89 }, { 4, 0, 986 }, { 6, 0, 1958 }, - { 6, 0, 2032 }, { 8, 0, 934 }, { 10, 0, 985 }, { 7, 10, 1880 }, - { 9, 10, 680 }, { 11, 10, 798 }, { 6, 10, 1770 }, { 17, 11, 49 }, - { 4, 11, 614 }, { 4, 10, 648 }, { 5, 10, 945 }, { 6, 10, 1656 }, - { 6, 10, 1787 }, { 7, 10, 167 }, { 8, 10, 824 }, { 9, 10, 391 }, - { 10, 10, 375 }, { 11, 10, 185 }, { 10, 11, 661 }, { 7, 0, 1273 }, - { 7, 11, 1945 }, { 7, 0, 706 }, { 7, 0, 1058 }, { 10, 0, 538 }, - { 7, 10, 1645 }, { 8, 10, 352 }, { 9, 10, 249 }, { 4, 10, 152 }, - { 11, 0, 92 }, { 11, 0, 196 }, { 11, 0, 409 }, { 11, 0, 450 }, - { 11, 0, 666 }, { 11, 0, 777 }, { 12, 0, 262 }, { 13, 0, 385 }, - { 13, 0, 393 }, { 15, 0, 115 }, { 16, 0, 45 }, { 17, 0, 82 }, - { 5, 10, 1006 }, { 6, 0, 40 }, { 7, 0, 1781 }, { 9, 11, 614 }, - { 11, 11, 327 }, { 5, 10, 420 }, { 7, 10, 1449 }, { 7, 0, 431 }, - { 10, 0, 97 }, { 7, 10, 832 }, { 6, 0, 423 }, { 7, 0, 665 }, - { 7, 0, 1210 }, { 7, 0, 237 }, { 8, 0, 664 }, { 9, 0, 42 }, - { 9, 0, 266 }, { 9, 0, 380 }, { 9, 0, 645 }, { 10, 0, 177 }, - { 10, 0, 276 }, { 7, 0, 264 }, { 5, 10, 351 }, { 8, 0, 213 }, - { 5, 10, 40 }, { 7, 10, 598 }, { 7, 10, 1638 }, { 9, 10, 166 }, - { 9, 10, 640 }, { 9, 10, 685 }, { 9, 10, 773 }, { 11, 10, 215 }, - { 13, 10, 65 }, { 14, 10, 172 }, { 14, 10, 317 }, { 17, 10, 6 }, - { 5, 11, 84 }, { 6, 11, 163 }, { 8, 10, 60 }, { 9, 10, 343 }, - { 11, 10, 769 }, { 9, 0, 455 }, { 5, 11, 410 }, { 8, 0, 906 }, - { 12, 0, 700 }, { 12, 0, 706 }, { 12, 0, 729 }, { 21, 11, 33 }, - { 22, 11, 40 }, { 7, 10, 1951 }, { 8, 10, 765 }, { 8, 10, 772 }, - { 12, 10, 671 }, { 7, 10, 108 }, { 8, 10, 219 }, { 8, 10, 388 }, - { 9, 10, 639 }, { 9, 10, 775 }, { 11, 10, 275 }, { 12, 10, 464 }, - { 5, 11, 322 }, { 7, 11, 1941 }, { 8, 11, 186 }, { 9, 11, 262 }, - { 10, 11, 187 }, { 14, 11, 208 }, { 18, 11, 130 }, { 11, 0, 624 }, - { 8, 0, 574 }, { 5, 11, 227 }, { 12, 11, 29 }, { 7, 11, 1546 }, - { 11, 11, 299 }, { 14, 11, 407 }, { 5, 10, 15 }, { 6, 10, 56 }, - { 7, 10, 1758 }, { 8, 10, 500 }, { 9, 10, 730 }, { 11, 10, 331 }, - { 13, 10, 150 }, { 14, 10, 282 }, { 7, 11, 1395 }, { 8, 11, 486 }, - { 9, 11, 236 }, { 9, 11, 878 }, { 10, 11, 218 }, { 11, 11, 95 }, - { 19, 11, 17 }, { 19, 11, 31 }, { 7, 11, 2043 }, { 4, 0, 354 }, - { 18, 11, 4 }, { 12, 11, 80 }, { 7, 0, 1558 }, { 6, 10, 1886 }, - { 5, 10, 205 }, { 6, 10, 438 }, { 9, 10, 711 }, { 5, 11, 522 }, - { 5, 10, 534 }, { 7, 0, 235 }, { 7, 0, 1475 }, { 15, 0, 68 }, - { 18, 0, 120 }, { 9, 10, 691 }, { 4, 0, 942 }, { 6, 0, 1813 }, - { 8, 0, 917 }, { 10, 0, 884 }, { 12, 0, 696 }, { 12, 0, 717 }, - { 12, 0, 723 }, { 12, 0, 738 }, { 12, 0, 749 }, { 12, 0, 780 }, - { 16, 0, 97 }, { 18, 0, 169 }, { 6, 10, 443 }, { 8, 11, 562 }, - { 9, 10, 237 }, { 9, 10, 571 }, { 9, 10, 695 }, { 10, 10, 139 }, - { 11, 10, 715 }, { 12, 10, 417 }, { 13, 10, 421 }, { 7, 0, 957 }, - { 5, 0, 830 }, { 6, 11, 1771 }, { 18, 0, 23 }, { 5, 0, 496 }, - { 6, 0, 694 }, { 7, 0, 203 }, { 7, 11, 1190 }, { 9, 11, 620 }, - { 9, 11, 132 }, { 6, 0, 547 }, { 6, 0, 1549 }, { 8, 11, 258 }, - { 9, 11, 208 }, { 9, 11, 359 }, { 4, 0, 864 }, { 5, 0, 88 }, - { 9, 0, 239 }, { 7, 11, 493 }, { 4, 11, 317 }, { 7, 11, 1279 }, - { 4, 11, 477 }, { 4, 10, 578 }, { 5, 11, 63 }, { 5, 11, 509 }, - { 7, 0, 650 }, { 7, 0, 1310 }, { 7, 0, 1076 }, { 9, 0, 80 }, - { 11, 0, 78 }, { 11, 0, 421 }, { 11, 0, 534 }, { 12, 0, 545 }, - { 4, 11, 288 }, { 12, 0, 553 }, { 14, 0, 118 }, { 5, 10, 923 }, - { 7, 0, 274 }, { 11, 0, 479 }, { 11, 0, 507 }, { 8, 11, 89 }, - { 8, 11, 620 }, { 9, 11, 49 }, { 10, 11, 774 }, { 11, 11, 628 }, - { 12, 11, 322 }, { 15, 11, 124 }, { 4, 0, 497 }, { 7, 0, 1584 }, - { 7, 0, 261 }, { 7, 0, 1115 }, { 7, 0, 1354 }, { 7, 0, 1404 }, - { 7, 0, 1588 }, { 7, 0, 1705 }, { 7, 0, 1902 }, { 9, 0, 465 }, - { 10, 0, 248 }, { 10, 0, 349 }, { 10, 0, 647 }, { 11, 0, 527 }, - { 11, 0, 660 }, { 11, 0, 669 }, { 12, 0, 529 }, { 13, 0, 305 }, - { 4, 10, 924 }, { 5, 10, 665 }, { 8, 0, 13 }, { 6, 0, 791 }, - { 10, 11, 120 }, { 7, 0, 642 }, { 8, 0, 250 }, { 11, 0, 123 }, - { 11, 0, 137 }, { 13, 0, 48 }, { 14, 0, 95 }, { 4, 10, 265 }, - { 7, 10, 807 }, { 7, 10, 950 }, { 5, 10, 93 }, { 12, 10, 267 }, - { 7, 0, 1429 }, { 4, 0, 949 }, { 10, 0, 885 }, { 10, 0, 891 }, - { 10, 0, 900 }, { 10, 0, 939 }, { 12, 0, 760 }, { 14, 0, 449 }, - { 11, 11, 366 }, { 4, 0, 818 }, { 6, 11, 85 }, { 7, 10, 994 }, - { 7, 0, 330 }, { 5, 10, 233 }, { 5, 10, 320 }, { 6, 10, 140 }, - { 8, 10, 295 }, { 4, 0, 1004 }, { 8, 0, 982 }, { 8, 0, 993 }, - { 5, 10, 978 }, { 4, 10, 905 }, { 6, 10, 1701 }, { 9, 10, 843 }, - { 10, 0, 545 }, { 12, 0, 301 }, { 6, 0, 947 }, { 6, 0, 1062 }, - { 6, 0, 1188 }, { 4, 0, 904 }, { 5, 0, 794 }, { 24, 10, 6 }, - { 6, 0, 1372 }, { 7, 11, 608 }, { 5, 11, 279 }, { 6, 11, 235 }, - { 7, 11, 468 }, { 8, 11, 446 }, { 9, 11, 637 }, { 10, 11, 717 }, - { 11, 11, 738 }, { 12, 11, 514 }, { 4, 10, 509 }, { 5, 11, 17 }, - { 6, 11, 371 }, { 9, 11, 528 }, { 4, 0, 693 }, { 4, 11, 115 }, - { 5, 11, 669 }, { 6, 11, 407 }, { 8, 11, 311 }, { 11, 11, 10 }, - { 13, 11, 5 }, { 11, 0, 377 }, { 7, 10, 273 }, { 9, 11, 381 }, - { 7, 0, 695 }, { 7, 0, 386 }, { 10, 0, 713 }, { 7, 10, 1041 }, - { 6, 0, 1291 }, { 6, 0, 7 }, { 6, 0, 35 }, { 7, 0, 147 }, - { 7, 0, 1069 }, { 7, 0, 1568 }, { 7, 0, 1575 }, { 7, 0, 1917 }, - { 8, 0, 43 }, { 8, 0, 208 }, { 9, 0, 128 }, { 9, 0, 866 }, - { 10, 0, 20 }, { 11, 0, 981 }, { 19, 0, 33 }, { 7, 0, 893 }, - { 13, 0, 424 }, { 11, 10, 234 }, { 22, 11, 56 }, { 5, 11, 779 }, - { 5, 11, 807 }, { 6, 11, 1655 }, { 6, 11, 1676 }, { 5, 10, 802 }, - { 7, 10, 2021 }, { 8, 10, 805 }, { 4, 11, 196 }, { 5, 10, 167 }, - { 5, 11, 558 }, { 5, 10, 899 }, { 5, 11, 949 }, { 6, 10, 410 }, - { 9, 10, 777 }, { 9, 10, 789 }, { 6, 10, 1705 }, { 8, 0, 904 }, - { 12, 0, 787 }, { 6, 0, 322 }, { 9, 0, 552 }, { 11, 0, 274 }, - { 13, 0, 209 }, { 13, 0, 499 }, { 14, 0, 85 }, { 15, 0, 126 }, - { 17, 0, 70 }, { 7, 10, 10 }, { 5, 10, 11 }, { 6, 10, 117 }, - { 6, 10, 485 }, { 7, 10, 1133 }, { 9, 10, 582 }, { 9, 10, 594 }, - { 11, 10, 21 }, { 11, 10, 818 }, { 12, 10, 535 }, { 13, 10, 86 }, - { 4, 10, 264 }, { 7, 10, 1067 }, { 8, 10, 204 }, { 8, 10, 385 }, - { 11, 10, 953 }, { 4, 11, 752 }, { 10, 10, 56 }, { 5, 10, 470 }, - { 6, 0, 1808 }, { 8, 0, 83 }, { 8, 0, 742 }, { 8, 0, 817 }, - { 9, 0, 28 }, { 9, 0, 29 }, { 9, 0, 885 }, { 10, 0, 387 }, - { 11, 0, 633 }, { 11, 0, 740 }, { 13, 0, 235 }, { 13, 0, 254 }, - { 15, 0, 143 }, { 15, 0, 146 }, { 12, 0, 49 }, { 6, 0, 1832 }, - { 4, 11, 227 }, { 5, 11, 159 }, { 5, 11, 409 }, { 7, 11, 80 }, - { 10, 11, 294 }, { 10, 11, 479 }, { 12, 11, 418 }, { 14, 11, 50 }, - { 14, 11, 249 }, { 14, 11, 295 }, { 7, 11, 1470 }, { 8, 11, 66 }, - { 8, 11, 137 }, { 8, 11, 761 }, { 9, 11, 638 }, { 11, 11, 80 }, - { 11, 11, 212 }, { 11, 11, 368 }, { 11, 11, 418 }, { 12, 11, 8 }, - { 13, 11, 15 }, { 16, 11, 61 }, { 17, 11, 59 }, { 19, 11, 28 }, - { 20, 11, 84 }, { 11, 10, 1015 }, { 10, 11, 468 }, { 7, 0, 421 }, - { 6, 0, 415 }, { 7, 0, 1049 }, { 9, 0, 442 }, { 6, 11, 38 }, - { 7, 11, 1220 }, { 8, 11, 185 }, { 8, 11, 256 }, { 9, 11, 22 }, - { 9, 11, 331 }, { 10, 11, 738 }, { 11, 11, 205 }, { 11, 11, 540 }, - { 11, 11, 746 }, { 13, 11, 399 }, { 13, 11, 465 }, { 14, 11, 88 }, - { 14, 11, 194 }, { 11, 0, 289 }, { 5, 10, 715 }, { 4, 0, 110 }, - { 10, 0, 415 }, { 10, 0, 597 }, { 14, 0, 206 }, { 4, 11, 159 }, - { 6, 11, 115 }, { 7, 11, 252 }, { 7, 11, 257 }, { 7, 11, 1928 }, - { 8, 11, 69 }, { 9, 11, 384 }, { 10, 11, 91 }, { 10, 11, 615 }, - { 12, 11, 375 }, { 14, 11, 235 }, { 18, 11, 117 }, { 19, 11, 123 }, - { 5, 11, 911 }, { 8, 11, 278 }, { 7, 0, 205 }, { 7, 0, 2000 }, - { 8, 10, 794 }, { 9, 10, 400 }, { 10, 10, 298 }, { 14, 10, 228 }, - { 7, 11, 1774 }, { 4, 11, 151 }, { 7, 11, 1567 }, { 8, 11, 351 }, - { 9, 11, 322 }, { 8, 10, 724 }, { 5, 11, 990 }, { 7, 0, 1539 }, - { 11, 0, 512 }, { 13, 0, 205 }, { 19, 0, 30 }, { 22, 0, 36 }, - { 23, 0, 19 }, { 7, 11, 1539 }, { 5, 11, 194 }, { 7, 11, 1662 }, - { 9, 11, 90 }, { 12, 11, 180 }, { 6, 10, 190 }, { 7, 10, 768 }, - { 7, 10, 1170 }, { 6, 0, 1340 }, { 4, 0, 283 }, { 7, 0, 1194 }, - { 5, 11, 425 }, { 5, 11, 971 }, { 12, 0, 549 }, { 14, 10, 67 }, - { 19, 10, 60 }, { 7, 10, 1023 }, { 6, 0, 1720 }, { 10, 11, 587 }, - { 5, 11, 72 }, { 6, 11, 264 }, { 7, 11, 21 }, { 7, 11, 46 }, - { 7, 11, 2013 }, { 8, 11, 215 }, { 8, 11, 513 }, { 10, 11, 266 }, - { 11, 11, 22 }, { 5, 0, 319 }, { 7, 0, 534 }, { 6, 10, 137 }, - { 9, 10, 75 }, { 9, 10, 253 }, { 10, 10, 194 }, { 10, 10, 444 }, - { 7, 0, 1180 }, { 20, 0, 112 }, { 6, 11, 239 }, { 7, 11, 118 }, - { 10, 11, 95 }, { 11, 11, 603 }, { 13, 11, 443 }, { 14, 11, 160 }, - { 15, 11, 4 }, { 6, 11, 431 }, { 5, 11, 874 }, { 6, 11, 1677 }, - { 11, 10, 643 }, { 12, 10, 115 }, { 15, 11, 0 }, { 6, 0, 967 }, - { 6, 11, 65 }, { 7, 11, 939 }, { 7, 11, 1172 }, { 7, 11, 1671 }, - { 9, 11, 540 }, { 10, 11, 696 }, { 11, 11, 265 }, { 11, 11, 732 }, - { 11, 11, 928 }, { 11, 11, 937 }, { 12, 11, 399 }, { 13, 11, 438 }, - { 21, 11, 19 }, { 9, 11, 200 }, { 7, 0, 1940 }, { 5, 10, 760 }, - { 7, 10, 542 }, { 8, 10, 135 }, { 8, 10, 496 }, { 12, 11, 44 }, - { 7, 11, 1655 }, { 8, 11, 305 }, { 7, 10, 319 }, { 7, 10, 355 }, - { 7, 10, 763 }, { 10, 10, 389 }, { 17, 10, 43 }, { 8, 0, 735 }, - { 10, 10, 786 }, { 9, 11, 19 }, { 4, 11, 696 }, { 5, 0, 132 }, - { 9, 0, 486 }, { 9, 0, 715 }, { 10, 0, 458 }, { 11, 0, 373 }, - { 11, 0, 668 }, { 11, 0, 795 }, { 11, 0, 897 }, { 12, 0, 272 }, - { 12, 0, 424 }, { 12, 0, 539 }, { 12, 0, 558 }, { 14, 0, 245 }, - { 14, 0, 263 }, { 14, 0, 264 }, { 14, 0, 393 }, { 14, 0, 403 }, - { 10, 0, 38 }, { 11, 0, 784 }, { 4, 0, 838 }, { 4, 11, 302 }, - { 7, 11, 1766 }, { 5, 0, 379 }, { 5, 0, 8 }, { 6, 0, 89 }, - { 6, 0, 400 }, { 7, 0, 1569 }, { 7, 0, 1623 }, { 7, 0, 1850 }, - { 8, 0, 218 }, { 8, 0, 422 }, { 9, 0, 570 }, { 10, 0, 626 }, - { 4, 11, 726 }, { 5, 11, 630 }, { 4, 0, 1017 }, { 10, 0, 660 }, - { 6, 0, 387 }, { 7, 0, 882 }, { 13, 0, 111 }, { 6, 0, 224 }, - { 7, 0, 877 }, { 9, 0, 647 }, { 4, 10, 58 }, { 5, 10, 286 }, - { 6, 10, 319 }, { 7, 10, 402 }, { 7, 10, 1254 }, { 7, 10, 1903 }, - { 8, 10, 356 }, { 12, 10, 408 }, { 7, 0, 790 }, { 9, 0, 510 }, - { 10, 0, 53 }, { 4, 10, 389 }, { 9, 10, 181 }, { 10, 10, 29 }, - { 10, 10, 816 }, { 11, 10, 311 }, { 11, 10, 561 }, { 12, 10, 67 }, - { 13, 10, 181 }, { 14, 0, 458 }, { 6, 11, 118 }, { 7, 11, 215 }, - { 7, 11, 1521 }, { 12, 11, 11 }, { 6, 0, 954 }, { 7, 0, 394 }, - { 6, 0, 1367 }, { 5, 11, 225 }, { 5, 10, 373 }, { 4, 0, 882 }, - { 7, 0, 1409 }, { 7, 10, 1972 }, { 7, 10, 1793 }, { 4, 11, 370 }, - { 5, 11, 756 }, { 7, 11, 1326 }, { 22, 11, 13 }, { 7, 11, 354 }, - { 10, 11, 410 }, { 11, 11, 815 }, { 6, 11, 1662 }, { 7, 11, 48 }, - { 8, 11, 771 }, { 10, 11, 116 }, { 13, 11, 104 }, { 14, 11, 105 }, - { 14, 11, 184 }, { 15, 11, 168 }, { 19, 11, 92 }, { 20, 11, 68 }, - { 7, 0, 124 }, { 8, 0, 38 }, { 5, 0, 261 }, { 7, 0, 78 }, - { 7, 0, 199 }, { 8, 0, 815 }, { 9, 0, 126 }, { 10, 0, 342 }, - { 12, 0, 647 }, { 4, 0, 628 }, { 12, 0, 724 }, { 7, 0, 266 }, - { 8, 0, 804 }, { 7, 10, 1651 }, { 17, 10, 89 }, { 7, 0, 208 }, - { 6, 0, 1178 }, { 6, 0, 79 }, { 7, 0, 1519 }, { 4, 10, 672 }, - { 5, 10, 737 }, { 8, 0, 741 }, { 4, 11, 120 }, { 4, 0, 710 }, - { 6, 0, 376 }, { 6, 0, 606 }, { 6, 0, 1347 }, { 6, 0, 1494 }, - { 6, 0, 850 }, { 6, 0, 1553 }, { 9, 0, 821 }, { 5, 10, 145 }, - { 6, 11, 593 }, { 7, 0, 1311 }, { 12, 0, 135 }, { 4, 0, 467 }, - { 5, 0, 405 }, { 6, 0, 544 }, { 5, 11, 820 }, { 7, 11, 931 }, - { 6, 0, 100 }, { 7, 0, 244 }, { 7, 0, 632 }, { 7, 0, 1609 }, - { 8, 0, 178 }, { 8, 0, 638 }, { 13, 0, 58 }, { 4, 10, 387 }, - { 7, 10, 1288 }, { 6, 11, 151 }, { 6, 11, 1675 }, { 7, 11, 383 }, - { 23, 11, 10 }, { 4, 0, 481 }, { 7, 10, 550 }, { 6, 0, 1378 }, - { 6, 11, 1624 }, { 11, 11, 11 }, { 12, 11, 422 }, { 13, 11, 262 }, - { 14, 11, 360 }, { 5, 0, 791 }, { 4, 11, 43 }, { 5, 11, 344 }, - { 5, 11, 357 }, { 7, 0, 1227 }, { 12, 0, 978 }, { 7, 0, 686 }, - { 8, 0, 33 }, { 8, 0, 238 }, { 10, 0, 616 }, { 11, 0, 467 }, - { 11, 0, 881 }, { 13, 0, 217 }, { 13, 0, 253 }, { 14, 0, 268 }, - { 9, 0, 857 }, { 8, 0, 467 }, { 8, 0, 1006 }, { 7, 11, 148 }, - { 8, 11, 284 }, { 13, 11, 63 }, { 4, 10, 576 }, { 7, 10, 1263 }, - { 5, 11, 888 }, { 5, 10, 919 }, { 6, 10, 1673 }, { 20, 10, 37 }, - { 20, 11, 37 }, { 4, 0, 447 }, { 4, 11, 711 }, { 4, 0, 128 }, - { 5, 0, 415 }, { 6, 0, 462 }, { 7, 0, 294 }, { 7, 0, 578 }, - { 10, 0, 710 }, { 11, 0, 86 }, { 4, 10, 82 }, { 5, 10, 333 }, - { 5, 10, 904 }, { 6, 10, 207 }, { 7, 10, 325 }, { 7, 10, 1726 }, - { 8, 10, 101 }, { 10, 10, 778 }, { 11, 10, 220 }, { 8, 0, 587 }, - { 9, 11, 440 }, { 5, 10, 903 }, { 6, 0, 427 }, { 7, 0, 1018 }, - { 10, 0, 692 }, { 4, 0, 195 }, { 7, 0, 802 }, { 12, 10, 147 }, - { 6, 0, 1546 }, { 6, 0, 684 }, { 4, 10, 705 }, { 8, 0, 345 }, - { 11, 11, 678 }, { 12, 11, 307 }, { 5, 0, 365 }, { 6, 0, 1683 }, - { 4, 11, 65 }, { 5, 11, 479 }, { 5, 11, 1004 }, { 7, 11, 1913 }, - { 8, 11, 317 }, { 9, 11, 302 }, { 10, 11, 612 }, { 13, 11, 22 }, - { 10, 0, 472 }, { 4, 11, 261 }, { 7, 11, 510 }, { 6, 10, 90 }, - { 14, 0, 433 }, { 23, 0, 28 }, { 4, 11, 291 }, { 7, 11, 101 }, - { 9, 11, 515 }, { 12, 11, 152 }, { 12, 11, 443 }, { 13, 11, 392 }, - { 14, 11, 357 }, { 12, 0, 997 }, { 5, 0, 3 }, { 8, 0, 578 }, - { 9, 0, 118 }, { 10, 0, 705 }, { 13, 0, 279 }, { 7, 11, 1266 }, - { 7, 10, 813 }, { 12, 10, 497 }, { 13, 10, 56 }, { 5, 0, 229 }, - { 6, 10, 125 }, { 7, 10, 1277 }, { 8, 0, 102 }, { 10, 0, 578 }, - { 10, 0, 672 }, { 12, 0, 496 }, { 13, 0, 408 }, { 14, 0, 121 }, - { 17, 0, 106 }, { 23, 10, 12 }, { 6, 0, 866 }, { 6, 0, 1080 }, - { 8, 0, 1022 }, { 4, 11, 130 }, { 7, 11, 843 }, { 5, 11, 42 }, - { 5, 11, 879 }, { 7, 11, 245 }, { 7, 11, 324 }, { 7, 11, 1532 }, - { 11, 11, 463 }, { 11, 11, 472 }, { 13, 11, 363 }, { 16, 11, 52 }, - { 22, 0, 55 }, { 8, 0, 115 }, { 8, 0, 350 }, { 9, 0, 489 }, - { 10, 0, 128 }, { 11, 0, 306 }, { 12, 0, 373 }, { 14, 0, 30 }, - { 17, 0, 79 }, { 19, 0, 80 }, { 4, 11, 134 }, { 5, 11, 372 }, - { 6, 0, 657 }, { 6, 0, 933 }, { 7, 11, 1147 }, { 4, 0, 230 }, - { 5, 0, 702 }, { 6, 0, 1728 }, { 4, 0, 484 }, { 18, 0, 26 }, - { 19, 0, 42 }, { 20, 0, 43 }, { 21, 0, 0 }, { 23, 0, 27 }, - { 24, 0, 14 }, { 7, 0, 185 }, { 7, 0, 703 }, { 6, 0, 417 }, - { 10, 0, 618 }, { 7, 10, 1106 }, { 9, 10, 770 }, { 11, 10, 112 }, - { 12, 10, 413 }, { 6, 0, 803 }, { 4, 11, 644 }, { 6, 0, 1262 }, - { 7, 11, 540 }, { 12, 10, 271 }, { 17, 10, 109 }, { 7, 11, 123 }, - { 4, 0, 633 }, { 6, 11, 623 }, { 4, 11, 908 }, { 5, 11, 359 }, - { 5, 11, 508 }, { 6, 11, 1723 }, { 7, 11, 343 }, { 7, 11, 1996 }, - { 7, 11, 2026 }, { 7, 0, 479 }, { 10, 0, 262 }, { 7, 10, 304 }, - { 9, 10, 646 }, { 9, 10, 862 }, { 11, 10, 696 }, { 12, 10, 208 }, - { 15, 10, 79 }, { 19, 10, 108 }, { 4, 11, 341 }, { 7, 11, 480 }, - { 6, 0, 830 }, { 5, 0, 70 }, { 5, 0, 622 }, { 6, 0, 334 }, - { 7, 0, 1032 }, { 9, 0, 171 }, { 11, 0, 26 }, { 11, 0, 213 }, - { 11, 0, 637 }, { 11, 0, 707 }, { 12, 0, 202 }, { 12, 0, 380 }, - { 13, 0, 226 }, { 13, 0, 355 }, { 14, 0, 222 }, { 17, 0, 42 }, - { 7, 10, 981 }, { 15, 0, 217 }, { 9, 11, 114 }, { 4, 0, 23 }, - { 4, 0, 141 }, { 5, 0, 313 }, { 5, 0, 1014 }, { 6, 0, 50 }, - { 6, 0, 51 }, { 7, 0, 142 }, { 7, 0, 384 }, { 7, 0, 559 }, - { 8, 0, 640 }, { 9, 0, 460 }, { 9, 0, 783 }, { 11, 0, 741 }, - { 12, 0, 183 }, { 13, 0, 488 }, { 13, 0, 360 }, { 7, 0, 1586 }, - { 7, 11, 1995 }, { 8, 11, 299 }, { 11, 11, 890 }, { 12, 11, 674 }, - { 4, 10, 434 }, { 7, 0, 652 }, { 6, 10, 550 }, { 7, 0, 766 }, - { 5, 10, 553 }, { 10, 10, 824 }, { 7, 0, 737 }, { 8, 0, 298 }, - { 8, 10, 452 }, { 4, 11, 238 }, { 5, 11, 503 }, { 6, 11, 179 }, - { 7, 11, 2003 }, { 8, 11, 381 }, { 8, 11, 473 }, { 9, 11, 149 }, - { 10, 11, 183 }, { 15, 11, 45 }, { 15, 11, 86 }, { 5, 10, 292 }, - { 5, 0, 222 }, { 9, 0, 655 }, { 10, 0, 534 }, { 10, 10, 135 }, - { 4, 11, 121 }, { 5, 11, 156 }, { 5, 11, 349 }, { 9, 11, 136 }, - { 10, 11, 605 }, { 14, 11, 342 }, { 19, 11, 107 }, { 9, 0, 906 }, - { 6, 0, 1013 }, { 6, 0, 1250 }, { 6, 0, 1956 }, { 6, 0, 2009 }, - { 8, 0, 991 }, { 16, 0, 120 }, { 7, 11, 1192 }, { 10, 0, 503 }, - { 5, 0, 154 }, { 7, 0, 1491 }, { 10, 0, 379 }, { 10, 0, 485 }, - { 6, 0, 1867 }, { 6, 0, 1914 }, { 6, 0, 1925 }, { 9, 0, 917 }, - { 9, 0, 925 }, { 9, 0, 932 }, { 9, 0, 951 }, { 9, 0, 1007 }, - { 9, 0, 1013 }, { 12, 0, 806 }, { 12, 0, 810 }, { 12, 0, 814 }, - { 12, 0, 816 }, { 12, 0, 824 }, { 12, 0, 832 }, { 12, 0, 837 }, - { 12, 0, 863 }, { 12, 0, 868 }, { 12, 0, 870 }, { 12, 0, 889 }, - { 12, 0, 892 }, { 12, 0, 900 }, { 12, 0, 902 }, { 12, 0, 908 }, - { 12, 0, 933 }, { 12, 0, 942 }, { 12, 0, 949 }, { 12, 0, 954 }, - { 15, 0, 175 }, { 15, 0, 203 }, { 15, 0, 213 }, { 15, 0, 218 }, - { 15, 0, 225 }, { 15, 0, 231 }, { 15, 0, 239 }, { 15, 0, 248 }, - { 15, 0, 252 }, { 18, 0, 190 }, { 18, 0, 204 }, { 18, 0, 215 }, - { 18, 0, 216 }, { 18, 0, 222 }, { 18, 0, 225 }, { 18, 0, 230 }, - { 18, 0, 239 }, { 18, 0, 241 }, { 21, 0, 42 }, { 21, 0, 43 }, - { 21, 0, 44 }, { 21, 0, 45 }, { 21, 0, 46 }, { 21, 0, 53 }, - { 24, 0, 27 }, { 24, 0, 31 }, { 5, 0, 716 }, { 7, 0, 844 }, - { 4, 0, 91 }, { 5, 0, 388 }, { 5, 0, 845 }, { 6, 0, 206 }, - { 6, 0, 252 }, { 6, 0, 365 }, { 7, 0, 136 }, { 7, 0, 531 }, - { 8, 0, 621 }, { 7, 10, 393 }, { 10, 10, 603 }, { 11, 10, 206 }, - { 6, 11, 80 }, { 6, 11, 1694 }, { 7, 11, 173 }, { 7, 11, 1974 }, - { 9, 11, 547 }, { 10, 11, 730 }, { 14, 11, 18 }, { 22, 11, 39 }, - { 9, 0, 748 }, { 4, 11, 923 }, { 6, 11, 1711 }, { 4, 10, 912 }, - { 9, 10, 232 }, { 7, 10, 98 }, { 7, 10, 1973 }, { 8, 10, 716 }, - { 14, 0, 103 }, { 5, 10, 733 }, { 4, 11, 595 }, { 12, 0, 158 }, - { 18, 0, 8 }, { 19, 0, 62 }, { 20, 0, 6 }, { 22, 0, 4 }, - { 23, 0, 2 }, { 23, 0, 9 }, { 5, 11, 240 }, { 6, 11, 459 }, - { 7, 11, 12 }, { 7, 11, 114 }, { 7, 11, 502 }, { 7, 11, 1751 }, - { 7, 11, 1753 }, { 7, 11, 1805 }, { 8, 11, 658 }, { 9, 11, 1 }, - { 11, 11, 959 }, { 13, 11, 446 }, { 14, 11, 211 }, { 7, 0, 576 }, - { 5, 0, 771 }, { 5, 0, 863 }, { 5, 0, 898 }, { 6, 0, 648 }, - { 6, 0, 1632 }, { 6, 0, 1644 }, { 6, 0, 1780 }, { 5, 0, 331 }, - { 7, 11, 633 }, { 7, 11, 905 }, { 7, 11, 909 }, { 7, 11, 1538 }, - { 9, 11, 767 }, { 12, 11, 636 }, { 12, 0, 632 }, { 5, 0, 107 }, - { 7, 0, 201 }, { 8, 0, 518 }, { 6, 0, 446 }, { 7, 0, 1817 }, - { 6, 11, 490 }, { 9, 0, 851 }, { 13, 0, 510 }, { 7, 11, 250 }, - { 8, 11, 506 }, { 8, 11, 507 }, { 4, 0, 504 }, { 9, 10, 72 }, - { 4, 11, 158 }, { 4, 11, 140 }, { 7, 11, 362 }, { 8, 11, 209 }, - { 9, 11, 10 }, { 9, 11, 160 }, { 9, 11, 503 }, { 10, 11, 689 }, - { 11, 11, 350 }, { 11, 11, 553 }, { 11, 11, 725 }, { 12, 11, 252 }, - { 12, 11, 583 }, { 13, 11, 192 }, { 13, 11, 352 }, { 14, 11, 269 }, - { 14, 11, 356 }, { 20, 11, 50 }, { 6, 11, 597 }, { 7, 11, 1318 }, - { 7, 10, 1454 }, { 5, 0, 883 }, { 5, 0, 975 }, { 8, 0, 392 }, - { 20, 0, 7 }, { 6, 11, 228 }, { 7, 11, 1341 }, { 9, 11, 408 }, - { 10, 11, 343 }, { 11, 11, 348 }, { 11, 10, 600 }, { 12, 11, 99 }, - { 13, 10, 245 }, { 18, 11, 1 }, { 18, 11, 11 }, { 19, 11, 4 }, - { 6, 11, 296 }, { 5, 0, 922 }, { 6, 0, 1707 }, { 4, 11, 557 }, - { 4, 11, 548 }, { 7, 10, 164 }, { 7, 10, 1571 }, { 9, 10, 107 }, - { 12, 10, 225 }, { 7, 11, 197 }, { 8, 11, 142 }, { 8, 11, 325 }, - { 9, 11, 150 }, { 9, 11, 596 }, { 10, 11, 350 }, { 10, 11, 353 }, - { 11, 11, 74 }, { 11, 11, 315 }, { 14, 11, 423 }, { 15, 11, 141 }, - { 5, 0, 993 }, { 7, 0, 515 }, { 9, 0, 91 }, { 4, 0, 131 }, - { 8, 0, 200 }, { 5, 10, 484 }, { 5, 10, 510 }, { 6, 10, 434 }, - { 7, 10, 1000 }, { 7, 10, 1098 }, { 8, 10, 2 }, { 24, 0, 10 }, - { 4, 11, 62 }, { 5, 11, 83 }, { 6, 11, 399 }, { 6, 11, 579 }, - { 7, 11, 692 }, { 7, 11, 846 }, { 7, 11, 1015 }, { 7, 11, 1799 }, - { 8, 11, 403 }, { 9, 11, 394 }, { 10, 11, 133 }, { 12, 11, 4 }, - { 12, 11, 297 }, { 12, 11, 452 }, { 16, 11, 81 }, { 18, 11, 19 }, - { 18, 11, 25 }, { 21, 11, 14 }, { 22, 11, 12 }, { 23, 11, 18 }, - { 12, 11, 459 }, { 4, 11, 177 }, { 7, 0, 1433 }, { 9, 0, 365 }, - { 9, 11, 365 }, { 4, 10, 460 }, { 5, 0, 103 }, { 6, 0, 2004 }, - { 7, 0, 921 }, { 8, 0, 580 }, { 8, 0, 593 }, { 8, 0, 630 }, - { 10, 0, 28 }, { 5, 11, 411 }, { 7, 11, 653 }, { 4, 10, 932 }, - { 5, 10, 891 }, { 4, 0, 911 }, { 5, 0, 867 }, { 5, 0, 1013 }, - { 7, 0, 2034 }, { 8, 0, 798 }, { 8, 0, 813 }, { 7, 11, 439 }, - { 10, 11, 727 }, { 11, 11, 260 }, { 11, 11, 684 }, { 8, 10, 625 }, - { 5, 11, 208 }, { 7, 11, 753 }, { 7, 11, 1528 }, { 5, 0, 461 }, - { 7, 0, 1925 }, { 12, 0, 39 }, { 13, 0, 265 }, { 13, 0, 439 }, - { 6, 10, 76 }, { 6, 0, 853 }, { 8, 10, 92 }, { 9, 10, 221 }, - { 5, 0, 135 }, { 6, 0, 519 }, { 7, 0, 1722 }, { 10, 0, 271 }, - { 11, 0, 261 }, { 17, 0, 54 }, { 11, 11, 814 }, { 14, 0, 338 }, - { 20, 0, 81 }, { 4, 0, 300 }, { 5, 0, 436 }, { 5, 0, 419 }, - { 5, 0, 687 }, { 7, 0, 864 }, { 9, 0, 470 }, { 7, 11, 864 }, - { 9, 0, 836 }, { 5, 11, 242 }, { 6, 0, 1937 }, { 4, 10, 763 }, - { 5, 11, 953 }, { 4, 10, 622 }, { 4, 0, 393 }, { 5, 10, 253 }, - { 8, 0, 357 }, { 10, 0, 745 }, { 14, 0, 426 }, { 17, 0, 94 }, - { 19, 0, 57 }, { 7, 10, 546 }, { 5, 11, 615 }, { 18, 11, 37 }, - { 9, 10, 73 }, { 10, 10, 110 }, { 14, 10, 185 }, { 17, 10, 119 }, - { 11, 0, 703 }, { 7, 10, 624 }, { 7, 10, 916 }, { 10, 10, 256 }, - { 11, 10, 87 }, { 5, 11, 290 }, { 5, 10, 212 }, { 12, 10, 35 }, - { 13, 10, 382 }, { 4, 11, 380 }, { 5, 11, 52 }, { 7, 11, 277 }, - { 9, 11, 368 }, { 11, 11, 791 }, { 5, 0, 387 }, { 10, 11, 138 }, - { 11, 11, 476 }, { 4, 0, 6 }, { 5, 0, 708 }, { 8, 0, 75 }, - { 7, 0, 1351 }, { 9, 0, 581 }, { 10, 0, 639 }, { 11, 0, 453 }, - { 12, 0, 584 }, { 4, 0, 303 }, { 10, 0, 772 }, { 7, 10, 1175 }, - { 4, 0, 749 }, { 5, 10, 816 }, { 6, 11, 256 }, { 7, 11, 307 }, - { 7, 11, 999 }, { 7, 11, 1481 }, { 7, 11, 1732 }, { 7, 11, 1738 }, - { 8, 11, 265 }, { 9, 11, 414 }, { 11, 11, 316 }, { 12, 11, 52 }, - { 13, 11, 420 }, { 19, 11, 100 }, { 7, 11, 1296 }, { 6, 0, 1065 }, - { 5, 10, 869 }, { 5, 10, 968 }, { 6, 10, 1626 }, { 8, 10, 734 }, - { 8, 10, 784 }, { 4, 10, 542 }, { 6, 10, 1716 }, { 6, 10, 1727 }, - { 7, 10, 1082 }, { 7, 10, 1545 }, { 8, 10, 56 }, { 8, 10, 118 }, - { 8, 10, 412 }, { 8, 10, 564 }, { 9, 10, 888 }, { 9, 10, 908 }, - { 10, 10, 50 }, { 10, 10, 423 }, { 11, 10, 685 }, { 11, 10, 697 }, - { 11, 10, 933 }, { 12, 10, 299 }, { 13, 10, 126 }, { 13, 10, 136 }, - { 13, 10, 170 }, { 13, 10, 190 }, { 6, 0, 226 }, { 4, 0, 106 }, - { 7, 0, 310 }, { 11, 0, 717 }, { 5, 11, 723 }, { 5, 0, 890 }, - { 5, 0, 988 }, { 4, 10, 232 }, { 9, 10, 202 }, { 10, 10, 474 }, - { 12, 10, 433 }, { 6, 0, 626 }, { 14, 0, 431 }, { 10, 0, 706 }, - { 22, 0, 44 }, { 13, 0, 51 }, { 6, 10, 108 }, { 7, 10, 1003 }, - { 7, 10, 1181 }, { 8, 10, 111 }, { 8, 10, 343 }, { 4, 0, 698 }, - { 5, 11, 109 }, { 6, 11, 1784 }, { 7, 11, 1895 }, { 12, 11, 296 }, - { 12, 11, 302 }, { 6, 0, 828 }, { 6, 10, 1712 }, { 10, 0, 17 }, - { 7, 0, 1929 }, { 4, 10, 133 }, { 5, 11, 216 }, { 7, 10, 711 }, - { 7, 10, 1298 }, { 7, 10, 1585 }, { 7, 11, 1879 }, { 9, 11, 141 }, - { 9, 11, 270 }, { 9, 11, 679 }, { 10, 11, 159 }, { 10, 11, 553 }, - { 11, 11, 197 }, { 11, 11, 438 }, { 12, 11, 538 }, { 12, 11, 559 }, - { 13, 11, 193 }, { 13, 11, 423 }, { 14, 11, 144 }, { 14, 11, 166 }, - { 14, 11, 167 }, { 15, 11, 67 }, { 19, 11, 84 }, { 13, 11, 127 }, - { 7, 11, 1872 }, { 9, 11, 81 }, { 6, 10, 99 }, { 7, 10, 1808 }, - { 17, 10, 57 }, { 6, 11, 391 }, { 5, 0, 689 }, { 6, 0, 84 }, - { 7, 0, 1250 }, { 6, 10, 574 }, { 7, 10, 428 }, { 10, 10, 669 }, - { 11, 10, 485 }, { 11, 10, 840 }, { 12, 10, 300 }, { 14, 10, 250 }, - { 7, 11, 322 }, { 8, 11, 249 }, { 7, 11, 432 }, { 7, 11, 1649 }, - { 7, 10, 1871 }, { 9, 10, 252 }, { 6, 11, 155 }, { 12, 11, 234 }, - { 7, 0, 871 }, { 19, 0, 27 }, { 19, 11, 27 }, { 12, 0, 498 }, - { 5, 0, 986 }, { 6, 0, 130 }, { 10, 0, 823 }, { 6, 0, 1793 }, - { 7, 0, 1582 }, { 8, 0, 458 }, { 10, 0, 101 }, { 10, 0, 318 }, - { 10, 0, 945 }, { 12, 0, 734 }, { 16, 0, 104 }, { 18, 0, 177 }, - { 6, 10, 323 }, { 7, 10, 1564 }, { 5, 11, 632 }, { 10, 11, 526 }, - { 10, 0, 435 }, { 7, 10, 461 }, { 8, 10, 775 }, { 6, 11, 144 }, - { 7, 11, 948 }, { 7, 11, 1042 }, { 7, 11, 1857 }, { 8, 11, 235 }, - { 8, 11, 461 }, { 9, 11, 453 }, { 9, 11, 530 }, { 10, 11, 354 }, - { 17, 11, 77 }, { 19, 11, 99 }, { 20, 11, 79 }, { 10, 0, 966 }, - { 7, 0, 1644 }, { 9, 0, 129 }, { 7, 0, 997 }, { 8, 0, 502 }, - { 5, 11, 196 }, { 6, 11, 486 }, { 7, 11, 212 }, { 8, 11, 309 }, - { 8, 11, 346 }, { 7, 10, 727 }, { 18, 10, 73 }, { 4, 0, 823 }, - { 4, 11, 686 }, { 7, 0, 1927 }, { 4, 0, 762 }, { 7, 0, 1756 }, - { 9, 0, 98 }, { 8, 10, 577 }, { 24, 0, 8 }, { 4, 11, 30 }, - { 5, 11, 43 }, { 24, 11, 8 }, { 7, 0, 1046 }, { 11, 0, 160 }, - { 7, 0, 492 }, { 4, 10, 413 }, { 5, 10, 677 }, { 7, 11, 492 }, - { 8, 10, 432 }, { 12, 10, 280 }, { 6, 0, 45 }, { 7, 0, 433 }, - { 8, 0, 129 }, { 9, 0, 21 }, { 10, 0, 392 }, { 11, 0, 79 }, - { 12, 0, 499 }, { 13, 0, 199 }, { 13, 0, 451 }, { 7, 0, 558 }, - { 8, 0, 353 }, { 4, 11, 220 }, { 7, 11, 1535 }, { 9, 11, 93 }, - { 11, 11, 474 }, { 7, 10, 646 }, { 7, 10, 1730 }, { 11, 10, 446 }, - { 13, 10, 178 }, { 5, 0, 785 }, { 6, 0, 1145 }, { 8, 0, 81 }, - { 9, 0, 189 }, { 9, 0, 201 }, { 11, 0, 478 }, { 11, 0, 712 }, - { 13, 0, 338 }, { 5, 0, 353 }, { 23, 0, 26 }, { 11, 0, 762 }, - { 4, 10, 395 }, { 6, 0, 2024 }, { 4, 0, 611 }, { 5, 0, 606 }, - { 9, 10, 174 }, { 10, 10, 164 }, { 11, 10, 440 }, { 11, 10, 841 }, - { 15, 10, 98 }, { 6, 10, 426 }, { 10, 10, 608 }, { 11, 10, 1002 }, - { 10, 10, 250 }, { 6, 0, 25 }, { 7, 0, 855 }, { 7, 0, 1258 }, - { 16, 0, 32 }, { 7, 11, 1725 }, { 10, 11, 393 }, { 5, 11, 263 }, - { 6, 11, 414 }, { 6, 0, 2011 }, { 5, 10, 476 }, { 4, 0, 4 }, - { 7, 0, 1118 }, { 7, 0, 1320 }, { 7, 0, 1706 }, { 8, 0, 277 }, - { 9, 0, 622 }, { 10, 0, 9 }, { 11, 0, 724 }, { 12, 0, 350 }, - { 12, 0, 397 }, { 13, 0, 28 }, { 13, 0, 159 }, { 15, 0, 89 }, - { 18, 0, 5 }, { 19, 0, 9 }, { 20, 0, 34 }, { 22, 0, 47 }, - { 6, 11, 178 }, { 6, 11, 1750 }, { 8, 11, 251 }, { 9, 11, 690 }, - { 10, 11, 155 }, { 10, 11, 196 }, { 10, 11, 373 }, { 11, 11, 698 }, - { 13, 11, 155 }, { 20, 11, 93 }, { 5, 11, 97 }, { 9, 11, 393 }, - { 7, 0, 764 }, { 11, 0, 461 }, { 12, 0, 172 }, { 5, 10, 76 }, - { 6, 10, 458 }, { 6, 10, 497 }, { 7, 10, 868 }, { 9, 10, 658 }, - { 10, 10, 594 }, { 11, 10, 566 }, { 12, 10, 338 }, { 13, 10, 200 }, - { 6, 0, 1449 }, { 10, 11, 40 }, { 6, 11, 1639 }, { 6, 0, 1445 }, - { 6, 0, 1168 }, { 4, 10, 526 }, { 7, 10, 1029 }, { 7, 10, 1054 }, - { 4, 11, 191 }, { 7, 11, 934 }, { 8, 11, 647 }, { 17, 11, 97 }, - { 4, 10, 636 }, { 6, 0, 233 }, { 7, 10, 660 }, { 7, 10, 1124 }, - { 17, 10, 31 }, { 19, 10, 22 }, { 23, 10, 14 }, { 6, 10, 1699 }, - { 8, 11, 110 }, { 12, 11, 246 }, { 15, 11, 162 }, { 19, 11, 64 }, - { 20, 11, 8 }, { 20, 11, 95 }, { 22, 11, 24 }, { 24, 11, 17 }, - { 5, 11, 165 }, { 9, 11, 346 }, { 10, 11, 655 }, { 5, 11, 319 }, - { 7, 11, 534 }, { 6, 0, 255 }, { 9, 0, 216 }, { 8, 11, 128 }, - { 11, 11, 179 }, { 9, 0, 183 }, { 11, 0, 286 }, { 11, 0, 956 }, - { 23, 0, 3 }, { 4, 0, 536 }, { 7, 0, 1141 }, { 10, 0, 723 }, - { 11, 0, 371 }, { 4, 10, 279 }, { 7, 10, 301 }, { 9, 10, 362 }, - { 7, 0, 285 }, { 5, 11, 57 }, { 6, 11, 101 }, { 6, 11, 1663 }, - { 7, 11, 132 }, { 7, 11, 1048 }, { 7, 11, 1154 }, { 7, 11, 1415 }, - { 7, 11, 1507 }, { 12, 11, 493 }, { 15, 11, 105 }, { 23, 11, 15 }, - { 5, 11, 459 }, { 7, 11, 1073 }, { 7, 10, 1743 }, { 8, 11, 241 }, - { 8, 11, 334 }, { 4, 10, 178 }, { 5, 10, 399 }, { 7, 0, 560 }, - { 4, 0, 690 }, { 7, 0, 1246 }, { 18, 0, 157 }, { 19, 0, 63 }, - { 10, 0, 599 }, { 11, 0, 33 }, { 12, 0, 571 }, { 21, 0, 1 }, - { 6, 11, 324 }, { 6, 11, 520 }, { 7, 11, 338 }, { 7, 11, 1616 }, - { 7, 11, 1729 }, { 8, 11, 228 }, { 9, 11, 69 }, { 11, 11, 750 }, - { 7, 0, 1862 }, { 12, 0, 491 }, { 12, 0, 520 }, { 13, 0, 383 }, - { 14, 0, 244 }, { 7, 11, 734 }, { 6, 10, 1692 }, { 10, 0, 448 }, - { 11, 0, 630 }, { 17, 0, 117 }, { 6, 10, 202 }, { 7, 11, 705 }, - { 12, 10, 360 }, { 17, 10, 118 }, { 18, 10, 27 }, { 20, 10, 67 }, - { 4, 11, 73 }, { 6, 11, 612 }, { 7, 11, 927 }, { 7, 11, 1822 }, - { 8, 11, 217 }, { 9, 11, 472 }, { 9, 11, 765 }, { 9, 11, 766 }, - { 10, 11, 408 }, { 11, 11, 51 }, { 11, 11, 793 }, { 12, 11, 266 }, - { 15, 11, 158 }, { 20, 11, 89 }, { 22, 11, 32 }, { 4, 0, 190 }, - { 5, 0, 554 }, { 5, 0, 1001 }, { 5, 11, 389 }, { 8, 11, 636 }, - { 9, 11, 229 }, { 5, 0, 446 }, { 7, 10, 872 }, { 10, 10, 516 }, - { 11, 10, 167 }, { 9, 10, 313 }, { 4, 10, 224 }, { 6, 0, 1313 }, - { 5, 10, 546 }, { 7, 10, 35 }, { 8, 10, 11 }, { 8, 10, 12 }, - { 9, 10, 315 }, { 9, 10, 533 }, { 10, 10, 802 }, { 11, 10, 166 }, - { 12, 10, 525 }, { 14, 10, 243 }, { 6, 0, 636 }, { 9, 0, 837 }, - { 5, 10, 241 }, { 8, 10, 242 }, { 9, 10, 451 }, { 10, 10, 667 }, - { 11, 10, 598 }, { 12, 10, 429 }, { 22, 10, 46 }, { 22, 11, 46 }, - { 8, 11, 472 }, { 11, 0, 278 }, { 14, 0, 73 }, { 13, 11, 185 }, - { 4, 0, 868 }, { 6, 0, 972 }, { 4, 10, 366 }, { 9, 10, 516 }, - { 10, 0, 1010 }, { 5, 11, 189 }, { 6, 10, 1736 }, { 7, 11, 442 }, - { 7, 11, 443 }, { 8, 11, 281 }, { 12, 11, 174 }, { 13, 11, 83 }, - { 13, 11, 261 }, { 11, 11, 384 }, { 6, 11, 2 }, { 7, 11, 191 }, - { 7, 11, 446 }, { 7, 11, 758 }, { 7, 11, 1262 }, { 7, 11, 1737 }, - { 8, 11, 22 }, { 8, 11, 270 }, { 8, 11, 612 }, { 9, 11, 4 }, - { 9, 11, 167 }, { 9, 11, 312 }, { 9, 11, 436 }, { 10, 11, 156 }, - { 10, 11, 216 }, { 10, 11, 311 }, { 10, 11, 623 }, { 11, 11, 72 }, - { 11, 11, 330 }, { 11, 11, 455 }, { 12, 11, 101 }, { 12, 11, 321 }, - { 12, 11, 504 }, { 12, 11, 530 }, { 12, 11, 543 }, { 13, 11, 17 }, - { 13, 11, 156 }, { 13, 11, 334 }, { 14, 11, 48 }, { 15, 11, 70 }, - { 17, 11, 60 }, { 20, 11, 64 }, { 6, 10, 331 }, { 8, 10, 623 }, - { 7, 0, 1231 }, { 4, 0, 304 }, { 6, 11, 60 }, { 7, 11, 670 }, - { 7, 11, 1327 }, { 8, 11, 411 }, { 8, 11, 435 }, { 9, 11, 653 }, - { 9, 11, 740 }, { 10, 11, 385 }, { 11, 11, 222 }, { 11, 11, 324 }, - { 11, 11, 829 }, { 12, 11, 611 }, { 7, 0, 506 }, { 6, 11, 166 }, - { 7, 11, 374 }, { 7, 11, 1174 }, { 14, 11, 43 }, { 18, 11, 21 }, - { 7, 11, 1694 }, { 7, 10, 1888 }, { 5, 11, 206 }, { 6, 11, 398 }, - { 7, 11, 50 }, { 22, 0, 26 }, { 6, 0, 53 }, { 6, 0, 199 }, - { 7, 0, 1408 }, { 8, 0, 32 }, { 8, 0, 93 }, { 10, 0, 397 }, - { 10, 0, 629 }, { 11, 0, 593 }, { 11, 0, 763 }, { 13, 0, 326 }, - { 17, 0, 35 }, { 6, 0, 105 }, { 4, 10, 394 }, { 4, 0, 843 }, - { 10, 0, 794 }, { 11, 0, 704 }, { 13, 0, 396 }, { 5, 0, 114 }, - { 5, 0, 255 }, { 13, 0, 285 }, { 6, 0, 619 }, { 7, 0, 898 }, - { 7, 0, 1092 }, { 8, 0, 485 }, { 18, 0, 28 }, { 19, 0, 116 }, - { 7, 10, 1931 }, { 9, 0, 145 }, { 7, 10, 574 }, { 7, 10, 1719 }, - { 7, 0, 2035 }, { 8, 0, 19 }, { 9, 0, 89 }, { 10, 0, 831 }, - { 4, 10, 658 }, { 6, 11, 517 }, { 7, 11, 1159 }, { 10, 11, 621 }, - { 11, 11, 192 }, { 7, 0, 1933 }, { 7, 11, 1933 }, { 9, 10, 781 }, - { 10, 10, 144 }, { 11, 10, 385 }, { 13, 10, 161 }, { 13, 10, 228 }, - { 13, 10, 268 }, { 20, 10, 107 }, { 8, 10, 374 }, { 10, 11, 223 }, - { 11, 11, 645 }, { 7, 0, 1728 }, { 7, 11, 64 }, { 7, 11, 289 }, - { 8, 11, 245 }, { 4, 10, 344 }, { 6, 10, 498 }, { 11, 10, 323 }, - { 8, 0, 746 }, { 7, 10, 1063 }, { 9, 10, 155 }, { 4, 0, 987 }, - { 6, 0, 1964 }, { 6, 0, 1974 }, { 6, 0, 1990 }, { 8, 0, 995 }, - { 5, 11, 609 }, { 5, 10, 906 }, { 6, 0, 1550 }, { 6, 0, 874 }, - { 5, 11, 129 }, { 6, 11, 61 }, { 7, 11, 947 }, { 4, 0, 1018 }, - { 6, 0, 1938 }, { 6, 0, 2021 }, { 6, 0, 2039 }, { 4, 0, 814 }, - { 11, 0, 126 }, { 11, 0, 287 }, { 6, 0, 1264 }, { 5, 0, 955 }, - { 8, 0, 814 }, { 13, 11, 506 }, { 4, 11, 314 }, { 6, 0, 981 }, - { 11, 11, 1000 }, { 5, 0, 56 }, { 8, 0, 892 }, { 8, 0, 915 }, - { 12, 0, 776 }, { 20, 0, 100 }, { 10, 0, 4 }, { 10, 0, 13 }, - { 11, 0, 638 }, { 20, 0, 57 }, { 20, 11, 74 }, { 5, 0, 738 }, - { 4, 10, 616 }, { 5, 11, 637 }, { 8, 10, 692 }, { 5, 0, 758 }, - { 4, 10, 305 }, { 9, 11, 590 }, { 5, 11, 280 }, { 7, 11, 1226 }, - { 6, 11, 494 }, { 7, 0, 1112 }, { 5, 11, 281 }, { 13, 0, 44 }, - { 14, 0, 214 }, { 5, 10, 214 }, { 7, 10, 603 }, { 8, 10, 611 }, - { 9, 10, 686 }, { 10, 10, 88 }, { 11, 10, 459 }, { 11, 10, 496 }, - { 12, 10, 463 }, { 12, 10, 590 }, { 11, 0, 328 }, { 7, 11, 1064 }, - { 9, 0, 133 }, { 7, 0, 168 }, { 13, 0, 196 }, { 13, 0, 237 }, - { 6, 10, 1703 }, { 6, 0, 1152 }, { 7, 0, 1245 }, { 5, 0, 110 }, - { 6, 0, 169 }, { 6, 0, 1702 }, { 7, 0, 400 }, { 8, 0, 538 }, - { 9, 0, 184 }, { 9, 0, 524 }, { 12, 0, 218 }, { 6, 0, 1816 }, - { 10, 0, 871 }, { 12, 0, 769 }, { 12, 0, 785 }, { 4, 11, 630 }, - { 7, 11, 33 }, { 7, 11, 120 }, { 8, 11, 489 }, { 9, 11, 319 }, - { 10, 11, 820 }, { 11, 11, 1004 }, { 12, 11, 379 }, { 13, 11, 117 }, - { 13, 11, 412 }, { 14, 11, 25 }, { 15, 11, 52 }, { 15, 11, 161 }, - { 16, 11, 47 }, { 21, 11, 2 }, { 6, 0, 133 }, { 8, 0, 413 }, - { 9, 0, 353 }, { 11, 0, 993 }, { 17, 10, 19 }, { 4, 11, 937 }, - { 5, 11, 801 }, { 6, 0, 978 }, { 6, 0, 93 }, { 6, 0, 1508 }, - { 7, 0, 1422 }, { 7, 0, 1851 }, { 8, 0, 673 }, { 9, 0, 529 }, - { 12, 0, 43 }, { 6, 0, 317 }, { 10, 0, 512 }, { 4, 10, 737 }, - { 11, 10, 294 }, { 12, 10, 60 }, { 12, 10, 437 }, { 13, 10, 64 }, - { 13, 10, 380 }, { 14, 10, 430 }, { 9, 0, 371 }, { 7, 11, 1591 }, - { 16, 11, 43 }, { 6, 10, 1758 }, { 8, 10, 520 }, { 9, 10, 345 }, - { 9, 10, 403 }, { 14, 10, 350 }, { 5, 0, 526 }, { 10, 10, 242 }, - { 10, 10, 579 }, { 9, 0, 25 }, { 10, 0, 467 }, { 10, 0, 559 }, - { 5, 10, 139 }, { 7, 10, 1168 }, { 10, 10, 539 }, { 4, 0, 335 }, - { 7, 0, 942 }, { 12, 0, 754 }, { 4, 11, 365 }, { 11, 0, 182 }, - { 14, 0, 195 }, { 14, 11, 29 }, { 5, 11, 7 }, { 11, 11, 774 }, - { 4, 11, 746 }, { 7, 11, 1090 }, { 8, 0, 39 }, { 10, 0, 773 }, - { 11, 0, 84 }, { 12, 0, 205 }, { 14, 0, 1 }, { 5, 0, 601 }, - { 5, 0, 870 }, { 5, 11, 360 }, { 8, 11, 237 }, { 4, 0, 181 }, - { 8, 0, 370 }, { 6, 0, 1652 }, { 8, 0, 358 }, { 4, 10, 107 }, - { 7, 10, 613 }, { 8, 10, 439 }, { 8, 10, 504 }, { 9, 10, 501 }, - { 10, 10, 383 }, { 11, 10, 477 }, { 4, 10, 229 }, { 9, 11, 785 }, - { 4, 0, 97 }, { 5, 0, 147 }, { 6, 0, 286 }, { 7, 0, 1362 }, - { 13, 0, 176 }, { 6, 0, 537 }, { 7, 0, 788 }, { 7, 0, 1816 }, - { 4, 10, 903 }, { 12, 10, 71 }, { 6, 0, 743 }, { 6, 0, 1223 }, - { 6, 0, 375 }, { 7, 0, 169 }, { 7, 0, 254 }, { 8, 0, 780 }, - { 7, 11, 1493 }, { 7, 0, 1714 }, { 4, 10, 47 }, { 6, 10, 373 }, - { 7, 10, 452 }, { 7, 10, 543 }, { 7, 10, 1856 }, { 9, 10, 6 }, - { 11, 10, 257 }, { 11, 10, 391 }, { 6, 0, 896 }, { 8, 0, 1003 }, - { 7, 0, 1447 }, { 9, 11, 341 }, { 5, 10, 980 }, { 6, 10, 1754 }, - { 17, 11, 22 }, { 4, 11, 277 }, { 5, 11, 608 }, { 6, 11, 493 }, - { 7, 11, 457 }, { 12, 11, 384 }, { 7, 10, 536 }, { 7, 10, 1331 }, - { 8, 10, 143 }, { 12, 0, 744 }, { 7, 11, 27 }, { 7, 11, 316 }, - { 18, 0, 126 }, { 5, 10, 19 }, { 6, 10, 533 }, { 4, 0, 788 }, - { 11, 0, 41 }, { 5, 11, 552 }, { 5, 11, 586 }, { 5, 11, 676 }, - { 6, 11, 448 }, { 8, 11, 244 }, { 11, 11, 1 }, { 11, 11, 41 }, - { 13, 11, 3 }, { 16, 11, 54 }, { 17, 11, 4 }, { 18, 11, 13 }, - { 4, 0, 985 }, { 6, 0, 1801 }, { 4, 11, 401 }, { 9, 11, 264 }, - { 5, 10, 395 }, { 5, 10, 951 }, { 6, 10, 1776 }, { 5, 0, 629 }, - { 7, 0, 1549 }, { 11, 10, 663 }, { 12, 10, 210 }, { 13, 10, 166 }, - { 13, 10, 310 }, { 14, 10, 373 }, { 19, 10, 43 }, { 9, 11, 543 }, - { 10, 11, 524 }, { 11, 11, 30 }, { 12, 11, 524 }, { 14, 11, 315 }, - { 16, 11, 18 }, { 20, 11, 26 }, { 20, 11, 65 }, { 4, 11, 205 }, - { 5, 11, 623 }, { 7, 11, 104 }, { 8, 11, 519 }, { 5, 0, 293 }, - { 6, 0, 601 }, { 7, 11, 579 }, { 9, 11, 41 }, { 9, 11, 244 }, - { 9, 11, 669 }, { 10, 11, 5 }, { 11, 11, 861 }, { 11, 11, 951 }, - { 11, 11, 980 }, { 4, 11, 717 }, { 4, 10, 695 }, { 7, 10, 497 }, - { 9, 10, 387 }, { 19, 10, 81 }, { 4, 0, 420 }, { 14, 0, 37 }, - { 6, 0, 1134 }, { 6, 0, 1900 }, { 12, 0, 830 }, { 12, 0, 878 }, - { 12, 0, 894 }, { 15, 0, 221 }, { 15, 0, 245 }, { 4, 11, 489 }, - { 7, 0, 1570 }, { 12, 0, 542 }, { 8, 0, 933 }, { 8, 0, 957 }, - { 6, 0, 1371 }, { 7, 0, 31 }, { 8, 0, 373 }, { 5, 10, 284 }, - { 6, 10, 49 }, { 6, 10, 350 }, { 7, 10, 377 }, { 7, 10, 1693 }, - { 8, 10, 678 }, { 9, 10, 161 }, { 9, 10, 585 }, { 9, 10, 671 }, - { 9, 10, 839 }, { 11, 10, 912 }, { 13, 10, 427 }, { 7, 11, 892 }, - { 4, 0, 325 }, { 10, 0, 125 }, { 11, 11, 47 }, { 4, 10, 597 }, - { 10, 0, 323 }, { 6, 0, 1547 }, { 7, 11, 1605 }, { 9, 11, 473 }, - { 11, 11, 962 }, { 18, 11, 139 }, { 11, 10, 908 }, { 7, 11, 819 }, - { 9, 11, 26 }, { 9, 11, 392 }, { 10, 11, 152 }, { 10, 11, 226 }, - { 11, 11, 19 }, { 12, 11, 276 }, { 12, 11, 426 }, { 12, 11, 589 }, - { 13, 11, 460 }, { 15, 11, 97 }, { 19, 11, 48 }, { 20, 11, 104 }, - { 7, 11, 51 }, { 4, 0, 718 }, { 7, 0, 1216 }, { 6, 0, 1896 }, - { 6, 0, 1905 }, { 6, 0, 1912 }, { 9, 0, 947 }, { 9, 0, 974 }, - { 12, 0, 809 }, { 12, 0, 850 }, { 12, 0, 858 }, { 12, 0, 874 }, - { 12, 0, 887 }, { 12, 0, 904 }, { 12, 0, 929 }, { 12, 0, 948 }, - { 12, 0, 952 }, { 15, 0, 198 }, { 15, 0, 206 }, { 15, 0, 220 }, - { 15, 0, 227 }, { 15, 0, 247 }, { 18, 0, 188 }, { 21, 0, 48 }, - { 21, 0, 50 }, { 24, 0, 25 }, { 24, 0, 29 }, { 7, 11, 761 }, - { 7, 11, 1051 }, { 9, 11, 545 }, { 5, 0, 124 }, { 5, 0, 144 }, - { 6, 0, 548 }, { 7, 0, 15 }, { 7, 0, 153 }, { 9, 0, 629 }, - { 7, 11, 606 }, { 7, 10, 2014 }, { 7, 10, 2007 }, { 9, 11, 46 }, - { 9, 10, 101 }, { 9, 10, 450 }, { 10, 10, 66 }, { 10, 10, 842 }, - { 11, 10, 536 }, { 12, 10, 587 }, { 6, 0, 75 }, { 7, 0, 1531 }, - { 8, 0, 416 }, { 9, 0, 240 }, { 9, 0, 275 }, { 10, 0, 100 }, - { 11, 0, 658 }, { 11, 0, 979 }, { 12, 0, 86 }, { 14, 0, 207 }, - { 15, 0, 20 }, { 15, 0, 25 }, { 5, 0, 141 }, { 5, 0, 915 }, - { 6, 0, 1783 }, { 7, 0, 211 }, { 7, 0, 698 }, { 7, 0, 1353 }, - { 9, 0, 83 }, { 9, 0, 281 }, { 10, 0, 376 }, { 10, 0, 431 }, - { 11, 0, 543 }, { 12, 0, 664 }, { 13, 0, 280 }, { 13, 0, 428 }, - { 14, 0, 61 }, { 14, 0, 128 }, { 17, 0, 52 }, { 17, 0, 81 }, - { 4, 11, 674 }, { 7, 0, 533 }, { 21, 0, 6 }, { 4, 11, 770 }, - { 5, 0, 538 }, { 5, 11, 79 }, { 7, 11, 1027 }, { 7, 11, 1477 }, - { 11, 11, 52 }, { 11, 10, 62 }, { 4, 0, 338 }, { 5, 0, 400 }, - { 5, 11, 789 }, { 6, 11, 195 }, { 4, 11, 251 }, { 4, 11, 688 }, - { 7, 11, 513 }, { 7, 11, 1284 }, { 9, 11, 87 }, { 10, 11, 365 }, - { 6, 10, 1766 }, { 6, 0, 0 }, { 7, 0, 84 }, { 11, 0, 895 }, - { 17, 0, 11 }, { 11, 0, 892 }, { 4, 0, 221 }, { 5, 0, 659 }, - { 7, 0, 697 }, { 7, 0, 1211 }, { 10, 0, 284 }, { 5, 0, 989 }, - { 5, 11, 889 }, { 4, 11, 160 }, { 5, 11, 330 }, { 7, 11, 1434 }, - { 8, 11, 174 }, { 6, 10, 1665 }, { 7, 10, 256 }, { 7, 10, 1388 }, - { 10, 10, 499 }, { 11, 10, 670 }, { 7, 0, 848 }, { 4, 10, 22 }, - { 5, 10, 10 }, { 8, 10, 97 }, { 10, 0, 507 }, { 5, 10, 481 }, - { 4, 0, 188 }, { 7, 0, 805 }, { 5, 0, 884 }, { 6, 0, 732 }, - { 11, 0, 991 }, { 7, 11, 968 }, { 11, 11, 636 }, { 15, 11, 145 }, - { 17, 11, 34 }, { 19, 11, 50 }, { 23, 11, 20 }, { 7, 0, 959 }, - { 16, 0, 60 }, { 6, 10, 134 }, { 7, 10, 437 }, { 9, 10, 37 }, - { 14, 10, 285 }, { 14, 10, 371 }, { 7, 10, 486 }, { 8, 10, 155 }, - { 11, 10, 93 }, { 12, 10, 164 }, { 6, 0, 1653 }, { 7, 0, 337 }, - { 5, 10, 591 }, { 6, 0, 1989 }, { 8, 0, 922 }, { 8, 0, 978 }, - { 5, 11, 374 }, { 4, 0, 638 }, { 10, 0, 500 }, { 5, 11, 731 }, - { 5, 10, 380 }, { 5, 10, 650 }, { 8, 10, 310 }, { 10, 11, 381 }, - { 4, 10, 364 }, { 7, 10, 1156 }, { 7, 10, 1187 }, { 9, 10, 409 }, - { 9, 11, 224 }, { 12, 0, 166 }, { 6, 10, 482 }, { 4, 11, 626 }, - { 5, 11, 642 }, { 6, 11, 425 }, { 10, 11, 202 }, { 11, 11, 141 }, - { 4, 10, 781 }, { 6, 10, 487 }, { 7, 10, 926 }, { 8, 10, 263 }, - { 11, 10, 500 }, { 7, 0, 418 }, { 4, 10, 94 }, { 7, 10, 1265 }, - { 8, 0, 760 }, { 4, 10, 417 }, { 8, 11, 835 }, { 5, 10, 348 }, - { 6, 10, 522 }, { 6, 0, 1277 }, { 6, 0, 1538 }, { 11, 11, 541 }, - { 7, 11, 1597 }, { 5, 11, 384 }, { 8, 11, 455 }, { 12, 11, 48 }, - { 8, 0, 770 }, { 5, 11, 264 }, { 6, 11, 184 }, { 4, 0, 89 }, - { 5, 0, 489 }, { 6, 0, 315 }, { 7, 0, 553 }, { 7, 0, 1745 }, - { 10, 0, 243 }, { 4, 10, 408 }, { 4, 10, 741 }, { 7, 10, 500 }, - { 6, 0, 1396 }, { 5, 0, 560 }, { 6, 0, 1658 }, { 9, 0, 3 }, - { 10, 0, 154 }, { 11, 0, 641 }, { 13, 0, 85 }, { 13, 0, 201 }, - { 13, 0, 346 }, { 7, 11, 1595 }, { 5, 11, 633 }, { 6, 11, 28 }, - { 7, 11, 219 }, { 7, 11, 1323 }, { 9, 11, 769 }, { 12, 11, 185 }, - { 7, 11, 785 }, { 7, 11, 359 }, { 8, 11, 243 }, { 12, 11, 175 }, - { 10, 0, 586 }, { 7, 0, 1271 }, { 6, 10, 73 }, { 4, 11, 105 }, - { 4, 0, 166 }, { 5, 0, 505 }, { 6, 0, 1670 }, { 5, 10, 576 }, - { 4, 11, 324 }, { 10, 11, 104 }, { 14, 10, 231 }, { 6, 0, 637 }, - { 7, 10, 1264 }, { 7, 10, 1678 }, { 11, 10, 945 }, { 12, 10, 341 }, - { 12, 10, 471 }, { 12, 10, 569 }, { 23, 11, 21 }, { 23, 11, 23 }, - { 8, 11, 559 }, { 13, 11, 109 }, { 6, 0, 1947 }, { 7, 0, 445 }, - { 8, 0, 307 }, { 8, 0, 704 }, { 10, 0, 41 }, { 10, 0, 439 }, - { 11, 0, 237 }, { 11, 0, 622 }, { 12, 0, 201 }, { 7, 11, 963 }, - { 7, 0, 1977 }, { 4, 0, 189 }, { 5, 0, 713 }, { 8, 0, 57 }, - { 10, 0, 371 }, { 7, 10, 538 }, { 4, 0, 552 }, { 6, 0, 883 }, - { 5, 10, 413 }, { 6, 0, 923 }, { 4, 11, 758 }, { 10, 11, 215 }, - { 8, 10, 495 }, { 7, 10, 54 }, { 8, 10, 312 }, { 10, 10, 191 }, - { 10, 10, 614 }, { 12, 10, 567 }, { 7, 11, 351 }, { 11, 11, 128 }, - { 7, 0, 875 }, { 6, 10, 468 }, { 7, 10, 1478 }, { 8, 10, 530 }, - { 14, 10, 290 }, { 7, 0, 1788 }, { 17, 0, 49 }, { 5, 11, 918 }, - { 12, 11, 398 }, { 20, 11, 39 }, { 21, 11, 11 }, { 22, 11, 41 }, - { 10, 0, 661 }, { 6, 10, 484 }, { 7, 10, 822 }, { 7, 0, 1945 }, - { 6, 0, 794 }, { 9, 10, 900 }, { 7, 10, 1335 }, { 6, 10, 1724 }, - { 7, 10, 2022 }, { 4, 11, 340 }, { 6, 0, 1135 }, { 4, 0, 784 }, - { 5, 0, 745 }, { 5, 0, 84 }, { 6, 0, 163 }, { 5, 0, 410 }, - { 4, 0, 976 }, { 5, 11, 985 }, { 7, 11, 509 }, { 7, 11, 529 }, - { 17, 11, 96 }, { 4, 10, 474 }, { 6, 0, 703 }, { 7, 11, 1919 }, - { 5, 0, 322 }, { 8, 0, 186 }, { 9, 0, 262 }, { 10, 0, 187 }, - { 14, 0, 208 }, { 7, 10, 1504 }, { 5, 0, 227 }, { 9, 0, 560 }, - { 13, 0, 208 }, { 5, 10, 305 }, { 4, 11, 247 }, { 7, 0, 1395 }, - { 8, 0, 486 }, { 9, 0, 236 }, { 9, 0, 878 }, { 10, 0, 218 }, - { 11, 0, 95 }, { 19, 0, 17 }, { 19, 0, 31 }, { 7, 0, 2043 }, - { 8, 0, 672 }, { 13, 0, 448 }, { 4, 11, 184 }, { 5, 11, 390 }, - { 6, 11, 337 }, { 7, 11, 23 }, { 7, 11, 494 }, { 7, 11, 618 }, - { 7, 11, 1456 }, { 8, 11, 27 }, { 8, 11, 599 }, { 10, 11, 153 }, - { 11, 11, 710 }, { 7, 0, 466 }, { 7, 10, 1236 }, { 6, 0, 167 }, - { 7, 0, 186 }, { 7, 0, 656 }, { 10, 0, 643 }, { 4, 10, 480 }, - { 6, 10, 302 }, { 6, 10, 1642 }, { 7, 10, 837 }, { 7, 10, 1547 }, - { 7, 10, 1657 }, { 8, 10, 429 }, { 9, 10, 228 }, { 13, 10, 289 }, - { 13, 10, 343 }, { 19, 10, 101 }, { 6, 0, 1428 }, { 6, 0, 1440 }, - { 5, 0, 412 }, { 7, 10, 278 }, { 10, 10, 739 }, { 11, 10, 708 }, - { 13, 10, 348 }, { 6, 0, 1118 }, { 8, 0, 562 }, { 20, 11, 46 }, - { 9, 0, 316 }, { 11, 0, 256 }, { 6, 0, 1771 }, { 7, 0, 1190 }, - { 9, 0, 132 }, { 10, 11, 227 }, { 11, 11, 497 }, { 11, 11, 709 }, - { 12, 11, 415 }, { 15, 0, 66 }, { 6, 11, 360 }, { 7, 11, 1664 }, - { 8, 11, 478 }, { 16, 10, 28 }, { 4, 0, 317 }, { 7, 0, 1279 }, - { 5, 0, 63 }, { 5, 0, 509 }, { 8, 11, 699 }, { 17, 10, 36 }, - { 6, 0, 1475 }, { 11, 11, 343 }, { 14, 11, 127 }, { 4, 11, 739 }, - { 4, 0, 288 }, { 7, 11, 1757 }, { 8, 0, 89 }, { 8, 0, 620 }, - { 9, 0, 608 }, { 11, 0, 628 }, { 12, 0, 322 }, { 15, 0, 124 }, - { 6, 0, 1225 }, { 7, 0, 1189 }, { 4, 11, 67 }, { 5, 11, 422 }, - { 6, 10, 363 }, { 7, 11, 1037 }, { 7, 11, 1289 }, { 7, 11, 1555 }, - { 7, 10, 1955 }, { 8, 10, 725 }, { 9, 11, 741 }, { 17, 11, 108 }, - { 6, 0, 1468 }, { 6, 0, 689 }, { 6, 0, 1451 }, { 10, 0, 120 }, - { 23, 0, 1 }, { 9, 10, 805 }, { 14, 0, 329 }, { 5, 10, 813 }, - { 7, 10, 2046 }, { 7, 0, 226 }, { 10, 11, 96 }, { 7, 0, 1855 }, - { 5, 10, 712 }, { 11, 10, 17 }, { 13, 10, 321 }, { 16, 10, 67 }, - { 9, 0, 461 }, { 6, 10, 320 }, { 7, 10, 781 }, { 7, 10, 1921 }, - { 9, 10, 55 }, { 10, 10, 186 }, { 10, 10, 273 }, { 10, 10, 664 }, - { 10, 10, 801 }, { 11, 10, 996 }, { 11, 10, 997 }, { 13, 10, 157 }, - { 14, 10, 170 }, { 8, 11, 203 }, { 8, 10, 271 }, { 11, 11, 823 }, - { 11, 11, 846 }, { 12, 11, 482 }, { 13, 11, 133 }, { 13, 11, 277 }, - { 13, 11, 302 }, { 13, 11, 464 }, { 14, 11, 205 }, { 14, 11, 221 }, - { 7, 0, 1346 }, { 4, 11, 449 }, { 5, 11, 718 }, { 6, 0, 85 }, - { 14, 0, 299 }, { 7, 10, 103 }, { 7, 10, 863 }, { 11, 10, 184 }, - { 17, 10, 62 }, { 4, 11, 355 }, { 6, 11, 311 }, { 9, 11, 256 }, - { 10, 11, 404 }, { 9, 10, 659 }, { 10, 11, 758 }, { 5, 11, 827 }, - { 5, 11, 64 }, { 12, 11, 581 }, { 6, 0, 1171 }, { 4, 11, 442 }, - { 7, 11, 1047 }, { 7, 11, 1352 }, { 7, 11, 1643 }, { 4, 0, 980 }, - { 5, 11, 977 }, { 6, 11, 288 }, { 7, 11, 528 }, { 7, 11, 1065 }, - { 5, 0, 279 }, { 6, 0, 235 }, { 7, 0, 468 }, { 8, 0, 446 }, - { 9, 0, 637 }, { 10, 0, 717 }, { 11, 0, 738 }, { 12, 0, 514 }, - { 4, 0, 293 }, { 11, 10, 337 }, { 14, 10, 303 }, { 8, 11, 285 }, - { 5, 0, 17 }, { 6, 0, 371 }, { 9, 0, 528 }, { 12, 0, 364 }, - { 4, 11, 254 }, { 5, 10, 77 }, { 7, 10, 1455 }, { 10, 10, 843 }, - { 19, 10, 73 }, { 22, 0, 5 }, { 4, 10, 458 }, { 6, 11, 12 }, - { 7, 11, 1219 }, { 17, 11, 73 }, { 7, 10, 1420 }, { 6, 10, 109 }, - { 10, 10, 382 }, { 7, 11, 125 }, { 6, 10, 330 }, { 7, 10, 1084 }, - { 11, 10, 142 }, { 6, 11, 369 }, { 6, 11, 502 }, { 7, 11, 1036 }, - { 8, 11, 348 }, { 9, 11, 452 }, { 10, 11, 26 }, { 11, 11, 224 }, - { 11, 11, 387 }, { 11, 11, 772 }, { 12, 11, 95 }, { 12, 11, 629 }, - { 13, 11, 195 }, { 13, 11, 207 }, { 13, 11, 241 }, { 14, 11, 260 }, - { 14, 11, 270 }, { 15, 11, 140 }, { 4, 11, 269 }, { 5, 11, 480 }, - { 7, 11, 532 }, { 7, 11, 1197 }, { 7, 11, 1358 }, { 8, 11, 291 }, - { 11, 11, 349 }, { 14, 11, 396 }, { 22, 0, 48 }, { 10, 0, 601 }, - { 13, 0, 353 }, { 13, 0, 376 }, { 5, 0, 779 }, { 5, 0, 807 }, - { 6, 0, 1655 }, { 6, 0, 1676 }, { 14, 11, 223 }, { 4, 0, 196 }, - { 5, 0, 558 }, { 5, 0, 949 }, { 20, 11, 15 }, { 7, 11, 1764 }, - { 6, 0, 1322 }, { 4, 0, 752 }, { 11, 0, 737 }, { 7, 11, 657 }, - { 8, 11, 533 }, { 7, 0, 412 }, { 4, 0, 227 }, { 5, 0, 159 }, - { 5, 0, 409 }, { 7, 0, 80 }, { 8, 0, 556 }, { 10, 0, 479 }, - { 12, 0, 418 }, { 14, 0, 50 }, { 14, 0, 123 }, { 14, 0, 192 }, - { 14, 0, 249 }, { 14, 0, 295 }, { 15, 0, 27 }, { 7, 0, 1470 }, - { 8, 0, 66 }, { 8, 0, 137 }, { 8, 0, 761 }, { 9, 0, 638 }, - { 11, 0, 80 }, { 11, 0, 212 }, { 11, 0, 368 }, { 11, 0, 418 }, - { 12, 0, 8 }, { 13, 0, 15 }, { 16, 0, 61 }, { 17, 0, 59 }, - { 19, 0, 28 }, { 20, 0, 84 }, { 7, 10, 1985 }, { 4, 11, 211 }, - { 4, 11, 332 }, { 5, 11, 335 }, { 6, 11, 238 }, { 7, 11, 269 }, - { 7, 11, 811 }, { 7, 11, 1797 }, { 8, 10, 122 }, { 8, 11, 836 }, - { 9, 11, 507 }, { 13, 11, 242 }, { 6, 0, 683 }, { 6, 0, 1252 }, - { 4, 0, 873 }, { 4, 10, 234 }, { 6, 0, 835 }, { 6, 0, 38 }, - { 7, 0, 1220 }, { 8, 0, 185 }, { 8, 0, 256 }, { 9, 0, 22 }, - { 9, 0, 331 }, { 10, 0, 738 }, { 11, 0, 205 }, { 11, 0, 540 }, - { 11, 0, 746 }, { 13, 0, 465 }, { 14, 0, 88 }, { 14, 0, 194 }, - { 10, 0, 986 }, { 5, 11, 1009 }, { 12, 11, 582 }, { 18, 11, 131 }, - { 4, 0, 159 }, { 6, 0, 115 }, { 7, 0, 252 }, { 7, 0, 257 }, - { 7, 0, 1928 }, { 8, 0, 69 }, { 9, 0, 384 }, { 10, 0, 91 }, - { 10, 0, 615 }, { 12, 0, 375 }, { 14, 0, 235 }, { 18, 0, 117 }, - { 19, 0, 123 }, { 5, 0, 911 }, { 8, 0, 278 }, { 5, 10, 430 }, - { 5, 10, 932 }, { 6, 10, 131 }, { 7, 10, 417 }, { 9, 10, 522 }, - { 11, 10, 314 }, { 13, 10, 390 }, { 14, 10, 149 }, { 14, 10, 399 }, - { 15, 10, 57 }, { 4, 0, 151 }, { 7, 0, 1567 }, { 8, 0, 749 }, - { 5, 11, 228 }, { 6, 11, 203 }, { 7, 11, 156 }, { 8, 11, 347 }, - { 9, 11, 265 }, { 4, 10, 507 }, { 10, 0, 989 }, { 12, 0, 956 }, - { 5, 0, 990 }, { 5, 0, 194 }, { 6, 0, 927 }, { 7, 0, 1662 }, - { 9, 0, 90 }, { 12, 0, 564 }, { 4, 10, 343 }, { 5, 10, 511 }, - { 5, 0, 425 }, { 7, 10, 455 }, { 10, 10, 591 }, { 4, 0, 774 }, - { 7, 11, 476 }, { 7, 11, 1592 }, { 10, 11, 87 }, { 5, 0, 971 }, - { 7, 10, 1381 }, { 5, 11, 318 }, { 19, 11, 121 }, { 5, 11, 291 }, - { 7, 11, 765 }, { 9, 11, 389 }, { 12, 11, 548 }, { 6, 10, 575 }, - { 4, 0, 827 }, { 12, 0, 646 }, { 12, 0, 705 }, { 12, 0, 712 }, - { 12, 0, 714 }, { 11, 0, 752 }, { 9, 0, 662 }, { 5, 0, 72 }, - { 6, 0, 264 }, { 7, 0, 21 }, { 7, 0, 46 }, { 7, 0, 2013 }, - { 8, 0, 215 }, { 8, 0, 513 }, { 10, 0, 266 }, { 11, 0, 22 }, - { 11, 11, 522 }, { 6, 0, 239 }, { 7, 0, 118 }, { 10, 0, 95 }, - { 11, 0, 603 }, { 13, 0, 443 }, { 14, 0, 160 }, { 15, 0, 4 }, - { 6, 0, 431 }, { 6, 0, 669 }, { 7, 10, 1127 }, { 7, 10, 1572 }, - { 10, 10, 297 }, { 10, 10, 422 }, { 11, 10, 764 }, { 11, 10, 810 }, - { 12, 10, 264 }, { 13, 10, 102 }, { 13, 10, 300 }, { 13, 10, 484 }, - { 14, 10, 147 }, { 14, 10, 229 }, { 17, 10, 71 }, { 18, 10, 118 }, - { 19, 10, 120 }, { 5, 0, 874 }, { 6, 0, 1677 }, { 15, 0, 0 }, - { 10, 11, 525 }, { 11, 11, 82 }, { 6, 0, 65 }, { 7, 0, 939 }, - { 7, 0, 1172 }, { 7, 0, 1671 }, { 9, 0, 540 }, { 10, 0, 696 }, - { 11, 0, 265 }, { 11, 0, 732 }, { 11, 0, 928 }, { 11, 0, 937 }, - { 13, 0, 438 }, { 6, 0, 1350 }, { 8, 11, 547 }, { 4, 11, 422 }, - { 5, 11, 355 }, { 17, 11, 0 }, { 9, 11, 905 }, { 5, 0, 682 }, - { 7, 0, 1887 }, { 4, 0, 809 }, { 4, 0, 696 }, { 5, 11, 865 }, - { 6, 0, 1074 }, { 6, 0, 1472 }, { 14, 10, 35 }, { 14, 10, 191 }, - { 5, 11, 914 }, { 6, 11, 1625 }, { 5, 11, 234 }, { 7, 11, 1383 }, - { 9, 11, 780 }, { 4, 10, 125 }, { 4, 0, 726 }, { 5, 0, 630 }, - { 8, 0, 802 }, { 8, 0, 838 }, { 4, 10, 721 }, { 6, 0, 1337 }, - { 7, 0, 776 }, { 19, 0, 56 }, { 8, 10, 145 }, { 4, 0, 970 }, - { 7, 10, 792 }, { 8, 10, 147 }, { 10, 10, 821 }, { 11, 10, 1021 }, - { 11, 10, 970 }, { 8, 0, 940 }, { 9, 0, 797 }, { 7, 11, 1312 }, - { 9, 0, 248 }, { 10, 0, 400 }, { 7, 11, 816 }, { 7, 11, 1241 }, - { 7, 10, 1999 }, { 9, 11, 283 }, { 9, 11, 520 }, { 10, 11, 213 }, - { 10, 11, 307 }, { 10, 11, 463 }, { 10, 11, 671 }, { 10, 11, 746 }, - { 11, 11, 401 }, { 11, 11, 794 }, { 12, 11, 517 }, { 18, 11, 107 }, - { 19, 11, 115 }, { 6, 0, 1951 }, { 6, 0, 2040 }, { 7, 11, 339 }, - { 13, 0, 41 }, { 15, 0, 93 }, { 5, 10, 168 }, { 5, 10, 930 }, - { 8, 10, 74 }, { 9, 10, 623 }, { 12, 10, 500 }, { 12, 10, 579 }, - { 6, 0, 118 }, { 7, 0, 215 }, { 7, 0, 1521 }, { 12, 0, 11 }, - { 6, 10, 220 }, { 7, 10, 1101 }, { 13, 10, 105 }, { 6, 11, 421 }, - { 7, 11, 61 }, { 7, 11, 1540 }, { 10, 11, 11 }, { 10, 11, 501 }, - { 7, 0, 615 }, { 10, 0, 251 }, { 12, 11, 631 }, { 7, 0, 1044 }, - { 6, 10, 19 }, { 7, 10, 1413 }, { 11, 10, 428 }, { 5, 0, 225 }, - { 7, 10, 96 }, { 8, 10, 401 }, { 8, 10, 703 }, { 9, 10, 896 }, - { 17, 10, 116 }, { 6, 11, 102 }, { 7, 11, 72 }, { 15, 11, 142 }, - { 19, 11, 67 }, { 7, 10, 1961 }, { 7, 10, 1965 }, { 8, 10, 702 }, - { 8, 10, 750 }, { 7, 10, 2030 }, { 8, 10, 150 }, { 8, 10, 737 }, - { 12, 10, 366 }, { 23, 11, 30 }, { 4, 0, 370 }, { 5, 0, 756 }, - { 7, 0, 1326 }, { 7, 11, 823 }, { 8, 10, 800 }, { 9, 10, 148 }, - { 9, 10, 872 }, { 9, 10, 890 }, { 11, 10, 309 }, { 11, 10, 1001 }, - { 13, 10, 267 }, { 13, 10, 323 }, { 6, 0, 1662 }, { 7, 0, 48 }, - { 8, 0, 771 }, { 10, 0, 116 }, { 13, 0, 104 }, { 14, 0, 105 }, - { 14, 0, 184 }, { 15, 0, 168 }, { 19, 0, 92 }, { 20, 0, 68 }, - { 10, 0, 209 }, { 7, 11, 1870 }, { 7, 11, 68 }, { 8, 11, 48 }, - { 8, 11, 88 }, { 8, 11, 582 }, { 8, 11, 681 }, { 9, 11, 373 }, - { 9, 11, 864 }, { 11, 11, 157 }, { 11, 11, 336 }, { 11, 11, 843 }, - { 20, 11, 27 }, { 6, 0, 930 }, { 4, 11, 88 }, { 5, 11, 137 }, - { 5, 11, 174 }, { 5, 11, 777 }, { 6, 11, 1664 }, { 6, 11, 1725 }, - { 7, 11, 77 }, { 7, 11, 426 }, { 7, 11, 1317 }, { 7, 11, 1355 }, - { 8, 11, 126 }, { 8, 11, 563 }, { 9, 11, 523 }, { 9, 11, 750 }, - { 10, 11, 310 }, { 10, 11, 836 }, { 11, 11, 42 }, { 11, 11, 318 }, - { 11, 11, 731 }, { 12, 11, 68 }, { 12, 11, 92 }, { 12, 11, 507 }, - { 12, 11, 692 }, { 13, 11, 81 }, { 13, 11, 238 }, { 13, 11, 374 }, - { 18, 11, 138 }, { 19, 11, 78 }, { 19, 11, 111 }, { 20, 11, 55 }, - { 20, 11, 77 }, { 20, 11, 92 }, { 4, 11, 938 }, { 7, 11, 1831 }, - { 5, 10, 547 }, { 7, 10, 424 }, { 8, 11, 617 }, { 10, 11, 351 }, - { 6, 0, 1286 }, { 6, 11, 1668 }, { 7, 11, 1499 }, { 8, 11, 117 }, - { 9, 11, 314 }, { 10, 11, 174 }, { 6, 0, 759 }, { 6, 0, 894 }, - { 7, 11, 707 }, { 11, 11, 563 }, { 4, 0, 120 }, { 7, 0, 1894 }, - { 9, 0, 385 }, { 21, 0, 17 }, { 10, 0, 429 }, { 5, 11, 403 }, - { 5, 0, 820 }, { 7, 0, 931 }, { 10, 0, 199 }, { 5, 10, 133 }, - { 6, 0, 151 }, { 6, 0, 1675 }, { 7, 0, 383 }, { 23, 0, 10 }, - { 6, 0, 761 }, { 8, 10, 187 }, { 8, 0, 365 }, { 10, 10, 0 }, - { 10, 10, 818 }, { 11, 10, 988 }, { 4, 11, 44 }, { 5, 11, 311 }, - { 6, 11, 156 }, { 7, 11, 639 }, { 7, 11, 762 }, { 7, 11, 1827 }, - { 9, 11, 8 }, { 9, 11, 462 }, { 20, 11, 83 }, { 4, 11, 346 }, - { 7, 11, 115 }, { 9, 11, 180 }, { 9, 11, 456 }, { 10, 11, 363 }, - { 8, 10, 685 }, { 7, 0, 1086 }, { 17, 0, 46 }, { 6, 0, 1624 }, - { 11, 0, 11 }, { 12, 0, 422 }, { 13, 0, 444 }, { 14, 0, 360 }, - { 6, 0, 1020 }, { 6, 0, 1260 }, { 6, 0, 1589 }, { 4, 0, 43 }, - { 5, 0, 344 }, { 5, 0, 357 }, { 14, 0, 472 }, { 22, 0, 58 }, - { 6, 0, 1864 }, { 6, 0, 1866 }, { 6, 0, 1868 }, { 6, 0, 1869 }, - { 6, 0, 1874 }, { 6, 0, 1877 }, { 6, 0, 1903 }, { 6, 0, 1911 }, - { 9, 0, 920 }, { 9, 0, 921 }, { 9, 0, 924 }, { 9, 0, 946 }, - { 9, 0, 959 }, { 9, 0, 963 }, { 9, 0, 970 }, { 9, 0, 997 }, - { 9, 0, 1008 }, { 9, 0, 1017 }, { 12, 0, 795 }, { 12, 0, 797 }, - { 12, 0, 798 }, { 12, 0, 800 }, { 12, 0, 803 }, { 12, 0, 811 }, - { 12, 0, 820 }, { 12, 0, 821 }, { 12, 0, 839 }, { 12, 0, 841 }, - { 12, 0, 848 }, { 12, 0, 911 }, { 12, 0, 921 }, { 12, 0, 922 }, - { 12, 0, 925 }, { 12, 0, 937 }, { 12, 0, 944 }, { 12, 0, 945 }, - { 12, 0, 953 }, { 15, 0, 184 }, { 15, 0, 191 }, { 15, 0, 199 }, - { 15, 0, 237 }, { 15, 0, 240 }, { 15, 0, 243 }, { 15, 0, 246 }, - { 18, 0, 203 }, { 21, 0, 40 }, { 21, 0, 52 }, { 21, 0, 57 }, - { 24, 0, 23 }, { 24, 0, 28 }, { 24, 0, 30 }, { 6, 0, 725 }, - { 17, 11, 58 }, { 5, 0, 888 }, { 9, 10, 874 }, { 4, 0, 711 }, - { 8, 10, 774 }, { 10, 10, 670 }, { 12, 10, 51 }, { 16, 11, 40 }, - { 6, 11, 185 }, { 7, 11, 1899 }, { 11, 11, 673 }, { 9, 10, 701 }, - { 9, 0, 440 }, { 4, 11, 327 }, { 5, 11, 478 }, { 7, 11, 1332 }, - { 8, 11, 753 }, { 12, 11, 227 }, { 4, 10, 127 }, { 5, 10, 350 }, - { 6, 10, 356 }, { 8, 10, 426 }, { 9, 10, 572 }, { 10, 10, 247 }, - { 11, 10, 312 }, { 5, 11, 1020 }, { 5, 11, 1022 }, { 4, 11, 103 }, - { 5, 11, 401 }, { 6, 0, 1913 }, { 6, 0, 1926 }, { 6, 0, 1959 }, - { 9, 0, 914 }, { 9, 0, 939 }, { 9, 0, 952 }, { 9, 0, 979 }, - { 9, 0, 990 }, { 9, 0, 998 }, { 9, 0, 1003 }, { 9, 0, 1023 }, - { 12, 0, 827 }, { 12, 0, 834 }, { 12, 0, 845 }, { 12, 0, 912 }, - { 12, 0, 935 }, { 12, 0, 951 }, { 15, 0, 172 }, { 15, 0, 174 }, - { 18, 0, 198 }, { 21, 0, 63 }, { 5, 0, 958 }, { 5, 0, 987 }, - { 4, 11, 499 }, { 7, 11, 1421 }, { 7, 0, 885 }, { 6, 10, 59 }, - { 6, 10, 1762 }, { 9, 10, 603 }, { 13, 10, 397 }, { 10, 11, 62 }, - { 13, 11, 164 }, { 4, 0, 847 }, { 7, 0, 326 }, { 11, 0, 276 }, - { 14, 0, 293 }, { 4, 0, 65 }, { 5, 0, 479 }, { 5, 0, 1004 }, - { 7, 0, 1913 }, { 8, 0, 317 }, { 9, 0, 302 }, { 10, 0, 612 }, - { 13, 0, 22 }, { 4, 11, 96 }, { 4, 0, 261 }, { 7, 0, 510 }, - { 7, 0, 1514 }, { 6, 10, 111 }, { 7, 10, 4 }, { 8, 10, 163 }, - { 8, 10, 776 }, { 10, 10, 566 }, { 4, 0, 291 }, { 9, 0, 515 }, - { 12, 0, 152 }, { 12, 0, 443 }, { 13, 0, 392 }, { 14, 0, 357 }, - { 7, 11, 399 }, { 7, 11, 1492 }, { 4, 0, 589 }, { 11, 0, 282 }, - { 6, 11, 563 }, { 7, 10, 1994 }, { 5, 10, 297 }, { 7, 10, 1038 }, - { 4, 0, 130 }, { 7, 0, 843 }, { 7, 0, 1562 }, { 5, 0, 42 }, - { 5, 0, 879 }, { 7, 0, 245 }, { 7, 0, 324 }, { 7, 0, 1532 }, - { 11, 0, 463 }, { 11, 0, 472 }, { 13, 0, 363 }, { 16, 0, 52 }, - { 4, 0, 134 }, { 5, 0, 372 }, { 5, 0, 680 }, { 8, 10, 363 }, - { 6, 0, 1997 }, { 8, 0, 935 }, { 8, 0, 977 }, { 4, 0, 810 }, - { 7, 0, 1634 }, { 7, 10, 1675 }, { 7, 0, 1390 }, { 4, 11, 910 }, - { 5, 11, 832 }, { 7, 10, 808 }, { 8, 11, 266 }, { 11, 11, 578 }, - { 4, 0, 644 }, { 4, 0, 982 }, { 10, 0, 867 }, { 4, 10, 280 }, - { 7, 0, 540 }, { 12, 10, 54 }, { 7, 0, 123 }, { 6, 0, 1978 }, - { 4, 10, 421 }, { 5, 10, 548 }, { 6, 0, 623 }, { 8, 0, 789 }, - { 4, 0, 908 }, { 5, 0, 359 }, { 5, 0, 508 }, { 6, 0, 1723 }, - { 7, 0, 343 }, { 7, 0, 1996 }, { 7, 0, 2026 }, { 6, 0, 1220 }, - { 4, 0, 341 }, { 7, 0, 480 }, { 6, 10, 254 }, { 9, 10, 109 }, - { 10, 10, 103 }, { 6, 0, 888 }, { 8, 11, 528 }, { 9, 11, 348 }, - { 7, 0, 1995 }, { 8, 0, 299 }, { 11, 0, 890 }, { 12, 0, 674 }, - { 4, 11, 20 }, { 5, 11, 616 }, { 7, 11, 1094 }, { 6, 10, 1630 }, - { 4, 0, 238 }, { 5, 0, 503 }, { 6, 0, 179 }, { 7, 0, 2003 }, - { 8, 0, 381 }, { 8, 0, 473 }, { 9, 0, 149 }, { 10, 0, 788 }, - { 15, 0, 45 }, { 15, 0, 86 }, { 20, 0, 110 }, { 22, 0, 57 }, - { 5, 10, 671 }, { 4, 11, 26 }, { 5, 11, 429 }, { 6, 11, 245 }, - { 7, 11, 704 }, { 7, 11, 1379 }, { 7, 11, 1474 }, { 4, 0, 121 }, - { 5, 0, 156 }, { 5, 0, 349 }, { 9, 0, 431 }, { 10, 0, 605 }, - { 14, 0, 342 }, { 7, 11, 943 }, { 11, 11, 614 }, { 4, 10, 889 }, - { 4, 11, 621 }, { 7, 10, 1382 }, { 7, 11, 1382 }, { 7, 10, 1910 }, - { 4, 10, 627 }, { 5, 10, 775 }, { 5, 11, 542 }, { 5, 11, 868 }, - { 8, 11, 433 }, { 6, 0, 1373 }, { 7, 0, 1011 }, { 11, 10, 362 }, - { 11, 10, 948 }, { 12, 10, 388 }, { 6, 0, 80 }, { 7, 0, 173 }, - { 9, 0, 547 }, { 10, 0, 730 }, { 14, 0, 18 }, { 22, 0, 39 }, - { 7, 11, 1495 }, { 6, 0, 1694 }, { 7, 0, 1974 }, { 12, 0, 196 }, - { 4, 0, 923 }, { 6, 0, 507 }, { 6, 0, 1711 }, { 7, 10, 451 }, - { 8, 10, 389 }, { 12, 10, 490 }, { 13, 10, 16 }, { 13, 10, 215 }, - { 13, 10, 351 }, { 18, 10, 132 }, { 19, 10, 125 }, { 6, 0, 646 }, - { 6, 0, 1047 }, { 7, 10, 841 }, { 8, 10, 566 }, { 6, 0, 1611 }, - { 7, 0, 1214 }, { 11, 0, 926 }, { 4, 11, 525 }, { 4, 0, 595 }, - { 5, 0, 240 }, { 6, 0, 459 }, { 7, 0, 12 }, { 7, 0, 114 }, - { 7, 0, 949 }, { 7, 0, 1753 }, { 7, 0, 1805 }, { 8, 0, 658 }, - { 9, 0, 1 }, { 11, 0, 959 }, { 13, 0, 446 }, { 5, 10, 912 }, - { 6, 10, 1695 }, { 4, 0, 446 }, { 7, 11, 62 }, { 12, 11, 45 }, - { 19, 11, 112 }, { 5, 10, 236 }, { 6, 10, 572 }, { 8, 10, 492 }, - { 11, 10, 618 }, { 16, 10, 56 }, { 5, 10, 190 }, { 8, 10, 318 }, - { 7, 10, 1376 }, { 4, 11, 223 }, { 6, 11, 359 }, { 11, 11, 3 }, - { 13, 11, 108 }, { 14, 11, 89 }, { 16, 11, 22 }, { 4, 11, 647 }, - { 6, 0, 490 }, { 6, 0, 491 }, { 6, 0, 1584 }, { 7, 11, 685 }, - { 10, 11, 220 }, { 7, 0, 250 }, { 8, 0, 507 }, { 4, 0, 158 }, - { 4, 0, 140 }, { 7, 0, 362 }, { 8, 0, 209 }, { 9, 0, 10 }, - { 9, 0, 160 }, { 9, 0, 503 }, { 9, 0, 614 }, { 10, 0, 689 }, - { 11, 0, 327 }, { 11, 0, 553 }, { 11, 0, 725 }, { 11, 0, 767 }, - { 12, 0, 252 }, { 12, 0, 583 }, { 13, 0, 192 }, { 14, 0, 269 }, - { 14, 0, 356 }, { 20, 0, 50 }, { 19, 0, 1 }, { 19, 0, 26 }, - { 22, 0, 9 }, { 4, 11, 109 }, { 6, 0, 228 }, { 7, 0, 1341 }, - { 9, 0, 408 }, { 10, 0, 343 }, { 4, 0, 373 }, { 5, 0, 283 }, - { 6, 0, 480 }, { 7, 0, 609 }, { 10, 0, 860 }, { 10, 0, 878 }, - { 6, 0, 779 }, { 6, 0, 1209 }, { 4, 0, 557 }, { 7, 11, 263 }, - { 7, 11, 628 }, { 8, 11, 349 }, { 4, 0, 548 }, { 7, 0, 197 }, - { 8, 0, 142 }, { 8, 0, 325 }, { 9, 0, 150 }, { 9, 0, 596 }, - { 10, 0, 350 }, { 10, 0, 353 }, { 11, 0, 74 }, { 11, 0, 315 }, - { 12, 0, 662 }, { 12, 0, 681 }, { 14, 0, 423 }, { 15, 0, 141 }, - { 4, 11, 40 }, { 10, 11, 67 }, { 11, 11, 117 }, { 11, 11, 768 }, - { 11, 11, 935 }, { 7, 11, 992 }, { 8, 11, 301 }, { 9, 11, 722 }, - { 12, 11, 63 }, { 13, 11, 29 }, { 14, 11, 161 }, { 15, 11, 18 }, - { 6, 0, 1490 }, { 10, 11, 532 }, { 5, 0, 580 }, { 7, 0, 378 }, - { 7, 0, 674 }, { 7, 0, 1424 }, { 15, 0, 83 }, { 16, 0, 11 }, - { 15, 11, 83 }, { 16, 11, 11 }, { 6, 0, 1057 }, { 6, 0, 1335 }, - { 10, 0, 316 }, { 7, 10, 85 }, { 7, 10, 247 }, { 8, 10, 585 }, - { 10, 10, 163 }, { 4, 0, 169 }, { 5, 0, 83 }, { 6, 0, 399 }, - { 6, 0, 579 }, { 6, 0, 1513 }, { 7, 0, 692 }, { 7, 0, 846 }, - { 7, 0, 1015 }, { 7, 0, 1799 }, { 8, 0, 403 }, { 9, 0, 394 }, - { 10, 0, 133 }, { 12, 0, 4 }, { 12, 0, 297 }, { 12, 0, 452 }, - { 16, 0, 81 }, { 18, 0, 25 }, { 21, 0, 14 }, { 22, 0, 12 }, - { 23, 0, 18 }, { 6, 0, 1106 }, { 7, 0, 1546 }, { 11, 0, 299 }, - { 14, 0, 407 }, { 6, 0, 1192 }, { 4, 0, 177 }, { 5, 0, 411 }, - { 7, 0, 653 }, { 7, 0, 439 }, { 10, 0, 727 }, { 11, 0, 260 }, - { 11, 0, 684 }, { 10, 10, 145 }, { 19, 10, 83 }, { 5, 0, 208 }, - { 7, 0, 753 }, { 7, 0, 1528 }, { 9, 11, 617 }, { 7, 10, 1922 }, - { 7, 11, 825 }, { 11, 0, 422 }, { 13, 0, 389 }, { 4, 10, 124 }, - { 10, 10, 457 }, { 11, 10, 121 }, { 11, 10, 169 }, { 11, 10, 870 }, - { 12, 10, 214 }, { 14, 10, 187 }, { 15, 10, 77 }, { 11, 0, 615 }, - { 15, 0, 58 }, { 11, 11, 615 }, { 15, 11, 58 }, { 9, 0, 618 }, - { 10, 0, 482 }, { 6, 0, 1952 }, { 6, 0, 1970 }, { 14, 0, 505 }, - { 7, 10, 1193 }, { 7, 11, 1838 }, { 5, 0, 242 }, { 7, 10, 1333 }, - { 6, 10, 107 }, { 7, 10, 638 }, { 7, 10, 1632 }, { 9, 10, 396 }, - { 5, 0, 953 }, { 5, 10, 370 }, { 6, 10, 1756 }, { 5, 11, 28 }, - { 6, 11, 204 }, { 10, 11, 320 }, { 10, 11, 583 }, { 13, 11, 502 }, - { 14, 11, 72 }, { 14, 11, 274 }, { 14, 11, 312 }, { 14, 11, 344 }, - { 15, 11, 159 }, { 16, 11, 62 }, { 16, 11, 69 }, { 17, 11, 30 }, - { 18, 11, 42 }, { 18, 11, 53 }, { 18, 11, 84 }, { 18, 11, 140 }, - { 19, 11, 68 }, { 19, 11, 85 }, { 20, 11, 5 }, { 20, 11, 45 }, - { 20, 11, 101 }, { 22, 11, 7 }, { 22, 11, 20 }, { 4, 11, 558 }, - { 6, 11, 390 }, { 7, 11, 162 }, { 7, 11, 689 }, { 9, 11, 360 }, - { 10, 11, 653 }, { 11, 0, 802 }, { 13, 0, 67 }, { 5, 10, 204 }, - { 5, 0, 290 }, { 5, 10, 970 }, { 6, 10, 1706 }, { 4, 0, 380 }, - { 5, 0, 52 }, { 7, 0, 277 }, { 9, 0, 368 }, { 11, 0, 791 }, - { 5, 11, 856 }, { 6, 11, 1672 }, { 6, 11, 1757 }, { 6, 11, 1781 }, - { 7, 11, 1150 }, { 7, 11, 1425 }, { 7, 11, 1453 }, { 12, 11, 513 }, - { 5, 11, 92 }, { 7, 10, 3 }, { 10, 11, 736 }, { 12, 11, 102 }, - { 4, 0, 112 }, { 5, 0, 653 }, { 5, 10, 483 }, { 5, 10, 685 }, - { 6, 10, 489 }, { 7, 10, 1204 }, { 8, 10, 394 }, { 4, 10, 921 }, - { 6, 0, 1028 }, { 5, 10, 1007 }, { 5, 11, 590 }, { 9, 11, 213 }, - { 17, 11, 91 }, { 7, 10, 1696 }, { 10, 0, 138 }, { 11, 0, 476 }, - { 5, 0, 725 }, { 5, 0, 727 }, { 7, 0, 1811 }, { 4, 0, 979 }, - { 6, 0, 1821 }, { 6, 0, 1838 }, { 8, 0, 876 }, { 8, 0, 883 }, - { 8, 0, 889 }, { 8, 0, 893 }, { 8, 0, 895 }, { 10, 0, 934 }, - { 12, 0, 720 }, { 14, 0, 459 }, { 20, 0, 123 }, { 7, 11, 551 }, - { 4, 0, 38 }, { 6, 0, 435 }, { 7, 0, 307 }, { 7, 0, 999 }, - { 7, 0, 1481 }, { 7, 0, 1732 }, { 7, 0, 1738 }, { 8, 0, 371 }, - { 9, 0, 414 }, { 11, 0, 316 }, { 12, 0, 52 }, { 13, 0, 420 }, - { 19, 0, 100 }, { 7, 0, 1296 }, { 4, 10, 712 }, { 6, 10, 1629 }, - { 5, 0, 723 }, { 6, 0, 651 }, { 8, 11, 191 }, { 9, 11, 791 }, - { 10, 11, 93 }, { 11, 11, 301 }, { 16, 11, 13 }, { 17, 11, 23 }, - { 18, 11, 135 }, { 19, 11, 12 }, { 20, 11, 1 }, { 20, 11, 12 }, - { 20, 11, 14 }, { 8, 11, 503 }, { 6, 11, 466 }, { 7, 11, 671 }, - { 6, 0, 1200 }, { 6, 0, 1330 }, { 7, 0, 1255 }, { 6, 0, 986 }, - { 5, 0, 109 }, { 6, 0, 1784 }, { 7, 0, 1895 }, { 12, 0, 296 }, - { 12, 0, 302 }, { 7, 11, 983 }, { 5, 10, 485 }, { 6, 0, 660 }, - { 6, 0, 800 }, { 5, 0, 216 }, { 5, 0, 294 }, { 6, 0, 591 }, - { 7, 0, 1879 }, { 9, 0, 141 }, { 9, 0, 270 }, { 9, 0, 679 }, - { 10, 0, 159 }, { 11, 0, 197 }, { 11, 0, 438 }, { 12, 0, 538 }, - { 12, 0, 559 }, { 14, 0, 144 }, { 14, 0, 167 }, { 15, 0, 67 }, - { 4, 10, 285 }, { 5, 10, 317 }, { 6, 10, 301 }, { 7, 10, 7 }, - { 8, 10, 153 }, { 10, 10, 766 }, { 11, 10, 468 }, { 12, 10, 467 }, - { 13, 10, 143 }, { 8, 0, 945 }, { 6, 0, 1090 }, { 9, 0, 81 }, - { 12, 11, 468 }, { 19, 11, 96 }, { 20, 11, 24 }, { 6, 0, 391 }, - { 10, 11, 241 }, { 7, 0, 322 }, { 8, 0, 249 }, { 6, 0, 1412 }, - { 7, 11, 795 }, { 5, 0, 632 }, { 10, 0, 526 }, { 8, 10, 819 }, - { 6, 0, 144 }, { 7, 0, 948 }, { 7, 0, 1042 }, { 8, 0, 235 }, - { 8, 0, 461 }, { 9, 0, 453 }, { 9, 0, 796 }, { 10, 0, 354 }, - { 17, 0, 77 }, { 7, 11, 954 }, { 11, 10, 917 }, { 6, 0, 940 }, - { 6, 0, 1228 }, { 4, 0, 362 }, { 7, 0, 52 }, { 7, 0, 303 }, - { 6, 11, 549 }, { 8, 11, 34 }, { 8, 11, 283 }, { 9, 11, 165 }, - { 10, 11, 475 }, { 7, 11, 370 }, { 7, 11, 1007 }, { 7, 11, 1177 }, - { 7, 11, 1565 }, { 5, 11, 652 }, { 5, 11, 701 }, { 7, 11, 449 }, - { 5, 0, 196 }, { 6, 0, 486 }, { 7, 0, 212 }, { 8, 0, 309 }, - { 8, 0, 346 }, { 6, 10, 1719 }, { 6, 10, 1735 }, { 7, 10, 2016 }, - { 7, 10, 2020 }, { 8, 10, 837 }, { 9, 10, 852 }, { 6, 11, 159 }, - { 6, 11, 364 }, { 7, 11, 516 }, { 7, 11, 1439 }, { 9, 11, 518 }, - { 7, 0, 1912 }, { 7, 0, 1290 }, { 4, 0, 686 }, { 13, 11, 151 }, - { 10, 0, 625 }, { 8, 0, 706 }, { 10, 10, 568 }, { 11, 0, 412 }, - { 4, 0, 30 }, { 5, 0, 43 }, { 8, 10, 67 }, { 10, 10, 419 }, - { 7, 0, 967 }, { 13, 0, 11 }, { 12, 0, 758 }, { 14, 0, 441 }, - { 14, 0, 462 }, { 10, 10, 657 }, { 14, 10, 297 }, { 14, 10, 361 }, - { 11, 10, 729 }, { 4, 0, 220 }, { 7, 0, 1535 }, { 7, 11, 501 }, - { 9, 11, 111 }, { 10, 11, 141 }, { 11, 11, 332 }, { 13, 11, 43 }, - { 13, 11, 429 }, { 14, 11, 130 }, { 14, 11, 415 }, { 17, 11, 102 }, - { 4, 0, 950 }, { 6, 0, 1859 }, { 7, 0, 11 }, { 8, 0, 873 }, - { 12, 0, 710 }, { 12, 0, 718 }, { 12, 0, 748 }, { 12, 0, 765 }, - { 20, 0, 124 }, { 5, 11, 149 }, { 5, 11, 935 }, { 8, 11, 233 }, - { 14, 11, 291 }, { 6, 0, 1579 }, { 7, 0, 890 }, { 8, 10, 51 }, - { 9, 10, 868 }, { 10, 10, 833 }, { 12, 10, 481 }, { 12, 10, 570 }, - { 20, 10, 106 }, { 13, 0, 2 }, { 4, 10, 445 }, { 8, 11, 801 }, - { 7, 0, 1774 }, { 7, 0, 1725 }, { 10, 0, 393 }, { 5, 0, 263 }, - { 6, 0, 414 }, { 4, 11, 322 }, { 5, 10, 239 }, { 7, 0, 456 }, - { 7, 10, 1990 }, { 8, 10, 130 }, { 11, 10, 720 }, { 9, 0, 818 }, - { 5, 10, 123 }, { 6, 10, 530 }, { 7, 10, 348 }, { 7, 10, 1419 }, - { 7, 10, 2024 }, { 6, 0, 178 }, { 6, 0, 1750 }, { 8, 0, 251 }, - { 9, 0, 690 }, { 10, 0, 155 }, { 10, 0, 196 }, { 10, 0, 373 }, - { 11, 0, 698 }, { 13, 0, 155 }, { 20, 0, 93 }, { 5, 0, 97 }, - { 9, 0, 393 }, { 6, 0, 674 }, { 11, 0, 223 }, { 12, 0, 168 }, - { 4, 10, 210 }, { 11, 11, 464 }, { 6, 0, 1639 }, { 18, 0, 159 }, - { 11, 11, 2 }, { 7, 0, 934 }, { 8, 0, 647 }, { 17, 0, 97 }, - { 19, 0, 59 }, { 22, 0, 2 }, { 4, 0, 191 }, { 5, 0, 165 }, - { 9, 0, 346 }, { 10, 0, 655 }, { 11, 0, 885 }, { 4, 10, 430 }, - { 7, 11, 357 }, { 5, 0, 877 }, { 5, 10, 213 }, { 5, 11, 406 }, - { 8, 0, 128 }, { 11, 0, 179 }, { 6, 11, 69 }, { 7, 11, 117 }, - { 7, 0, 1297 }, { 11, 11, 43 }, { 13, 11, 72 }, { 13, 11, 142 }, - { 7, 11, 1830 }, { 14, 0, 164 }, { 5, 0, 57 }, { 6, 0, 101 }, - { 6, 0, 586 }, { 6, 0, 1663 }, { 7, 0, 132 }, { 7, 0, 1154 }, - { 7, 0, 1415 }, { 7, 0, 1507 }, { 12, 0, 493 }, { 15, 0, 105 }, - { 23, 0, 15 }, { 5, 0, 459 }, { 7, 0, 1073 }, { 8, 0, 241 }, - { 8, 0, 334 }, { 5, 11, 826 }, { 5, 10, 108 }, { 5, 10, 219 }, - { 10, 11, 132 }, { 11, 11, 191 }, { 11, 11, 358 }, { 11, 11, 460 }, - { 6, 0, 324 }, { 6, 0, 520 }, { 7, 0, 338 }, { 7, 0, 1729 }, - { 8, 0, 228 }, { 11, 0, 750 }, { 21, 0, 30 }, { 22, 0, 53 }, - { 4, 10, 193 }, { 5, 10, 916 }, { 7, 10, 364 }, { 10, 10, 398 }, - { 10, 10, 726 }, { 11, 10, 317 }, { 11, 10, 626 }, { 12, 10, 142 }, - { 12, 10, 288 }, { 12, 10, 678 }, { 13, 10, 313 }, { 15, 10, 113 }, - { 18, 10, 114 }, { 6, 11, 110 }, { 7, 11, 1681 }, { 7, 0, 910 }, - { 6, 10, 241 }, { 7, 10, 907 }, { 8, 10, 832 }, { 9, 10, 342 }, - { 10, 10, 729 }, { 11, 10, 284 }, { 11, 10, 445 }, { 11, 10, 651 }, - { 11, 10, 863 }, { 13, 10, 398 }, { 18, 10, 99 }, { 7, 0, 705 }, - { 9, 0, 734 }, { 5, 11, 1000 }, { 7, 11, 733 }, { 9, 11, 583 }, - { 4, 0, 73 }, { 6, 0, 612 }, { 7, 0, 927 }, { 7, 0, 1822 }, - { 8, 0, 217 }, { 9, 0, 765 }, { 9, 0, 766 }, { 10, 0, 408 }, - { 11, 0, 51 }, { 11, 0, 793 }, { 12, 0, 266 }, { 15, 0, 158 }, - { 20, 0, 89 }, { 22, 0, 32 }, { 7, 0, 1330 }, { 4, 11, 297 }, - { 6, 11, 529 }, { 7, 11, 152 }, { 7, 11, 713 }, { 7, 11, 1845 }, - { 8, 11, 710 }, { 8, 11, 717 }, { 12, 11, 639 }, { 5, 0, 389 }, - { 8, 0, 636 }, { 6, 0, 1409 }, { 4, 10, 562 }, { 9, 10, 254 }, - { 11, 10, 879 }, { 6, 0, 893 }, { 4, 10, 786 }, { 4, 11, 520 }, - { 7, 11, 575 }, { 8, 0, 21 }, { 12, 0, 721 }, { 8, 0, 959 }, - { 7, 11, 1428 }, { 7, 11, 1640 }, { 9, 11, 169 }, { 9, 11, 182 }, - { 9, 11, 367 }, { 9, 11, 478 }, { 9, 11, 506 }, { 9, 11, 551 }, - { 9, 11, 648 }, { 9, 11, 651 }, { 9, 11, 697 }, { 9, 11, 705 }, - { 9, 11, 725 }, { 9, 11, 787 }, { 9, 11, 794 }, { 10, 11, 198 }, - { 10, 11, 214 }, { 10, 11, 267 }, { 10, 11, 275 }, { 10, 11, 456 }, - { 10, 11, 551 }, { 10, 11, 561 }, { 10, 11, 613 }, { 10, 11, 627 }, - { 10, 11, 668 }, { 10, 11, 675 }, { 10, 11, 691 }, { 10, 11, 695 }, - { 10, 11, 707 }, { 10, 11, 715 }, { 11, 11, 183 }, { 11, 11, 201 }, - { 11, 11, 244 }, { 11, 11, 262 }, { 11, 11, 352 }, { 11, 11, 439 }, - { 11, 11, 493 }, { 11, 11, 572 }, { 11, 11, 591 }, { 11, 11, 608 }, - { 11, 11, 611 }, { 11, 11, 646 }, { 11, 11, 674 }, { 11, 11, 711 }, - { 11, 11, 751 }, { 11, 11, 761 }, { 11, 11, 776 }, { 11, 11, 785 }, - { 11, 11, 850 }, { 11, 11, 853 }, { 11, 11, 862 }, { 11, 11, 865 }, - { 11, 11, 868 }, { 11, 11, 898 }, { 11, 11, 902 }, { 11, 11, 903 }, - { 11, 11, 910 }, { 11, 11, 932 }, { 11, 11, 942 }, { 11, 11, 957 }, - { 11, 11, 967 }, { 11, 11, 972 }, { 12, 11, 148 }, { 12, 11, 195 }, - { 12, 11, 220 }, { 12, 11, 237 }, { 12, 11, 318 }, { 12, 11, 339 }, - { 12, 11, 393 }, { 12, 11, 445 }, { 12, 11, 450 }, { 12, 11, 474 }, - { 12, 11, 509 }, { 12, 11, 533 }, { 12, 11, 591 }, { 12, 11, 594 }, - { 12, 11, 597 }, { 12, 11, 621 }, { 12, 11, 633 }, { 12, 11, 642 }, - { 13, 11, 59 }, { 13, 11, 60 }, { 13, 11, 145 }, { 13, 11, 239 }, - { 13, 11, 250 }, { 13, 11, 273 }, { 13, 11, 329 }, { 13, 11, 344 }, - { 13, 11, 365 }, { 13, 11, 372 }, { 13, 11, 387 }, { 13, 11, 403 }, - { 13, 11, 414 }, { 13, 11, 456 }, { 13, 11, 478 }, { 13, 11, 483 }, - { 13, 11, 489 }, { 14, 11, 55 }, { 14, 11, 57 }, { 14, 11, 81 }, - { 14, 11, 90 }, { 14, 11, 148 }, { 14, 11, 239 }, { 14, 11, 266 }, - { 14, 11, 321 }, { 14, 11, 326 }, { 14, 11, 327 }, { 14, 11, 330 }, - { 14, 11, 347 }, { 14, 11, 355 }, { 14, 11, 401 }, { 14, 11, 411 }, - { 14, 11, 414 }, { 14, 11, 416 }, { 14, 11, 420 }, { 15, 11, 61 }, - { 15, 11, 74 }, { 15, 11, 87 }, { 15, 11, 88 }, { 15, 11, 94 }, - { 15, 11, 96 }, { 15, 11, 116 }, { 15, 11, 149 }, { 15, 11, 154 }, - { 16, 11, 50 }, { 16, 11, 63 }, { 16, 11, 73 }, { 17, 11, 2 }, - { 17, 11, 66 }, { 17, 11, 92 }, { 17, 11, 103 }, { 17, 11, 112 }, - { 18, 11, 50 }, { 18, 11, 54 }, { 18, 11, 82 }, { 18, 11, 86 }, - { 18, 11, 90 }, { 18, 11, 111 }, { 18, 11, 115 }, { 18, 11, 156 }, - { 19, 11, 40 }, { 19, 11, 79 }, { 20, 11, 78 }, { 21, 11, 22 }, - { 9, 11, 170 }, { 6, 0, 1433 }, { 7, 11, 1307 }, { 11, 11, 411 }, - { 5, 0, 189 }, { 7, 0, 442 }, { 7, 0, 443 }, { 8, 0, 281 }, - { 12, 0, 174 }, { 13, 0, 261 }, { 6, 10, 216 }, { 7, 10, 901 }, - { 7, 10, 1343 }, { 8, 10, 493 }, { 5, 11, 397 }, { 6, 11, 154 }, - { 7, 10, 341 }, { 7, 11, 676 }, { 8, 11, 443 }, { 8, 11, 609 }, - { 9, 11, 24 }, { 9, 11, 325 }, { 10, 11, 35 }, { 11, 10, 219 }, - { 11, 11, 535 }, { 11, 11, 672 }, { 11, 11, 1018 }, { 12, 11, 637 }, - { 16, 11, 30 }, { 6, 0, 2 }, { 7, 0, 191 }, { 7, 0, 446 }, - { 7, 0, 1262 }, { 7, 0, 1737 }, { 8, 0, 22 }, { 8, 0, 270 }, - { 8, 0, 612 }, { 9, 0, 4 }, { 9, 0, 312 }, { 9, 0, 436 }, - { 9, 0, 626 }, { 10, 0, 216 }, { 10, 0, 311 }, { 10, 0, 521 }, - { 10, 0, 623 }, { 11, 0, 72 }, { 11, 0, 330 }, { 11, 0, 455 }, - { 12, 0, 321 }, { 12, 0, 504 }, { 12, 0, 530 }, { 12, 0, 543 }, - { 13, 0, 17 }, { 13, 0, 156 }, { 13, 0, 334 }, { 14, 0, 131 }, - { 17, 0, 60 }, { 20, 0, 64 }, { 7, 0, 354 }, { 10, 0, 410 }, - { 11, 0, 815 }, { 11, 10, 130 }, { 7, 10, 1734 }, { 9, 11, 631 }, - { 12, 0, 425 }, { 15, 0, 112 }, { 10, 10, 115 }, { 11, 10, 420 }, - { 13, 10, 404 }, { 14, 10, 346 }, { 15, 10, 54 }, { 6, 0, 60 }, - { 6, 0, 166 }, { 7, 0, 374 }, { 7, 0, 670 }, { 7, 0, 1327 }, - { 8, 0, 411 }, { 8, 0, 435 }, { 9, 0, 653 }, { 9, 0, 740 }, - { 10, 0, 385 }, { 11, 0, 222 }, { 11, 0, 324 }, { 11, 0, 829 }, - { 12, 0, 611 }, { 7, 0, 1611 }, { 13, 0, 14 }, { 15, 0, 44 }, - { 19, 0, 13 }, { 20, 0, 76 }, { 5, 11, 981 }, { 4, 11, 56 }, - { 7, 11, 1791 }, { 8, 11, 607 }, { 8, 11, 651 }, { 11, 11, 465 }, - { 11, 11, 835 }, { 12, 11, 337 }, { 13, 11, 480 }, { 6, 0, 1478 }, - { 5, 10, 1011 }, { 8, 10, 701 }, { 11, 0, 596 }, { 5, 0, 206 }, - { 6, 0, 398 }, { 4, 10, 54 }, { 5, 10, 666 }, { 7, 10, 1039 }, - { 7, 10, 1130 }, { 9, 10, 195 }, { 10, 10, 302 }, { 7, 0, 50 }, - { 9, 11, 158 }, { 10, 11, 411 }, { 7, 11, 1120 }, { 6, 0, 517 }, - { 7, 0, 1159 }, { 10, 0, 621 }, { 11, 0, 192 }, { 6, 10, 1669 }, - { 4, 0, 592 }, { 6, 0, 600 }, { 7, 0, 1653 }, { 10, 0, 223 }, - { 11, 0, 645 }, { 8, 11, 139 }, { 7, 0, 64 }, { 8, 0, 245 }, - { 14, 0, 278 }, { 6, 11, 622 }, { 7, 11, 1030 }, { 8, 0, 604 }, - { 6, 0, 1502 }, { 10, 0, 265 }, { 13, 11, 168 }, { 7, 0, 1763 }, - { 12, 0, 310 }, { 7, 10, 798 }, { 11, 11, 719 }, { 7, 11, 160 }, - { 10, 11, 624 }, { 14, 11, 279 }, { 4, 11, 363 }, { 7, 10, 122 }, - { 9, 10, 259 }, { 10, 10, 84 }, { 11, 10, 470 }, { 12, 10, 541 }, - { 13, 10, 379 }, { 5, 0, 129 }, { 6, 0, 61 }, { 7, 0, 947 }, - { 6, 0, 1356 }, { 7, 11, 1191 }, { 13, 0, 505 }, { 13, 0, 506 }, - { 11, 0, 1000 }, { 5, 10, 82 }, { 5, 10, 131 }, { 7, 10, 1755 }, - { 8, 10, 31 }, { 9, 10, 168 }, { 9, 10, 764 }, { 11, 10, 869 }, - { 6, 0, 966 }, { 6, 10, 605 }, { 6, 11, 292 }, { 5, 11, 177 }, - { 6, 11, 616 }, { 7, 11, 827 }, { 9, 11, 525 }, { 10, 11, 656 }, - { 7, 11, 1486 }, { 10, 11, 31 }, { 5, 10, 278 }, { 9, 10, 68 }, - { 4, 10, 163 }, { 5, 10, 201 }, { 5, 10, 307 }, { 5, 10, 310 }, - { 6, 10, 335 }, { 7, 10, 284 }, { 8, 10, 165 }, { 6, 0, 839 }, - { 7, 10, 1660 }, { 8, 10, 781 }, { 6, 10, 33 }, { 7, 10, 1244 }, - { 5, 0, 637 }, { 4, 11, 161 }, { 5, 11, 631 }, { 9, 0, 590 }, - { 7, 10, 1953 }, { 8, 10, 720 }, { 5, 0, 280 }, { 7, 0, 1226 }, - { 10, 10, 203 }, { 6, 0, 1386 }, { 5, 0, 281 }, { 6, 0, 1026 }, - { 6, 10, 326 }, { 7, 10, 677 }, { 9, 10, 425 }, { 7, 11, 1557 }, - { 7, 11, 1684 }, { 7, 0, 1064 }, { 9, 11, 469 }, { 9, 11, 709 }, - { 12, 11, 512 }, { 14, 11, 65 }, { 17, 11, 12 }, { 6, 0, 917 }, - { 10, 11, 229 }, { 11, 11, 73 }, { 11, 11, 376 }, { 11, 11, 433 }, - { 7, 0, 555 }, { 9, 0, 192 }, { 13, 0, 30 }, { 13, 0, 49 }, - { 15, 0, 150 }, { 16, 0, 76 }, { 20, 0, 52 }, { 7, 10, 1316 }, - { 7, 10, 1412 }, { 7, 10, 1839 }, { 9, 10, 589 }, { 11, 10, 241 }, - { 11, 10, 676 }, { 11, 10, 811 }, { 11, 10, 891 }, { 12, 10, 140 }, - { 12, 10, 346 }, { 12, 10, 479 }, { 13, 10, 381 }, { 14, 10, 188 }, - { 18, 10, 30 }, { 21, 0, 15 }, { 6, 0, 1882 }, { 6, 0, 1883 }, - { 6, 0, 1897 }, { 9, 0, 945 }, { 9, 0, 1014 }, { 9, 0, 1020 }, - { 12, 0, 823 }, { 12, 0, 842 }, { 12, 0, 866 }, { 12, 0, 934 }, - { 15, 0, 242 }, { 18, 0, 208 }, { 6, 0, 965 }, { 6, 0, 1499 }, - { 7, 0, 33 }, { 7, 0, 120 }, { 8, 0, 489 }, { 9, 0, 319 }, - { 10, 0, 820 }, { 11, 0, 1004 }, { 12, 0, 379 }, { 12, 0, 679 }, - { 13, 0, 117 }, { 13, 0, 412 }, { 14, 0, 25 }, { 15, 0, 52 }, - { 15, 0, 161 }, { 16, 0, 47 }, { 21, 0, 2 }, { 6, 11, 558 }, - { 7, 11, 651 }, { 8, 11, 421 }, { 9, 11, 0 }, { 10, 11, 34 }, - { 4, 0, 937 }, { 5, 0, 801 }, { 7, 0, 473 }, { 5, 10, 358 }, - { 7, 10, 1184 }, { 10, 10, 662 }, { 13, 10, 212 }, { 13, 10, 304 }, - { 13, 10, 333 }, { 17, 10, 98 }, { 4, 0, 877 }, { 6, 0, 693 }, - { 6, 0, 824 }, { 4, 0, 365 }, { 7, 11, 1832 }, { 10, 11, 374 }, - { 5, 0, 7 }, { 11, 0, 774 }, { 4, 0, 734 }, { 5, 0, 662 }, - { 6, 0, 430 }, { 4, 0, 746 }, { 7, 0, 1090 }, { 5, 0, 360 }, - { 8, 0, 237 }, { 10, 0, 231 }, { 19, 0, 124 }, { 10, 11, 348 }, - { 6, 11, 6 }, { 7, 11, 81 }, { 7, 11, 771 }, { 7, 11, 1731 }, - { 9, 11, 405 }, { 10, 11, 421 }, { 6, 0, 740 }, { 9, 0, 822 }, - { 5, 10, 946 }, { 7, 0, 1485 }, { 8, 0, 929 }, { 7, 10, 411 }, - { 8, 10, 631 }, { 9, 10, 323 }, { 10, 10, 355 }, { 11, 10, 491 }, - { 12, 10, 143 }, { 12, 10, 402 }, { 13, 10, 73 }, { 14, 10, 408 }, - { 15, 10, 107 }, { 18, 10, 71 }, { 7, 10, 590 }, { 5, 11, 881 }, - { 5, 11, 885 }, { 22, 11, 25 }, { 4, 0, 852 }, { 5, 11, 142 }, - { 6, 11, 546 }, { 7, 10, 1467 }, { 8, 10, 328 }, { 10, 10, 544 }, - { 11, 10, 955 }, { 13, 10, 320 }, { 17, 10, 83 }, { 9, 0, 17 }, - { 10, 0, 291 }, { 11, 10, 511 }, { 13, 10, 394 }, { 14, 10, 298 }, - { 14, 10, 318 }, { 18, 10, 103 }, { 5, 11, 466 }, { 11, 11, 571 }, - { 12, 11, 198 }, { 13, 11, 283 }, { 14, 11, 186 }, { 15, 11, 21 }, - { 15, 11, 103 }, { 6, 0, 1001 }, { 4, 11, 185 }, { 5, 11, 257 }, - { 5, 11, 839 }, { 5, 11, 936 }, { 7, 11, 171 }, { 9, 11, 399 }, - { 10, 11, 258 }, { 10, 11, 395 }, { 10, 11, 734 }, { 11, 11, 1014 }, - { 12, 11, 23 }, { 13, 11, 350 }, { 14, 11, 150 }, { 19, 11, 6 }, - { 15, 0, 35 }, { 4, 0, 831 }, { 5, 10, 835 }, { 6, 10, 483 }, - { 4, 0, 277 }, { 5, 0, 608 }, { 6, 0, 493 }, { 7, 0, 457 }, - { 12, 0, 384 }, { 7, 11, 404 }, { 7, 11, 1377 }, { 7, 11, 1430 }, - { 7, 11, 2017 }, { 8, 11, 149 }, { 8, 11, 239 }, { 8, 11, 512 }, - { 8, 11, 793 }, { 8, 11, 818 }, { 9, 11, 474 }, { 9, 11, 595 }, - { 10, 11, 122 }, { 10, 11, 565 }, { 10, 11, 649 }, { 10, 11, 783 }, - { 11, 11, 239 }, { 11, 11, 295 }, { 11, 11, 447 }, { 11, 11, 528 }, - { 11, 11, 639 }, { 11, 11, 800 }, { 11, 11, 936 }, { 12, 11, 25 }, - { 12, 11, 73 }, { 12, 11, 77 }, { 12, 11, 157 }, { 12, 11, 316 }, - { 12, 11, 390 }, { 12, 11, 391 }, { 12, 11, 394 }, { 12, 11, 395 }, - { 12, 11, 478 }, { 12, 11, 503 }, { 12, 11, 592 }, { 12, 11, 680 }, - { 13, 11, 50 }, { 13, 11, 53 }, { 13, 11, 132 }, { 13, 11, 198 }, - { 13, 11, 275 }, { 13, 11, 322 }, { 13, 11, 415 }, { 14, 11, 71 }, - { 14, 11, 257 }, { 14, 11, 395 }, { 15, 11, 71 }, { 15, 11, 136 }, - { 17, 11, 123 }, { 18, 11, 93 }, { 19, 11, 58 }, { 6, 0, 1351 }, - { 7, 0, 27 }, { 7, 0, 316 }, { 8, 11, 712 }, { 8, 0, 984 }, - { 5, 0, 552 }, { 9, 0, 264 }, { 4, 0, 401 }, { 6, 0, 710 }, - { 6, 0, 1111 }, { 6, 0, 1343 }, { 6, 0, 1211 }, { 9, 0, 543 }, - { 10, 0, 524 }, { 11, 0, 108 }, { 11, 0, 653 }, { 12, 0, 524 }, - { 13, 0, 123 }, { 14, 0, 252 }, { 16, 0, 18 }, { 19, 0, 38 }, - { 20, 0, 26 }, { 20, 0, 65 }, { 21, 0, 3 }, { 23, 0, 11 }, - { 4, 0, 205 }, { 5, 0, 623 }, { 7, 0, 104 }, { 8, 0, 519 }, - { 9, 0, 716 }, { 4, 10, 677 }, { 4, 11, 377 }, { 24, 11, 13 }, - { 7, 11, 1673 }, { 7, 0, 579 }, { 9, 0, 41 }, { 9, 0, 244 }, - { 9, 0, 669 }, { 10, 0, 5 }, { 11, 0, 861 }, { 11, 0, 951 }, - { 11, 0, 980 }, { 4, 0, 717 }, { 8, 0, 1011 }, { 4, 0, 805 }, - { 4, 11, 180 }, { 7, 11, 1906 }, { 4, 10, 777 }, { 4, 10, 331 }, - { 4, 0, 489 }, { 6, 0, 1024 }, { 4, 11, 491 }, { 5, 10, 747 }, - { 7, 11, 1182 }, { 4, 11, 171 }, { 10, 11, 234 }, { 4, 11, 586 }, - { 7, 11, 1186 }, { 10, 11, 631 }, { 7, 0, 892 }, { 7, 11, 336 }, - { 9, 11, 931 }, { 10, 11, 334 }, { 20, 11, 71 }, { 9, 0, 473 }, - { 6, 0, 864 }, { 12, 0, 659 }, { 11, 11, 926 }, { 7, 0, 819 }, - { 9, 0, 26 }, { 9, 0, 392 }, { 10, 0, 152 }, { 10, 0, 226 }, - { 11, 0, 19 }, { 12, 0, 276 }, { 12, 0, 426 }, { 12, 0, 589 }, - { 13, 0, 460 }, { 15, 0, 97 }, { 19, 0, 48 }, { 20, 0, 104 }, - { 7, 0, 51 }, { 5, 10, 326 }, { 4, 10, 691 }, { 18, 10, 16 }, - { 9, 0, 130 }, { 11, 0, 765 }, { 10, 10, 680 }, { 10, 10, 793 }, - { 13, 10, 357 }, { 5, 11, 765 }, { 8, 0, 229 }, { 6, 10, 32 }, - { 7, 10, 385 }, { 7, 10, 757 }, { 7, 10, 1916 }, { 8, 10, 94 }, - { 8, 10, 711 }, { 9, 10, 541 }, { 10, 10, 162 }, { 10, 10, 795 }, - { 11, 10, 989 }, { 11, 10, 1010 }, { 12, 10, 14 }, { 14, 10, 308 }, - { 7, 11, 474 }, { 9, 11, 578 }, { 4, 0, 674 }, { 4, 0, 770 }, - { 5, 0, 79 }, { 7, 0, 1027 }, { 7, 0, 1477 }, { 11, 0, 52 }, - { 5, 11, 424 }, { 6, 0, 1666 }, { 6, 0, 409 }, { 6, 10, 349 }, - { 6, 10, 1682 }, { 7, 10, 1252 }, { 8, 10, 112 }, { 8, 11, 714 }, - { 9, 10, 435 }, { 9, 10, 668 }, { 10, 10, 290 }, { 10, 10, 319 }, - { 10, 10, 815 }, { 11, 10, 180 }, { 11, 10, 837 }, { 12, 10, 240 }, - { 13, 10, 152 }, { 13, 10, 219 }, { 14, 10, 158 }, { 5, 0, 789 }, - { 6, 0, 195 }, { 4, 0, 251 }, { 4, 0, 688 }, { 7, 0, 513 }, - { 7, 0, 1284 }, { 4, 10, 581 }, { 9, 11, 420 }, { 10, 11, 269 }, - { 10, 11, 285 }, { 10, 11, 576 }, { 11, 11, 397 }, { 13, 11, 175 }, - { 17, 11, 90 }, { 6, 10, 126 }, { 7, 10, 573 }, { 8, 10, 397 }, - { 14, 10, 44 }, { 4, 11, 429 }, { 5, 0, 889 }, { 4, 0, 160 }, - { 5, 0, 330 }, { 7, 0, 1434 }, { 8, 0, 174 }, { 7, 11, 18 }, - { 7, 11, 699 }, { 7, 11, 1966 }, { 8, 11, 752 }, { 9, 11, 273 }, - { 9, 11, 412 }, { 9, 11, 703 }, { 10, 11, 71 }, { 10, 11, 427 }, - { 10, 11, 508 }, { 18, 11, 97 }, { 6, 0, 872 }, { 6, 0, 899 }, - { 5, 10, 926 }, { 6, 0, 1126 }, { 6, 0, 918 }, { 4, 11, 53 }, - { 5, 11, 186 }, { 7, 11, 752 }, { 7, 0, 268 }, { 8, 0, 569 }, - { 6, 0, 1224 }, { 6, 0, 1361 }, { 7, 10, 1232 }, { 9, 10, 531 }, - { 8, 11, 575 }, { 10, 11, 289 }, { 11, 11, 319 }, { 5, 10, 670 }, - { 4, 11, 675 }, { 5, 0, 374 }, { 7, 10, 1957 }, { 5, 0, 731 }, - { 11, 0, 190 }, { 15, 0, 49 }, { 11, 11, 190 }, { 15, 11, 49 }, - { 4, 0, 626 }, { 5, 0, 506 }, { 5, 0, 642 }, { 6, 0, 425 }, - { 10, 0, 202 }, { 11, 0, 141 }, { 9, 0, 444 }, { 7, 10, 242 }, - { 7, 10, 1942 }, { 6, 11, 209 }, { 8, 11, 468 }, { 9, 11, 210 }, - { 11, 11, 36 }, { 12, 11, 28 }, { 12, 11, 630 }, { 13, 11, 21 }, - { 13, 11, 349 }, { 14, 11, 7 }, { 17, 11, 13 }, { 4, 11, 342 }, - { 7, 11, 1179 }, { 5, 10, 834 }, { 7, 10, 1202 }, { 8, 10, 14 }, - { 9, 10, 481 }, { 9, 10, 880 }, { 4, 11, 928 }, { 5, 11, 910 }, - { 4, 11, 318 }, { 4, 11, 496 }, { 7, 11, 856 }, { 11, 11, 654 }, - { 8, 0, 835 }, { 7, 0, 1526 }, { 10, 10, 465 }, { 23, 0, 17 }, - { 7, 0, 477 }, { 4, 10, 357 }, { 6, 10, 172 }, { 7, 10, 143 }, - { 9, 10, 413 }, { 6, 0, 1374 }, { 10, 0, 994 }, { 18, 0, 76 }, - { 4, 10, 590 }, { 7, 0, 287 }, { 8, 0, 355 }, { 9, 0, 293 }, - { 9, 0, 743 }, { 6, 0, 1389 }, { 7, 11, 915 }, { 8, 11, 247 }, - { 19, 11, 0 }, { 4, 11, 202 }, { 5, 11, 382 }, { 6, 11, 454 }, - { 7, 11, 936 }, { 7, 11, 1803 }, { 8, 11, 758 }, { 9, 11, 375 }, - { 9, 11, 895 }, { 10, 11, 743 }, { 10, 11, 792 }, { 11, 11, 978 }, - { 11, 11, 1012 }, { 14, 11, 109 }, { 5, 0, 384 }, { 8, 0, 455 }, - { 12, 0, 48 }, { 4, 11, 390 }, { 5, 10, 169 }, { 7, 10, 333 }, - { 8, 10, 45 }, { 5, 0, 264 }, { 6, 0, 184 }, { 10, 11, 791 }, - { 5, 11, 717 }, { 4, 10, 198 }, { 6, 11, 445 }, { 7, 11, 332 }, - { 9, 11, 909 }, { 8, 0, 1001 }, { 4, 10, 24 }, { 5, 10, 140 }, - { 5, 10, 185 }, { 7, 10, 1500 }, { 11, 10, 565 }, { 11, 10, 838 }, - { 6, 11, 578 }, { 5, 0, 633 }, { 6, 0, 28 }, { 7, 0, 1323 }, - { 4, 0, 851 }, { 8, 11, 267 }, { 7, 0, 359 }, { 8, 0, 243 }, - { 12, 0, 175 }, { 4, 10, 334 }, { 5, 10, 593 }, { 13, 11, 87 }, - { 8, 11, 766 }, { 10, 0, 287 }, { 12, 0, 138 }, { 10, 11, 287 }, - { 12, 11, 138 }, { 4, 0, 105 }, { 4, 0, 740 }, { 12, 10, 116 }, - { 6, 0, 857 }, { 7, 11, 1841 }, { 6, 0, 1402 }, { 9, 0, 819 }, - { 4, 11, 584 }, { 4, 10, 709 }, { 5, 10, 897 }, { 5, 0, 224 }, - { 13, 0, 174 }, { 18, 0, 52 }, { 7, 10, 1840 }, { 4, 10, 608 }, - { 5, 10, 497 }, { 11, 11, 60 }, { 4, 0, 758 }, { 7, 0, 1649 }, - { 4, 11, 226 }, { 4, 11, 326 }, { 7, 11, 1770 }, { 5, 11, 426 }, - { 8, 11, 30 }, { 9, 11, 2 }, { 11, 11, 549 }, { 19, 11, 122 }, - { 7, 10, 2039 }, { 6, 10, 540 }, { 8, 10, 136 }, { 4, 0, 573 }, - { 8, 0, 655 }, { 4, 10, 897 }, { 5, 10, 786 }, { 7, 0, 351 }, - { 11, 0, 128 }, { 5, 10, 999 }, { 4, 10, 299 }, { 7, 10, 1004 }, - { 5, 0, 918 }, { 4, 11, 345 }, { 4, 11, 385 }, { 7, 11, 265 }, - { 7, 11, 587 }, { 5, 10, 456 }, { 8, 10, 180 }, { 6, 0, 687 }, - { 6, 0, 1537 }, { 4, 11, 347 }, { 5, 11, 423 }, { 5, 11, 996 }, - { 7, 11, 1329 }, { 4, 10, 755 }, { 7, 11, 1259 }, { 9, 11, 125 }, - { 11, 11, 65 }, { 12, 11, 285 }, { 5, 11, 136 }, { 6, 11, 136 }, - { 8, 11, 644 }, { 6, 0, 1525 }, { 4, 0, 1009 }, { 7, 0, 1139 }, - { 11, 10, 338 }, { 4, 0, 340 }, { 7, 10, 1464 }, { 8, 0, 847 }, - { 10, 0, 861 }, { 10, 0, 876 }, { 10, 0, 889 }, { 10, 0, 922 }, - { 10, 0, 929 }, { 10, 0, 933 }, { 12, 0, 784 }, { 12, 0, 791 }, - { 11, 0, 176 }, { 9, 11, 134 }, { 10, 11, 2 }, { 10, 11, 27 }, - { 10, 11, 333 }, { 11, 11, 722 }, { 15, 11, 1 }, { 4, 11, 433 }, - { 5, 11, 719 }, { 5, 0, 985 }, { 7, 0, 509 }, { 7, 0, 529 }, - { 17, 0, 96 }, { 4, 0, 615 }, { 4, 10, 890 }, { 5, 10, 805 }, - { 5, 10, 819 }, { 5, 10, 961 }, { 6, 10, 396 }, { 6, 10, 1631 }, - { 6, 10, 1678 }, { 7, 10, 1967 }, { 7, 10, 2041 }, { 9, 10, 630 }, - { 11, 10, 8 }, { 11, 10, 1019 }, { 12, 10, 176 }, { 13, 10, 225 }, - { 14, 10, 292 }, { 21, 10, 24 }, { 7, 0, 1919 }, { 6, 0, 1131 }, - { 16, 11, 21 }, { 16, 11, 51 }, { 7, 10, 1815 }, { 4, 0, 247 }, - { 7, 10, 1505 }, { 10, 10, 190 }, { 10, 10, 634 }, { 11, 10, 792 }, - { 12, 10, 358 }, { 12, 10, 447 }, { 5, 10, 0 }, { 6, 10, 536 }, - { 7, 10, 604 }, { 13, 10, 445 }, { 17, 10, 126 }, { 4, 0, 184 }, - { 5, 0, 390 }, { 6, 0, 337 }, { 7, 0, 23 }, { 7, 0, 494 }, - { 7, 0, 618 }, { 7, 0, 1456 }, { 8, 0, 27 }, { 8, 0, 599 }, - { 10, 0, 153 }, { 11, 0, 710 }, { 6, 10, 232 }, { 6, 10, 412 }, - { 7, 10, 1074 }, { 8, 10, 9 }, { 8, 10, 157 }, { 8, 10, 786 }, - { 9, 10, 196 }, { 9, 10, 352 }, { 9, 10, 457 }, { 10, 10, 337 }, - { 11, 10, 232 }, { 11, 10, 877 }, { 12, 10, 480 }, { 12, 10, 546 }, - { 13, 0, 38 }, { 7, 10, 958 }, { 4, 10, 382 }, { 8, 10, 579 }, - { 4, 10, 212 }, { 7, 10, 1206 }, { 4, 11, 555 }, { 8, 11, 536 }, - { 10, 11, 288 }, { 11, 11, 139 }, { 11, 11, 171 }, { 9, 11, 370 }, - { 10, 11, 90 }, { 4, 0, 1015 }, { 6, 0, 1088 }, { 5, 10, 655 }, - { 7, 11, 977 }, { 6, 0, 1585 }, { 17, 10, 67 }, { 19, 10, 74 }, - { 10, 0, 227 }, { 11, 0, 497 }, { 11, 0, 709 }, { 12, 0, 415 }, - { 6, 0, 360 }, { 7, 0, 1664 }, { 8, 0, 478 }, { 7, 0, 95 }, - { 6, 10, 231 }, { 8, 10, 423 }, { 12, 11, 65 }, { 4, 11, 257 }, - { 7, 11, 2031 }, { 7, 11, 1768 }, { 5, 10, 300 }, { 11, 11, 211 }, - { 8, 0, 699 }, { 6, 10, 237 }, { 7, 10, 611 }, { 8, 10, 100 }, - { 9, 10, 416 }, { 11, 10, 335 }, { 12, 10, 173 }, { 18, 10, 101 }, - { 14, 0, 26 }, { 18, 0, 150 }, { 6, 0, 581 }, { 7, 0, 1119 }, - { 7, 10, 1208 }, { 4, 0, 739 }, { 6, 11, 83 }, { 6, 11, 1733 }, - { 7, 11, 1389 }, { 9, 0, 869 }, { 4, 0, 67 }, { 5, 0, 422 }, - { 7, 0, 1037 }, { 7, 0, 1289 }, { 7, 0, 1555 }, { 9, 0, 741 }, - { 17, 0, 108 }, { 5, 10, 199 }, { 12, 10, 427 }, { 18, 10, 38 }, - { 8, 0, 464 }, { 14, 0, 42 }, { 10, 0, 96 }, { 8, 11, 501 }, - { 9, 11, 696 }, { 6, 11, 592 }, { 4, 0, 512 }, { 4, 0, 966 }, - { 5, 0, 342 }, { 6, 0, 1855 }, { 8, 0, 869 }, { 8, 0, 875 }, - { 8, 0, 901 }, { 16, 0, 26 }, { 8, 0, 203 }, { 11, 0, 823 }, - { 11, 0, 846 }, { 12, 0, 482 }, { 13, 0, 277 }, { 13, 0, 302 }, - { 13, 0, 464 }, { 14, 0, 205 }, { 14, 0, 221 }, { 4, 0, 449 }, - { 5, 0, 718 }, { 7, 11, 1718 }, { 9, 11, 95 }, { 9, 11, 274 }, - { 10, 11, 279 }, { 10, 11, 317 }, { 10, 11, 420 }, { 11, 11, 303 }, - { 11, 11, 808 }, { 12, 11, 134 }, { 12, 11, 367 }, { 13, 11, 149 }, - { 13, 11, 347 }, { 14, 11, 349 }, { 14, 11, 406 }, { 18, 11, 22 }, - { 18, 11, 89 }, { 18, 11, 122 }, { 19, 11, 47 }, { 5, 11, 26 }, - { 4, 0, 355 }, { 6, 0, 311 }, { 9, 0, 256 }, { 10, 0, 404 }, - { 4, 11, 550 }, { 10, 0, 758 }, { 6, 10, 312 }, { 6, 10, 1715 }, - { 10, 10, 584 }, { 11, 10, 546 }, { 11, 10, 692 }, { 12, 10, 259 }, - { 12, 10, 295 }, { 13, 10, 46 }, { 13, 10, 154 }, { 8, 11, 822 }, - { 5, 0, 827 }, { 4, 11, 902 }, { 5, 11, 809 }, { 6, 11, 122 }, - { 7, 11, 896 }, { 5, 0, 64 }, { 12, 0, 581 }, { 4, 0, 442 }, - { 6, 0, 739 }, { 7, 0, 1047 }, { 7, 0, 1352 }, { 7, 0, 1643 }, - { 7, 11, 1911 }, { 9, 11, 449 }, { 10, 11, 192 }, { 10, 11, 740 }, - { 7, 11, 262 }, { 4, 10, 588 }, { 5, 11, 620 }, { 5, 0, 977 }, - { 6, 0, 288 }, { 7, 0, 528 }, { 4, 11, 34 }, { 5, 11, 574 }, - { 7, 11, 279 }, { 7, 11, 1624 }, { 8, 11, 601 }, { 6, 0, 1375 }, - { 4, 10, 231 }, { 5, 10, 61 }, { 6, 10, 104 }, { 7, 10, 729 }, - { 7, 10, 964 }, { 7, 10, 1658 }, { 12, 10, 414 }, { 6, 10, 263 }, - { 10, 10, 757 }, { 4, 10, 320 }, { 4, 0, 254 }, { 7, 0, 1309 }, - { 5, 11, 332 }, { 7, 11, 1309 }, { 6, 11, 261 }, { 8, 11, 182 }, - { 11, 11, 943 }, { 4, 10, 225 }, { 6, 0, 12 }, { 7, 0, 1219 }, - { 4, 0, 275 }, { 12, 0, 376 }, { 6, 11, 1721 }, { 13, 11, 490 }, - { 4, 11, 933 }, { 5, 11, 880 }, { 6, 0, 951 }, { 6, 0, 1109 }, - { 6, 0, 1181 }, { 7, 0, 154 }, { 4, 10, 405 }, { 7, 10, 817 }, - { 14, 10, 58 }, { 17, 10, 37 }, { 18, 10, 124 }, { 6, 0, 1520 }, - { 5, 10, 974 }, { 6, 0, 1753 }, { 6, 0, 369 }, { 6, 0, 502 }, - { 7, 0, 1036 }, { 8, 0, 348 }, { 9, 0, 452 }, { 10, 0, 26 }, - { 11, 0, 224 }, { 11, 0, 387 }, { 11, 0, 772 }, { 12, 0, 95 }, - { 12, 0, 629 }, { 13, 0, 195 }, { 13, 0, 207 }, { 13, 0, 241 }, - { 14, 0, 260 }, { 14, 0, 270 }, { 15, 0, 140 }, { 4, 0, 269 }, - { 5, 0, 480 }, { 7, 0, 532 }, { 7, 0, 1197 }, { 7, 0, 1358 }, - { 8, 0, 291 }, { 11, 0, 349 }, { 14, 0, 396 }, { 5, 10, 235 }, - { 7, 10, 1239 }, { 11, 10, 131 }, { 12, 10, 370 }, { 7, 10, 956 }, - { 7, 10, 1157 }, { 7, 10, 1506 }, { 7, 10, 1606 }, { 7, 10, 1615 }, - { 7, 10, 1619 }, { 7, 10, 1736 }, { 7, 10, 1775 }, { 8, 10, 590 }, - { 9, 10, 324 }, { 9, 10, 736 }, { 9, 10, 774 }, { 9, 10, 776 }, - { 9, 10, 784 }, { 10, 10, 567 }, { 10, 10, 708 }, { 11, 10, 518 }, - { 11, 10, 613 }, { 11, 10, 695 }, { 11, 10, 716 }, { 11, 10, 739 }, - { 11, 10, 770 }, { 11, 10, 771 }, { 11, 10, 848 }, { 11, 10, 857 }, - { 11, 10, 931 }, { 11, 10, 947 }, { 12, 10, 326 }, { 12, 10, 387 }, - { 12, 10, 484 }, { 12, 10, 528 }, { 12, 10, 552 }, { 12, 10, 613 }, - { 13, 10, 189 }, { 13, 10, 256 }, { 13, 10, 340 }, { 13, 10, 432 }, - { 13, 10, 436 }, { 13, 10, 440 }, { 13, 10, 454 }, { 14, 10, 174 }, - { 14, 10, 220 }, { 14, 10, 284 }, { 14, 10, 390 }, { 17, 10, 121 }, - { 8, 11, 598 }, { 9, 11, 664 }, { 10, 11, 441 }, { 9, 10, 137 }, - { 10, 10, 221 }, { 5, 11, 812 }, { 20, 0, 15 }, { 6, 0, 1341 }, - { 6, 0, 1017 }, { 4, 11, 137 }, { 7, 11, 1178 }, { 7, 11, 1520 }, - { 7, 10, 390 }, { 10, 10, 140 }, { 7, 11, 1260 }, { 7, 11, 1790 }, - { 9, 11, 191 }, { 7, 10, 1144 }, { 6, 0, 1810 }, { 7, 0, 657 }, - { 8, 0, 886 }, { 10, 0, 857 }, { 14, 0, 440 }, { 16, 0, 96 }, - { 8, 0, 533 }, { 6, 11, 1661 }, { 7, 11, 1975 }, { 7, 11, 2009 }, - { 7, 11, 2011 }, { 6, 0, 1453 }, { 6, 10, 464 }, { 4, 11, 715 }, - { 5, 10, 407 }, { 11, 10, 204 }, { 11, 10, 243 }, { 11, 10, 489 }, - { 12, 10, 293 }, { 19, 10, 37 }, { 20, 10, 73 }, { 22, 10, 38 }, - { 5, 11, 703 }, { 4, 0, 211 }, { 7, 0, 1483 }, { 5, 10, 325 }, - { 8, 10, 5 }, { 8, 10, 227 }, { 9, 10, 105 }, { 10, 10, 585 }, - { 12, 10, 614 }, { 4, 0, 332 }, { 5, 0, 335 }, { 6, 0, 238 }, - { 7, 0, 269 }, { 7, 0, 811 }, { 7, 0, 1797 }, { 8, 0, 836 }, - { 9, 0, 507 }, { 13, 0, 242 }, { 5, 11, 89 }, { 7, 11, 1915 }, - { 9, 11, 185 }, { 9, 11, 235 }, { 9, 11, 496 }, { 10, 11, 64 }, - { 10, 11, 270 }, { 10, 11, 403 }, { 10, 11, 469 }, { 10, 11, 529 }, - { 10, 11, 590 }, { 11, 11, 140 }, { 11, 11, 860 }, { 13, 11, 1 }, - { 13, 11, 422 }, { 14, 11, 341 }, { 14, 11, 364 }, { 17, 11, 93 }, - { 18, 11, 113 }, { 19, 11, 97 }, { 19, 11, 113 }, { 5, 11, 695 }, - { 16, 0, 19 }, { 5, 11, 6 }, { 6, 11, 183 }, { 6, 10, 621 }, - { 7, 11, 680 }, { 7, 11, 978 }, { 7, 11, 1013 }, { 7, 11, 1055 }, - { 12, 11, 230 }, { 13, 11, 172 }, { 13, 10, 504 }, { 18, 11, 29 }, - { 8, 0, 156 }, { 5, 0, 1009 }, { 6, 11, 29 }, { 11, 11, 63 }, - { 6, 0, 820 }, { 6, 10, 218 }, { 7, 10, 454 }, { 7, 10, 782 }, - { 8, 10, 768 }, { 12, 10, 686 }, { 5, 0, 228 }, { 6, 0, 203 }, - { 7, 0, 156 }, { 8, 0, 347 }, { 9, 0, 265 }, { 18, 0, 39 }, - { 20, 0, 54 }, { 21, 0, 31 }, { 22, 0, 3 }, { 23, 0, 0 }, - { 15, 11, 8 }, { 18, 11, 39 }, { 20, 11, 54 }, { 21, 11, 31 }, - { 22, 11, 3 }, { 23, 11, 0 }, { 7, 0, 1131 }, { 7, 0, 1468 }, - { 16, 10, 0 }, { 6, 0, 1276 }, { 10, 10, 676 }, { 12, 10, 462 }, - { 4, 11, 311 }, { 6, 11, 1740 }, { 7, 11, 170 }, { 8, 11, 90 }, - { 8, 11, 177 }, { 8, 11, 415 }, { 11, 11, 714 }, { 14, 11, 281 }, - { 6, 10, 164 }, { 6, 0, 1792 }, { 10, 0, 849 }, { 22, 10, 50 }, - { 5, 0, 291 }, { 5, 0, 318 }, { 7, 0, 765 }, { 9, 0, 389 }, - { 12, 0, 548 }, { 8, 11, 522 }, { 14, 11, 328 }, { 11, 11, 91 }, - { 13, 11, 129 }, { 15, 11, 101 }, { 17, 11, 125 }, { 4, 11, 494 }, - { 6, 11, 74 }, { 7, 11, 44 }, { 7, 11, 407 }, { 8, 11, 551 }, - { 12, 11, 17 }, { 15, 11, 5 }, { 20, 11, 11 }, { 4, 11, 276 }, - { 5, 11, 296 }, { 6, 10, 343 }, { 7, 10, 195 }, { 7, 11, 1777 }, - { 9, 10, 226 }, { 10, 10, 197 }, { 10, 10, 575 }, { 11, 10, 502 }, - { 11, 10, 899 }, { 10, 0, 525 }, { 11, 0, 82 }, { 14, 0, 453 }, - { 4, 11, 7 }, { 5, 11, 90 }, { 5, 11, 158 }, { 6, 11, 542 }, - { 7, 11, 221 }, { 7, 11, 1574 }, { 9, 11, 490 }, { 10, 11, 540 }, - { 11, 11, 443 }, { 11, 11, 757 }, { 7, 0, 666 }, { 22, 10, 29 }, - { 22, 11, 29 }, { 4, 0, 422 }, { 19, 10, 8 }, { 5, 0, 355 }, - { 17, 0, 0 }, { 6, 0, 1873 }, { 9, 0, 918 }, { 7, 11, 588 }, - { 9, 11, 175 }, { 10, 11, 530 }, { 15, 11, 31 }, { 11, 0, 165 }, - { 7, 10, 1125 }, { 9, 10, 143 }, { 14, 10, 405 }, { 22, 10, 21 }, - { 9, 0, 260 }, { 9, 0, 905 }, { 5, 11, 872 }, { 6, 11, 57 }, - { 6, 11, 479 }, { 6, 11, 562 }, { 7, 11, 471 }, { 7, 11, 1060 }, - { 9, 11, 447 }, { 9, 11, 454 }, { 13, 11, 6 }, { 10, 11, 704 }, - { 5, 0, 865 }, { 5, 0, 914 }, { 6, 0, 1625 }, { 5, 0, 234 }, - { 7, 0, 1383 }, { 5, 11, 31 }, { 6, 11, 614 }, { 17, 11, 61 }, - { 7, 11, 1200 }, { 10, 11, 460 }, { 6, 11, 424 }, { 7, 11, 1866 }, - { 8, 0, 306 }, { 5, 10, 959 }, { 12, 11, 30 }, { 13, 11, 148 }, - { 14, 11, 87 }, { 14, 11, 182 }, { 16, 11, 42 }, { 18, 11, 92 }, - { 20, 11, 70 }, { 6, 0, 1919 }, { 6, 0, 1921 }, { 9, 0, 923 }, - { 9, 0, 930 }, { 9, 0, 941 }, { 9, 0, 949 }, { 9, 0, 987 }, - { 9, 0, 988 }, { 9, 0, 992 }, { 12, 0, 802 }, { 12, 0, 815 }, - { 12, 0, 856 }, { 12, 0, 885 }, { 12, 0, 893 }, { 12, 0, 898 }, - { 12, 0, 919 }, { 12, 0, 920 }, { 12, 0, 941 }, { 12, 0, 947 }, - { 15, 0, 183 }, { 15, 0, 185 }, { 15, 0, 189 }, { 15, 0, 197 }, - { 15, 0, 202 }, { 15, 0, 233 }, { 18, 0, 218 }, { 18, 0, 219 }, - { 18, 0, 233 }, { 15, 11, 156 }, { 7, 10, 1759 }, { 8, 10, 173 }, - { 13, 0, 163 }, { 13, 0, 180 }, { 18, 0, 78 }, { 20, 0, 35 }, - { 5, 11, 13 }, { 6, 11, 142 }, { 6, 10, 266 }, { 6, 11, 97 }, - { 7, 11, 116 }, { 8, 11, 322 }, { 8, 11, 755 }, { 9, 11, 548 }, - { 10, 11, 714 }, { 11, 11, 884 }, { 13, 11, 324 }, { 7, 0, 1312 }, - { 9, 0, 814 }, { 9, 11, 676 }, { 5, 0, 707 }, { 7, 0, 1493 }, - { 6, 0, 421 }, { 7, 0, 61 }, { 7, 0, 1540 }, { 10, 0, 11 }, - { 10, 0, 501 }, { 12, 0, 733 }, { 12, 0, 766 }, { 7, 11, 866 }, - { 7, 11, 1163 }, { 9, 0, 341 }, { 14, 0, 98 }, { 17, 11, 115 }, - { 7, 11, 1111 }, { 8, 10, 300 }, { 8, 0, 1014 }, { 8, 11, 1 }, - { 9, 11, 112 }, { 10, 11, 326 }, { 4, 11, 730 }, { 5, 11, 488 }, - { 6, 11, 527 }, { 7, 11, 489 }, { 7, 11, 1636 }, { 8, 11, 121 }, - { 8, 11, 144 }, { 8, 11, 359 }, { 9, 11, 193 }, { 9, 11, 241 }, - { 9, 11, 336 }, { 9, 11, 882 }, { 11, 11, 266 }, { 11, 11, 372 }, - { 11, 11, 944 }, { 12, 11, 401 }, { 12, 11, 641 }, { 6, 0, 971 }, - { 6, 0, 1121 }, { 6, 0, 102 }, { 7, 0, 72 }, { 15, 0, 142 }, - { 19, 0, 67 }, { 23, 0, 30 }, { 7, 0, 823 }, { 6, 0, 1045 }, - { 5, 10, 427 }, { 5, 10, 734 }, { 7, 10, 478 }, { 8, 10, 52 }, - { 7, 0, 1930 }, { 11, 10, 217 }, { 14, 10, 165 }, { 6, 0, 1512 }, - { 7, 0, 1870 }, { 9, 11, 31 }, { 10, 11, 244 }, { 10, 11, 699 }, - { 12, 11, 149 }, { 13, 11, 497 }, { 5, 11, 377 }, { 17, 11, 101 }, - { 10, 11, 158 }, { 13, 11, 13 }, { 13, 11, 137 }, { 13, 11, 258 }, - { 14, 11, 111 }, { 14, 11, 225 }, { 14, 11, 253 }, { 14, 11, 304 }, - { 14, 11, 339 }, { 14, 11, 417 }, { 18, 11, 33 }, { 6, 0, 87 }, - { 6, 10, 1734 }, { 7, 10, 20 }, { 7, 10, 1056 }, { 8, 10, 732 }, - { 9, 10, 406 }, { 9, 10, 911 }, { 10, 10, 694 }, { 6, 0, 1243 }, - { 9, 0, 245 }, { 7, 0, 68 }, { 8, 0, 48 }, { 8, 0, 88 }, - { 8, 0, 582 }, { 8, 0, 681 }, { 9, 0, 373 }, { 9, 0, 864 }, - { 11, 0, 157 }, { 11, 0, 336 }, { 11, 0, 843 }, { 20, 0, 27 }, - { 8, 11, 663 }, { 16, 11, 8 }, { 5, 10, 613 }, { 4, 0, 88 }, - { 5, 0, 137 }, { 5, 0, 174 }, { 5, 0, 777 }, { 6, 0, 1664 }, - { 6, 0, 1725 }, { 7, 0, 77 }, { 7, 0, 426 }, { 7, 0, 1317 }, - { 7, 0, 1355 }, { 8, 0, 126 }, { 8, 0, 563 }, { 9, 0, 523 }, - { 9, 0, 750 }, { 10, 0, 310 }, { 10, 0, 836 }, { 11, 0, 42 }, - { 11, 0, 318 }, { 11, 0, 731 }, { 12, 0, 68 }, { 12, 0, 92 }, - { 12, 0, 507 }, { 12, 0, 692 }, { 13, 0, 81 }, { 13, 0, 238 }, - { 13, 0, 374 }, { 14, 0, 436 }, { 18, 0, 138 }, { 19, 0, 78 }, - { 19, 0, 111 }, { 20, 0, 55 }, { 20, 0, 77 }, { 20, 0, 92 }, - { 13, 0, 418 }, { 4, 0, 938 }, { 9, 0, 625 }, { 10, 0, 351 }, - { 5, 11, 843 }, { 7, 10, 32 }, { 7, 10, 984 }, { 8, 10, 85 }, - { 8, 10, 709 }, { 9, 10, 579 }, { 9, 10, 847 }, { 9, 10, 856 }, - { 10, 10, 799 }, { 11, 10, 258 }, { 11, 10, 1007 }, { 12, 10, 331 }, - { 12, 10, 615 }, { 13, 10, 188 }, { 13, 10, 435 }, { 14, 10, 8 }, - { 15, 10, 165 }, { 16, 10, 27 }, { 20, 10, 40 }, { 6, 0, 1668 }, - { 7, 0, 1499 }, { 8, 0, 117 }, { 9, 0, 314 }, { 10, 0, 174 }, - { 7, 0, 707 }, { 4, 11, 554 }, { 5, 11, 536 }, { 5, 0, 403 }, - { 5, 11, 207 }, { 9, 11, 79 }, { 11, 11, 625 }, { 17, 11, 7 }, - { 4, 11, 424 }, { 8, 11, 785 }, { 4, 10, 167 }, { 7, 10, 82 }, - { 9, 0, 7 }, { 23, 0, 6 }, { 9, 11, 7 }, { 23, 11, 6 }, - { 6, 0, 282 }, { 5, 10, 62 }, { 6, 10, 534 }, { 7, 10, 74 }, - { 7, 10, 678 }, { 7, 10, 684 }, { 7, 10, 1043 }, { 7, 10, 1072 }, - { 8, 10, 280 }, { 8, 10, 541 }, { 8, 10, 686 }, { 9, 10, 258 }, - { 10, 10, 519 }, { 11, 10, 252 }, { 12, 10, 282 }, { 10, 10, 33 }, - { 4, 10, 359 }, { 4, 0, 44 }, { 5, 0, 311 }, { 6, 0, 156 }, - { 7, 0, 639 }, { 7, 0, 762 }, { 7, 0, 1827 }, { 9, 0, 8 }, - { 9, 0, 462 }, { 20, 0, 83 }, { 7, 11, 769 }, { 9, 11, 18 }, - { 10, 11, 358 }, { 4, 0, 346 }, { 7, 0, 115 }, { 9, 0, 180 }, - { 9, 0, 456 }, { 10, 0, 363 }, { 4, 11, 896 }, { 6, 11, 1777 }, - { 5, 10, 211 }, { 7, 0, 761 }, { 7, 0, 1051 }, { 9, 0, 545 }, - { 6, 10, 145 }, { 13, 10, 336 }, { 7, 11, 750 }, { 9, 11, 223 }, - { 11, 11, 27 }, { 11, 11, 466 }, { 12, 11, 624 }, { 14, 11, 265 }, - { 18, 11, 61 }, { 6, 0, 752 }, { 6, 0, 768 }, { 6, 0, 1195 }, - { 6, 0, 1254 }, { 6, 0, 1619 }, { 9, 0, 835 }, { 6, 0, 1936 }, - { 8, 0, 930 }, { 8, 0, 960 }, { 4, 10, 263 }, { 4, 11, 249 }, - { 12, 0, 653 }, { 4, 10, 916 }, { 4, 11, 603 }, { 5, 11, 661 }, - { 8, 0, 344 }, { 4, 11, 11 }, { 6, 11, 128 }, { 7, 11, 231 }, - { 7, 11, 1533 }, { 10, 11, 725 }, { 6, 0, 1483 }, { 6, 0, 875 }, - { 6, 0, 185 }, { 7, 0, 1899 }, { 9, 0, 875 }, { 11, 0, 673 }, - { 15, 10, 155 }, { 16, 10, 79 }, { 7, 0, 93 }, { 7, 0, 210 }, - { 7, 0, 1223 }, { 8, 0, 451 }, { 8, 0, 460 }, { 11, 0, 353 }, - { 11, 0, 475 }, { 4, 10, 599 }, { 6, 10, 1634 }, { 7, 10, 67 }, - { 7, 10, 691 }, { 7, 10, 979 }, { 7, 10, 1697 }, { 8, 10, 207 }, - { 8, 10, 214 }, { 8, 10, 231 }, { 8, 10, 294 }, { 8, 10, 336 }, - { 8, 10, 428 }, { 8, 10, 471 }, { 8, 10, 622 }, { 8, 10, 626 }, - { 8, 10, 679 }, { 8, 10, 759 }, { 8, 10, 829 }, { 9, 10, 11 }, - { 9, 10, 246 }, { 9, 10, 484 }, { 9, 10, 573 }, { 9, 10, 706 }, - { 9, 10, 762 }, { 9, 10, 798 }, { 9, 10, 855 }, { 9, 10, 870 }, - { 9, 10, 912 }, { 10, 10, 303 }, { 10, 10, 335 }, { 10, 10, 424 }, - { 10, 10, 461 }, { 10, 10, 543 }, { 10, 10, 759 }, { 10, 10, 814 }, - { 11, 10, 59 }, { 11, 10, 235 }, { 11, 10, 590 }, { 11, 10, 929 }, - { 11, 10, 963 }, { 11, 10, 987 }, { 12, 10, 114 }, { 12, 10, 182 }, - { 12, 10, 226 }, { 12, 10, 332 }, { 12, 10, 439 }, { 12, 10, 575 }, - { 12, 10, 598 }, { 12, 10, 675 }, { 13, 10, 8 }, { 13, 10, 125 }, - { 13, 10, 194 }, { 13, 10, 287 }, { 14, 10, 197 }, { 14, 10, 383 }, - { 15, 10, 53 }, { 17, 10, 63 }, { 19, 10, 46 }, { 19, 10, 98 }, - { 19, 10, 106 }, { 20, 10, 85 }, { 4, 11, 476 }, { 4, 0, 327 }, - { 5, 0, 478 }, { 7, 0, 1332 }, { 8, 0, 753 }, { 5, 0, 1020 }, - { 5, 0, 1022 }, { 7, 11, 1807 }, { 4, 0, 103 }, { 5, 0, 401 }, - { 4, 0, 499 }, { 7, 0, 1421 }, { 10, 0, 207 }, { 13, 0, 164 }, - { 19, 10, 126 }, { 9, 11, 20 }, { 10, 11, 324 }, { 11, 11, 488 }, - { 4, 0, 96 }, { 9, 11, 280 }, { 10, 11, 134 }, { 7, 0, 968 }, - { 5, 10, 187 }, { 7, 10, 1286 }, { 5, 11, 112 }, { 6, 11, 103 }, - { 6, 11, 150 }, { 8, 0, 914 }, { 10, 0, 3 }, { 4, 10, 215 }, - { 9, 10, 38 }, { 11, 10, 23 }, { 11, 10, 127 }, { 11, 10, 796 }, - { 7, 0, 399 }, { 6, 0, 563 }, { 9, 0, 224 }, { 6, 0, 704 }, - { 6, 0, 1214 }, { 4, 11, 708 }, { 8, 11, 15 }, { 9, 11, 50 }, - { 9, 11, 386 }, { 11, 11, 18 }, { 11, 11, 529 }, { 12, 11, 228 }, - { 4, 11, 563 }, { 7, 11, 109 }, { 7, 11, 592 }, { 7, 11, 637 }, - { 7, 11, 770 }, { 7, 11, 1701 }, { 8, 11, 436 }, { 8, 11, 463 }, - { 9, 11, 60 }, { 9, 11, 335 }, { 9, 11, 904 }, { 10, 11, 73 }, - { 11, 11, 434 }, { 12, 11, 585 }, { 13, 11, 331 }, { 18, 11, 110 }, - { 20, 11, 60 }, { 6, 0, 1559 }, { 4, 11, 502 }, { 6, 11, 347 }, - { 10, 11, 161 }, { 4, 11, 33 }, { 5, 11, 102 }, { 5, 11, 500 }, - { 6, 11, 284 }, { 7, 11, 1079 }, { 7, 11, 1423 }, { 7, 11, 1702 }, - { 8, 11, 470 }, { 9, 11, 554 }, { 9, 11, 723 }, { 11, 11, 333 }, - { 7, 11, 246 }, { 7, 11, 840 }, { 6, 11, 10 }, { 8, 11, 571 }, - { 9, 11, 739 }, { 15, 11, 91 }, { 8, 0, 861 }, { 10, 0, 905 }, - { 12, 0, 730 }, { 12, 0, 789 }, { 5, 11, 626 }, { 6, 0, 946 }, - { 5, 0, 746 }, { 12, 0, 333 }, { 14, 0, 332 }, { 12, 11, 333 }, - { 14, 11, 332 }, { 5, 11, 18 }, { 6, 11, 526 }, { 13, 11, 24 }, - { 13, 11, 110 }, { 19, 11, 5 }, { 19, 11, 44 }, { 4, 0, 910 }, - { 5, 0, 832 }, { 7, 10, 2002 }, { 10, 11, 768 }, { 11, 11, 787 }, - { 4, 11, 309 }, { 5, 11, 462 }, { 7, 11, 970 }, { 7, 11, 1097 }, - { 4, 10, 28 }, { 5, 10, 440 }, { 7, 10, 248 }, { 11, 10, 833 }, - { 12, 10, 344 }, { 6, 10, 1654 }, { 6, 0, 632 }, { 6, 0, 652 }, - { 6, 0, 1272 }, { 6, 0, 1384 }, { 6, 0, 1560 }, { 6, 11, 1704 }, - { 6, 0, 1393 }, { 5, 10, 853 }, { 6, 10, 249 }, { 7, 10, 1234 }, - { 11, 10, 573 }, { 5, 11, 86 }, { 7, 11, 743 }, { 9, 11, 85 }, - { 10, 11, 281 }, { 10, 11, 432 }, { 11, 11, 490 }, { 12, 11, 251 }, - { 13, 11, 118 }, { 14, 11, 378 }, { 18, 11, 143 }, { 5, 11, 524 }, - { 5, 11, 744 }, { 6, 0, 1514 }, { 10, 0, 201 }, { 14, 0, 319 }, - { 7, 0, 717 }, { 10, 0, 510 }, { 7, 10, 392 }, { 8, 10, 20 }, - { 8, 10, 172 }, { 8, 10, 690 }, { 9, 10, 383 }, { 9, 10, 845 }, - { 11, 10, 293 }, { 11, 10, 832 }, { 11, 10, 920 }, { 11, 10, 984 }, - { 13, 10, 221 }, { 6, 0, 1381 }, { 5, 10, 858 }, { 5, 10, 992 }, - { 8, 0, 528 }, { 9, 0, 348 }, { 10, 11, 107 }, { 12, 11, 436 }, - { 4, 0, 20 }, { 5, 0, 616 }, { 6, 0, 1251 }, { 4, 11, 927 }, - { 10, 11, 123 }, { 12, 11, 670 }, { 13, 11, 371 }, { 14, 11, 142 }, - { 18, 11, 94 }, { 6, 0, 1163 }, { 7, 11, 1149 }, { 9, 11, 156 }, - { 6, 0, 307 }, { 5, 11, 778 }, { 7, 0, 1091 }, { 7, 0, 1765 }, - { 5, 11, 502 }, { 6, 10, 268 }, { 9, 10, 62 }, { 8, 11, 196 }, - { 10, 11, 283 }, { 11, 11, 406 }, { 4, 0, 26 }, { 5, 0, 429 }, - { 6, 0, 245 }, { 7, 0, 704 }, { 7, 0, 1379 }, { 7, 0, 1474 }, - { 5, 11, 855 }, { 4, 0, 881 }, { 4, 0, 621 }, { 7, 11, 1596 }, - { 7, 11, 1400 }, { 9, 11, 446 }, { 10, 11, 45 }, { 6, 0, 736 }, - { 10, 10, 106 }, { 5, 0, 542 }, { 6, 0, 348 }, { 5, 0, 868 }, - { 8, 0, 433 }, { 7, 0, 1495 }, { 10, 0, 771 }, { 6, 10, 613 }, - { 8, 10, 223 }, { 10, 0, 215 }, { 13, 0, 124 }, { 8, 11, 391 }, - { 7, 11, 172 }, { 4, 10, 670 }, { 12, 0, 55 }, { 9, 10, 40 }, - { 11, 10, 136 }, { 7, 0, 62 }, { 19, 0, 112 }, { 4, 0, 856 }, - { 4, 11, 568 }, { 12, 0, 270 }, { 11, 10, 259 }, { 8, 0, 572 }, - { 9, 0, 698 }, { 4, 11, 732 }, { 9, 10, 310 }, { 9, 10, 682 }, - { 14, 10, 296 }, { 6, 0, 939 }, { 8, 11, 733 }, { 7, 11, 1435 }, - { 7, 10, 1401 }, { 7, 10, 1476 }, { 6, 0, 352 }, { 4, 10, 296 }, - { 7, 10, 401 }, { 7, 10, 1410 }, { 7, 10, 1594 }, { 7, 10, 1674 }, - { 8, 10, 63 }, { 8, 10, 660 }, { 9, 10, 74 }, { 4, 11, 428 }, - { 5, 11, 668 }, { 4, 10, 139 }, { 4, 10, 388 }, { 12, 10, 188 }, - { 7, 11, 2015 }, { 12, 11, 665 }, { 4, 0, 647 }, { 18, 0, 10 }, - { 10, 0, 220 }, { 14, 0, 464 }, { 4, 0, 109 }, { 6, 0, 1746 }, - { 6, 0, 515 }, { 4, 10, 747 }, { 6, 11, 1623 }, { 6, 11, 1681 }, - { 7, 10, 649 }, { 7, 10, 1479 }, { 7, 10, 1583 }, { 5, 10, 232 }, - { 7, 0, 566 }, { 9, 10, 887 }, { 4, 0, 40 }, { 10, 0, 67 }, - { 11, 0, 117 }, { 11, 0, 768 }, { 11, 0, 935 }, { 4, 0, 801 }, - { 7, 0, 992 }, { 8, 0, 301 }, { 9, 0, 722 }, { 12, 0, 63 }, - { 13, 0, 29 }, { 14, 0, 161 }, { 15, 0, 18 }, { 11, 0, 923 }, - { 6, 11, 1748 }, { 8, 11, 715 }, { 9, 11, 802 }, { 10, 11, 46 }, - { 10, 11, 819 }, { 13, 11, 308 }, { 14, 11, 351 }, { 14, 11, 363 }, - { 18, 11, 67 }, { 9, 11, 745 }, { 7, 0, 1145 }, { 4, 10, 14 }, - { 7, 10, 1801 }, { 10, 10, 748 }, { 13, 10, 458 }, { 4, 11, 63 }, - { 5, 11, 347 }, { 6, 11, 474 }, { 7, 0, 568 }, { 4, 10, 425 }, - { 7, 11, 577 }, { 7, 11, 1432 }, { 9, 11, 475 }, { 9, 11, 505 }, - { 9, 11, 526 }, { 9, 11, 609 }, { 9, 11, 689 }, { 9, 11, 726 }, - { 9, 11, 735 }, { 9, 11, 738 }, { 10, 11, 556 }, { 10, 11, 674 }, - { 10, 11, 684 }, { 11, 11, 89 }, { 11, 11, 202 }, { 11, 11, 272 }, - { 11, 11, 380 }, { 11, 11, 415 }, { 11, 11, 505 }, { 11, 11, 537 }, - { 11, 11, 550 }, { 11, 11, 562 }, { 11, 11, 640 }, { 11, 11, 667 }, - { 11, 11, 688 }, { 11, 11, 847 }, { 11, 11, 927 }, { 11, 11, 930 }, - { 11, 11, 940 }, { 12, 11, 144 }, { 12, 11, 325 }, { 12, 11, 329 }, - { 12, 11, 389 }, { 12, 11, 403 }, { 12, 11, 451 }, { 12, 11, 515 }, - { 12, 11, 604 }, { 12, 11, 616 }, { 12, 11, 626 }, { 13, 11, 66 }, - { 13, 11, 131 }, { 13, 11, 167 }, { 13, 11, 236 }, { 13, 11, 368 }, - { 13, 11, 411 }, { 13, 11, 434 }, { 13, 11, 453 }, { 13, 11, 461 }, - { 13, 11, 474 }, { 14, 11, 59 }, { 14, 11, 60 }, { 14, 11, 139 }, - { 14, 11, 152 }, { 14, 11, 276 }, { 14, 11, 353 }, { 14, 11, 402 }, - { 15, 11, 28 }, { 15, 11, 81 }, { 15, 11, 123 }, { 15, 11, 152 }, - { 18, 11, 136 }, { 20, 11, 88 }, { 9, 0, 247 }, { 7, 11, 1622 }, - { 9, 11, 544 }, { 11, 11, 413 }, { 16, 11, 25 }, { 4, 0, 645 }, - { 7, 0, 825 }, { 6, 10, 1768 }, { 7, 11, 89 }, { 12, 0, 328 }, - { 5, 10, 943 }, { 6, 10, 1779 }, { 6, 0, 1363 }, { 5, 10, 245 }, - { 6, 10, 576 }, { 7, 10, 582 }, { 8, 10, 225 }, { 6, 0, 1280 }, - { 5, 11, 824 }, { 5, 11, 941 }, { 7, 11, 440 }, { 8, 11, 230 }, - { 11, 11, 106 }, { 5, 0, 28 }, { 6, 0, 204 }, { 10, 0, 320 }, - { 10, 0, 583 }, { 13, 0, 502 }, { 14, 0, 72 }, { 14, 0, 274 }, - { 14, 0, 312 }, { 14, 0, 344 }, { 15, 0, 159 }, { 16, 0, 62 }, - { 16, 0, 69 }, { 17, 0, 30 }, { 18, 0, 42 }, { 18, 0, 53 }, - { 18, 0, 84 }, { 18, 0, 140 }, { 19, 0, 68 }, { 19, 0, 85 }, - { 20, 0, 5 }, { 20, 0, 45 }, { 20, 0, 101 }, { 22, 0, 7 }, - { 22, 0, 20 }, { 4, 0, 558 }, { 6, 0, 390 }, { 7, 0, 162 }, - { 7, 0, 689 }, { 9, 0, 360 }, { 10, 0, 653 }, { 6, 0, 764 }, - { 6, 0, 862 }, { 9, 0, 833 }, { 5, 0, 856 }, { 6, 0, 1672 }, - { 6, 0, 1757 }, { 6, 0, 1781 }, { 5, 0, 92 }, { 10, 0, 736 }, - { 12, 0, 102 }, { 6, 0, 1927 }, { 6, 0, 1944 }, { 8, 0, 924 }, - { 8, 0, 948 }, { 10, 0, 967 }, { 10, 0, 978 }, { 6, 0, 1479 }, - { 5, 0, 590 }, { 8, 0, 360 }, { 9, 0, 213 }, { 10, 0, 63 }, - { 6, 0, 1521 }, { 6, 0, 709 }, { 6, 0, 891 }, { 4, 10, 443 }, - { 13, 0, 477 }, { 14, 0, 120 }, { 20, 0, 61 }, { 4, 11, 914 }, - { 5, 11, 800 }, { 5, 11, 852 }, { 10, 11, 54 }, { 13, 11, 115 }, - { 4, 11, 918 }, { 5, 11, 876 }, { 11, 11, 152 }, { 4, 11, 92 }, - { 5, 11, 274 }, { 7, 11, 1901 }, { 9, 11, 800 }, { 10, 11, 693 }, - { 11, 11, 482 }, { 11, 11, 734 }, { 11, 11, 789 }, { 9, 0, 483 }, - { 4, 10, 298 }, { 6, 0, 1213 }, { 13, 11, 498 }, { 7, 11, 1451 }, - { 5, 11, 743 }, { 4, 0, 1022 }, { 10, 0, 1000 }, { 12, 0, 957 }, - { 12, 0, 980 }, { 12, 0, 1013 }, { 14, 0, 481 }, { 16, 0, 116 }, - { 8, 0, 503 }, { 17, 0, 29 }, { 4, 11, 49 }, { 7, 11, 280 }, - { 7, 11, 1633 }, { 7, 0, 1712 }, { 6, 0, 466 }, { 8, 11, 47 }, - { 5, 10, 164 }, { 7, 10, 121 }, { 14, 10, 189 }, { 7, 10, 812 }, - { 7, 10, 1261 }, { 7, 10, 1360 }, { 9, 10, 632 }, { 12, 10, 352 }, - { 11, 10, 556 }, { 4, 0, 731 }, { 5, 11, 272 }, { 5, 11, 908 }, - { 5, 11, 942 }, { 7, 11, 1008 }, { 7, 11, 1560 }, { 8, 11, 197 }, - { 9, 11, 47 }, { 11, 11, 538 }, { 11, 11, 742 }, { 4, 10, 172 }, - { 9, 10, 611 }, { 10, 10, 436 }, { 12, 10, 673 }, { 13, 10, 255 }, - { 5, 10, 844 }, { 10, 0, 484 }, { 11, 0, 754 }, { 12, 0, 457 }, - { 14, 0, 171 }, { 14, 0, 389 }, { 18, 0, 153 }, { 9, 10, 263 }, - { 10, 10, 147 }, { 10, 10, 492 }, { 9, 11, 891 }, { 10, 0, 241 }, - { 5, 10, 537 }, { 6, 0, 2005 }, { 8, 0, 964 }, { 9, 10, 842 }, - { 23, 11, 8 }, { 4, 11, 407 }, { 4, 11, 560 }, { 7, 11, 1884 }, - { 6, 0, 1100 }, { 6, 0, 1242 }, { 7, 0, 954 }, { 5, 10, 230 }, - { 5, 10, 392 }, { 6, 10, 420 }, { 9, 10, 568 }, { 12, 10, 612 }, - { 4, 11, 475 }, { 11, 11, 35 }, { 11, 11, 90 }, { 13, 11, 7 }, - { 13, 11, 71 }, { 13, 11, 177 }, { 14, 11, 422 }, { 8, 11, 332 }, - { 7, 0, 1958 }, { 6, 0, 549 }, { 8, 0, 34 }, { 8, 0, 283 }, - { 9, 0, 165 }, { 10, 0, 475 }, { 10, 0, 952 }, { 12, 0, 966 }, - { 12, 0, 994 }, { 5, 0, 652 }, { 5, 0, 701 }, { 7, 0, 449 }, - { 4, 0, 655 }, { 7, 0, 850 }, { 17, 0, 75 }, { 18, 0, 137 }, - { 4, 0, 146 }, { 7, 0, 1618 }, { 8, 0, 670 }, { 5, 10, 41 }, - { 7, 10, 1459 }, { 7, 10, 1469 }, { 7, 10, 1859 }, { 9, 10, 549 }, - { 11, 10, 905 }, { 5, 10, 696 }, { 6, 0, 159 }, { 6, 0, 364 }, - { 7, 0, 516 }, { 9, 0, 518 }, { 7, 0, 1439 }, { 6, 11, 222 }, - { 7, 11, 636 }, { 7, 11, 1620 }, { 8, 11, 409 }, { 9, 11, 693 }, - { 11, 11, 77 }, { 13, 0, 151 }, { 13, 11, 45 }, { 6, 0, 1027 }, - { 4, 11, 336 }, { 4, 10, 771 }, { 11, 11, 392 }, { 10, 11, 121 }, - { 11, 11, 175 }, { 21, 11, 16 }, { 8, 0, 950 }, { 10, 0, 983 }, - { 5, 10, 921 }, { 7, 0, 993 }, { 6, 10, 180 }, { 7, 10, 1137 }, - { 8, 10, 751 }, { 11, 10, 805 }, { 7, 0, 501 }, { 9, 0, 111 }, - { 10, 0, 141 }, { 11, 0, 332 }, { 13, 0, 43 }, { 13, 0, 429 }, - { 14, 0, 130 }, { 14, 0, 415 }, { 17, 0, 102 }, { 4, 10, 183 }, - { 5, 11, 882 }, { 7, 10, 271 }, { 11, 10, 824 }, { 11, 10, 952 }, - { 13, 10, 278 }, { 13, 10, 339 }, { 13, 10, 482 }, { 14, 10, 424 }, - { 20, 10, 99 }, { 4, 10, 19 }, { 5, 10, 477 }, { 5, 10, 596 }, - { 6, 10, 505 }, { 7, 10, 1221 }, { 11, 10, 907 }, { 12, 10, 209 }, - { 13, 10, 214 }, { 7, 10, 1215 }, { 5, 0, 452 }, { 4, 11, 426 }, - { 5, 0, 149 }, { 8, 0, 233 }, { 5, 0, 935 }, { 6, 11, 58 }, - { 7, 11, 654 }, { 7, 11, 745 }, { 7, 11, 1969 }, { 8, 11, 240 }, - { 8, 11, 675 }, { 9, 11, 479 }, { 9, 11, 731 }, { 10, 11, 330 }, - { 10, 11, 593 }, { 10, 11, 817 }, { 11, 11, 32 }, { 11, 11, 133 }, - { 11, 11, 221 }, { 17, 11, 68 }, { 12, 0, 582 }, { 18, 0, 131 }, - { 7, 11, 102 }, { 9, 11, 538 }, { 8, 0, 801 }, { 6, 10, 1645 }, - { 4, 0, 70 }, { 6, 10, 92 }, { 6, 10, 188 }, { 7, 10, 1269 }, - { 7, 10, 1524 }, { 7, 10, 1876 }, { 10, 10, 228 }, { 11, 10, 1020 }, - { 4, 10, 459 }, { 5, 10, 966 }, { 10, 0, 369 }, { 16, 0, 36 }, - { 12, 10, 330 }, { 13, 11, 366 }, { 7, 0, 721 }, { 10, 0, 236 }, - { 12, 0, 204 }, { 6, 10, 18 }, { 7, 10, 932 }, { 8, 10, 757 }, - { 9, 10, 54 }, { 9, 10, 65 }, { 9, 10, 844 }, { 10, 10, 113 }, - { 10, 10, 315 }, { 10, 10, 798 }, { 11, 10, 153 }, { 12, 10, 151 }, - { 12, 10, 392 }, { 12, 10, 666 }, { 14, 10, 248 }, { 7, 0, 241 }, - { 10, 0, 430 }, { 8, 10, 548 }, { 9, 10, 532 }, { 10, 10, 117 }, - { 11, 10, 351 }, { 11, 10, 375 }, { 15, 10, 23 }, { 6, 10, 1742 }, - { 5, 10, 965 }, { 5, 11, 566 }, { 6, 11, 48 }, { 7, 11, 63 }, - { 6, 10, 182 }, { 10, 10, 65 }, { 10, 10, 488 }, { 10, 10, 497 }, - { 6, 11, 114 }, { 7, 11, 1224 }, { 7, 11, 1556 }, { 8, 11, 3 }, - { 6, 0, 1817 }, { 8, 11, 576 }, { 9, 11, 267 }, { 6, 0, 1078 }, - { 16, 0, 16 }, { 9, 10, 588 }, { 10, 10, 260 }, { 10, 0, 1021 }, - { 5, 0, 406 }, { 6, 0, 2022 }, { 5, 11, 933 }, { 6, 0, 69 }, - { 7, 0, 117 }, { 7, 0, 1830 }, { 8, 11, 427 }, { 4, 0, 432 }, - { 7, 0, 824 }, { 6, 10, 1786 }, { 5, 0, 826 }, { 11, 11, 67 }, - { 5, 11, 759 }, { 7, 10, 308 }, { 9, 0, 816 }, { 5, 0, 1000 }, - { 4, 0, 297 }, { 6, 0, 529 }, { 7, 0, 152 }, { 7, 0, 713 }, - { 7, 0, 1845 }, { 8, 0, 710 }, { 8, 0, 717 }, { 12, 0, 639 }, - { 12, 0, 685 }, { 7, 0, 423 }, { 8, 10, 588 }, { 8, 10, 287 }, - { 8, 0, 510 }, { 6, 0, 1048 }, { 6, 0, 618 }, { 7, 11, 56 }, - { 7, 11, 1989 }, { 8, 11, 337 }, { 8, 11, 738 }, { 9, 11, 600 }, - { 10, 11, 483 }, { 12, 11, 37 }, { 13, 11, 447 }, { 14, 11, 92 }, - { 4, 0, 520 }, { 7, 0, 575 }, { 8, 0, 990 }, { 10, 0, 977 }, - { 7, 11, 774 }, { 9, 11, 347 }, { 11, 11, 24 }, { 12, 11, 170 }, - { 8, 11, 379 }, { 12, 10, 290 }, { 4, 11, 328 }, { 4, 0, 321 }, - { 6, 0, 569 }, { 4, 11, 101 }, { 7, 11, 1171 }, { 7, 0, 723 }, - { 7, 0, 1135 }, { 5, 11, 833 }, { 8, 11, 744 }, { 7, 10, 719 }, - { 8, 10, 809 }, { 8, 10, 834 }, { 8, 0, 921 }, { 8, 10, 796 }, - { 5, 10, 210 }, { 6, 10, 213 }, { 7, 10, 60 }, { 10, 10, 364 }, - { 11, 10, 135 }, { 5, 0, 397 }, { 6, 0, 154 }, { 7, 0, 676 }, - { 8, 0, 443 }, { 8, 0, 609 }, { 9, 0, 24 }, { 9, 0, 325 }, - { 10, 0, 35 }, { 11, 0, 535 }, { 11, 0, 672 }, { 11, 0, 1018 }, - { 12, 0, 637 }, { 16, 0, 30 }, { 5, 10, 607 }, { 8, 10, 326 }, - { 8, 10, 490 }, { 4, 10, 701 }, { 5, 10, 472 }, { 6, 11, 9 }, - { 6, 11, 397 }, { 7, 11, 53 }, { 7, 11, 1742 }, { 9, 10, 758 }, - { 10, 11, 632 }, { 11, 11, 828 }, { 12, 11, 146 }, { 7, 10, 380 }, - { 7, 10, 1947 }, { 20, 11, 109 }, { 10, 10, 278 }, { 10, 11, 278 }, - { 6, 0, 856 }, { 7, 0, 139 }, { 4, 10, 386 }, { 8, 10, 405 }, - { 8, 10, 728 }, { 9, 10, 497 }, { 11, 10, 110 }, { 11, 10, 360 }, - { 15, 10, 37 }, { 16, 10, 84 }, { 13, 0, 282 }, { 5, 0, 981 }, - { 5, 0, 288 }, { 7, 10, 1452 }, { 7, 10, 1480 }, { 8, 10, 634 }, - { 12, 10, 472 }, { 7, 0, 1890 }, { 8, 11, 367 }, { 10, 11, 760 }, - { 14, 11, 79 }, { 20, 11, 17 }, { 24, 11, 0 }, { 4, 10, 524 }, - { 8, 10, 810 }, { 4, 0, 56 }, { 7, 0, 1791 }, { 8, 0, 607 }, - { 8, 0, 651 }, { 11, 0, 465 }, { 11, 0, 835 }, { 12, 0, 337 }, - { 13, 0, 480 }, { 10, 10, 238 }, { 13, 10, 33 }, { 11, 11, 417 }, - { 12, 11, 223 }, { 12, 11, 265 }, { 9, 0, 158 }, { 10, 0, 411 }, - { 12, 0, 261 }, { 5, 10, 532 }, { 5, 10, 997 }, { 12, 11, 186 }, - { 12, 11, 292 }, { 14, 11, 100 }, { 18, 11, 70 }, { 6, 0, 1403 }, - { 8, 0, 617 }, { 6, 0, 1205 }, { 11, 0, 563 }, { 4, 0, 242 }, - { 6, 0, 333 }, { 4, 11, 186 }, { 5, 11, 157 }, { 8, 11, 168 }, - { 10, 11, 6 }, { 4, 0, 369 }, { 5, 11, 875 }, { 5, 10, 782 }, - { 5, 10, 829 }, { 6, 10, 1738 }, { 6, 0, 622 }, { 7, 11, 1272 }, - { 6, 0, 1407 }, { 7, 11, 111 }, { 8, 11, 581 }, { 7, 10, 1823 }, - { 11, 10, 693 }, { 7, 0, 160 }, { 10, 0, 624 }, { 14, 0, 279 }, - { 4, 0, 363 }, { 10, 11, 589 }, { 12, 11, 111 }, { 13, 11, 260 }, - { 14, 11, 82 }, { 18, 11, 63 }, { 19, 11, 45 }, { 7, 11, 1364 }, - { 7, 11, 1907 }, { 13, 11, 158 }, { 4, 11, 404 }, { 4, 11, 659 }, - { 7, 11, 675 }, { 13, 11, 211 }, { 14, 11, 133 }, { 14, 11, 204 }, - { 15, 11, 64 }, { 15, 11, 69 }, { 15, 11, 114 }, { 16, 11, 10 }, - { 19, 11, 23 }, { 19, 11, 35 }, { 19, 11, 39 }, { 19, 11, 51 }, - { 19, 11, 71 }, { 19, 11, 75 }, { 24, 11, 15 }, { 4, 10, 78 }, - { 5, 10, 96 }, { 5, 10, 182 }, { 7, 10, 1724 }, { 7, 10, 1825 }, - { 10, 10, 394 }, { 10, 10, 471 }, { 11, 10, 532 }, { 14, 10, 340 }, - { 17, 10, 88 }, { 7, 10, 1964 }, { 5, 11, 391 }, { 11, 11, 887 }, - { 14, 11, 365 }, { 14, 11, 375 }, { 5, 11, 540 }, { 6, 11, 1697 }, - { 7, 11, 222 }, { 8, 11, 341 }, { 6, 11, 78 }, { 9, 0, 601 }, - { 9, 0, 619 }, { 10, 0, 505 }, { 10, 0, 732 }, { 11, 0, 355 }, - { 12, 0, 139 }, { 6, 0, 292 }, { 11, 0, 174 }, { 5, 0, 177 }, - { 6, 0, 616 }, { 7, 0, 827 }, { 9, 0, 525 }, { 10, 0, 656 }, - { 10, 0, 31 }, { 6, 10, 215 }, { 7, 10, 1028 }, { 7, 10, 1473 }, - { 7, 10, 1721 }, { 9, 10, 424 }, { 10, 10, 779 }, { 7, 10, 584 }, - { 8, 11, 293 }, { 6, 0, 685 }, { 7, 11, 1868 }, { 5, 11, 460 }, - { 7, 0, 647 }, { 6, 10, 67 }, { 7, 10, 1630 }, { 9, 10, 354 }, - { 9, 10, 675 }, { 10, 10, 830 }, { 14, 10, 80 }, { 17, 10, 80 }, - { 4, 0, 161 }, { 5, 0, 631 }, { 6, 10, 141 }, { 7, 10, 225 }, - { 9, 10, 59 }, { 9, 10, 607 }, { 10, 10, 312 }, { 11, 10, 687 }, - { 12, 10, 555 }, { 13, 10, 373 }, { 13, 10, 494 }, { 20, 10, 58 }, - { 7, 11, 965 }, { 7, 11, 1460 }, { 7, 11, 1604 }, { 8, 10, 783 }, - { 6, 11, 388 }, { 6, 0, 722 }, { 6, 0, 1267 }, { 4, 11, 511 }, - { 9, 11, 333 }, { 9, 11, 379 }, { 10, 11, 602 }, { 11, 11, 441 }, - { 11, 11, 723 }, { 11, 11, 976 }, { 12, 11, 357 }, { 6, 0, 1797 }, - { 7, 0, 1684 }, { 9, 0, 469 }, { 9, 0, 709 }, { 12, 0, 512 }, - { 14, 0, 65 }, { 17, 0, 12 }, { 5, 11, 938 }, { 8, 11, 707 }, - { 7, 0, 1230 }, { 8, 0, 531 }, { 10, 0, 229 }, { 11, 0, 73 }, - { 11, 0, 376 }, { 11, 0, 433 }, { 12, 0, 268 }, { 12, 0, 640 }, - { 14, 0, 119 }, { 7, 10, 430 }, { 11, 10, 46 }, { 6, 0, 558 }, - { 7, 0, 651 }, { 8, 0, 421 }, { 9, 0, 0 }, { 10, 0, 34 }, - { 11, 0, 1008 }, { 6, 0, 106 }, { 7, 0, 1786 }, { 7, 0, 1821 }, - { 9, 0, 102 }, { 9, 0, 763 }, { 5, 10, 602 }, { 7, 10, 2018 }, - { 9, 10, 418 }, { 5, 0, 65 }, { 6, 0, 416 }, { 7, 0, 1720 }, - { 7, 0, 1924 }, { 10, 0, 109 }, { 11, 0, 14 }, { 11, 0, 70 }, - { 11, 0, 569 }, { 11, 0, 735 }, { 15, 0, 153 }, { 20, 0, 80 }, - { 8, 10, 677 }, { 7, 11, 1625 }, { 9, 11, 772 }, { 8, 0, 595 }, - { 6, 11, 469 }, { 7, 11, 1709 }, { 10, 11, 515 }, { 7, 0, 1832 }, - { 10, 0, 374 }, { 9, 0, 106 }, { 9, 0, 163 }, { 9, 0, 296 }, - { 10, 0, 167 }, { 10, 0, 172 }, { 10, 0, 777 }, { 11, 0, 16 }, - { 6, 0, 6 }, { 7, 0, 81 }, { 7, 0, 771 }, { 7, 0, 1731 }, - { 9, 0, 405 }, { 10, 0, 421 }, { 4, 11, 500 }, { 7, 11, 938 }, - { 5, 11, 68 }, { 6, 11, 383 }, { 5, 0, 881 }, { 5, 0, 885 }, - { 6, 0, 854 }, { 6, 0, 1132 }, { 6, 0, 1495 }, { 6, 0, 1526 }, - { 6, 0, 1533 }, { 6, 0, 1577 }, { 4, 11, 337 }, { 6, 11, 353 }, - { 7, 11, 1934 }, { 8, 11, 488 }, { 9, 11, 429 }, { 7, 11, 236 }, - { 7, 11, 1795 }, { 8, 11, 259 }, { 9, 11, 135 }, { 9, 11, 177 }, - { 10, 11, 825 }, { 11, 11, 115 }, { 11, 11, 370 }, { 11, 11, 405 }, - { 11, 11, 604 }, { 12, 11, 10 }, { 12, 11, 667 }, { 12, 11, 669 }, - { 13, 11, 76 }, { 14, 11, 310 }, { 15, 11, 76 }, { 15, 11, 147 }, - { 20, 11, 23 }, { 5, 0, 142 }, { 6, 0, 546 }, { 4, 11, 15 }, - { 5, 11, 22 }, { 6, 11, 244 }, { 7, 11, 40 }, { 7, 11, 200 }, - { 7, 11, 906 }, { 7, 11, 1199 }, { 9, 11, 616 }, { 10, 11, 716 }, - { 11, 11, 635 }, { 11, 11, 801 }, { 12, 11, 458 }, { 5, 0, 466 }, - { 11, 0, 571 }, { 12, 0, 198 }, { 13, 0, 283 }, { 14, 0, 186 }, - { 15, 0, 21 }, { 15, 0, 103 }, { 7, 10, 329 }, { 4, 0, 185 }, - { 5, 0, 257 }, { 5, 0, 839 }, { 5, 0, 936 }, { 9, 0, 399 }, - { 10, 0, 258 }, { 10, 0, 395 }, { 10, 0, 734 }, { 11, 0, 1014 }, - { 12, 0, 23 }, { 13, 0, 350 }, { 14, 0, 150 }, { 19, 0, 6 }, - { 7, 11, 1735 }, { 12, 11, 36 }, { 13, 11, 337 }, { 5, 11, 598 }, - { 7, 11, 791 }, { 8, 11, 108 }, { 9, 11, 123 }, { 4, 10, 469 }, - { 7, 0, 404 }, { 7, 0, 1377 }, { 7, 0, 1430 }, { 7, 0, 2017 }, - { 8, 0, 149 }, { 8, 0, 239 }, { 8, 0, 512 }, { 8, 0, 793 }, - { 8, 0, 818 }, { 9, 0, 474 }, { 9, 0, 595 }, { 10, 0, 122 }, - { 10, 0, 565 }, { 10, 0, 649 }, { 10, 0, 783 }, { 11, 0, 239 }, - { 11, 0, 295 }, { 11, 0, 447 }, { 11, 0, 528 }, { 11, 0, 639 }, - { 11, 0, 800 }, { 12, 0, 25 }, { 12, 0, 77 }, { 12, 0, 157 }, - { 12, 0, 256 }, { 12, 0, 316 }, { 12, 0, 390 }, { 12, 0, 391 }, - { 12, 0, 395 }, { 12, 0, 478 }, { 12, 0, 503 }, { 12, 0, 592 }, - { 12, 0, 680 }, { 13, 0, 50 }, { 13, 0, 53 }, { 13, 0, 132 }, - { 13, 0, 198 }, { 13, 0, 322 }, { 13, 0, 415 }, { 13, 0, 511 }, - { 14, 0, 71 }, { 14, 0, 395 }, { 15, 0, 71 }, { 15, 0, 136 }, - { 17, 0, 123 }, { 18, 0, 93 }, { 19, 0, 58 }, { 8, 0, 712 }, - { 6, 10, 1743 }, { 5, 10, 929 }, { 6, 10, 340 }, { 8, 10, 376 }, - { 8, 10, 807 }, { 6, 0, 1848 }, { 8, 0, 860 }, { 10, 0, 856 }, - { 10, 0, 859 }, { 10, 0, 925 }, { 10, 0, 941 }, { 12, 0, 762 }, - { 6, 0, 629 }, { 6, 0, 906 }, { 9, 0, 810 }, { 12, 0, 652 }, - { 5, 10, 218 }, { 7, 10, 1610 }, { 10, 10, 83 }, { 7, 10, 1512 }, - { 7, 10, 1794 }, { 4, 0, 377 }, { 24, 0, 13 }, { 4, 11, 155 }, - { 7, 11, 1689 }, { 11, 10, 0 }, { 16, 10, 78 }, { 4, 11, 164 }, - { 5, 11, 151 }, { 5, 11, 730 }, { 5, 11, 741 }, { 7, 11, 498 }, - { 7, 11, 870 }, { 7, 11, 1542 }, { 12, 11, 213 }, { 14, 11, 36 }, - { 14, 11, 391 }, { 17, 11, 111 }, { 18, 11, 6 }, { 18, 11, 46 }, - { 18, 11, 151 }, { 19, 11, 36 }, { 20, 11, 32 }, { 20, 11, 56 }, - { 20, 11, 69 }, { 20, 11, 102 }, { 21, 11, 4 }, { 22, 11, 8 }, - { 22, 11, 10 }, { 22, 11, 14 }, { 22, 11, 31 }, { 7, 0, 1842 }, - { 5, 10, 571 }, { 4, 10, 455 }, { 4, 11, 624 }, { 7, 11, 1752 }, - { 6, 0, 1501 }, { 4, 11, 492 }, { 5, 11, 451 }, { 6, 10, 161 }, - { 7, 10, 372 }, { 9, 10, 597 }, { 4, 10, 349 }, { 4, 0, 180 }, - { 7, 0, 1906 }, { 7, 11, 835 }, { 13, 11, 70 }, { 4, 0, 491 }, - { 9, 10, 751 }, { 6, 10, 432 }, { 11, 10, 322 }, { 4, 0, 171 }, - { 10, 0, 234 }, { 6, 11, 113 }, { 7, 11, 436 }, { 4, 0, 586 }, - { 7, 0, 1186 }, { 10, 0, 631 }, { 5, 10, 468 }, { 10, 10, 325 }, - { 11, 10, 856 }, { 12, 10, 345 }, { 15, 10, 104 }, { 5, 10, 223 }, - { 10, 11, 592 }, { 10, 11, 753 }, { 12, 11, 317 }, { 12, 11, 355 }, - { 12, 11, 465 }, { 12, 11, 469 }, { 12, 11, 560 }, { 12, 11, 578 }, - { 13, 11, 243 }, { 4, 10, 566 }, { 7, 11, 520 }, { 4, 10, 59 }, - { 7, 10, 1394 }, { 6, 10, 436 }, { 11, 10, 481 }, { 9, 0, 931 }, - { 10, 0, 334 }, { 20, 0, 71 }, { 4, 10, 48 }, { 5, 10, 271 }, - { 7, 10, 953 }, { 7, 11, 1878 }, { 11, 0, 170 }, { 5, 10, 610 }, - { 8, 10, 457 }, { 5, 10, 755 }, { 6, 0, 1587 }, { 7, 10, 1217 }, - { 4, 10, 197 }, { 21, 11, 26 }, { 5, 11, 585 }, { 9, 11, 521 }, - { 5, 0, 765 }, { 5, 10, 217 }, { 11, 11, 586 }, { 5, 0, 424 }, - { 9, 11, 752 }, { 12, 11, 610 }, { 13, 11, 431 }, { 16, 11, 59 }, - { 18, 11, 109 }, { 8, 0, 714 }, { 7, 0, 685 }, { 4, 11, 307 }, - { 9, 0, 420 }, { 10, 0, 269 }, { 10, 0, 285 }, { 10, 0, 576 }, - { 11, 0, 397 }, { 13, 0, 175 }, { 17, 0, 90 }, { 4, 0, 429 }, - { 5, 11, 964 }, { 9, 11, 463 }, { 10, 11, 595 }, { 7, 0, 18 }, - { 7, 0, 699 }, { 7, 0, 1966 }, { 8, 0, 752 }, { 9, 0, 273 }, - { 9, 0, 412 }, { 9, 0, 703 }, { 10, 0, 71 }, { 10, 0, 427 }, - { 10, 0, 508 }, { 4, 10, 165 }, { 7, 10, 1398 }, { 7, 10, 1829 }, - { 4, 0, 53 }, { 5, 0, 186 }, { 7, 0, 752 }, { 7, 0, 828 }, - { 14, 0, 116 }, { 8, 0, 575 }, { 10, 0, 289 }, { 11, 0, 319 }, - { 4, 0, 675 }, { 6, 0, 1424 }, { 4, 11, 75 }, { 5, 11, 180 }, - { 6, 11, 500 }, { 7, 11, 58 }, { 7, 11, 710 }, { 10, 11, 645 }, - { 5, 11, 649 }, { 6, 11, 276 }, { 7, 11, 282 }, { 7, 11, 879 }, - { 7, 11, 924 }, { 8, 11, 459 }, { 9, 11, 599 }, { 9, 11, 754 }, - { 11, 11, 574 }, { 12, 11, 128 }, { 12, 11, 494 }, { 13, 11, 52 }, - { 13, 11, 301 }, { 15, 11, 30 }, { 15, 11, 132 }, { 6, 0, 647 }, - { 6, 0, 1095 }, { 5, 10, 9 }, { 7, 10, 297 }, { 7, 10, 966 }, - { 12, 10, 306 }, { 4, 11, 200 }, { 6, 0, 1334 }, { 5, 10, 146 }, - { 6, 10, 411 }, { 10, 10, 721 }, { 6, 0, 209 }, { 6, 0, 1141 }, - { 6, 0, 1288 }, { 8, 0, 468 }, { 9, 0, 210 }, { 11, 0, 36 }, - { 12, 0, 28 }, { 12, 0, 630 }, { 13, 0, 21 }, { 13, 0, 349 }, - { 14, 0, 7 }, { 17, 0, 13 }, { 6, 10, 177 }, { 7, 10, 467 }, - { 4, 0, 342 }, { 7, 0, 1179 }, { 10, 11, 454 }, { 12, 11, 324 }, - { 4, 0, 928 }, { 5, 0, 910 }, { 7, 0, 1838 }, { 6, 11, 225 }, - { 9, 11, 211 }, { 16, 0, 101 }, { 20, 0, 115 }, { 20, 0, 118 }, - { 20, 0, 122 }, { 4, 0, 496 }, { 7, 0, 856 }, { 4, 0, 318 }, - { 11, 0, 654 }, { 7, 11, 718 }, { 11, 11, 102 }, { 8, 11, 58 }, - { 9, 11, 724 }, { 11, 11, 809 }, { 13, 11, 113 }, { 17, 11, 72 }, - { 5, 10, 200 }, { 6, 11, 345 }, { 7, 11, 1247 }, { 8, 11, 767 }, - { 8, 11, 803 }, { 9, 11, 301 }, { 9, 11, 903 }, { 7, 0, 915 }, - { 8, 0, 247 }, { 19, 0, 0 }, { 7, 11, 1949 }, { 8, 11, 674 }, - { 4, 0, 202 }, { 5, 0, 382 }, { 6, 0, 454 }, { 7, 0, 936 }, - { 7, 0, 1803 }, { 8, 0, 758 }, { 9, 0, 375 }, { 9, 0, 895 }, - { 10, 0, 743 }, { 10, 0, 792 }, { 11, 0, 978 }, { 11, 0, 1012 }, - { 14, 0, 109 }, { 7, 0, 1150 }, { 7, 0, 1425 }, { 7, 0, 1453 }, - { 12, 0, 513 }, { 6, 11, 259 }, { 10, 0, 791 }, { 11, 0, 821 }, - { 12, 0, 110 }, { 12, 0, 153 }, { 18, 0, 41 }, { 22, 0, 19 }, - { 6, 10, 481 }, { 4, 0, 796 }, { 6, 0, 445 }, { 9, 0, 909 }, - { 8, 11, 254 }, { 10, 0, 776 }, { 13, 0, 345 }, { 14, 0, 425 }, - { 4, 10, 84 }, { 7, 10, 1482 }, { 10, 10, 76 }, { 10, 10, 142 }, - { 7, 11, 742 }, { 6, 0, 578 }, { 5, 10, 1015 }, { 6, 0, 1387 }, - { 4, 10, 315 }, { 5, 10, 507 }, { 7, 10, 1370 }, { 4, 0, 438 }, - { 5, 0, 555 }, { 8, 0, 766 }, { 5, 11, 248 }, { 6, 10, 1722 }, - { 4, 11, 116 }, { 5, 11, 95 }, { 5, 11, 445 }, { 7, 11, 1688 }, - { 8, 11, 29 }, { 9, 11, 272 }, { 11, 11, 509 }, { 11, 11, 915 }, - { 7, 0, 541 }, { 5, 11, 543 }, { 8, 10, 222 }, { 8, 10, 476 }, - { 9, 10, 238 }, { 11, 10, 516 }, { 11, 10, 575 }, { 15, 10, 109 }, - { 18, 10, 100 }, { 6, 0, 880 }, { 6, 0, 1191 }, { 5, 11, 181 }, - { 8, 11, 41 }, { 6, 0, 1506 }, { 4, 11, 681 }, { 7, 11, 25 }, - { 8, 11, 202 }, { 10, 11, 536 }, { 11, 0, 983 }, { 9, 0, 768 }, - { 4, 0, 584 }, { 9, 11, 423 }, { 12, 11, 89 }, { 8, 11, 113 }, - { 9, 11, 877 }, { 10, 11, 554 }, { 11, 11, 83 }, { 12, 11, 136 }, - { 19, 11, 109 }, { 7, 10, 706 }, { 7, 10, 1058 }, { 10, 10, 538 }, - { 5, 11, 976 }, { 4, 11, 206 }, { 7, 11, 746 }, { 8, 11, 526 }, - { 12, 0, 737 }, { 11, 10, 92 }, { 11, 10, 196 }, { 11, 10, 409 }, - { 11, 10, 450 }, { 11, 10, 666 }, { 11, 10, 777 }, { 12, 10, 262 }, - { 13, 10, 385 }, { 13, 10, 393 }, { 15, 10, 115 }, { 16, 10, 45 }, - { 17, 10, 82 }, { 4, 0, 226 }, { 4, 0, 326 }, { 7, 0, 1770 }, - { 4, 11, 319 }, { 5, 11, 699 }, { 10, 11, 673 }, { 6, 10, 40 }, - { 7, 10, 1781 }, { 5, 0, 426 }, { 8, 0, 30 }, { 9, 0, 2 }, - { 11, 0, 549 }, { 19, 0, 122 }, { 6, 0, 1161 }, { 6, 0, 1329 }, - { 10, 10, 97 }, { 6, 10, 423 }, { 7, 10, 665 }, { 7, 10, 1210 }, - { 7, 11, 13 }, { 8, 11, 226 }, { 10, 11, 537 }, { 11, 11, 570 }, - { 11, 11, 605 }, { 11, 11, 799 }, { 11, 11, 804 }, { 12, 11, 85 }, - { 12, 11, 516 }, { 12, 11, 623 }, { 13, 11, 112 }, { 13, 11, 361 }, - { 14, 11, 77 }, { 14, 11, 78 }, { 17, 11, 28 }, { 19, 11, 110 }, - { 4, 11, 769 }, { 4, 11, 551 }, { 4, 11, 728 }, { 19, 0, 117 }, - { 9, 11, 57 }, { 9, 11, 459 }, { 10, 11, 425 }, { 11, 11, 119 }, - { 12, 11, 184 }, { 12, 11, 371 }, { 13, 11, 358 }, { 17, 11, 51 }, - { 5, 11, 188 }, { 5, 11, 814 }, { 8, 11, 10 }, { 9, 11, 421 }, - { 9, 11, 729 }, { 10, 11, 609 }, { 11, 11, 689 }, { 6, 11, 624 }, - { 7, 11, 298 }, { 7, 0, 462 }, { 4, 0, 345 }, { 11, 10, 624 }, - { 8, 10, 574 }, { 4, 0, 385 }, { 7, 0, 265 }, { 7, 0, 587 }, - { 6, 0, 808 }, { 4, 11, 528 }, { 5, 0, 398 }, { 4, 10, 354 }, - { 4, 0, 347 }, { 5, 0, 423 }, { 5, 0, 996 }, { 7, 0, 1329 }, - { 7, 10, 1558 }, { 7, 0, 1259 }, { 9, 0, 125 }, { 11, 0, 65 }, - { 5, 0, 136 }, { 6, 0, 136 }, { 8, 0, 644 }, { 5, 11, 104 }, - { 6, 11, 173 }, { 7, 11, 1631 }, { 7, 0, 469 }, { 5, 10, 830 }, - { 4, 0, 278 }, { 5, 0, 465 }, { 7, 0, 1367 }, { 7, 11, 810 }, - { 8, 11, 138 }, { 8, 11, 342 }, { 9, 11, 84 }, { 10, 11, 193 }, - { 11, 11, 883 }, { 12, 11, 359 }, { 5, 10, 496 }, { 7, 10, 203 }, - { 4, 0, 433 }, { 5, 0, 719 }, { 6, 11, 95 }, { 6, 10, 547 }, - { 5, 10, 88 }, { 9, 10, 239 }, { 6, 11, 406 }, { 10, 11, 409 }, - { 10, 11, 447 }, { 11, 11, 44 }, { 12, 11, 100 }, { 6, 0, 1423 }, - { 7, 10, 650 }, { 7, 10, 1310 }, { 6, 0, 749 }, { 7, 11, 1243 }, - { 7, 0, 1363 }, { 6, 0, 381 }, { 7, 0, 645 }, { 7, 0, 694 }, - { 8, 0, 546 }, { 7, 10, 1076 }, { 9, 10, 80 }, { 11, 10, 78 }, - { 11, 10, 421 }, { 11, 10, 534 }, { 12, 10, 545 }, { 6, 11, 1636 }, - { 7, 11, 1344 }, { 12, 0, 277 }, { 7, 10, 274 }, { 11, 10, 479 }, - { 11, 10, 507 }, { 6, 0, 705 }, { 6, 0, 783 }, { 6, 0, 1275 }, - { 6, 0, 1481 }, { 4, 11, 282 }, { 7, 11, 1034 }, { 11, 11, 398 }, - { 11, 11, 634 }, { 12, 11, 1 }, { 12, 11, 79 }, { 12, 11, 544 }, - { 14, 11, 237 }, { 17, 11, 10 }, { 18, 11, 20 }, { 6, 0, 453 }, - { 4, 0, 555 }, { 8, 0, 536 }, { 10, 0, 288 }, { 11, 0, 1005 }, - { 4, 10, 497 }, { 7, 10, 1584 }, { 5, 11, 118 }, { 5, 11, 499 }, - { 6, 11, 476 }, { 7, 11, 600 }, { 7, 11, 888 }, { 7, 11, 1096 }, - { 10, 0, 987 }, { 7, 0, 1107 }, { 7, 10, 261 }, { 7, 10, 1115 }, - { 7, 10, 1354 }, { 7, 10, 1588 }, { 7, 10, 1705 }, { 7, 10, 1902 }, - { 9, 10, 465 }, { 10, 10, 248 }, { 10, 10, 349 }, { 10, 10, 647 }, - { 11, 10, 527 }, { 11, 10, 660 }, { 11, 10, 669 }, { 12, 10, 529 }, - { 13, 10, 305 }, { 7, 11, 296 }, { 7, 11, 596 }, { 8, 11, 560 }, - { 8, 11, 586 }, { 9, 11, 612 }, { 11, 11, 100 }, { 11, 11, 304 }, - { 12, 11, 46 }, { 13, 11, 89 }, { 14, 11, 112 }, { 17, 11, 122 }, - { 9, 0, 370 }, { 10, 0, 90 }, { 8, 10, 13 }, { 4, 0, 860 }, - { 7, 10, 642 }, { 8, 10, 250 }, { 11, 10, 123 }, { 11, 10, 137 }, - { 13, 10, 48 }, { 14, 10, 95 }, { 7, 10, 1429 }, { 9, 11, 321 }, - { 4, 0, 257 }, { 7, 0, 2031 }, { 7, 0, 1768 }, { 7, 11, 1599 }, - { 7, 11, 1723 }, { 8, 11, 79 }, { 8, 11, 106 }, { 8, 11, 190 }, - { 8, 11, 302 }, { 8, 11, 383 }, { 9, 11, 119 }, { 9, 11, 233 }, - { 9, 11, 298 }, { 9, 11, 419 }, { 9, 11, 471 }, { 10, 11, 181 }, - { 10, 11, 406 }, { 11, 11, 57 }, { 11, 11, 85 }, { 11, 11, 120 }, - { 11, 11, 177 }, { 11, 11, 296 }, { 11, 11, 382 }, { 11, 11, 454 }, - { 11, 11, 758 }, { 11, 11, 999 }, { 12, 11, 27 }, { 12, 11, 98 }, - { 12, 11, 131 }, { 12, 11, 245 }, { 12, 11, 312 }, { 12, 11, 446 }, - { 12, 11, 454 }, { 13, 11, 25 }, { 13, 11, 98 }, { 13, 11, 426 }, - { 13, 11, 508 }, { 14, 11, 6 }, { 14, 11, 163 }, { 14, 11, 272 }, - { 14, 11, 277 }, { 14, 11, 370 }, { 15, 11, 95 }, { 15, 11, 138 }, - { 15, 11, 167 }, { 17, 11, 18 }, { 17, 11, 38 }, { 20, 11, 96 }, - { 21, 11, 32 }, { 5, 11, 722 }, { 6, 11, 1759 }, { 17, 11, 16 }, - { 6, 0, 1071 }, { 6, 0, 1561 }, { 10, 10, 545 }, { 12, 10, 301 }, - { 6, 0, 83 }, { 6, 0, 1733 }, { 7, 0, 1389 }, { 4, 0, 835 }, - { 7, 0, 1818 }, { 5, 11, 258 }, { 4, 10, 904 }, { 5, 10, 794 }, - { 6, 0, 2006 }, { 5, 11, 30 }, { 7, 11, 495 }, { 8, 11, 134 }, - { 9, 11, 788 }, { 12, 11, 438 }, { 7, 11, 2004 }, { 9, 0, 696 }, - { 5, 11, 50 }, { 6, 11, 439 }, { 7, 11, 780 }, { 7, 11, 1040 }, - { 7, 11, 772 }, { 7, 11, 1104 }, { 7, 11, 1647 }, { 11, 11, 269 }, - { 11, 11, 539 }, { 11, 11, 607 }, { 11, 11, 627 }, { 11, 11, 706 }, - { 11, 11, 975 }, { 12, 11, 248 }, { 12, 11, 311 }, { 12, 11, 434 }, - { 12, 11, 600 }, { 12, 11, 622 }, { 13, 11, 297 }, { 13, 11, 367 }, - { 13, 11, 485 }, { 14, 11, 69 }, { 14, 11, 409 }, { 15, 11, 108 }, - { 5, 11, 1 }, { 6, 11, 81 }, { 10, 11, 520 }, { 7, 0, 1718 }, - { 9, 0, 95 }, { 9, 0, 274 }, { 10, 0, 279 }, { 10, 0, 317 }, - { 10, 0, 420 }, { 11, 0, 303 }, { 11, 0, 808 }, { 12, 0, 134 }, - { 12, 0, 367 }, { 13, 0, 149 }, { 13, 0, 347 }, { 14, 0, 349 }, - { 14, 0, 406 }, { 18, 0, 22 }, { 18, 0, 89 }, { 18, 0, 122 }, - { 19, 0, 47 }, { 5, 11, 482 }, { 8, 11, 98 }, { 9, 11, 172 }, - { 10, 11, 222 }, { 10, 11, 700 }, { 10, 11, 822 }, { 11, 11, 302 }, - { 11, 11, 778 }, { 12, 11, 50 }, { 12, 11, 127 }, { 12, 11, 396 }, - { 13, 11, 62 }, { 13, 11, 328 }, { 14, 11, 122 }, { 19, 11, 72 }, - { 7, 10, 386 }, { 10, 10, 713 }, { 6, 10, 7 }, { 6, 10, 35 }, - { 7, 10, 147 }, { 7, 10, 1069 }, { 7, 10, 1568 }, { 7, 10, 1575 }, - { 7, 10, 1917 }, { 8, 10, 43 }, { 8, 10, 208 }, { 9, 10, 128 }, - { 9, 10, 866 }, { 10, 10, 20 }, { 11, 10, 981 }, { 19, 10, 33 }, - { 5, 0, 26 }, { 4, 0, 550 }, { 5, 11, 2 }, { 7, 11, 1494 }, - { 8, 11, 589 }, { 6, 11, 512 }, { 7, 11, 797 }, { 8, 11, 253 }, - { 9, 11, 77 }, { 10, 11, 1 }, { 10, 11, 129 }, { 10, 11, 225 }, - { 11, 11, 118 }, { 11, 11, 226 }, { 11, 11, 251 }, { 11, 11, 430 }, - { 11, 11, 701 }, { 11, 11, 974 }, { 11, 11, 982 }, { 12, 11, 64 }, - { 12, 11, 260 }, { 12, 11, 488 }, { 12, 11, 690 }, { 7, 10, 893 }, - { 13, 10, 424 }, { 6, 0, 901 }, { 8, 0, 822 }, { 4, 0, 902 }, - { 5, 0, 809 }, { 6, 0, 122 }, { 6, 0, 807 }, { 6, 0, 1366 }, - { 7, 0, 262 }, { 5, 11, 748 }, { 6, 11, 553 }, { 5, 0, 620 }, - { 4, 0, 34 }, { 5, 0, 574 }, { 7, 0, 279 }, { 7, 0, 1624 }, - { 8, 0, 601 }, { 9, 0, 170 }, { 6, 10, 322 }, { 9, 10, 552 }, - { 11, 10, 274 }, { 13, 10, 209 }, { 13, 10, 499 }, { 14, 10, 85 }, - { 15, 10, 126 }, { 17, 10, 70 }, { 4, 0, 537 }, { 4, 11, 12 }, - { 7, 11, 420 }, { 7, 11, 522 }, { 7, 11, 809 }, { 8, 11, 797 }, - { 13, 11, 88 }, { 5, 0, 332 }, { 8, 10, 83 }, { 8, 10, 742 }, - { 8, 10, 817 }, { 9, 10, 28 }, { 9, 10, 29 }, { 9, 10, 885 }, - { 10, 10, 387 }, { 11, 10, 633 }, { 11, 10, 740 }, { 13, 10, 235 }, - { 13, 10, 254 }, { 15, 10, 143 }, { 15, 10, 146 }, { 6, 0, 1909 }, - { 9, 0, 964 }, { 12, 0, 822 }, { 12, 0, 854 }, { 12, 0, 865 }, - { 12, 0, 910 }, { 12, 0, 938 }, { 15, 0, 169 }, { 15, 0, 208 }, - { 15, 0, 211 }, { 18, 0, 205 }, { 18, 0, 206 }, { 18, 0, 220 }, - { 18, 0, 223 }, { 24, 0, 24 }, { 12, 10, 49 }, { 5, 11, 528 }, - { 7, 11, 1580 }, { 6, 0, 261 }, { 8, 0, 182 }, { 11, 0, 943 }, - { 6, 0, 1721 }, { 4, 0, 933 }, { 5, 0, 880 }, { 8, 11, 321 }, - { 5, 11, 266 }, { 9, 11, 290 }, { 9, 11, 364 }, { 10, 11, 293 }, - { 11, 11, 606 }, { 14, 11, 45 }, { 6, 0, 1609 }, { 4, 11, 50 }, - { 6, 11, 510 }, { 6, 11, 594 }, { 9, 11, 121 }, { 10, 11, 49 }, - { 10, 11, 412 }, { 11, 11, 834 }, { 7, 0, 895 }, { 8, 11, 748 }, - { 4, 11, 466 }, { 4, 10, 110 }, { 10, 10, 415 }, { 10, 10, 597 }, - { 14, 10, 206 }, { 5, 0, 812 }, { 7, 11, 281 }, { 6, 0, 1890 }, - { 6, 0, 1902 }, { 6, 0, 1916 }, { 9, 0, 929 }, { 9, 0, 942 }, - { 9, 0, 975 }, { 9, 0, 984 }, { 9, 0, 986 }, { 9, 0, 1011 }, - { 9, 0, 1019 }, { 12, 0, 804 }, { 12, 0, 851 }, { 12, 0, 867 }, - { 12, 0, 916 }, { 12, 0, 923 }, { 15, 0, 194 }, { 15, 0, 204 }, - { 15, 0, 210 }, { 15, 0, 222 }, { 15, 0, 223 }, { 15, 0, 229 }, - { 15, 0, 250 }, { 18, 0, 179 }, { 18, 0, 186 }, { 18, 0, 192 }, - { 7, 10, 205 }, { 7, 10, 2000 }, { 4, 11, 667 }, { 7, 0, 778 }, - { 4, 0, 137 }, { 7, 0, 1178 }, { 7, 0, 1520 }, { 6, 0, 1314 }, - { 4, 11, 242 }, { 6, 11, 333 }, { 6, 0, 1661 }, { 7, 0, 1975 }, - { 7, 0, 2009 }, { 7, 0, 2011 }, { 6, 0, 1591 }, { 4, 10, 283 }, - { 7, 10, 1194 }, { 11, 0, 820 }, { 22, 0, 51 }, { 4, 11, 39 }, - { 5, 11, 36 }, { 7, 11, 1843 }, { 8, 11, 407 }, { 11, 11, 144 }, - { 12, 11, 523 }, { 6, 10, 1720 }, { 4, 11, 510 }, { 7, 11, 29 }, - { 7, 11, 66 }, { 7, 11, 1980 }, { 10, 11, 487 }, { 10, 11, 809 }, - { 18, 11, 9 }, { 5, 0, 89 }, { 7, 0, 1915 }, { 9, 0, 185 }, - { 9, 0, 235 }, { 10, 0, 64 }, { 10, 0, 270 }, { 10, 0, 403 }, - { 10, 0, 469 }, { 10, 0, 529 }, { 10, 0, 590 }, { 11, 0, 140 }, - { 11, 0, 860 }, { 13, 0, 1 }, { 13, 0, 422 }, { 14, 0, 341 }, - { 14, 0, 364 }, { 17, 0, 93 }, { 18, 0, 113 }, { 19, 0, 97 }, - { 19, 0, 113 }, { 5, 0, 695 }, { 6, 0, 987 }, { 6, 0, 1160 }, - { 5, 0, 6 }, { 6, 0, 183 }, { 7, 0, 680 }, { 7, 0, 978 }, - { 7, 0, 1013 }, { 7, 0, 1055 }, { 12, 0, 230 }, { 13, 0, 172 }, - { 18, 0, 29 }, { 6, 11, 570 }, { 4, 11, 787 }, { 6, 11, 518 }, - { 6, 0, 29 }, { 11, 0, 63 }, { 4, 11, 516 }, { 8, 11, 821 }, - { 4, 0, 311 }, { 6, 0, 1740 }, { 7, 0, 170 }, { 8, 0, 90 }, - { 8, 0, 177 }, { 8, 0, 415 }, { 11, 0, 714 }, { 14, 0, 281 }, - { 8, 10, 735 }, { 6, 0, 1961 }, { 7, 11, 1405 }, { 4, 11, 10 }, - { 7, 11, 917 }, { 11, 11, 786 }, { 5, 10, 132 }, { 9, 10, 486 }, - { 9, 10, 715 }, { 10, 10, 458 }, { 11, 10, 373 }, { 11, 10, 668 }, - { 11, 10, 795 }, { 11, 10, 897 }, { 12, 10, 272 }, { 12, 10, 424 }, - { 12, 10, 539 }, { 12, 10, 558 }, { 14, 10, 245 }, { 14, 10, 263 }, - { 14, 10, 264 }, { 14, 10, 393 }, { 14, 10, 403 }, { 11, 0, 91 }, - { 13, 0, 129 }, { 15, 0, 101 }, { 17, 0, 125 }, { 7, 0, 1132 }, - { 4, 0, 494 }, { 6, 0, 74 }, { 7, 0, 44 }, { 7, 0, 407 }, - { 12, 0, 17 }, { 15, 0, 5 }, { 20, 0, 11 }, { 5, 10, 379 }, - { 5, 0, 270 }, { 5, 11, 684 }, { 6, 10, 89 }, { 6, 10, 400 }, - { 7, 10, 1569 }, { 7, 10, 1623 }, { 7, 10, 1850 }, { 8, 10, 218 }, - { 8, 10, 422 }, { 9, 10, 570 }, { 10, 10, 626 }, { 4, 0, 276 }, - { 5, 0, 296 }, { 6, 0, 1523 }, { 6, 11, 27 }, { 6, 10, 387 }, - { 7, 10, 882 }, { 13, 10, 111 }, { 6, 10, 224 }, { 7, 10, 877 }, - { 9, 10, 647 }, { 7, 10, 790 }, { 4, 0, 7 }, { 5, 0, 90 }, - { 5, 0, 158 }, { 6, 0, 542 }, { 7, 0, 221 }, { 7, 0, 1574 }, - { 9, 0, 490 }, { 10, 0, 540 }, { 11, 0, 443 }, { 11, 0, 757 }, - { 7, 0, 588 }, { 9, 0, 175 }, { 10, 0, 530 }, { 7, 10, 394 }, - { 14, 11, 23 }, { 6, 0, 786 }, { 7, 0, 580 }, { 7, 0, 88 }, - { 8, 0, 627 }, { 5, 0, 872 }, { 6, 0, 57 }, { 7, 0, 471 }, - { 9, 0, 447 }, { 9, 0, 454 }, { 6, 11, 342 }, { 6, 11, 496 }, - { 8, 11, 275 }, { 9, 11, 206 }, { 4, 11, 909 }, { 5, 11, 940 }, - { 6, 0, 735 }, { 4, 11, 891 }, { 8, 0, 845 }, { 8, 0, 916 }, - { 7, 10, 1409 }, { 5, 0, 31 }, { 6, 0, 614 }, { 11, 0, 458 }, - { 12, 0, 15 }, { 12, 0, 432 }, { 8, 0, 330 }, { 12, 0, 477 }, - { 4, 0, 530 }, { 5, 0, 521 }, { 7, 0, 1200 }, { 10, 0, 460 }, - { 4, 11, 687 }, { 6, 0, 424 }, { 7, 0, 1866 }, { 9, 0, 569 }, - { 12, 0, 12 }, { 12, 0, 81 }, { 12, 0, 319 }, { 13, 0, 69 }, - { 14, 0, 259 }, { 16, 0, 87 }, { 17, 0, 1 }, { 17, 0, 21 }, - { 17, 0, 24 }, { 18, 0, 15 }, { 18, 0, 56 }, { 18, 0, 59 }, - { 18, 0, 127 }, { 18, 0, 154 }, { 19, 0, 19 }, { 20, 0, 31 }, - { 7, 0, 1302 }, { 8, 10, 38 }, { 6, 11, 253 }, { 5, 10, 261 }, - { 7, 10, 78 }, { 7, 10, 199 }, { 8, 10, 815 }, { 9, 10, 126 }, - { 10, 10, 342 }, { 5, 0, 595 }, { 7, 0, 1863 }, { 6, 11, 41 }, - { 13, 11, 160 }, { 5, 0, 13 }, { 6, 0, 142 }, { 6, 0, 97 }, - { 7, 0, 116 }, { 8, 0, 322 }, { 8, 0, 755 }, { 9, 0, 548 }, - { 10, 0, 714 }, { 11, 0, 884 }, { 13, 0, 324 }, { 7, 11, 1304 }, - { 10, 11, 477 }, { 4, 10, 628 }, { 6, 11, 1718 }, { 7, 10, 266 }, - { 8, 10, 804 }, { 7, 10, 208 }, { 7, 0, 1021 }, { 6, 10, 79 }, - { 7, 10, 1519 }, { 7, 0, 1472 }, { 7, 0, 1554 }, { 6, 11, 362 }, - { 18, 11, 51 }, { 7, 0, 1071 }, { 7, 0, 1541 }, { 7, 0, 1767 }, - { 7, 0, 1806 }, { 11, 0, 162 }, { 11, 0, 242 }, { 11, 0, 452 }, - { 12, 0, 605 }, { 15, 0, 26 }, { 16, 0, 44 }, { 8, 10, 741 }, - { 5, 11, 115 }, { 17, 0, 115 }, { 6, 10, 376 }, { 6, 0, 1406 }, - { 6, 0, 1543 }, { 5, 11, 193 }, { 12, 11, 178 }, { 13, 11, 130 }, - { 17, 11, 84 }, { 7, 0, 1111 }, { 8, 0, 1 }, { 9, 0, 650 }, - { 10, 0, 326 }, { 5, 11, 705 }, { 9, 11, 606 }, { 5, 0, 488 }, - { 6, 0, 527 }, { 7, 0, 489 }, { 7, 0, 1636 }, { 8, 0, 121 }, - { 8, 0, 144 }, { 8, 0, 359 }, { 9, 0, 193 }, { 9, 0, 241 }, - { 9, 0, 336 }, { 9, 0, 882 }, { 11, 0, 266 }, { 11, 0, 372 }, - { 11, 0, 944 }, { 12, 0, 401 }, { 12, 0, 641 }, { 7, 11, 174 }, - { 6, 0, 267 }, { 7, 10, 244 }, { 7, 10, 632 }, { 7, 10, 1609 }, - { 8, 10, 178 }, { 8, 10, 638 }, { 13, 10, 58 }, { 6, 0, 1983 }, - { 6, 0, 1155 }, { 6, 0, 1575 }, { 6, 0, 1438 }, { 9, 0, 31 }, - { 10, 0, 244 }, { 10, 0, 699 }, { 12, 0, 149 }, { 13, 0, 497 }, - { 5, 0, 377 }, { 4, 11, 122 }, { 5, 11, 796 }, { 5, 11, 952 }, - { 6, 11, 1660 }, { 6, 11, 1671 }, { 8, 11, 567 }, { 9, 11, 687 }, - { 9, 11, 742 }, { 10, 11, 686 }, { 11, 11, 356 }, { 11, 11, 682 }, - { 12, 11, 281 }, { 17, 0, 101 }, { 11, 11, 0 }, { 16, 11, 78 }, - { 5, 11, 179 }, { 5, 10, 791 }, { 7, 11, 1095 }, { 7, 11, 1213 }, - { 8, 11, 372 }, { 9, 11, 122 }, { 10, 11, 175 }, { 7, 10, 686 }, - { 8, 10, 33 }, { 8, 10, 238 }, { 10, 10, 616 }, { 11, 10, 467 }, - { 11, 10, 881 }, { 13, 10, 217 }, { 13, 10, 253 }, { 14, 10, 268 }, - { 9, 0, 476 }, { 4, 11, 66 }, { 7, 11, 722 }, { 7, 11, 904 }, - { 7, 11, 352 }, { 9, 11, 684 }, { 7, 0, 2023 }, { 7, 0, 1836 }, - { 4, 10, 447 }, { 5, 0, 843 }, { 16, 0, 35 }, { 9, 11, 779 }, - { 13, 11, 35 }, { 4, 10, 128 }, { 5, 10, 415 }, { 6, 10, 462 }, - { 7, 10, 294 }, { 7, 10, 578 }, { 10, 10, 710 }, { 11, 10, 86 }, - { 4, 0, 554 }, { 5, 0, 536 }, { 8, 10, 587 }, { 5, 0, 207 }, - { 9, 0, 79 }, { 11, 0, 625 }, { 17, 0, 7 }, { 7, 0, 1371 }, - { 6, 10, 427 }, { 10, 10, 692 }, { 4, 0, 424 }, { 4, 10, 195 }, - { 7, 10, 802 }, { 8, 0, 785 }, { 5, 11, 564 }, { 7, 0, 336 }, - { 4, 0, 896 }, { 6, 0, 1777 }, { 6, 11, 556 }, { 9, 11, 103 }, - { 6, 10, 1683 }, { 7, 11, 544 }, { 8, 11, 719 }, { 10, 11, 61 }, - { 10, 10, 472 }, { 4, 11, 5 }, { 5, 11, 498 }, { 8, 11, 637 }, - { 7, 0, 750 }, { 9, 0, 223 }, { 11, 0, 27 }, { 11, 0, 466 }, - { 12, 0, 624 }, { 14, 0, 265 }, { 18, 0, 61 }, { 12, 0, 238 }, - { 18, 0, 155 }, { 12, 11, 238 }, { 18, 11, 155 }, { 23, 10, 28 }, - { 5, 11, 927 }, { 12, 0, 383 }, { 5, 10, 3 }, { 8, 10, 578 }, - { 9, 10, 118 }, { 10, 10, 705 }, { 13, 10, 279 }, { 4, 11, 893 }, - { 5, 11, 780 }, { 5, 11, 893 }, { 4, 0, 603 }, { 5, 0, 661 }, - { 4, 0, 11 }, { 6, 0, 128 }, { 7, 0, 231 }, { 7, 0, 1533 }, - { 10, 0, 725 }, { 5, 10, 229 }, { 5, 11, 238 }, { 7, 11, 1350 }, - { 8, 10, 102 }, { 10, 10, 578 }, { 10, 10, 672 }, { 12, 10, 496 }, - { 13, 10, 408 }, { 14, 10, 121 }, { 17, 10, 106 }, { 4, 0, 476 }, - { 6, 0, 1552 }, { 6, 11, 1729 }, { 8, 10, 115 }, { 8, 10, 350 }, - { 9, 10, 489 }, { 10, 10, 128 }, { 11, 10, 306 }, { 12, 10, 373 }, - { 14, 10, 30 }, { 17, 10, 79 }, { 19, 10, 80 }, { 22, 10, 55 }, - { 7, 0, 1807 }, { 4, 0, 680 }, { 4, 11, 60 }, { 7, 11, 760 }, - { 7, 11, 1800 }, { 8, 11, 314 }, { 9, 11, 700 }, { 11, 11, 487 }, - { 4, 10, 230 }, { 5, 10, 702 }, { 20, 11, 94 }, { 4, 11, 228 }, - { 11, 0, 435 }, { 9, 0, 20 }, { 10, 0, 324 }, { 10, 0, 807 }, - { 11, 0, 488 }, { 6, 10, 1728 }, { 8, 11, 419 }, { 4, 10, 484 }, - { 18, 10, 26 }, { 19, 10, 42 }, { 20, 10, 43 }, { 21, 10, 0 }, - { 23, 10, 27 }, { 24, 10, 14 }, { 7, 0, 1431 }, { 5, 11, 828 }, - { 5, 0, 112 }, { 6, 0, 103 }, { 6, 0, 150 }, { 7, 0, 1303 }, - { 9, 0, 292 }, { 10, 0, 481 }, { 20, 0, 13 }, { 7, 11, 176 }, - { 7, 11, 178 }, { 7, 11, 1110 }, { 10, 11, 481 }, { 20, 11, 13 }, - { 10, 0, 356 }, { 4, 11, 51 }, { 5, 11, 39 }, { 6, 11, 4 }, - { 7, 11, 591 }, { 7, 11, 849 }, { 7, 11, 951 }, { 7, 11, 1129 }, - { 7, 11, 1613 }, { 7, 11, 1760 }, { 7, 11, 1988 }, { 9, 11, 434 }, - { 10, 11, 754 }, { 11, 11, 25 }, { 11, 11, 37 }, { 11, 11, 414 }, - { 6, 0, 1963 }, { 6, 0, 2000 }, { 4, 10, 633 }, { 6, 0, 1244 }, - { 5, 11, 902 }, { 7, 11, 928 }, { 12, 0, 18 }, { 10, 0, 204 }, - { 7, 11, 1173 }, { 6, 0, 867 }, { 4, 0, 708 }, { 8, 0, 15 }, - { 9, 0, 50 }, { 9, 0, 386 }, { 11, 0, 18 }, { 11, 0, 529 }, - { 12, 0, 228 }, { 6, 11, 270 }, { 4, 0, 563 }, { 7, 0, 109 }, - { 7, 0, 592 }, { 7, 0, 637 }, { 7, 0, 770 }, { 8, 0, 463 }, - { 9, 0, 60 }, { 9, 0, 335 }, { 9, 0, 904 }, { 10, 0, 73 }, - { 11, 0, 434 }, { 12, 0, 585 }, { 13, 0, 331 }, { 18, 0, 110 }, - { 20, 0, 60 }, { 4, 0, 502 }, { 14, 11, 359 }, { 19, 11, 52 }, - { 20, 11, 47 }, { 6, 11, 377 }, { 7, 11, 1025 }, { 9, 11, 613 }, - { 17, 11, 104 }, { 6, 0, 347 }, { 10, 0, 161 }, { 5, 10, 70 }, - { 5, 10, 622 }, { 6, 10, 334 }, { 7, 10, 1032 }, { 9, 10, 171 }, - { 11, 10, 26 }, { 11, 10, 213 }, { 11, 10, 637 }, { 11, 10, 707 }, - { 12, 10, 202 }, { 12, 10, 380 }, { 13, 10, 226 }, { 13, 10, 355 }, - { 14, 10, 222 }, { 17, 10, 42 }, { 4, 11, 416 }, { 4, 0, 33 }, - { 5, 0, 102 }, { 6, 0, 284 }, { 7, 0, 1079 }, { 7, 0, 1423 }, - { 7, 0, 1702 }, { 8, 0, 470 }, { 9, 0, 554 }, { 9, 0, 723 }, - { 11, 0, 333 }, { 14, 11, 372 }, { 5, 11, 152 }, { 5, 11, 197 }, - { 7, 11, 340 }, { 7, 11, 867 }, { 10, 11, 548 }, { 10, 11, 581 }, - { 11, 11, 6 }, { 12, 11, 3 }, { 12, 11, 19 }, { 14, 11, 110 }, - { 14, 11, 289 }, { 7, 0, 246 }, { 7, 0, 840 }, { 6, 0, 10 }, - { 8, 0, 571 }, { 9, 0, 739 }, { 15, 0, 91 }, { 6, 0, 465 }, - { 7, 0, 1465 }, { 4, 10, 23 }, { 4, 10, 141 }, { 5, 10, 313 }, - { 5, 10, 1014 }, { 6, 10, 50 }, { 7, 10, 142 }, { 7, 10, 559 }, - { 8, 10, 640 }, { 9, 10, 460 }, { 9, 10, 783 }, { 11, 10, 741 }, - { 12, 10, 183 }, { 13, 10, 488 }, { 5, 0, 626 }, { 8, 0, 614 }, - { 10, 0, 237 }, { 7, 11, 34 }, { 7, 11, 190 }, { 8, 11, 28 }, - { 8, 11, 141 }, { 8, 11, 444 }, { 8, 11, 811 }, { 9, 11, 468 }, - { 11, 11, 334 }, { 12, 11, 24 }, { 12, 11, 386 }, { 12, 11, 576 }, - { 5, 11, 757 }, { 5, 0, 18 }, { 6, 0, 526 }, { 13, 0, 24 }, - { 13, 0, 110 }, { 19, 0, 5 }, { 19, 0, 44 }, { 6, 0, 506 }, - { 6, 11, 506 }, { 7, 11, 1553 }, { 4, 0, 309 }, { 5, 0, 462 }, - { 7, 0, 970 }, { 7, 0, 1097 }, { 22, 0, 30 }, { 22, 0, 33 }, - { 7, 11, 1385 }, { 11, 11, 582 }, { 11, 11, 650 }, { 11, 11, 901 }, - { 11, 11, 949 }, { 12, 11, 232 }, { 12, 11, 236 }, { 13, 11, 413 }, - { 13, 11, 501 }, { 18, 11, 116 }, { 9, 0, 140 }, { 5, 10, 222 }, - { 10, 10, 534 }, { 6, 0, 1056 }, { 9, 10, 906 }, { 6, 0, 1704 }, - { 10, 10, 503 }, { 6, 0, 1036 }, { 5, 10, 154 }, { 7, 10, 1491 }, - { 10, 10, 379 }, { 10, 10, 485 }, { 4, 11, 383 }, { 5, 10, 716 }, - { 6, 0, 1315 }, { 5, 0, 86 }, { 7, 0, 743 }, { 9, 0, 85 }, - { 10, 0, 281 }, { 10, 0, 432 }, { 11, 0, 825 }, { 12, 0, 251 }, - { 13, 0, 118 }, { 14, 0, 378 }, { 8, 0, 264 }, { 4, 10, 91 }, - { 5, 10, 388 }, { 5, 10, 845 }, { 6, 10, 206 }, { 6, 10, 252 }, - { 6, 10, 365 }, { 7, 10, 136 }, { 7, 10, 531 }, { 8, 10, 621 }, - { 5, 0, 524 }, { 5, 0, 744 }, { 5, 11, 277 }, { 13, 11, 247 }, - { 4, 11, 435 }, { 10, 0, 107 }, { 12, 0, 436 }, { 4, 0, 927 }, - { 10, 0, 123 }, { 12, 0, 670 }, { 18, 0, 94 }, { 7, 0, 1149 }, - { 9, 0, 156 }, { 10, 0, 957 }, { 5, 11, 265 }, { 6, 11, 212 }, - { 7, 11, 28 }, { 5, 0, 778 }, { 5, 0, 502 }, { 8, 0, 196 }, - { 10, 0, 283 }, { 11, 0, 406 }, { 7, 10, 576 }, { 8, 11, 535 }, - { 6, 0, 1312 }, { 5, 10, 771 }, { 5, 10, 863 }, { 5, 10, 898 }, - { 6, 10, 1632 }, { 6, 10, 1644 }, { 6, 10, 1780 }, { 5, 0, 855 }, - { 5, 10, 331 }, { 7, 11, 1487 }, { 4, 11, 702 }, { 5, 11, 808 }, - { 7, 11, 2045 }, { 7, 0, 1400 }, { 9, 0, 446 }, { 10, 0, 45 }, - { 12, 10, 632 }, { 4, 0, 1003 }, { 5, 11, 166 }, { 8, 11, 739 }, - { 12, 11, 511 }, { 5, 10, 107 }, { 7, 10, 201 }, { 8, 10, 518 }, - { 6, 10, 446 }, { 7, 10, 1817 }, { 6, 0, 1532 }, { 6, 0, 1097 }, - { 4, 11, 119 }, { 5, 11, 170 }, { 5, 11, 447 }, { 7, 11, 1708 }, - { 7, 11, 1889 }, { 9, 11, 357 }, { 9, 11, 719 }, { 12, 11, 486 }, - { 12, 11, 596 }, { 9, 10, 851 }, { 13, 10, 510 }, { 7, 0, 612 }, - { 8, 0, 545 }, { 8, 0, 568 }, { 8, 0, 642 }, { 9, 0, 717 }, - { 10, 0, 541 }, { 10, 0, 763 }, { 11, 0, 449 }, { 12, 0, 489 }, - { 13, 0, 153 }, { 13, 0, 296 }, { 14, 0, 138 }, { 14, 0, 392 }, - { 15, 0, 50 }, { 16, 0, 6 }, { 16, 0, 12 }, { 20, 0, 9 }, - { 4, 10, 504 }, { 4, 11, 450 }, { 7, 11, 1158 }, { 11, 0, 54 }, - { 13, 0, 173 }, { 13, 0, 294 }, { 5, 10, 883 }, { 5, 10, 975 }, - { 8, 10, 392 }, { 20, 10, 7 }, { 13, 0, 455 }, { 15, 0, 99 }, - { 15, 0, 129 }, { 16, 0, 68 }, { 7, 0, 172 }, { 4, 11, 754 }, - { 5, 10, 922 }, { 6, 10, 1707 }, { 6, 0, 1029 }, { 17, 11, 39 }, - { 20, 11, 36 }, { 4, 0, 568 }, { 5, 10, 993 }, { 7, 10, 515 }, - { 9, 10, 91 }, { 4, 0, 732 }, { 10, 0, 617 }, { 10, 11, 617 }, - { 6, 0, 974 }, { 7, 0, 989 }, { 10, 0, 377 }, { 12, 0, 363 }, - { 13, 0, 68 }, { 13, 0, 94 }, { 14, 0, 108 }, { 14, 0, 306 }, - { 8, 0, 733 }, { 4, 0, 428 }, { 7, 0, 1789 }, { 7, 11, 1062 }, - { 7, 0, 2015 }, { 12, 0, 665 }, { 7, 10, 1433 }, { 5, 0, 287 }, - { 7, 10, 921 }, { 8, 10, 580 }, { 8, 10, 593 }, { 8, 10, 630 }, - { 10, 10, 28 }, { 10, 0, 806 }, { 4, 10, 911 }, { 5, 10, 867 }, - { 5, 10, 1013 }, { 7, 10, 2034 }, { 8, 10, 798 }, { 8, 10, 813 }, - { 6, 0, 1539 }, { 8, 11, 523 }, { 22, 11, 34 }, { 7, 11, 740 }, - { 7, 11, 238 }, { 7, 11, 2033 }, { 8, 11, 120 }, { 8, 11, 188 }, - { 8, 11, 659 }, { 9, 11, 598 }, { 10, 11, 466 }, { 12, 11, 342 }, - { 12, 11, 588 }, { 13, 11, 503 }, { 14, 11, 246 }, { 15, 11, 92 }, - { 7, 0, 1563 }, { 13, 0, 182 }, { 5, 10, 135 }, { 6, 10, 519 }, - { 7, 10, 1722 }, { 10, 10, 271 }, { 11, 10, 261 }, { 17, 10, 54 }, - { 14, 10, 338 }, { 20, 10, 81 }, { 7, 0, 484 }, { 4, 10, 300 }, - { 5, 10, 436 }, { 17, 11, 114 }, { 6, 0, 1623 }, { 6, 0, 1681 }, - { 5, 11, 640 }, { 4, 11, 201 }, { 7, 11, 1744 }, { 8, 11, 602 }, - { 11, 11, 247 }, { 11, 11, 826 }, { 17, 11, 65 }, { 8, 11, 164 }, - { 18, 11, 62 }, { 6, 0, 1833 }, { 6, 0, 1861 }, { 8, 0, 878 }, - { 6, 0, 1569 }, { 8, 10, 357 }, { 10, 10, 745 }, { 14, 10, 426 }, - { 17, 10, 94 }, { 19, 10, 57 }, { 12, 0, 93 }, { 12, 0, 501 }, - { 13, 0, 362 }, { 14, 0, 151 }, { 15, 0, 40 }, { 15, 0, 59 }, - { 16, 0, 46 }, { 17, 0, 25 }, { 18, 0, 14 }, { 18, 0, 134 }, - { 19, 0, 25 }, { 19, 0, 69 }, { 20, 0, 16 }, { 20, 0, 19 }, - { 20, 0, 66 }, { 21, 0, 23 }, { 21, 0, 25 }, { 22, 0, 42 }, - { 6, 0, 1748 }, { 8, 0, 715 }, { 9, 0, 802 }, { 10, 0, 46 }, - { 10, 0, 819 }, { 13, 0, 308 }, { 14, 0, 351 }, { 14, 0, 363 }, - { 18, 0, 67 }, { 4, 0, 994 }, { 4, 0, 63 }, { 5, 0, 347 }, - { 4, 0, 591 }, { 5, 0, 749 }, { 7, 11, 1577 }, { 10, 11, 304 }, - { 10, 11, 549 }, { 11, 11, 424 }, { 12, 11, 365 }, { 13, 11, 220 }, - { 13, 11, 240 }, { 14, 11, 33 }, { 5, 0, 366 }, { 7, 0, 557 }, - { 12, 0, 547 }, { 14, 0, 86 }, { 5, 10, 387 }, { 7, 0, 1747 }, - { 4, 11, 907 }, { 5, 11, 100 }, { 10, 11, 329 }, { 12, 11, 416 }, - { 21, 11, 29 }, { 4, 10, 6 }, { 5, 10, 708 }, { 8, 10, 75 }, - { 7, 10, 1351 }, { 9, 10, 581 }, { 10, 10, 639 }, { 11, 10, 453 }, - { 12, 10, 584 }, { 7, 0, 89 }, { 4, 10, 303 }, { 10, 10, 772 }, - { 4, 11, 176 }, { 5, 11, 636 }, { 5, 11, 998 }, { 8, 11, 26 }, - { 9, 11, 358 }, { 7, 11, 9 }, { 7, 11, 1508 }, { 9, 11, 317 }, - { 10, 11, 210 }, { 10, 11, 292 }, { 10, 11, 533 }, { 11, 11, 555 }, - { 12, 11, 526 }, { 12, 11, 607 }, { 13, 11, 263 }, { 13, 11, 459 }, - { 14, 11, 271 }, { 6, 0, 1463 }, { 6, 0, 772 }, { 6, 0, 1137 }, - { 11, 11, 595 }, { 7, 0, 977 }, { 11, 11, 66 }, { 10, 0, 893 }, - { 20, 0, 48 }, { 20, 11, 48 }, { 5, 0, 824 }, { 5, 0, 941 }, - { 6, 11, 295 }, { 7, 0, 1543 }, { 7, 0, 1785 }, { 10, 0, 690 }, - { 4, 10, 106 }, { 11, 10, 717 }, { 7, 0, 440 }, { 8, 0, 230 }, - { 11, 0, 106 }, { 5, 10, 890 }, { 5, 10, 988 }, { 6, 10, 626 }, - { 14, 10, 431 }, { 10, 11, 127 }, { 13, 11, 27 }, { 17, 0, 32 }, - { 10, 10, 706 }, { 22, 10, 44 }, { 4, 0, 216 }, { 9, 0, 332 }, - { 4, 10, 698 }, { 8, 11, 119 }, { 11, 11, 267 }, { 10, 10, 17 }, - { 11, 11, 526 }, { 11, 11, 939 }, { 13, 11, 290 }, { 7, 11, 1167 }, - { 11, 11, 934 }, { 13, 11, 391 }, { 17, 11, 76 }, { 11, 11, 39 }, - { 6, 10, 84 }, { 4, 0, 914 }, { 5, 0, 800 }, { 5, 0, 852 }, - { 10, 0, 416 }, { 13, 0, 115 }, { 7, 0, 564 }, { 14, 0, 168 }, - { 4, 0, 918 }, { 5, 0, 876 }, { 6, 0, 1764 }, { 24, 0, 3 }, - { 4, 0, 92 }, { 5, 0, 274 }, { 7, 11, 126 }, { 8, 11, 84 }, - { 12, 10, 498 }, { 8, 11, 790 }, { 8, 0, 501 }, { 5, 10, 986 }, - { 6, 10, 130 }, { 7, 10, 1582 }, { 8, 10, 458 }, { 10, 10, 101 }, - { 10, 10, 318 }, { 10, 10, 823 }, { 6, 11, 64 }, { 12, 11, 377 }, - { 13, 11, 309 }, { 5, 0, 743 }, { 10, 0, 851 }, { 4, 0, 49 }, - { 7, 0, 280 }, { 7, 0, 1633 }, { 6, 0, 879 }, { 8, 0, 47 }, - { 7, 10, 1644 }, { 9, 10, 129 }, { 4, 0, 865 }, { 6, 0, 1202 }, - { 9, 11, 34 }, { 11, 11, 484 }, { 7, 10, 997 }, { 5, 0, 272 }, - { 5, 0, 908 }, { 5, 0, 942 }, { 8, 0, 197 }, { 9, 0, 47 }, - { 11, 0, 538 }, { 11, 0, 742 }, { 6, 11, 1700 }, { 7, 11, 26 }, - { 7, 11, 293 }, { 7, 11, 382 }, { 7, 11, 1026 }, { 7, 11, 1087 }, - { 7, 11, 2027 }, { 8, 11, 24 }, { 8, 11, 114 }, { 8, 11, 252 }, - { 8, 11, 727 }, { 8, 11, 729 }, { 9, 11, 30 }, { 9, 11, 199 }, - { 9, 11, 231 }, { 9, 11, 251 }, { 9, 11, 334 }, { 9, 11, 361 }, - { 9, 11, 488 }, { 9, 11, 712 }, { 10, 11, 55 }, { 10, 11, 60 }, - { 10, 11, 232 }, { 10, 11, 332 }, { 10, 11, 384 }, { 10, 11, 396 }, - { 10, 11, 504 }, { 10, 11, 542 }, { 10, 11, 652 }, { 11, 11, 20 }, - { 11, 11, 48 }, { 11, 11, 207 }, { 11, 11, 291 }, { 11, 11, 298 }, - { 11, 11, 342 }, { 11, 11, 365 }, { 11, 11, 394 }, { 11, 11, 620 }, - { 11, 11, 705 }, { 11, 11, 1017 }, { 12, 11, 123 }, { 12, 11, 340 }, - { 12, 11, 406 }, { 12, 11, 643 }, { 13, 11, 61 }, { 13, 11, 269 }, - { 13, 11, 311 }, { 13, 11, 319 }, { 13, 11, 486 }, { 14, 11, 234 }, - { 15, 11, 62 }, { 15, 11, 85 }, { 16, 11, 71 }, { 18, 11, 119 }, - { 20, 11, 105 }, { 6, 0, 1455 }, { 22, 11, 37 }, { 7, 10, 1927 }, - { 7, 0, 1911 }, { 9, 0, 891 }, { 7, 10, 1756 }, { 9, 10, 98 }, - { 7, 10, 1046 }, { 11, 10, 160 }, { 4, 0, 761 }, { 6, 11, 379 }, - { 7, 11, 270 }, { 7, 11, 1116 }, { 8, 11, 176 }, { 8, 11, 183 }, - { 9, 11, 432 }, { 9, 11, 661 }, { 12, 11, 247 }, { 12, 11, 617 }, - { 18, 11, 125 }, { 6, 10, 45 }, { 7, 10, 433 }, { 8, 10, 129 }, - { 9, 10, 21 }, { 10, 10, 392 }, { 11, 10, 79 }, { 12, 10, 499 }, - { 13, 10, 199 }, { 13, 10, 451 }, { 4, 0, 407 }, { 5, 11, 792 }, - { 5, 11, 900 }, { 4, 0, 560 }, { 7, 0, 183 }, { 13, 0, 490 }, - { 7, 10, 558 }, { 8, 10, 353 }, { 4, 0, 475 }, { 6, 0, 731 }, - { 11, 0, 35 }, { 13, 0, 71 }, { 13, 0, 177 }, { 14, 0, 422 }, - { 5, 10, 785 }, { 8, 10, 81 }, { 9, 10, 189 }, { 9, 10, 201 }, - { 11, 10, 478 }, { 11, 10, 712 }, { 13, 10, 338 }, { 4, 0, 418 }, - { 4, 0, 819 }, { 5, 10, 353 }, { 23, 10, 26 }, { 4, 11, 901 }, - { 5, 11, 776 }, { 4, 0, 575 }, { 7, 0, 818 }, { 16, 0, 92 }, - { 17, 0, 14 }, { 17, 0, 45 }, { 18, 0, 75 }, { 20, 0, 18 }, - { 6, 0, 222 }, { 7, 0, 636 }, { 7, 0, 1620 }, { 8, 0, 409 }, - { 9, 0, 693 }, { 11, 0, 77 }, { 6, 10, 25 }, { 7, 10, 855 }, - { 7, 10, 1258 }, { 16, 10, 32 }, { 6, 0, 1880 }, { 6, 0, 1887 }, - { 6, 0, 1918 }, { 6, 0, 1924 }, { 9, 0, 967 }, { 9, 0, 995 }, - { 9, 0, 1015 }, { 12, 0, 826 }, { 12, 0, 849 }, { 12, 0, 857 }, - { 12, 0, 860 }, { 12, 0, 886 }, { 12, 0, 932 }, { 18, 0, 228 }, - { 18, 0, 231 }, { 18, 0, 240 }, { 6, 0, 633 }, { 6, 0, 1308 }, - { 4, 11, 37 }, { 5, 11, 334 }, { 7, 11, 1253 }, { 10, 0, 86 }, - { 4, 10, 4 }, { 7, 10, 1118 }, { 7, 10, 1320 }, { 7, 10, 1706 }, - { 8, 10, 277 }, { 9, 10, 622 }, { 11, 10, 724 }, { 12, 10, 350 }, - { 12, 10, 397 }, { 13, 10, 28 }, { 13, 10, 159 }, { 15, 10, 89 }, - { 18, 10, 5 }, { 19, 10, 9 }, { 20, 10, 34 }, { 22, 10, 47 }, - { 4, 11, 508 }, { 9, 11, 448 }, { 12, 11, 107 }, { 18, 11, 31 }, - { 4, 0, 817 }, { 6, 0, 663 }, { 5, 0, 882 }, { 6, 0, 914 }, - { 4, 11, 540 }, { 4, 11, 533 }, { 8, 11, 608 }, { 8, 0, 885 }, - { 10, 0, 865 }, { 4, 0, 426 }, { 6, 0, 58 }, { 7, 0, 745 }, - { 7, 0, 1969 }, { 8, 0, 399 }, { 8, 0, 675 }, { 9, 0, 479 }, - { 9, 0, 731 }, { 10, 0, 330 }, { 10, 0, 593 }, { 10, 0, 817 }, - { 11, 0, 32 }, { 11, 0, 133 }, { 11, 0, 221 }, { 17, 0, 68 }, - { 6, 10, 255 }, { 7, 0, 102 }, { 9, 0, 538 }, { 9, 10, 216 }, - { 7, 11, 253 }, { 8, 11, 549 }, { 7, 11, 912 }, { 9, 10, 183 }, - { 11, 10, 286 }, { 11, 10, 956 }, { 23, 10, 3 }, { 8, 11, 527 }, - { 18, 11, 60 }, { 19, 11, 24 }, { 4, 10, 536 }, { 7, 10, 1141 }, - { 10, 10, 723 }, { 11, 10, 371 }, { 5, 11, 920 }, { 7, 0, 876 }, - { 7, 10, 285 }, { 7, 10, 560 }, { 4, 10, 690 }, { 14, 11, 126 }, - { 11, 10, 33 }, { 12, 10, 571 }, { 21, 10, 1 }, { 5, 0, 566 }, - { 9, 0, 139 }, { 10, 0, 399 }, { 11, 0, 469 }, { 12, 0, 634 }, - { 13, 0, 223 }, { 4, 11, 483 }, { 6, 0, 48 }, { 7, 0, 63 }, - { 18, 0, 12 }, { 7, 10, 1862 }, { 12, 10, 491 }, { 12, 10, 520 }, - { 13, 10, 383 }, { 14, 10, 244 }, { 7, 11, 1665 }, { 4, 11, 448 }, - { 9, 11, 495 }, { 18, 11, 104 }, { 6, 0, 114 }, { 7, 0, 1224 }, - { 7, 0, 1556 }, { 8, 0, 3 }, { 4, 10, 190 }, { 5, 10, 554 }, - { 8, 0, 576 }, { 9, 0, 267 }, { 5, 10, 1001 }, { 5, 10, 446 }, - { 5, 0, 933 }, { 11, 11, 1009 }, { 8, 11, 653 }, { 13, 11, 93 }, - { 19, 11, 14 }, { 6, 0, 692 }, { 6, 0, 821 }, { 6, 0, 1077 }, - { 5, 11, 172 }, { 7, 11, 801 }, { 10, 0, 752 }, { 4, 0, 375 }, - { 6, 0, 638 }, { 6, 0, 1011 }, { 12, 11, 540 }, { 9, 0, 96 }, - { 5, 11, 260 }, { 11, 11, 587 }, { 7, 10, 1231 }, { 12, 0, 30 }, - { 13, 0, 148 }, { 14, 0, 87 }, { 14, 0, 182 }, { 16, 0, 42 }, - { 20, 0, 70 }, { 4, 10, 304 }, { 6, 0, 1398 }, { 7, 0, 56 }, - { 7, 0, 1989 }, { 8, 0, 337 }, { 8, 0, 738 }, { 9, 0, 600 }, - { 12, 0, 37 }, { 13, 0, 447 }, { 14, 0, 92 }, { 10, 0, 666 }, - { 5, 0, 394 }, { 7, 0, 487 }, { 8, 0, 246 }, { 9, 0, 437 }, - { 6, 10, 53 }, { 6, 10, 199 }, { 7, 10, 1408 }, { 8, 10, 32 }, - { 8, 10, 93 }, { 10, 10, 397 }, { 10, 10, 629 }, { 11, 10, 593 }, - { 11, 10, 763 }, { 13, 10, 326 }, { 17, 10, 35 }, { 6, 10, 105 }, - { 9, 0, 320 }, { 10, 0, 506 }, { 10, 10, 794 }, { 7, 11, 57 }, - { 8, 11, 167 }, { 8, 11, 375 }, { 9, 11, 82 }, { 9, 11, 561 }, - { 10, 11, 620 }, { 10, 11, 770 }, { 11, 10, 704 }, { 13, 10, 396 }, - { 6, 0, 1003 }, { 5, 10, 114 }, { 5, 10, 255 }, { 13, 10, 285 }, - { 7, 0, 866 }, { 7, 0, 1163 }, { 5, 11, 531 }, { 4, 0, 328 }, - { 7, 10, 2035 }, { 8, 10, 19 }, { 9, 10, 89 }, { 10, 10, 831 }, - { 8, 11, 194 }, { 8, 11, 756 }, { 8, 0, 1000 }, { 5, 11, 453 }, - { 6, 11, 441 }, { 4, 0, 101 }, { 5, 0, 833 }, { 7, 0, 1171 }, - { 8, 0, 744 }, { 5, 0, 726 }, { 8, 10, 746 }, { 10, 0, 176 }, - { 6, 0, 9 }, { 6, 0, 397 }, { 7, 0, 53 }, { 7, 0, 1742 }, - { 10, 0, 632 }, { 11, 0, 828 }, { 12, 0, 146 }, { 7, 11, 22 }, - { 17, 11, 64 }, { 4, 0, 839 }, { 11, 0, 417 }, { 12, 0, 223 }, - { 12, 0, 265 }, { 4, 11, 102 }, { 7, 11, 815 }, { 7, 11, 1699 }, - { 11, 11, 964 }, { 5, 10, 955 }, { 8, 10, 814 }, { 6, 0, 1931 }, - { 6, 0, 2007 }, { 18, 0, 246 }, { 18, 0, 247 }, { 8, 0, 198 }, - { 11, 0, 29 }, { 12, 0, 534 }, { 7, 0, 1771 }, { 6, 0, 846 }, - { 7, 11, 1010 }, { 11, 11, 733 }, { 11, 11, 759 }, { 12, 11, 563 }, - { 13, 11, 34 }, { 14, 11, 101 }, { 18, 11, 45 }, { 18, 11, 129 }, - { 4, 0, 186 }, { 5, 0, 157 }, { 8, 0, 168 }, { 10, 0, 6 }, - { 4, 11, 899 }, { 5, 10, 56 }, { 20, 10, 100 }, { 5, 0, 875 }, - { 5, 0, 773 }, { 5, 0, 991 }, { 6, 0, 1635 }, { 6, 0, 1788 }, - { 6, 0, 1274 }, { 9, 0, 477 }, { 13, 0, 78 }, { 4, 0, 639 }, - { 7, 0, 111 }, { 8, 0, 581 }, { 12, 0, 177 }, { 6, 11, 52 }, - { 9, 11, 104 }, { 9, 11, 559 }, { 10, 10, 4 }, { 10, 10, 13 }, - { 11, 10, 638 }, { 12, 11, 308 }, { 19, 11, 87 }, { 20, 10, 57 }, - { 4, 11, 604 }, { 4, 11, 301 }, { 5, 10, 738 }, { 5, 10, 758 }, - { 6, 0, 1747 }, { 7, 11, 1440 }, { 11, 11, 854 }, { 11, 11, 872 }, - { 11, 11, 921 }, { 12, 11, 551 }, { 13, 11, 472 }, { 14, 11, 367 }, - { 7, 0, 1364 }, { 7, 0, 1907 }, { 13, 0, 158 }, { 6, 0, 873 }, - { 4, 0, 404 }, { 4, 0, 659 }, { 7, 0, 552 }, { 7, 0, 675 }, - { 7, 10, 1112 }, { 11, 10, 328 }, { 7, 11, 508 }, { 9, 10, 133 }, - { 5, 0, 391 }, { 5, 10, 110 }, { 6, 10, 169 }, { 6, 10, 1702 }, - { 7, 10, 400 }, { 8, 10, 538 }, { 9, 10, 184 }, { 9, 10, 524 }, - { 12, 10, 218 }, { 6, 11, 310 }, { 7, 11, 1849 }, { 8, 11, 72 }, - { 8, 11, 272 }, { 8, 11, 431 }, { 9, 11, 12 }, { 9, 11, 351 }, - { 10, 11, 563 }, { 10, 11, 630 }, { 10, 11, 810 }, { 11, 11, 367 }, - { 11, 11, 599 }, { 11, 11, 686 }, { 12, 11, 672 }, { 5, 0, 540 }, - { 6, 0, 1697 }, { 8, 0, 668 }, { 4, 0, 883 }, { 6, 0, 78 }, - { 12, 0, 628 }, { 18, 0, 79 }, { 6, 10, 133 }, { 9, 10, 353 }, - { 11, 10, 993 }, { 6, 11, 181 }, { 7, 11, 537 }, { 8, 11, 64 }, - { 9, 11, 127 }, { 10, 11, 496 }, { 12, 11, 510 }, { 13, 11, 384 }, - { 6, 10, 93 }, { 7, 10, 1422 }, { 7, 10, 1851 }, { 8, 10, 673 }, - { 9, 10, 529 }, { 12, 10, 43 }, { 9, 10, 371 }, { 6, 0, 1460 }, - { 6, 0, 962 }, { 4, 11, 244 }, { 7, 11, 233 }, { 9, 10, 25 }, - { 10, 10, 467 }, { 10, 10, 559 }, { 4, 10, 335 }, { 7, 10, 942 }, - { 5, 0, 460 }, { 7, 11, 334 }, { 6, 11, 1650 }, { 4, 0, 199 }, - { 11, 0, 34 }, { 5, 10, 601 }, { 8, 10, 39 }, { 10, 10, 773 }, - { 11, 10, 84 }, { 12, 10, 205 }, { 14, 10, 1 }, { 5, 10, 870 }, - { 6, 0, 388 }, { 14, 0, 474 }, { 20, 0, 120 }, { 5, 11, 369 }, - { 11, 0, 271 }, { 4, 0, 511 }, { 9, 0, 333 }, { 9, 0, 379 }, - { 10, 0, 602 }, { 11, 0, 441 }, { 11, 0, 723 }, { 11, 0, 976 }, - { 12, 0, 357 }, { 4, 10, 181 }, { 6, 0, 608 }, { 6, 10, 1652 }, - { 22, 0, 49 }, { 9, 11, 338 }, { 12, 0, 988 }, { 6, 0, 617 }, - { 5, 0, 938 }, { 8, 0, 707 }, { 4, 10, 97 }, { 5, 10, 147 }, - { 6, 10, 286 }, { 7, 10, 1362 }, { 13, 10, 176 }, { 6, 0, 756 }, - { 6, 0, 1149 }, { 5, 11, 896 }, { 6, 10, 375 }, { 7, 10, 169 }, - { 7, 10, 254 }, { 8, 10, 780 }, { 6, 0, 1583 }, { 7, 10, 1447 }, - { 11, 0, 285 }, { 7, 11, 1117 }, { 8, 11, 393 }, { 8, 11, 539 }, - { 7, 0, 344 }, { 6, 0, 469 }, { 7, 0, 1709 }, { 10, 0, 515 }, - { 5, 10, 629 }, { 7, 10, 1549 }, { 5, 11, 4 }, { 5, 11, 810 }, - { 6, 11, 13 }, { 6, 11, 538 }, { 6, 11, 1690 }, { 6, 11, 1726 }, - { 7, 11, 499 }, { 7, 11, 1819 }, { 8, 11, 148 }, { 8, 11, 696 }, - { 8, 11, 791 }, { 12, 11, 125 }, { 13, 11, 54 }, { 15, 11, 9 }, - { 7, 11, 1268 }, { 9, 0, 404 }, { 4, 0, 500 }, { 5, 0, 68 }, - { 6, 0, 383 }, { 11, 0, 216 }, { 11, 0, 340 }, { 4, 11, 925 }, - { 5, 11, 803 }, { 8, 11, 698 }, { 10, 11, 828 }, { 4, 0, 337 }, - { 6, 0, 353 }, { 7, 0, 1934 }, { 8, 0, 488 }, { 9, 0, 429 }, - { 7, 0, 236 }, { 7, 0, 1795 }, { 8, 0, 259 }, { 9, 0, 135 }, - { 9, 0, 177 }, { 9, 0, 860 }, { 10, 0, 825 }, { 11, 0, 115 }, - { 11, 0, 370 }, { 11, 0, 405 }, { 11, 0, 604 }, { 12, 0, 10 }, - { 12, 0, 667 }, { 12, 0, 669 }, { 13, 0, 76 }, { 14, 0, 310 }, - { 15, 0, 76 }, { 15, 0, 147 }, { 20, 0, 23 }, { 4, 0, 15 }, - { 4, 0, 490 }, { 5, 0, 22 }, { 6, 0, 244 }, { 7, 0, 40 }, - { 7, 0, 200 }, { 7, 0, 906 }, { 7, 0, 1199 }, { 9, 0, 616 }, - { 10, 0, 716 }, { 11, 0, 635 }, { 11, 0, 801 }, { 12, 0, 458 }, - { 12, 0, 756 }, { 4, 10, 420 }, { 6, 0, 1504 }, { 6, 0, 757 }, - { 5, 11, 383 }, { 6, 0, 1266 }, { 7, 0, 1735 }, { 5, 0, 598 }, - { 7, 0, 791 }, { 8, 0, 108 }, { 9, 0, 123 }, { 7, 10, 1570 }, - { 12, 10, 542 }, { 14, 11, 410 }, { 9, 11, 660 }, { 10, 11, 347 }, +static const DictWord kStaticDictionaryWords[31705] = { + { 0, 0, 0 }, { 8, 0, 1002 }, { 136, 0, 1015 }, { 4, 0, 683 }, + { 4, 10, 325 }, { 138, 10, 125 }, { 7, 11, 572 }, { 9, 11, 592 }, + { 11, 11, 680 }, { 11, 11, 842 }, { 11, 11, 924 }, { 12, 11, 356 }, + { 12, 11, 550 }, { 13, 11, 317 }, { 13, 11, 370 }, { 13, 11, 469 }, + { 13, 11, 471 }, { 14, 11, 397 }, { 18, 11, 69 }, { 146, 11, 145 }, + { 134, 0, 1265 }, { 136, 11, 534 }, { 134, 0, 1431 }, { 11, 0, 138 }, + { 140, 0, 40 }, { 4, 0, 155 }, { 7, 0, 1689 }, { 4, 10, 718 }, + { 135, 10, 1216 }, { 4, 0, 245 }, { 5, 0, 151 }, { 5, 0, 741 }, + { 6, 0, 1147 }, { 7, 0, 498 }, { 7, 0, 870 }, { 7, 0, 1542 }, + { 12, 0, 213 }, { 14, 0, 36 }, { 14, 0, 391 }, { 17, 0, 111 }, + { 18, 0, 6 }, { 18, 0, 46 }, { 18, 0, 151 }, { 19, 0, 36 }, + { 20, 0, 32 }, { 20, 0, 56 }, { 20, 0, 69 }, { 20, 0, 102 }, + { 21, 0, 4 }, { 22, 0, 8 }, { 22, 0, 10 }, { 22, 0, 14 }, + { 150, 0, 31 }, { 4, 0, 624 }, { 135, 0, 1752 }, { 5, 10, 124 }, + { 5, 10, 144 }, { 6, 10, 548 }, { 7, 10, 15 }, { 7, 10, 153 }, + { 137, 10, 629 }, { 6, 0, 503 }, { 9, 0, 586 }, { 13, 0, 468 }, + { 14, 0, 66 }, { 16, 0, 58 }, { 7, 10, 1531 }, { 8, 10, 416 }, + { 9, 10, 275 }, { 10, 10, 100 }, { 11, 10, 658 }, { 11, 10, 979 }, + { 12, 10, 86 }, { 14, 10, 207 }, { 15, 10, 20 }, { 143, 10, 25 }, + { 5, 0, 603 }, { 7, 0, 1212 }, { 9, 0, 565 }, { 14, 0, 301 }, + { 5, 10, 915 }, { 6, 10, 1783 }, { 7, 10, 211 }, { 7, 10, 1353 }, + { 9, 10, 83 }, { 10, 10, 376 }, { 10, 10, 431 }, { 11, 10, 543 }, + { 12, 10, 664 }, { 13, 10, 280 }, { 13, 10, 428 }, { 14, 10, 128 }, + { 17, 10, 52 }, { 145, 10, 81 }, { 4, 0, 492 }, { 133, 0, 451 }, + { 135, 0, 835 }, { 141, 0, 70 }, { 132, 0, 539 }, { 7, 11, 748 }, + { 139, 11, 700 }, { 7, 11, 1517 }, { 11, 11, 597 }, { 14, 11, 76 }, + { 14, 11, 335 }, { 148, 11, 33 }, { 6, 0, 113 }, { 135, 0, 436 }, + { 4, 10, 338 }, { 133, 10, 400 }, { 136, 0, 718 }, { 133, 11, 127 }, + { 133, 11, 418 }, { 6, 0, 1505 }, { 7, 0, 520 }, { 6, 11, 198 }, + { 11, 10, 892 }, { 140, 11, 83 }, { 4, 10, 221 }, { 5, 10, 659 }, + { 5, 10, 989 }, { 7, 10, 697 }, { 7, 10, 1211 }, { 138, 10, 284 }, + { 135, 0, 1070 }, { 5, 11, 276 }, { 6, 11, 55 }, { 135, 11, 1369 }, + { 134, 0, 1515 }, { 6, 11, 1752 }, { 136, 11, 726 }, { 138, 10, 507 }, + { 15, 0, 78 }, { 4, 10, 188 }, { 135, 10, 805 }, { 5, 10, 884 }, + { 139, 10, 991 }, { 133, 11, 764 }, { 134, 10, 1653 }, { 6, 11, 309 }, + { 7, 11, 331 }, { 138, 11, 550 }, { 135, 11, 1861 }, { 132, 11, 348 }, + { 135, 11, 986 }, { 135, 11, 1573 }, { 12, 0, 610 }, { 13, 0, 431 }, + { 144, 0, 59 }, { 9, 11, 799 }, { 140, 10, 166 }, { 134, 0, 1530 }, + { 132, 0, 750 }, { 132, 0, 307 }, { 133, 0, 964 }, { 6, 11, 194 }, + { 7, 11, 133 }, { 10, 11, 493 }, { 10, 11, 570 }, { 139, 11, 664 }, + { 5, 11, 24 }, { 5, 11, 569 }, { 6, 11, 3 }, { 6, 11, 119 }, + { 6, 11, 143 }, { 6, 11, 440 }, { 7, 11, 295 }, { 7, 11, 599 }, + { 7, 11, 1686 }, { 7, 11, 1854 }, { 8, 11, 424 }, { 9, 11, 43 }, + { 9, 11, 584 }, { 9, 11, 760 }, { 10, 11, 148 }, { 10, 11, 328 }, + { 11, 11, 159 }, { 11, 11, 253 }, { 11, 11, 506 }, { 12, 11, 487 }, + { 12, 11, 531 }, { 144, 11, 33 }, { 136, 10, 760 }, { 5, 11, 14 }, + { 5, 11, 892 }, { 6, 11, 283 }, { 7, 11, 234 }, { 136, 11, 537 }, + { 135, 11, 1251 }, { 4, 11, 126 }, { 8, 11, 635 }, { 147, 11, 34 }, + { 4, 11, 316 }, { 135, 11, 1561 }, { 6, 0, 999 }, { 6, 0, 1310 }, + { 137, 11, 861 }, { 4, 11, 64 }, { 5, 11, 352 }, { 5, 11, 720 }, + { 6, 11, 368 }, { 139, 11, 359 }, { 4, 0, 75 }, { 5, 0, 180 }, + { 6, 0, 500 }, { 7, 0, 58 }, { 7, 0, 710 }, { 10, 0, 645 }, + { 136, 10, 770 }, { 133, 0, 649 }, { 6, 0, 276 }, { 7, 0, 282 }, + { 7, 0, 879 }, { 7, 0, 924 }, { 8, 0, 459 }, { 9, 0, 599 }, + { 9, 0, 754 }, { 11, 0, 574 }, { 12, 0, 128 }, { 12, 0, 494 }, + { 13, 0, 52 }, { 13, 0, 301 }, { 15, 0, 30 }, { 143, 0, 132 }, + { 132, 0, 200 }, { 4, 10, 89 }, { 5, 10, 489 }, { 6, 10, 315 }, + { 7, 10, 553 }, { 7, 10, 1745 }, { 138, 10, 243 }, { 135, 11, 1050 }, + { 7, 0, 1621 }, { 6, 10, 1658 }, { 9, 10, 3 }, { 10, 10, 154 }, + { 11, 10, 641 }, { 13, 10, 85 }, { 13, 10, 201 }, { 141, 10, 346 }, + { 6, 11, 175 }, { 137, 11, 289 }, { 5, 11, 432 }, { 133, 11, 913 }, + { 6, 0, 225 }, { 137, 0, 211 }, { 7, 0, 718 }, { 8, 0, 687 }, + { 139, 0, 374 }, { 4, 10, 166 }, { 133, 10, 505 }, { 9, 0, 110 }, + { 134, 10, 1670 }, { 8, 0, 58 }, { 9, 0, 724 }, { 11, 0, 809 }, + { 13, 0, 113 }, { 145, 0, 72 }, { 6, 0, 345 }, { 7, 0, 1247 }, + { 144, 11, 82 }, { 5, 11, 931 }, { 134, 11, 1698 }, { 8, 0, 767 }, + { 8, 0, 803 }, { 9, 0, 301 }, { 137, 0, 903 }, { 139, 0, 203 }, + { 134, 0, 1154 }, { 7, 0, 1949 }, { 136, 0, 674 }, { 134, 0, 259 }, + { 135, 0, 1275 }, { 5, 11, 774 }, { 6, 11, 1637 }, { 6, 11, 1686 }, + { 134, 11, 1751 }, { 134, 0, 1231 }, { 7, 10, 445 }, { 8, 10, 307 }, + { 8, 10, 704 }, { 10, 10, 41 }, { 10, 10, 439 }, { 11, 10, 237 }, + { 11, 10, 622 }, { 140, 10, 201 }, { 136, 0, 254 }, { 6, 11, 260 }, + { 135, 11, 1484 }, { 139, 0, 277 }, { 135, 10, 1977 }, { 4, 10, 189 }, + { 5, 10, 713 }, { 6, 11, 573 }, { 136, 10, 57 }, { 138, 10, 371 }, + { 132, 10, 552 }, { 134, 11, 344 }, { 133, 0, 248 }, { 9, 0, 800 }, + { 10, 0, 693 }, { 11, 0, 482 }, { 11, 0, 734 }, { 11, 0, 789 }, + { 134, 11, 240 }, { 4, 0, 116 }, { 5, 0, 95 }, { 5, 0, 445 }, + { 7, 0, 1688 }, { 8, 0, 29 }, { 9, 0, 272 }, { 11, 0, 509 }, + { 11, 0, 915 }, { 4, 11, 292 }, { 4, 11, 736 }, { 5, 11, 871 }, + { 6, 11, 171 }, { 6, 11, 1689 }, { 7, 11, 1324 }, { 7, 11, 1944 }, + { 9, 11, 415 }, { 9, 11, 580 }, { 14, 11, 230 }, { 146, 11, 68 }, + { 7, 0, 490 }, { 13, 0, 100 }, { 143, 0, 75 }, { 135, 0, 1641 }, + { 133, 0, 543 }, { 7, 11, 209 }, { 8, 11, 661 }, { 10, 11, 42 }, + { 11, 11, 58 }, { 12, 11, 58 }, { 12, 11, 118 }, { 141, 11, 32 }, + { 5, 0, 181 }, { 8, 0, 41 }, { 6, 11, 63 }, { 135, 11, 920 }, + { 133, 0, 657 }, { 133, 11, 793 }, { 138, 0, 709 }, { 7, 0, 25 }, + { 8, 0, 202 }, { 138, 0, 536 }, { 5, 11, 665 }, { 135, 10, 1788 }, + { 145, 10, 49 }, { 9, 0, 423 }, { 140, 0, 89 }, { 5, 11, 67 }, + { 6, 11, 62 }, { 6, 11, 374 }, { 135, 11, 1391 }, { 8, 0, 113 }, + { 9, 0, 877 }, { 10, 0, 554 }, { 11, 0, 83 }, { 12, 0, 136 }, + { 19, 0, 109 }, { 9, 11, 790 }, { 140, 11, 47 }, { 138, 10, 661 }, + { 4, 0, 963 }, { 10, 0, 927 }, { 14, 0, 442 }, { 135, 10, 1945 }, + { 133, 0, 976 }, { 132, 0, 206 }, { 4, 11, 391 }, { 135, 11, 1169 }, + { 134, 0, 2002 }, { 6, 0, 696 }, { 134, 0, 1008 }, { 134, 0, 1170 }, + { 132, 11, 271 }, { 7, 0, 13 }, { 8, 0, 226 }, { 10, 0, 537 }, + { 11, 0, 570 }, { 11, 0, 605 }, { 11, 0, 799 }, { 11, 0, 804 }, + { 12, 0, 85 }, { 12, 0, 516 }, { 12, 0, 623 }, { 13, 0, 112 }, + { 13, 0, 361 }, { 14, 0, 77 }, { 14, 0, 78 }, { 17, 0, 28 }, + { 19, 0, 110 }, { 140, 11, 314 }, { 132, 0, 769 }, { 134, 0, 1544 }, + { 4, 0, 551 }, { 137, 0, 678 }, { 5, 10, 84 }, { 134, 10, 163 }, + { 9, 0, 57 }, { 9, 0, 459 }, { 10, 0, 425 }, { 11, 0, 119 }, + { 12, 0, 184 }, { 12, 0, 371 }, { 13, 0, 358 }, { 145, 0, 51 }, + { 5, 0, 188 }, { 5, 0, 814 }, { 8, 0, 10 }, { 9, 0, 421 }, + { 9, 0, 729 }, { 10, 0, 609 }, { 11, 0, 689 }, { 4, 11, 253 }, + { 5, 10, 410 }, { 5, 11, 544 }, { 7, 11, 300 }, { 137, 11, 340 }, + { 134, 0, 624 }, { 138, 11, 321 }, { 135, 0, 1941 }, { 18, 0, 130 }, + { 5, 10, 322 }, { 8, 10, 186 }, { 9, 10, 262 }, { 10, 10, 187 }, + { 142, 10, 208 }, { 5, 11, 53 }, { 5, 11, 541 }, { 6, 11, 94 }, + { 6, 11, 499 }, { 7, 11, 230 }, { 139, 11, 321 }, { 133, 10, 227 }, + { 4, 0, 378 }, { 4, 11, 920 }, { 5, 11, 25 }, { 5, 11, 790 }, + { 6, 11, 457 }, { 135, 11, 853 }, { 137, 0, 269 }, { 132, 0, 528 }, + { 134, 0, 1146 }, { 7, 10, 1395 }, { 8, 10, 486 }, { 9, 10, 236 }, + { 9, 10, 878 }, { 10, 10, 218 }, { 11, 10, 95 }, { 19, 10, 17 }, + { 147, 10, 31 }, { 7, 10, 2043 }, { 8, 10, 672 }, { 141, 10, 448 }, + { 134, 0, 1105 }, { 134, 0, 1616 }, { 134, 11, 1765 }, { 140, 11, 163 }, + { 5, 10, 412 }, { 133, 11, 822 }, { 132, 11, 634 }, { 6, 0, 656 }, + { 134, 11, 1730 }, { 134, 0, 1940 }, { 5, 0, 104 }, { 6, 0, 173 }, + { 135, 0, 1631 }, { 136, 10, 562 }, { 6, 11, 36 }, { 7, 11, 658 }, + { 8, 11, 454 }, { 147, 11, 86 }, { 5, 0, 457 }, { 134, 10, 1771 }, + { 7, 0, 810 }, { 8, 0, 138 }, { 8, 0, 342 }, { 9, 0, 84 }, + { 10, 0, 193 }, { 11, 0, 883 }, { 140, 0, 359 }, { 9, 0, 620 }, + { 135, 10, 1190 }, { 137, 10, 132 }, { 7, 11, 975 }, { 137, 11, 789 }, + { 6, 0, 95 }, { 6, 0, 1934 }, { 136, 0, 967 }, { 141, 11, 335 }, + { 6, 0, 406 }, { 10, 0, 409 }, { 10, 0, 447 }, { 11, 0, 44 }, + { 140, 0, 100 }, { 4, 10, 317 }, { 135, 10, 1279 }, { 132, 0, 477 }, + { 134, 0, 1268 }, { 6, 0, 1941 }, { 8, 0, 944 }, { 5, 10, 63 }, + { 133, 10, 509 }, { 132, 0, 629 }, { 132, 11, 104 }, { 4, 0, 246 }, + { 133, 0, 375 }, { 6, 0, 1636 }, { 132, 10, 288 }, { 135, 11, 1614 }, + { 9, 0, 49 }, { 10, 0, 774 }, { 8, 10, 89 }, { 8, 10, 620 }, + { 11, 10, 628 }, { 12, 10, 322 }, { 143, 10, 124 }, { 4, 0, 282 }, + { 7, 0, 1034 }, { 11, 0, 398 }, { 11, 0, 634 }, { 12, 0, 1 }, + { 12, 0, 79 }, { 12, 0, 544 }, { 14, 0, 237 }, { 17, 0, 10 }, + { 146, 0, 20 }, { 132, 0, 824 }, { 7, 11, 45 }, { 9, 11, 542 }, + { 9, 11, 566 }, { 138, 11, 728 }, { 5, 0, 118 }, { 5, 0, 499 }, + { 6, 0, 476 }, { 6, 0, 665 }, { 6, 0, 1176 }, { 6, 0, 1196 }, + { 7, 0, 600 }, { 7, 0, 888 }, { 135, 0, 1096 }, { 7, 0, 296 }, + { 7, 0, 596 }, { 8, 0, 560 }, { 8, 0, 586 }, { 9, 0, 612 }, + { 11, 0, 304 }, { 12, 0, 46 }, { 13, 0, 89 }, { 14, 0, 112 }, + { 145, 0, 122 }, { 5, 0, 894 }, { 6, 0, 1772 }, { 9, 0, 1009 }, + { 138, 10, 120 }, { 5, 11, 533 }, { 7, 11, 755 }, { 138, 11, 780 }, + { 151, 10, 1 }, { 6, 0, 1474 }, { 7, 11, 87 }, { 142, 11, 288 }, + { 139, 0, 366 }, { 137, 10, 461 }, { 7, 11, 988 }, { 7, 11, 1939 }, + { 9, 11, 64 }, { 9, 11, 502 }, { 12, 11, 7 }, { 12, 11, 34 }, + { 13, 11, 12 }, { 13, 11, 234 }, { 147, 11, 77 }, { 7, 0, 1599 }, + { 7, 0, 1723 }, { 8, 0, 79 }, { 8, 0, 106 }, { 8, 0, 190 }, + { 8, 0, 302 }, { 8, 0, 383 }, { 8, 0, 713 }, { 9, 0, 119 }, + { 9, 0, 233 }, { 9, 0, 419 }, { 9, 0, 471 }, { 10, 0, 181 }, + { 10, 0, 406 }, { 11, 0, 57 }, { 11, 0, 85 }, { 11, 0, 120 }, + { 11, 0, 177 }, { 11, 0, 296 }, { 11, 0, 382 }, { 11, 0, 454 }, + { 11, 0, 758 }, { 11, 0, 999 }, { 12, 0, 27 }, { 12, 0, 98 }, + { 12, 0, 131 }, { 12, 0, 245 }, { 12, 0, 312 }, { 12, 0, 446 }, + { 12, 0, 454 }, { 13, 0, 25 }, { 13, 0, 98 }, { 13, 0, 426 }, + { 13, 0, 508 }, { 14, 0, 70 }, { 14, 0, 163 }, { 14, 0, 272 }, + { 14, 0, 277 }, { 14, 0, 370 }, { 15, 0, 95 }, { 15, 0, 138 }, + { 15, 0, 167 }, { 17, 0, 38 }, { 148, 0, 96 }, { 135, 10, 1346 }, + { 10, 0, 200 }, { 19, 0, 2 }, { 151, 0, 22 }, { 135, 11, 141 }, + { 134, 10, 85 }, { 134, 0, 1759 }, { 138, 0, 372 }, { 145, 0, 16 }, + { 8, 0, 943 }, { 132, 11, 619 }, { 139, 11, 88 }, { 5, 11, 246 }, + { 8, 11, 189 }, { 9, 11, 355 }, { 9, 11, 512 }, { 10, 11, 124 }, + { 10, 11, 453 }, { 11, 11, 143 }, { 11, 11, 416 }, { 11, 11, 859 }, + { 141, 11, 341 }, { 5, 0, 258 }, { 134, 0, 719 }, { 6, 0, 1798 }, + { 6, 0, 1839 }, { 8, 0, 900 }, { 10, 0, 874 }, { 10, 0, 886 }, + { 12, 0, 698 }, { 12, 0, 732 }, { 12, 0, 770 }, { 16, 0, 106 }, + { 18, 0, 163 }, { 18, 0, 170 }, { 18, 0, 171 }, { 152, 0, 20 }, + { 9, 0, 707 }, { 11, 0, 326 }, { 11, 0, 339 }, { 12, 0, 423 }, + { 12, 0, 502 }, { 20, 0, 62 }, { 9, 11, 707 }, { 11, 11, 326 }, + { 11, 11, 339 }, { 12, 11, 423 }, { 12, 11, 502 }, { 148, 11, 62 }, + { 5, 0, 30 }, { 7, 0, 495 }, { 8, 0, 134 }, { 9, 0, 788 }, + { 140, 0, 438 }, { 133, 11, 678 }, { 5, 10, 279 }, { 6, 10, 235 }, + { 7, 10, 468 }, { 8, 10, 446 }, { 9, 10, 637 }, { 10, 10, 717 }, + { 11, 10, 738 }, { 140, 10, 514 }, { 5, 11, 35 }, { 6, 11, 287 }, + { 7, 11, 862 }, { 7, 11, 1886 }, { 138, 11, 179 }, { 7, 0, 1948 }, + { 7, 0, 2004 }, { 132, 11, 517 }, { 5, 10, 17 }, { 6, 10, 371 }, + { 137, 10, 528 }, { 4, 0, 115 }, { 5, 0, 669 }, { 6, 0, 407 }, + { 8, 0, 311 }, { 11, 0, 10 }, { 141, 0, 5 }, { 137, 0, 381 }, + { 5, 0, 50 }, { 6, 0, 439 }, { 7, 0, 780 }, { 135, 0, 1040 }, + { 136, 11, 667 }, { 11, 11, 403 }, { 146, 11, 83 }, { 5, 0, 1 }, + { 6, 0, 81 }, { 138, 0, 520 }, { 134, 0, 738 }, { 5, 0, 482 }, + { 8, 0, 98 }, { 9, 0, 172 }, { 10, 0, 360 }, { 10, 0, 700 }, + { 10, 0, 822 }, { 11, 0, 302 }, { 11, 0, 778 }, { 12, 0, 50 }, + { 12, 0, 127 }, { 12, 0, 396 }, { 13, 0, 62 }, { 13, 0, 328 }, + { 14, 0, 122 }, { 147, 0, 72 }, { 9, 11, 157 }, { 10, 11, 131 }, + { 140, 11, 72 }, { 135, 11, 714 }, { 135, 11, 539 }, { 5, 0, 2 }, + { 6, 0, 512 }, { 7, 0, 797 }, { 7, 0, 1494 }, { 8, 0, 253 }, + { 8, 0, 589 }, { 9, 0, 77 }, { 10, 0, 1 }, { 10, 0, 129 }, + { 10, 0, 225 }, { 11, 0, 118 }, { 11, 0, 226 }, { 11, 0, 251 }, + { 11, 0, 430 }, { 11, 0, 701 }, { 11, 0, 974 }, { 11, 0, 982 }, + { 12, 0, 64 }, { 12, 0, 260 }, { 12, 0, 488 }, { 140, 0, 690 }, + { 5, 11, 394 }, { 7, 11, 367 }, { 7, 11, 487 }, { 7, 11, 857 }, + { 7, 11, 1713 }, { 8, 11, 246 }, { 9, 11, 537 }, { 10, 11, 165 }, + { 12, 11, 219 }, { 140, 11, 561 }, { 136, 0, 557 }, { 5, 10, 779 }, + { 5, 10, 807 }, { 6, 10, 1655 }, { 134, 10, 1676 }, { 4, 10, 196 }, + { 5, 10, 558 }, { 133, 10, 949 }, { 11, 11, 827 }, { 12, 11, 56 }, + { 14, 11, 34 }, { 143, 11, 148 }, { 137, 0, 347 }, { 133, 0, 572 }, + { 134, 0, 832 }, { 4, 0, 12 }, { 7, 0, 504 }, { 7, 0, 522 }, + { 7, 0, 809 }, { 8, 0, 797 }, { 141, 0, 88 }, { 4, 10, 752 }, + { 133, 11, 449 }, { 7, 11, 86 }, { 8, 11, 103 }, { 145, 11, 69 }, + { 7, 11, 2028 }, { 138, 11, 641 }, { 5, 0, 528 }, { 6, 11, 1 }, + { 142, 11, 2 }, { 134, 0, 861 }, { 10, 0, 294 }, { 4, 10, 227 }, + { 5, 10, 159 }, { 5, 10, 409 }, { 7, 10, 80 }, { 10, 10, 479 }, + { 12, 10, 418 }, { 14, 10, 50 }, { 14, 10, 249 }, { 142, 10, 295 }, + { 7, 10, 1470 }, { 8, 10, 66 }, { 8, 10, 137 }, { 8, 10, 761 }, + { 9, 10, 638 }, { 11, 10, 80 }, { 11, 10, 212 }, { 11, 10, 368 }, + { 11, 10, 418 }, { 12, 10, 8 }, { 13, 10, 15 }, { 16, 10, 61 }, + { 17, 10, 59 }, { 19, 10, 28 }, { 148, 10, 84 }, { 20, 0, 109 }, + { 135, 11, 1148 }, { 6, 11, 277 }, { 7, 11, 1274 }, { 7, 11, 1386 }, + { 7, 11, 1392 }, { 12, 11, 129 }, { 146, 11, 87 }, { 6, 11, 187 }, + { 7, 11, 39 }, { 7, 11, 1203 }, { 8, 11, 380 }, { 8, 11, 542 }, + { 14, 11, 117 }, { 149, 11, 28 }, { 134, 0, 1187 }, { 5, 0, 266 }, + { 9, 0, 290 }, { 9, 0, 364 }, { 10, 0, 293 }, { 11, 0, 606 }, + { 142, 0, 45 }, { 6, 11, 297 }, { 7, 11, 793 }, { 139, 11, 938 }, + { 4, 0, 50 }, { 6, 0, 594 }, { 9, 0, 121 }, { 10, 0, 49 }, + { 10, 0, 412 }, { 139, 0, 834 }, { 136, 0, 748 }, { 7, 11, 464 }, + { 8, 11, 438 }, { 11, 11, 105 }, { 11, 11, 363 }, { 12, 11, 231 }, + { 14, 11, 386 }, { 15, 11, 102 }, { 148, 11, 75 }, { 132, 0, 466 }, + { 13, 0, 399 }, { 14, 0, 337 }, { 6, 10, 38 }, { 7, 10, 1220 }, + { 8, 10, 185 }, { 8, 10, 256 }, { 9, 10, 22 }, { 9, 10, 331 }, + { 10, 10, 738 }, { 11, 10, 205 }, { 11, 10, 540 }, { 11, 10, 746 }, + { 13, 10, 465 }, { 142, 10, 194 }, { 9, 0, 378 }, { 141, 0, 162 }, + { 137, 0, 519 }, { 4, 10, 159 }, { 6, 10, 115 }, { 7, 10, 252 }, + { 7, 10, 257 }, { 7, 10, 1928 }, { 8, 10, 69 }, { 9, 10, 384 }, + { 10, 10, 91 }, { 10, 10, 615 }, { 12, 10, 375 }, { 14, 10, 235 }, + { 18, 10, 117 }, { 147, 10, 123 }, { 5, 11, 604 }, { 5, 10, 911 }, + { 136, 10, 278 }, { 132, 0, 667 }, { 8, 0, 351 }, { 9, 0, 322 }, + { 4, 10, 151 }, { 135, 10, 1567 }, { 134, 0, 902 }, { 133, 10, 990 }, + { 12, 0, 180 }, { 5, 10, 194 }, { 7, 10, 1662 }, { 137, 10, 90 }, + { 4, 0, 869 }, { 134, 0, 1996 }, { 134, 0, 813 }, { 133, 10, 425 }, + { 137, 11, 761 }, { 132, 0, 260 }, { 133, 10, 971 }, { 5, 11, 20 }, + { 6, 11, 298 }, { 7, 11, 659 }, { 7, 11, 1366 }, { 137, 11, 219 }, + { 4, 0, 39 }, { 5, 0, 36 }, { 7, 0, 1843 }, { 8, 0, 407 }, + { 11, 0, 144 }, { 140, 0, 523 }, { 4, 0, 510 }, { 10, 0, 587 }, + { 139, 10, 752 }, { 7, 0, 29 }, { 7, 0, 66 }, { 7, 0, 1980 }, + { 10, 0, 487 }, { 138, 0, 809 }, { 13, 0, 260 }, { 14, 0, 82 }, + { 18, 0, 63 }, { 137, 10, 662 }, { 5, 10, 72 }, { 6, 10, 264 }, + { 7, 10, 21 }, { 7, 10, 46 }, { 7, 10, 2013 }, { 8, 10, 215 }, + { 8, 10, 513 }, { 10, 10, 266 }, { 139, 10, 22 }, { 134, 0, 570 }, + { 6, 0, 565 }, { 7, 0, 1667 }, { 4, 11, 439 }, { 10, 10, 95 }, + { 11, 10, 603 }, { 12, 11, 242 }, { 13, 10, 443 }, { 14, 10, 160 }, + { 143, 10, 4 }, { 134, 0, 1464 }, { 134, 10, 431 }, { 9, 0, 372 }, + { 15, 0, 2 }, { 19, 0, 10 }, { 19, 0, 18 }, { 5, 10, 874 }, + { 6, 10, 1677 }, { 143, 10, 0 }, { 132, 0, 787 }, { 6, 0, 380 }, + { 12, 0, 399 }, { 21, 0, 19 }, { 7, 10, 939 }, { 7, 10, 1172 }, + { 7, 10, 1671 }, { 9, 10, 540 }, { 10, 10, 696 }, { 11, 10, 265 }, + { 11, 10, 732 }, { 11, 10, 928 }, { 11, 10, 937 }, { 141, 10, 438 }, + { 137, 0, 200 }, { 132, 11, 233 }, { 132, 0, 516 }, { 134, 11, 577 }, + { 132, 0, 844 }, { 11, 0, 887 }, { 14, 0, 365 }, { 142, 0, 375 }, + { 132, 11, 482 }, { 8, 0, 821 }, { 140, 0, 44 }, { 7, 0, 1655 }, + { 136, 0, 305 }, { 5, 10, 682 }, { 135, 10, 1887 }, { 135, 11, 346 }, + { 132, 10, 696 }, { 4, 0, 10 }, { 7, 0, 917 }, { 139, 0, 786 }, + { 5, 11, 795 }, { 6, 11, 1741 }, { 8, 11, 417 }, { 137, 11, 782 }, + { 4, 0, 1016 }, { 134, 0, 2031 }, { 5, 0, 684 }, { 4, 10, 726 }, + { 133, 10, 630 }, { 6, 0, 1021 }, { 134, 0, 1480 }, { 8, 10, 802 }, + { 136, 10, 838 }, { 134, 0, 27 }, { 134, 0, 395 }, { 135, 11, 622 }, + { 7, 11, 625 }, { 135, 11, 1750 }, { 4, 11, 203 }, { 135, 11, 1936 }, + { 6, 10, 118 }, { 7, 10, 215 }, { 7, 10, 1521 }, { 140, 10, 11 }, + { 132, 0, 813 }, { 136, 0, 511 }, { 7, 10, 615 }, { 138, 10, 251 }, + { 135, 10, 1044 }, { 145, 0, 56 }, { 133, 10, 225 }, { 6, 0, 342 }, + { 6, 0, 496 }, { 8, 0, 275 }, { 137, 0, 206 }, { 4, 0, 909 }, + { 133, 0, 940 }, { 132, 0, 891 }, { 7, 11, 311 }, { 9, 11, 308 }, + { 140, 11, 255 }, { 4, 10, 370 }, { 5, 10, 756 }, { 135, 10, 1326 }, + { 4, 0, 687 }, { 134, 0, 1596 }, { 134, 0, 1342 }, { 6, 10, 1662 }, + { 7, 10, 48 }, { 8, 10, 771 }, { 10, 10, 116 }, { 13, 10, 104 }, + { 14, 10, 105 }, { 14, 10, 184 }, { 15, 10, 168 }, { 19, 10, 92 }, + { 148, 10, 68 }, { 138, 10, 209 }, { 4, 11, 400 }, { 5, 11, 267 }, + { 135, 11, 232 }, { 151, 11, 12 }, { 6, 0, 41 }, { 141, 0, 160 }, + { 141, 11, 314 }, { 134, 0, 1718 }, { 136, 0, 778 }, { 142, 11, 261 }, + { 134, 0, 1610 }, { 133, 0, 115 }, { 132, 0, 294 }, { 14, 0, 314 }, + { 132, 10, 120 }, { 132, 0, 983 }, { 5, 0, 193 }, { 140, 0, 178 }, + { 138, 10, 429 }, { 5, 10, 820 }, { 135, 10, 931 }, { 6, 0, 994 }, + { 6, 0, 1051 }, { 6, 0, 1439 }, { 7, 0, 174 }, { 133, 11, 732 }, + { 4, 11, 100 }, { 7, 11, 679 }, { 8, 11, 313 }, { 138, 10, 199 }, + { 6, 10, 151 }, { 6, 10, 1675 }, { 7, 10, 383 }, { 151, 10, 10 }, + { 6, 0, 1796 }, { 8, 0, 848 }, { 8, 0, 867 }, { 8, 0, 907 }, + { 10, 0, 855 }, { 140, 0, 703 }, { 140, 0, 221 }, { 4, 0, 122 }, + { 5, 0, 796 }, { 5, 0, 952 }, { 6, 0, 1660 }, { 6, 0, 1671 }, + { 8, 0, 567 }, { 9, 0, 687 }, { 9, 0, 742 }, { 10, 0, 686 }, + { 11, 0, 682 }, { 11, 0, 909 }, { 140, 0, 281 }, { 5, 11, 362 }, + { 5, 11, 443 }, { 6, 11, 318 }, { 7, 11, 1019 }, { 139, 11, 623 }, + { 5, 11, 463 }, { 136, 11, 296 }, { 11, 0, 583 }, { 13, 0, 262 }, + { 6, 10, 1624 }, { 12, 10, 422 }, { 142, 10, 360 }, { 5, 0, 179 }, + { 7, 0, 1095 }, { 135, 0, 1213 }, { 4, 10, 43 }, { 4, 11, 454 }, + { 5, 10, 344 }, { 133, 10, 357 }, { 4, 0, 66 }, { 7, 0, 722 }, + { 135, 0, 904 }, { 134, 0, 773 }, { 7, 0, 352 }, { 133, 10, 888 }, + { 5, 11, 48 }, { 5, 11, 404 }, { 6, 11, 557 }, { 7, 11, 458 }, + { 8, 11, 597 }, { 10, 11, 455 }, { 10, 11, 606 }, { 11, 11, 49 }, + { 11, 11, 548 }, { 12, 11, 476 }, { 13, 11, 18 }, { 141, 11, 450 }, + { 134, 11, 418 }, { 132, 10, 711 }, { 5, 11, 442 }, { 135, 11, 1984 }, + { 141, 0, 35 }, { 137, 0, 152 }, { 134, 0, 1197 }, { 135, 11, 1093 }, + { 137, 11, 203 }, { 137, 10, 440 }, { 10, 0, 592 }, { 10, 0, 753 }, + { 12, 0, 317 }, { 12, 0, 355 }, { 12, 0, 465 }, { 12, 0, 469 }, + { 12, 0, 560 }, { 12, 0, 578 }, { 141, 0, 243 }, { 133, 0, 564 }, + { 134, 0, 797 }, { 5, 10, 958 }, { 133, 10, 987 }, { 5, 11, 55 }, + { 7, 11, 376 }, { 140, 11, 161 }, { 133, 11, 450 }, { 134, 0, 556 }, + { 134, 0, 819 }, { 11, 10, 276 }, { 142, 10, 293 }, { 7, 0, 544 }, + { 138, 0, 61 }, { 8, 0, 719 }, { 4, 10, 65 }, { 5, 10, 479 }, + { 5, 10, 1004 }, { 7, 10, 1913 }, { 8, 10, 317 }, { 9, 10, 302 }, + { 10, 10, 612 }, { 141, 10, 22 }, { 4, 0, 5 }, { 5, 0, 498 }, + { 8, 0, 637 }, { 9, 0, 521 }, { 4, 11, 213 }, { 4, 10, 261 }, + { 7, 11, 223 }, { 7, 10, 510 }, { 136, 11, 80 }, { 5, 0, 927 }, + { 7, 0, 101 }, { 4, 10, 291 }, { 7, 11, 381 }, { 7, 11, 806 }, + { 7, 11, 820 }, { 8, 11, 354 }, { 8, 11, 437 }, { 8, 11, 787 }, + { 9, 10, 515 }, { 9, 11, 657 }, { 10, 11, 58 }, { 10, 11, 339 }, + { 10, 11, 749 }, { 11, 11, 914 }, { 12, 10, 152 }, { 12, 11, 162 }, + { 12, 10, 443 }, { 13, 11, 75 }, { 13, 10, 392 }, { 14, 11, 106 }, + { 14, 11, 198 }, { 14, 11, 320 }, { 14, 10, 357 }, { 14, 11, 413 }, + { 146, 11, 43 }, { 6, 0, 1153 }, { 7, 0, 1441 }, { 136, 11, 747 }, + { 4, 0, 893 }, { 5, 0, 780 }, { 133, 0, 893 }, { 138, 11, 654 }, + { 133, 11, 692 }, { 133, 0, 238 }, { 134, 11, 191 }, { 4, 10, 130 }, + { 135, 10, 843 }, { 6, 0, 1296 }, { 5, 10, 42 }, { 5, 10, 879 }, + { 7, 10, 245 }, { 7, 10, 324 }, { 7, 10, 1532 }, { 11, 10, 463 }, + { 11, 10, 472 }, { 13, 10, 363 }, { 144, 10, 52 }, { 134, 0, 1729 }, + { 6, 0, 1999 }, { 136, 0, 969 }, { 4, 10, 134 }, { 133, 10, 372 }, + { 4, 0, 60 }, { 7, 0, 941 }, { 7, 0, 1800 }, { 8, 0, 314 }, + { 9, 0, 700 }, { 139, 0, 487 }, { 134, 0, 1144 }, { 6, 11, 162 }, + { 7, 11, 1960 }, { 136, 11, 831 }, { 132, 11, 706 }, { 135, 0, 1147 }, + { 138, 11, 426 }, { 138, 11, 89 }, { 7, 0, 1853 }, { 138, 0, 437 }, + { 136, 0, 419 }, { 135, 10, 1634 }, { 133, 0, 828 }, { 5, 0, 806 }, + { 7, 0, 176 }, { 7, 0, 178 }, { 7, 0, 1240 }, { 7, 0, 1976 }, + { 132, 10, 644 }, { 135, 11, 1877 }, { 5, 11, 420 }, { 135, 11, 1449 }, + { 4, 0, 51 }, { 5, 0, 39 }, { 6, 0, 4 }, { 7, 0, 591 }, + { 7, 0, 849 }, { 7, 0, 951 }, { 7, 0, 1613 }, { 7, 0, 1760 }, + { 7, 0, 1988 }, { 9, 0, 434 }, { 10, 0, 754 }, { 11, 0, 25 }, + { 139, 0, 37 }, { 10, 11, 57 }, { 138, 11, 277 }, { 135, 10, 540 }, + { 132, 11, 204 }, { 135, 0, 159 }, { 139, 11, 231 }, { 133, 0, 902 }, + { 7, 0, 928 }, { 7, 11, 366 }, { 9, 11, 287 }, { 12, 11, 199 }, + { 12, 11, 556 }, { 140, 11, 577 }, { 6, 10, 623 }, { 136, 10, 789 }, + { 4, 10, 908 }, { 5, 10, 359 }, { 5, 10, 508 }, { 6, 10, 1723 }, + { 7, 10, 343 }, { 7, 10, 1996 }, { 135, 10, 2026 }, { 134, 0, 270 }, + { 4, 10, 341 }, { 135, 10, 480 }, { 5, 11, 356 }, { 135, 11, 224 }, + { 11, 11, 588 }, { 11, 11, 864 }, { 11, 11, 968 }, { 143, 11, 160 }, + { 132, 0, 556 }, { 137, 0, 801 }, { 132, 0, 416 }, { 142, 0, 372 }, + { 5, 0, 152 }, { 5, 0, 197 }, { 7, 0, 340 }, { 7, 0, 867 }, + { 10, 0, 548 }, { 10, 0, 581 }, { 11, 0, 6 }, { 12, 0, 3 }, + { 12, 0, 19 }, { 14, 0, 110 }, { 142, 0, 289 }, { 139, 0, 369 }, + { 7, 11, 630 }, { 9, 11, 567 }, { 11, 11, 150 }, { 11, 11, 444 }, + { 141, 11, 119 }, { 134, 11, 539 }, { 7, 10, 1995 }, { 8, 10, 299 }, + { 11, 10, 890 }, { 140, 10, 674 }, { 7, 0, 34 }, { 7, 0, 190 }, + { 8, 0, 28 }, { 8, 0, 141 }, { 8, 0, 444 }, { 8, 0, 811 }, + { 9, 0, 468 }, { 11, 0, 334 }, { 12, 0, 24 }, { 12, 0, 386 }, + { 140, 0, 576 }, { 133, 0, 757 }, { 7, 0, 1553 }, { 136, 0, 898 }, + { 133, 0, 721 }, { 136, 0, 1012 }, { 4, 0, 789 }, { 5, 0, 647 }, + { 135, 0, 1102 }, { 132, 0, 898 }, { 10, 0, 183 }, { 4, 10, 238 }, + { 5, 10, 503 }, { 6, 10, 179 }, { 7, 10, 2003 }, { 8, 10, 381 }, + { 8, 10, 473 }, { 9, 10, 149 }, { 10, 10, 788 }, { 15, 10, 45 }, + { 15, 10, 86 }, { 20, 10, 110 }, { 150, 10, 57 }, { 9, 0, 136 }, + { 19, 0, 107 }, { 4, 10, 121 }, { 5, 10, 156 }, { 5, 10, 349 }, + { 10, 10, 605 }, { 142, 10, 342 }, { 4, 11, 235 }, { 135, 11, 255 }, + { 4, 11, 194 }, { 5, 11, 584 }, { 6, 11, 384 }, { 7, 11, 583 }, + { 10, 11, 761 }, { 11, 11, 760 }, { 139, 11, 851 }, { 6, 10, 80 }, + { 6, 10, 1694 }, { 7, 10, 173 }, { 7, 10, 1974 }, { 9, 10, 547 }, + { 10, 10, 730 }, { 14, 10, 18 }, { 150, 10, 39 }, { 4, 10, 923 }, + { 134, 10, 1711 }, { 5, 0, 277 }, { 141, 0, 247 }, { 132, 0, 435 }, + { 133, 11, 562 }, { 134, 0, 1311 }, { 5, 11, 191 }, { 137, 11, 271 }, + { 132, 10, 595 }, { 7, 11, 1537 }, { 14, 11, 96 }, { 143, 11, 73 }, + { 5, 0, 437 }, { 7, 0, 502 }, { 7, 0, 519 }, { 7, 0, 1122 }, + { 7, 0, 1751 }, { 14, 0, 211 }, { 6, 10, 459 }, { 7, 10, 1753 }, + { 7, 10, 1805 }, { 8, 10, 658 }, { 9, 10, 1 }, { 11, 10, 959 }, + { 141, 10, 446 }, { 6, 0, 814 }, { 4, 11, 470 }, { 5, 11, 473 }, + { 6, 11, 153 }, { 7, 11, 1503 }, { 7, 11, 1923 }, { 10, 11, 701 }, + { 11, 11, 132 }, { 11, 11, 168 }, { 11, 11, 227 }, { 11, 11, 320 }, + { 11, 11, 436 }, { 11, 11, 525 }, { 11, 11, 855 }, { 12, 11, 41 }, + { 12, 11, 286 }, { 13, 11, 103 }, { 13, 11, 284 }, { 14, 11, 255 }, + { 14, 11, 262 }, { 15, 11, 117 }, { 143, 11, 127 }, { 5, 0, 265 }, + { 6, 0, 212 }, { 135, 0, 28 }, { 138, 0, 750 }, { 133, 11, 327 }, + { 6, 11, 552 }, { 7, 11, 1754 }, { 137, 11, 604 }, { 134, 0, 2012 }, + { 132, 0, 702 }, { 5, 11, 80 }, { 6, 11, 405 }, { 7, 11, 403 }, + { 7, 11, 1502 }, { 7, 11, 1626 }, { 8, 11, 456 }, { 9, 11, 487 }, + { 9, 11, 853 }, { 9, 11, 889 }, { 10, 11, 309 }, { 11, 11, 721 }, + { 11, 11, 994 }, { 12, 11, 430 }, { 141, 11, 165 }, { 5, 0, 808 }, + { 135, 0, 2045 }, { 5, 0, 166 }, { 8, 0, 739 }, { 140, 0, 511 }, + { 134, 10, 490 }, { 4, 11, 453 }, { 5, 11, 887 }, { 6, 11, 535 }, + { 8, 11, 6 }, { 136, 11, 543 }, { 4, 0, 119 }, { 5, 0, 170 }, + { 5, 0, 447 }, { 7, 0, 1708 }, { 7, 0, 1889 }, { 9, 0, 357 }, + { 9, 0, 719 }, { 12, 0, 486 }, { 140, 0, 596 }, { 137, 0, 500 }, + { 7, 10, 250 }, { 136, 10, 507 }, { 132, 10, 158 }, { 6, 0, 809 }, + { 134, 0, 1500 }, { 9, 0, 327 }, { 11, 0, 350 }, { 11, 0, 831 }, + { 13, 0, 352 }, { 4, 10, 140 }, { 7, 10, 362 }, { 8, 10, 209 }, + { 9, 10, 10 }, { 9, 10, 503 }, { 9, 10, 614 }, { 10, 10, 689 }, + { 11, 10, 327 }, { 11, 10, 725 }, { 12, 10, 252 }, { 12, 10, 583 }, + { 13, 10, 192 }, { 14, 10, 269 }, { 14, 10, 356 }, { 148, 10, 50 }, + { 135, 11, 741 }, { 4, 0, 450 }, { 7, 0, 1158 }, { 19, 10, 1 }, + { 19, 10, 26 }, { 150, 10, 9 }, { 6, 0, 597 }, { 135, 0, 1318 }, + { 134, 0, 1602 }, { 6, 10, 228 }, { 7, 10, 1341 }, { 9, 10, 408 }, + { 138, 10, 343 }, { 7, 0, 1375 }, { 7, 0, 1466 }, { 138, 0, 331 }, + { 132, 0, 754 }, { 132, 10, 557 }, { 5, 11, 101 }, { 6, 11, 88 }, + { 6, 11, 543 }, { 7, 11, 1677 }, { 9, 11, 100 }, { 10, 11, 677 }, + { 14, 11, 169 }, { 14, 11, 302 }, { 14, 11, 313 }, { 15, 11, 48 }, + { 143, 11, 84 }, { 134, 0, 1368 }, { 4, 11, 310 }, { 9, 11, 795 }, + { 10, 11, 733 }, { 11, 11, 451 }, { 12, 11, 249 }, { 14, 11, 115 }, + { 14, 11, 286 }, { 143, 11, 100 }, { 132, 10, 548 }, { 10, 0, 557 }, + { 7, 10, 197 }, { 8, 10, 142 }, { 8, 10, 325 }, { 9, 10, 150 }, + { 9, 10, 596 }, { 10, 10, 353 }, { 11, 10, 74 }, { 11, 10, 315 }, + { 12, 10, 662 }, { 12, 10, 681 }, { 14, 10, 423 }, { 143, 10, 141 }, + { 133, 11, 587 }, { 5, 0, 850 }, { 136, 0, 799 }, { 10, 0, 908 }, + { 12, 0, 701 }, { 12, 0, 757 }, { 142, 0, 466 }, { 4, 0, 62 }, + { 5, 0, 275 }, { 18, 0, 19 }, { 6, 10, 399 }, { 6, 10, 579 }, + { 7, 10, 692 }, { 7, 10, 846 }, { 7, 10, 1015 }, { 7, 10, 1799 }, + { 8, 10, 403 }, { 9, 10, 394 }, { 10, 10, 133 }, { 12, 10, 4 }, + { 12, 10, 297 }, { 12, 10, 452 }, { 16, 10, 81 }, { 18, 10, 25 }, + { 21, 10, 14 }, { 22, 10, 12 }, { 151, 10, 18 }, { 12, 0, 459 }, + { 7, 10, 1546 }, { 11, 10, 299 }, { 142, 10, 407 }, { 132, 10, 177 }, + { 132, 11, 498 }, { 7, 11, 217 }, { 8, 11, 140 }, { 138, 11, 610 }, + { 5, 10, 411 }, { 135, 10, 653 }, { 134, 0, 1802 }, { 7, 10, 439 }, + { 10, 10, 727 }, { 11, 10, 260 }, { 139, 10, 684 }, { 133, 11, 905 }, + { 11, 11, 580 }, { 142, 11, 201 }, { 134, 0, 1397 }, { 5, 10, 208 }, + { 7, 10, 753 }, { 135, 10, 1528 }, { 7, 0, 238 }, { 7, 0, 2033 }, + { 8, 0, 120 }, { 8, 0, 188 }, { 8, 0, 659 }, { 9, 0, 598 }, + { 10, 0, 466 }, { 12, 0, 342 }, { 12, 0, 588 }, { 13, 0, 503 }, + { 14, 0, 246 }, { 143, 0, 92 }, { 135, 11, 1041 }, { 4, 11, 456 }, + { 7, 11, 105 }, { 7, 11, 358 }, { 7, 11, 1637 }, { 8, 11, 643 }, + { 139, 11, 483 }, { 6, 0, 1318 }, { 134, 0, 1324 }, { 4, 0, 201 }, + { 7, 0, 1744 }, { 8, 0, 602 }, { 11, 0, 247 }, { 11, 0, 826 }, + { 17, 0, 65 }, { 133, 10, 242 }, { 8, 0, 164 }, { 146, 0, 62 }, + { 133, 10, 953 }, { 139, 10, 802 }, { 133, 0, 615 }, { 7, 11, 1566 }, + { 8, 11, 269 }, { 9, 11, 212 }, { 9, 11, 718 }, { 14, 11, 15 }, + { 14, 11, 132 }, { 142, 11, 227 }, { 133, 10, 290 }, { 132, 10, 380 }, + { 5, 10, 52 }, { 7, 10, 277 }, { 9, 10, 368 }, { 139, 10, 791 }, + { 135, 0, 1243 }, { 133, 11, 539 }, { 11, 11, 919 }, { 141, 11, 409 }, + { 136, 0, 968 }, { 133, 11, 470 }, { 134, 0, 882 }, { 132, 0, 907 }, + { 5, 0, 100 }, { 10, 0, 329 }, { 12, 0, 416 }, { 149, 0, 29 }, + { 10, 10, 138 }, { 139, 10, 476 }, { 5, 10, 725 }, { 5, 10, 727 }, + { 6, 11, 91 }, { 7, 11, 435 }, { 135, 10, 1811 }, { 4, 11, 16 }, + { 5, 11, 316 }, { 5, 11, 842 }, { 6, 11, 370 }, { 6, 11, 1778 }, + { 8, 11, 166 }, { 11, 11, 812 }, { 12, 11, 206 }, { 12, 11, 351 }, + { 14, 11, 418 }, { 16, 11, 15 }, { 16, 11, 34 }, { 18, 11, 3 }, + { 19, 11, 3 }, { 19, 11, 7 }, { 20, 11, 4 }, { 149, 11, 21 }, + { 132, 0, 176 }, { 5, 0, 636 }, { 5, 0, 998 }, { 7, 0, 9 }, + { 7, 0, 1508 }, { 8, 0, 26 }, { 9, 0, 317 }, { 9, 0, 358 }, + { 10, 0, 210 }, { 10, 0, 292 }, { 10, 0, 533 }, { 11, 0, 555 }, + { 12, 0, 526 }, { 12, 0, 607 }, { 13, 0, 263 }, { 13, 0, 459 }, + { 142, 0, 271 }, { 6, 0, 256 }, { 8, 0, 265 }, { 4, 10, 38 }, + { 7, 10, 307 }, { 7, 10, 999 }, { 7, 10, 1481 }, { 7, 10, 1732 }, + { 7, 10, 1738 }, { 9, 10, 414 }, { 11, 10, 316 }, { 12, 10, 52 }, + { 13, 10, 420 }, { 147, 10, 100 }, { 135, 10, 1296 }, { 4, 11, 611 }, + { 133, 11, 606 }, { 4, 0, 643 }, { 142, 11, 21 }, { 133, 11, 715 }, + { 133, 10, 723 }, { 6, 0, 610 }, { 135, 11, 597 }, { 10, 0, 127 }, + { 141, 0, 27 }, { 6, 0, 1995 }, { 6, 0, 2001 }, { 8, 0, 119 }, + { 136, 0, 973 }, { 4, 11, 149 }, { 138, 11, 368 }, { 12, 0, 522 }, + { 4, 11, 154 }, { 5, 10, 109 }, { 6, 10, 1784 }, { 7, 11, 1134 }, + { 7, 10, 1895 }, { 8, 11, 105 }, { 12, 10, 296 }, { 140, 10, 302 }, + { 4, 11, 31 }, { 6, 11, 429 }, { 7, 11, 962 }, { 9, 11, 458 }, + { 139, 11, 691 }, { 10, 0, 553 }, { 11, 0, 876 }, { 13, 0, 193 }, + { 13, 0, 423 }, { 14, 0, 166 }, { 19, 0, 84 }, { 4, 11, 312 }, + { 5, 10, 216 }, { 7, 10, 1879 }, { 9, 10, 141 }, { 9, 10, 270 }, + { 9, 10, 679 }, { 10, 10, 159 }, { 11, 10, 197 }, { 12, 10, 538 }, + { 12, 10, 559 }, { 14, 10, 144 }, { 14, 10, 167 }, { 143, 10, 67 }, + { 134, 0, 1582 }, { 7, 0, 1578 }, { 135, 11, 1578 }, { 137, 10, 81 }, + { 132, 11, 236 }, { 134, 10, 391 }, { 134, 0, 795 }, { 7, 10, 322 }, + { 136, 10, 249 }, { 5, 11, 836 }, { 5, 11, 857 }, { 6, 11, 1680 }, + { 7, 11, 59 }, { 147, 11, 53 }, { 135, 0, 432 }, { 10, 11, 68 }, + { 139, 11, 494 }, { 4, 11, 81 }, { 139, 11, 867 }, { 7, 0, 126 }, + { 136, 0, 84 }, { 142, 11, 280 }, { 5, 11, 282 }, { 8, 11, 650 }, + { 9, 11, 295 }, { 9, 11, 907 }, { 138, 11, 443 }, { 136, 0, 790 }, + { 5, 10, 632 }, { 138, 10, 526 }, { 6, 0, 64 }, { 12, 0, 377 }, + { 13, 0, 309 }, { 14, 0, 141 }, { 14, 0, 429 }, { 14, 11, 141 }, + { 142, 11, 429 }, { 134, 0, 1529 }, { 6, 0, 321 }, { 7, 0, 1857 }, + { 9, 0, 530 }, { 19, 0, 99 }, { 7, 10, 948 }, { 7, 10, 1042 }, + { 8, 10, 235 }, { 8, 10, 461 }, { 9, 10, 453 }, { 10, 10, 354 }, + { 145, 10, 77 }, { 7, 0, 1104 }, { 11, 0, 269 }, { 11, 0, 539 }, + { 11, 0, 627 }, { 11, 0, 706 }, { 11, 0, 975 }, { 12, 0, 248 }, + { 12, 0, 434 }, { 12, 0, 600 }, { 12, 0, 622 }, { 13, 0, 297 }, + { 13, 0, 485 }, { 14, 0, 69 }, { 14, 0, 409 }, { 143, 0, 108 }, + { 4, 10, 362 }, { 7, 10, 52 }, { 7, 10, 303 }, { 10, 11, 70 }, + { 12, 11, 26 }, { 14, 11, 17 }, { 14, 11, 178 }, { 15, 11, 34 }, + { 149, 11, 12 }, { 11, 0, 977 }, { 141, 0, 507 }, { 9, 0, 34 }, + { 139, 0, 484 }, { 5, 10, 196 }, { 6, 10, 486 }, { 7, 10, 212 }, + { 8, 10, 309 }, { 136, 10, 346 }, { 6, 0, 1700 }, { 7, 0, 26 }, + { 7, 0, 293 }, { 7, 0, 382 }, { 7, 0, 1026 }, { 7, 0, 1087 }, + { 7, 0, 2027 }, { 8, 0, 24 }, { 8, 0, 114 }, { 8, 0, 252 }, + { 8, 0, 727 }, { 8, 0, 729 }, { 9, 0, 30 }, { 9, 0, 199 }, + { 9, 0, 231 }, { 9, 0, 251 }, { 9, 0, 334 }, { 9, 0, 361 }, + { 9, 0, 712 }, { 10, 0, 55 }, { 10, 0, 60 }, { 10, 0, 232 }, + { 10, 0, 332 }, { 10, 0, 384 }, { 10, 0, 396 }, { 10, 0, 504 }, + { 10, 0, 542 }, { 10, 0, 652 }, { 11, 0, 20 }, { 11, 0, 48 }, + { 11, 0, 207 }, { 11, 0, 291 }, { 11, 0, 298 }, { 11, 0, 342 }, + { 11, 0, 365 }, { 11, 0, 394 }, { 11, 0, 620 }, { 11, 0, 705 }, + { 11, 0, 1017 }, { 12, 0, 123 }, { 12, 0, 340 }, { 12, 0, 406 }, + { 12, 0, 643 }, { 13, 0, 61 }, { 13, 0, 269 }, { 13, 0, 311 }, + { 13, 0, 319 }, { 13, 0, 486 }, { 14, 0, 234 }, { 15, 0, 62 }, + { 15, 0, 85 }, { 16, 0, 71 }, { 18, 0, 119 }, { 20, 0, 105 }, + { 135, 10, 1912 }, { 4, 11, 71 }, { 5, 11, 376 }, { 7, 11, 119 }, + { 138, 11, 665 }, { 10, 0, 918 }, { 10, 0, 926 }, { 4, 10, 686 }, + { 136, 11, 55 }, { 138, 10, 625 }, { 136, 10, 706 }, { 132, 11, 479 }, + { 4, 10, 30 }, { 133, 10, 43 }, { 6, 0, 379 }, { 7, 0, 270 }, + { 8, 0, 176 }, { 8, 0, 183 }, { 9, 0, 432 }, { 9, 0, 661 }, + { 12, 0, 247 }, { 12, 0, 617 }, { 18, 0, 125 }, { 7, 11, 607 }, + { 8, 11, 99 }, { 152, 11, 4 }, { 5, 0, 792 }, { 133, 0, 900 }, + { 4, 11, 612 }, { 133, 11, 561 }, { 4, 11, 41 }, { 4, 10, 220 }, + { 5, 11, 74 }, { 7, 10, 1535 }, { 7, 11, 1627 }, { 11, 11, 871 }, + { 140, 11, 619 }, { 135, 0, 1920 }, { 7, 11, 94 }, { 11, 11, 329 }, + { 11, 11, 965 }, { 12, 11, 241 }, { 14, 11, 354 }, { 15, 11, 22 }, + { 148, 11, 63 }, { 9, 11, 209 }, { 137, 11, 300 }, { 134, 0, 771 }, + { 135, 0, 1979 }, { 4, 0, 901 }, { 133, 0, 776 }, { 142, 0, 254 }, + { 133, 11, 98 }, { 9, 11, 16 }, { 141, 11, 386 }, { 133, 11, 984 }, + { 4, 11, 182 }, { 6, 11, 205 }, { 135, 11, 220 }, { 7, 10, 1725 }, + { 7, 10, 1774 }, { 138, 10, 393 }, { 5, 10, 263 }, { 134, 10, 414 }, + { 4, 11, 42 }, { 9, 11, 205 }, { 9, 11, 786 }, { 138, 11, 659 }, + { 14, 0, 140 }, { 148, 0, 41 }, { 8, 0, 440 }, { 10, 0, 359 }, + { 6, 10, 178 }, { 6, 11, 289 }, { 6, 10, 1750 }, { 7, 11, 1670 }, + { 9, 10, 690 }, { 10, 10, 155 }, { 10, 10, 373 }, { 11, 10, 698 }, + { 12, 11, 57 }, { 13, 10, 155 }, { 20, 10, 93 }, { 151, 11, 4 }, + { 4, 0, 37 }, { 5, 0, 334 }, { 7, 0, 1253 }, { 151, 11, 25 }, + { 4, 0, 508 }, { 4, 11, 635 }, { 5, 10, 97 }, { 137, 10, 393 }, + { 139, 11, 533 }, { 4, 0, 640 }, { 133, 0, 513 }, { 134, 10, 1639 }, + { 132, 11, 371 }, { 4, 11, 272 }, { 7, 11, 836 }, { 7, 11, 1651 }, + { 145, 11, 89 }, { 5, 11, 825 }, { 6, 11, 444 }, { 6, 11, 1640 }, + { 136, 11, 308 }, { 4, 10, 191 }, { 7, 10, 934 }, { 8, 10, 647 }, + { 145, 10, 97 }, { 12, 0, 246 }, { 15, 0, 162 }, { 19, 0, 64 }, + { 20, 0, 8 }, { 20, 0, 95 }, { 22, 0, 24 }, { 152, 0, 17 }, + { 4, 0, 533 }, { 5, 10, 165 }, { 9, 10, 346 }, { 138, 10, 655 }, + { 5, 11, 737 }, { 139, 10, 885 }, { 133, 10, 877 }, { 8, 10, 128 }, + { 139, 10, 179 }, { 137, 11, 307 }, { 140, 0, 752 }, { 133, 0, 920 }, + { 135, 0, 1048 }, { 5, 0, 153 }, { 6, 0, 580 }, { 6, 10, 1663 }, + { 7, 10, 132 }, { 7, 10, 1154 }, { 7, 10, 1415 }, { 7, 10, 1507 }, + { 12, 10, 493 }, { 15, 10, 105 }, { 151, 10, 15 }, { 5, 10, 459 }, + { 7, 10, 1073 }, { 8, 10, 241 }, { 136, 10, 334 }, { 138, 0, 391 }, + { 135, 0, 1952 }, { 133, 11, 525 }, { 8, 11, 641 }, { 11, 11, 388 }, + { 140, 11, 580 }, { 142, 0, 126 }, { 134, 0, 640 }, { 132, 0, 483 }, + { 7, 0, 1616 }, { 9, 0, 69 }, { 6, 10, 324 }, { 6, 10, 520 }, + { 7, 10, 338 }, { 7, 10, 1729 }, { 8, 10, 228 }, { 139, 10, 750 }, + { 5, 11, 493 }, { 134, 11, 528 }, { 135, 0, 734 }, { 4, 11, 174 }, + { 135, 11, 911 }, { 138, 0, 480 }, { 9, 0, 495 }, { 146, 0, 104 }, + { 135, 10, 705 }, { 9, 0, 472 }, { 4, 10, 73 }, { 6, 10, 612 }, + { 7, 10, 927 }, { 7, 10, 1330 }, { 7, 10, 1822 }, { 8, 10, 217 }, + { 9, 10, 765 }, { 9, 10, 766 }, { 10, 10, 408 }, { 11, 10, 51 }, + { 11, 10, 793 }, { 12, 10, 266 }, { 15, 10, 158 }, { 20, 10, 89 }, + { 150, 10, 32 }, { 7, 11, 548 }, { 137, 11, 58 }, { 4, 11, 32 }, + { 5, 11, 215 }, { 6, 11, 269 }, { 7, 11, 1782 }, { 7, 11, 1892 }, + { 10, 11, 16 }, { 11, 11, 822 }, { 11, 11, 954 }, { 141, 11, 481 }, + { 132, 0, 874 }, { 9, 0, 229 }, { 5, 10, 389 }, { 136, 10, 636 }, + { 7, 11, 1749 }, { 136, 11, 477 }, { 134, 0, 948 }, { 5, 11, 308 }, + { 135, 11, 1088 }, { 4, 0, 748 }, { 139, 0, 1009 }, { 136, 10, 21 }, + { 6, 0, 555 }, { 135, 0, 485 }, { 5, 11, 126 }, { 8, 11, 297 }, + { 9, 11, 366 }, { 9, 11, 445 }, { 12, 11, 53 }, { 12, 11, 374 }, + { 141, 11, 492 }, { 7, 11, 1551 }, { 139, 11, 361 }, { 136, 0, 193 }, + { 136, 0, 472 }, { 8, 0, 653 }, { 13, 0, 93 }, { 147, 0, 14 }, + { 132, 0, 984 }, { 132, 11, 175 }, { 5, 0, 172 }, { 6, 0, 1971 }, + { 132, 11, 685 }, { 149, 11, 8 }, { 133, 11, 797 }, { 13, 0, 83 }, + { 5, 10, 189 }, { 7, 10, 442 }, { 7, 10, 443 }, { 8, 10, 281 }, + { 12, 10, 174 }, { 141, 10, 261 }, { 134, 0, 1568 }, { 133, 11, 565 }, + { 139, 0, 384 }, { 133, 0, 260 }, { 7, 0, 758 }, { 7, 0, 880 }, + { 7, 0, 1359 }, { 9, 0, 164 }, { 9, 0, 167 }, { 10, 0, 156 }, + { 10, 0, 588 }, { 12, 0, 101 }, { 14, 0, 48 }, { 15, 0, 70 }, + { 6, 10, 2 }, { 7, 10, 1262 }, { 7, 10, 1737 }, { 8, 10, 22 }, + { 8, 10, 270 }, { 8, 10, 612 }, { 9, 10, 312 }, { 9, 10, 436 }, + { 10, 10, 311 }, { 10, 10, 623 }, { 11, 10, 72 }, { 11, 10, 330 }, + { 11, 10, 455 }, { 12, 10, 321 }, { 12, 10, 504 }, { 12, 10, 530 }, + { 12, 10, 543 }, { 13, 10, 17 }, { 13, 10, 156 }, { 13, 10, 334 }, + { 17, 10, 60 }, { 148, 10, 64 }, { 4, 11, 252 }, { 7, 11, 1068 }, + { 10, 11, 434 }, { 11, 11, 228 }, { 11, 11, 426 }, { 13, 11, 231 }, + { 18, 11, 106 }, { 148, 11, 87 }, { 7, 10, 354 }, { 10, 10, 410 }, + { 139, 10, 815 }, { 6, 0, 367 }, { 7, 10, 670 }, { 7, 10, 1327 }, + { 8, 10, 411 }, { 8, 10, 435 }, { 9, 10, 653 }, { 9, 10, 740 }, + { 10, 10, 385 }, { 11, 10, 222 }, { 11, 10, 324 }, { 11, 10, 829 }, + { 140, 10, 611 }, { 7, 0, 1174 }, { 6, 10, 166 }, { 135, 10, 374 }, + { 146, 0, 121 }, { 132, 0, 828 }, { 5, 11, 231 }, { 138, 11, 509 }, + { 7, 11, 601 }, { 9, 11, 277 }, { 9, 11, 674 }, { 10, 11, 178 }, + { 10, 11, 257 }, { 10, 11, 418 }, { 11, 11, 531 }, { 11, 11, 544 }, + { 11, 11, 585 }, { 12, 11, 113 }, { 12, 11, 475 }, { 13, 11, 99 }, + { 142, 11, 428 }, { 134, 0, 1541 }, { 135, 11, 1779 }, { 5, 0, 343 }, + { 134, 10, 398 }, { 135, 10, 50 }, { 135, 11, 1683 }, { 4, 0, 440 }, + { 7, 0, 57 }, { 8, 0, 167 }, { 8, 0, 375 }, { 9, 0, 82 }, + { 9, 0, 561 }, { 9, 0, 744 }, { 10, 0, 620 }, { 137, 11, 744 }, + { 134, 0, 926 }, { 6, 10, 517 }, { 7, 10, 1159 }, { 10, 10, 621 }, + { 139, 10, 192 }, { 137, 0, 827 }, { 8, 0, 194 }, { 136, 0, 756 }, + { 10, 10, 223 }, { 139, 10, 645 }, { 7, 10, 64 }, { 136, 10, 245 }, + { 4, 11, 399 }, { 5, 11, 119 }, { 5, 11, 494 }, { 7, 11, 751 }, + { 137, 11, 556 }, { 132, 0, 808 }, { 135, 0, 22 }, { 7, 10, 1763 }, + { 140, 10, 310 }, { 5, 0, 639 }, { 7, 0, 1249 }, { 11, 0, 896 }, + { 134, 11, 584 }, { 134, 0, 1614 }, { 135, 0, 860 }, { 135, 11, 1121 }, + { 5, 10, 129 }, { 6, 10, 61 }, { 135, 10, 947 }, { 4, 0, 102 }, + { 7, 0, 815 }, { 7, 0, 1699 }, { 139, 0, 964 }, { 13, 10, 505 }, + { 141, 10, 506 }, { 139, 10, 1000 }, { 132, 11, 679 }, { 132, 0, 899 }, + { 132, 0, 569 }, { 5, 11, 694 }, { 137, 11, 714 }, { 136, 0, 795 }, + { 6, 0, 2045 }, { 139, 11, 7 }, { 6, 0, 52 }, { 9, 0, 104 }, + { 9, 0, 559 }, { 12, 0, 308 }, { 147, 0, 87 }, { 4, 0, 301 }, + { 132, 0, 604 }, { 133, 10, 637 }, { 136, 0, 779 }, { 5, 11, 143 }, + { 5, 11, 769 }, { 6, 11, 1760 }, { 7, 11, 682 }, { 7, 11, 1992 }, + { 136, 11, 736 }, { 137, 10, 590 }, { 147, 0, 32 }, { 137, 11, 527 }, + { 5, 10, 280 }, { 135, 10, 1226 }, { 134, 0, 494 }, { 6, 0, 677 }, + { 6, 0, 682 }, { 134, 0, 1044 }, { 133, 10, 281 }, { 135, 10, 1064 }, + { 7, 0, 508 }, { 133, 11, 860 }, { 6, 11, 422 }, { 7, 11, 0 }, + { 7, 11, 1544 }, { 9, 11, 577 }, { 11, 11, 990 }, { 12, 11, 141 }, + { 12, 11, 453 }, { 13, 11, 47 }, { 141, 11, 266 }, { 134, 0, 1014 }, + { 5, 11, 515 }, { 137, 11, 131 }, { 134, 0, 957 }, { 132, 11, 646 }, + { 6, 0, 310 }, { 7, 0, 1849 }, { 8, 0, 72 }, { 8, 0, 272 }, + { 8, 0, 431 }, { 9, 0, 12 }, { 9, 0, 376 }, { 10, 0, 563 }, + { 10, 0, 630 }, { 10, 0, 796 }, { 10, 0, 810 }, { 11, 0, 367 }, + { 11, 0, 599 }, { 11, 0, 686 }, { 140, 0, 672 }, { 7, 0, 570 }, + { 4, 11, 396 }, { 7, 10, 120 }, { 7, 11, 728 }, { 8, 10, 489 }, + { 9, 11, 117 }, { 9, 10, 319 }, { 10, 10, 820 }, { 11, 10, 1004 }, + { 12, 10, 379 }, { 12, 10, 679 }, { 13, 10, 117 }, { 13, 11, 202 }, + { 13, 10, 412 }, { 14, 10, 25 }, { 15, 10, 52 }, { 15, 10, 161 }, + { 16, 10, 47 }, { 20, 11, 51 }, { 149, 10, 2 }, { 6, 11, 121 }, + { 6, 11, 124 }, { 6, 11, 357 }, { 7, 11, 1138 }, { 7, 11, 1295 }, + { 8, 11, 162 }, { 139, 11, 655 }, { 8, 0, 449 }, { 4, 10, 937 }, + { 5, 10, 801 }, { 136, 11, 449 }, { 139, 11, 958 }, { 6, 0, 181 }, + { 7, 0, 537 }, { 8, 0, 64 }, { 9, 0, 127 }, { 10, 0, 496 }, + { 12, 0, 510 }, { 141, 0, 384 }, { 138, 11, 253 }, { 4, 0, 244 }, + { 135, 0, 233 }, { 133, 11, 237 }, { 132, 10, 365 }, { 6, 0, 1650 }, + { 10, 0, 702 }, { 139, 0, 245 }, { 5, 10, 7 }, { 139, 10, 774 }, + { 13, 0, 463 }, { 20, 0, 49 }, { 13, 11, 463 }, { 148, 11, 49 }, + { 4, 10, 734 }, { 5, 10, 662 }, { 134, 10, 430 }, { 4, 10, 746 }, + { 135, 10, 1090 }, { 5, 10, 360 }, { 136, 10, 237 }, { 137, 0, 338 }, + { 143, 11, 10 }, { 7, 11, 571 }, { 138, 11, 366 }, { 134, 0, 1279 }, + { 9, 11, 513 }, { 10, 11, 22 }, { 10, 11, 39 }, { 12, 11, 122 }, + { 140, 11, 187 }, { 133, 0, 896 }, { 146, 0, 178 }, { 134, 0, 695 }, + { 137, 0, 808 }, { 134, 11, 587 }, { 7, 11, 107 }, { 7, 11, 838 }, + { 8, 11, 550 }, { 138, 11, 401 }, { 7, 0, 1117 }, { 136, 0, 539 }, + { 4, 10, 277 }, { 5, 10, 608 }, { 6, 10, 493 }, { 7, 10, 457 }, + { 140, 10, 384 }, { 133, 11, 768 }, { 12, 0, 257 }, { 7, 10, 27 }, + { 135, 10, 316 }, { 140, 0, 1003 }, { 4, 0, 207 }, { 5, 0, 586 }, + { 5, 0, 676 }, { 6, 0, 448 }, { 8, 0, 244 }, { 11, 0, 1 }, + { 13, 0, 3 }, { 16, 0, 54 }, { 17, 0, 4 }, { 18, 0, 13 }, + { 133, 10, 552 }, { 4, 10, 401 }, { 137, 10, 264 }, { 5, 0, 516 }, + { 7, 0, 1883 }, { 135, 11, 1883 }, { 12, 0, 960 }, { 132, 11, 894 }, + { 5, 0, 4 }, { 5, 0, 810 }, { 6, 0, 13 }, { 6, 0, 538 }, + { 6, 0, 1690 }, { 6, 0, 1726 }, { 7, 0, 499 }, { 7, 0, 1819 }, + { 8, 0, 148 }, { 8, 0, 696 }, { 8, 0, 791 }, { 12, 0, 125 }, + { 143, 0, 9 }, { 135, 0, 1268 }, { 11, 0, 30 }, { 14, 0, 315 }, + { 9, 10, 543 }, { 10, 10, 524 }, { 12, 10, 524 }, { 16, 10, 18 }, + { 20, 10, 26 }, { 148, 10, 65 }, { 6, 0, 748 }, { 4, 10, 205 }, + { 5, 10, 623 }, { 7, 10, 104 }, { 136, 10, 519 }, { 11, 0, 542 }, + { 139, 0, 852 }, { 140, 0, 6 }, { 132, 0, 848 }, { 7, 0, 1385 }, + { 11, 0, 582 }, { 11, 0, 650 }, { 11, 0, 901 }, { 11, 0, 949 }, + { 12, 0, 232 }, { 12, 0, 236 }, { 13, 0, 413 }, { 13, 0, 501 }, + { 18, 0, 116 }, { 7, 10, 579 }, { 9, 10, 41 }, { 9, 10, 244 }, + { 9, 10, 669 }, { 10, 10, 5 }, { 11, 10, 861 }, { 11, 10, 951 }, + { 139, 10, 980 }, { 4, 0, 945 }, { 6, 0, 1811 }, { 6, 0, 1845 }, + { 6, 0, 1853 }, { 6, 0, 1858 }, { 8, 0, 862 }, { 12, 0, 782 }, + { 12, 0, 788 }, { 18, 0, 160 }, { 148, 0, 117 }, { 132, 10, 717 }, + { 4, 0, 925 }, { 5, 0, 803 }, { 8, 0, 698 }, { 138, 0, 828 }, + { 134, 0, 1416 }, { 132, 0, 610 }, { 139, 0, 992 }, { 6, 0, 878 }, + { 134, 0, 1477 }, { 135, 0, 1847 }, { 138, 11, 531 }, { 137, 11, 539 }, + { 134, 11, 272 }, { 133, 0, 383 }, { 134, 0, 1404 }, { 132, 10, 489 }, + { 4, 11, 9 }, { 5, 11, 128 }, { 7, 11, 368 }, { 11, 11, 480 }, + { 148, 11, 3 }, { 136, 0, 986 }, { 9, 0, 660 }, { 138, 0, 347 }, + { 135, 10, 892 }, { 136, 11, 682 }, { 7, 0, 572 }, { 9, 0, 592 }, + { 11, 0, 680 }, { 12, 0, 356 }, { 140, 0, 550 }, { 7, 0, 1411 }, + { 138, 11, 527 }, { 4, 11, 2 }, { 7, 11, 545 }, { 135, 11, 894 }, + { 137, 10, 473 }, { 11, 0, 64 }, { 7, 11, 481 }, { 7, 10, 819 }, + { 9, 10, 26 }, { 9, 10, 392 }, { 9, 11, 792 }, { 10, 10, 152 }, + { 10, 10, 226 }, { 12, 10, 276 }, { 12, 10, 426 }, { 12, 10, 589 }, + { 13, 10, 460 }, { 15, 10, 97 }, { 19, 10, 48 }, { 148, 10, 104 }, + { 135, 10, 51 }, { 136, 11, 445 }, { 136, 11, 646 }, { 135, 0, 606 }, + { 132, 10, 674 }, { 6, 0, 1829 }, { 134, 0, 1830 }, { 132, 10, 770 }, + { 5, 10, 79 }, { 7, 10, 1027 }, { 7, 10, 1477 }, { 139, 10, 52 }, + { 5, 11, 530 }, { 142, 11, 113 }, { 134, 10, 1666 }, { 7, 0, 748 }, + { 139, 0, 700 }, { 134, 10, 195 }, { 133, 10, 789 }, { 9, 0, 87 }, + { 10, 0, 365 }, { 4, 10, 251 }, { 4, 10, 688 }, { 7, 10, 513 }, + { 135, 10, 1284 }, { 136, 11, 111 }, { 133, 0, 127 }, { 6, 0, 198 }, + { 140, 0, 83 }, { 133, 11, 556 }, { 133, 10, 889 }, { 4, 10, 160 }, + { 5, 10, 330 }, { 7, 10, 1434 }, { 136, 10, 174 }, { 5, 0, 276 }, + { 6, 0, 55 }, { 7, 0, 1369 }, { 138, 0, 864 }, { 8, 11, 16 }, + { 140, 11, 568 }, { 6, 0, 1752 }, { 136, 0, 726 }, { 135, 0, 1066 }, + { 133, 0, 764 }, { 6, 11, 186 }, { 137, 11, 426 }, { 11, 0, 683 }, + { 139, 11, 683 }, { 6, 0, 309 }, { 7, 0, 331 }, { 138, 0, 550 }, + { 133, 10, 374 }, { 6, 0, 1212 }, { 6, 0, 1852 }, { 7, 0, 1062 }, + { 8, 0, 874 }, { 8, 0, 882 }, { 138, 0, 936 }, { 132, 11, 585 }, + { 134, 0, 1364 }, { 7, 0, 986 }, { 133, 10, 731 }, { 6, 0, 723 }, + { 6, 0, 1408 }, { 138, 0, 381 }, { 135, 0, 1573 }, { 134, 0, 1025 }, + { 4, 10, 626 }, { 5, 10, 642 }, { 6, 10, 425 }, { 10, 10, 202 }, + { 139, 10, 141 }, { 4, 11, 93 }, { 5, 11, 252 }, { 6, 11, 229 }, + { 7, 11, 291 }, { 9, 11, 550 }, { 139, 11, 644 }, { 137, 11, 749 }, + { 137, 11, 162 }, { 132, 11, 381 }, { 135, 0, 1559 }, { 6, 0, 194 }, + { 7, 0, 133 }, { 10, 0, 493 }, { 10, 0, 570 }, { 139, 0, 664 }, + { 5, 0, 24 }, { 5, 0, 569 }, { 6, 0, 3 }, { 6, 0, 119 }, + { 6, 0, 143 }, { 6, 0, 440 }, { 7, 0, 295 }, { 7, 0, 599 }, + { 7, 0, 1686 }, { 7, 0, 1854 }, { 8, 0, 424 }, { 9, 0, 43 }, + { 9, 0, 584 }, { 9, 0, 760 }, { 10, 0, 148 }, { 10, 0, 328 }, + { 11, 0, 159 }, { 11, 0, 253 }, { 11, 0, 506 }, { 12, 0, 487 }, + { 140, 0, 531 }, { 6, 0, 661 }, { 134, 0, 1517 }, { 136, 10, 835 }, + { 151, 10, 17 }, { 5, 0, 14 }, { 5, 0, 892 }, { 6, 0, 283 }, + { 7, 0, 234 }, { 136, 0, 537 }, { 139, 0, 541 }, { 4, 0, 126 }, + { 8, 0, 635 }, { 147, 0, 34 }, { 4, 0, 316 }, { 4, 0, 495 }, + { 135, 0, 1561 }, { 4, 11, 187 }, { 5, 11, 184 }, { 5, 11, 690 }, + { 7, 11, 1869 }, { 138, 11, 756 }, { 139, 11, 783 }, { 4, 0, 998 }, + { 137, 0, 861 }, { 136, 0, 1009 }, { 139, 11, 292 }, { 5, 11, 21 }, + { 6, 11, 77 }, { 6, 11, 157 }, { 7, 11, 974 }, { 7, 11, 1301 }, + { 7, 11, 1339 }, { 7, 11, 1490 }, { 7, 11, 1873 }, { 137, 11, 628 }, + { 7, 11, 1283 }, { 9, 11, 227 }, { 9, 11, 499 }, { 10, 11, 341 }, + { 11, 11, 325 }, { 11, 11, 408 }, { 14, 11, 180 }, { 15, 11, 144 }, + { 18, 11, 47 }, { 147, 11, 49 }, { 4, 0, 64 }, { 5, 0, 352 }, + { 5, 0, 720 }, { 6, 0, 368 }, { 139, 0, 359 }, { 5, 10, 384 }, + { 8, 10, 455 }, { 140, 10, 48 }, { 5, 10, 264 }, { 134, 10, 184 }, + { 7, 0, 1577 }, { 10, 0, 304 }, { 10, 0, 549 }, { 12, 0, 365 }, + { 13, 0, 220 }, { 13, 0, 240 }, { 142, 0, 33 }, { 134, 0, 1107 }, + { 134, 0, 929 }, { 135, 0, 1142 }, { 6, 0, 175 }, { 137, 0, 289 }, + { 5, 0, 432 }, { 133, 0, 913 }, { 6, 0, 279 }, { 7, 0, 219 }, + { 5, 10, 633 }, { 135, 10, 1323 }, { 7, 0, 785 }, { 7, 10, 359 }, + { 8, 10, 243 }, { 140, 10, 175 }, { 139, 0, 595 }, { 132, 10, 105 }, + { 8, 11, 398 }, { 9, 11, 681 }, { 139, 11, 632 }, { 140, 0, 80 }, + { 5, 0, 931 }, { 134, 0, 1698 }, { 142, 11, 241 }, { 134, 11, 20 }, + { 134, 0, 1323 }, { 11, 0, 526 }, { 11, 0, 939 }, { 141, 0, 290 }, + { 5, 0, 774 }, { 6, 0, 780 }, { 6, 0, 1637 }, { 6, 0, 1686 }, + { 6, 0, 1751 }, { 8, 0, 559 }, { 141, 0, 109 }, { 141, 0, 127 }, + { 7, 0, 1167 }, { 11, 0, 934 }, { 13, 0, 391 }, { 17, 0, 76 }, + { 135, 11, 709 }, { 135, 0, 963 }, { 6, 0, 260 }, { 135, 0, 1484 }, + { 134, 0, 573 }, { 4, 10, 758 }, { 139, 11, 941 }, { 135, 10, 1649 }, + { 145, 11, 36 }, { 4, 0, 292 }, { 137, 0, 580 }, { 4, 0, 736 }, + { 5, 0, 871 }, { 6, 0, 1689 }, { 135, 0, 1944 }, { 7, 11, 945 }, + { 11, 11, 713 }, { 139, 11, 744 }, { 134, 0, 1164 }, { 135, 11, 937 }, + { 6, 0, 1922 }, { 9, 0, 982 }, { 15, 0, 173 }, { 15, 0, 178 }, + { 15, 0, 200 }, { 18, 0, 189 }, { 18, 0, 207 }, { 21, 0, 47 }, + { 135, 11, 1652 }, { 7, 0, 1695 }, { 139, 10, 128 }, { 6, 0, 63 }, + { 135, 0, 920 }, { 133, 0, 793 }, { 143, 11, 134 }, { 133, 10, 918 }, + { 5, 0, 67 }, { 6, 0, 62 }, { 6, 0, 374 }, { 135, 0, 1391 }, + { 9, 0, 790 }, { 12, 0, 47 }, { 4, 11, 579 }, { 5, 11, 226 }, + { 5, 11, 323 }, { 135, 11, 960 }, { 10, 11, 784 }, { 141, 11, 191 }, + { 4, 0, 391 }, { 135, 0, 1169 }, { 137, 0, 443 }, { 13, 11, 232 }, + { 146, 11, 35 }, { 132, 10, 340 }, { 132, 0, 271 }, { 137, 11, 313 }, + { 5, 11, 973 }, { 137, 11, 659 }, { 134, 0, 1140 }, { 6, 11, 135 }, + { 135, 11, 1176 }, { 4, 0, 253 }, { 5, 0, 544 }, { 7, 0, 300 }, + { 137, 0, 340 }, { 7, 0, 897 }, { 5, 10, 985 }, { 7, 10, 509 }, + { 145, 10, 96 }, { 138, 11, 735 }, { 135, 10, 1919 }, { 138, 0, 890 }, + { 5, 0, 818 }, { 134, 0, 1122 }, { 5, 0, 53 }, { 5, 0, 541 }, + { 6, 0, 94 }, { 6, 0, 499 }, { 7, 0, 230 }, { 139, 0, 321 }, + { 4, 0, 920 }, { 5, 0, 25 }, { 5, 0, 790 }, { 6, 0, 457 }, + { 7, 0, 853 }, { 8, 0, 788 }, { 142, 11, 31 }, { 132, 10, 247 }, + { 135, 11, 314 }, { 132, 0, 468 }, { 7, 0, 243 }, { 6, 10, 337 }, + { 7, 10, 494 }, { 8, 10, 27 }, { 8, 10, 599 }, { 138, 10, 153 }, + { 4, 10, 184 }, { 5, 10, 390 }, { 7, 10, 618 }, { 7, 10, 1456 }, + { 139, 10, 710 }, { 134, 0, 870 }, { 134, 0, 1238 }, { 134, 0, 1765 }, + { 10, 0, 853 }, { 10, 0, 943 }, { 14, 0, 437 }, { 14, 0, 439 }, + { 14, 0, 443 }, { 14, 0, 446 }, { 14, 0, 452 }, { 14, 0, 469 }, + { 14, 0, 471 }, { 14, 0, 473 }, { 16, 0, 93 }, { 16, 0, 102 }, + { 16, 0, 110 }, { 148, 0, 121 }, { 4, 0, 605 }, { 7, 0, 518 }, + { 7, 0, 1282 }, { 7, 0, 1918 }, { 10, 0, 180 }, { 139, 0, 218 }, + { 133, 0, 822 }, { 4, 0, 634 }, { 11, 0, 916 }, { 142, 0, 419 }, + { 6, 11, 281 }, { 7, 11, 6 }, { 8, 11, 282 }, { 8, 11, 480 }, + { 8, 11, 499 }, { 9, 11, 198 }, { 10, 11, 143 }, { 10, 11, 169 }, + { 10, 11, 211 }, { 10, 11, 417 }, { 10, 11, 574 }, { 11, 11, 147 }, + { 11, 11, 395 }, { 12, 11, 75 }, { 12, 11, 407 }, { 12, 11, 608 }, + { 13, 11, 500 }, { 142, 11, 251 }, { 134, 0, 898 }, { 6, 0, 36 }, + { 7, 0, 658 }, { 8, 0, 454 }, { 150, 11, 48 }, { 133, 11, 674 }, + { 135, 11, 1776 }, { 4, 11, 419 }, { 10, 10, 227 }, { 11, 10, 497 }, + { 11, 10, 709 }, { 140, 10, 415 }, { 6, 10, 360 }, { 7, 10, 1664 }, + { 136, 10, 478 }, { 137, 0, 806 }, { 12, 11, 508 }, { 14, 11, 102 }, + { 14, 11, 226 }, { 144, 11, 57 }, { 135, 11, 1123 }, { 4, 11, 138 }, + { 7, 11, 1012 }, { 7, 11, 1280 }, { 137, 11, 76 }, { 5, 11, 29 }, + { 140, 11, 638 }, { 136, 10, 699 }, { 134, 0, 1326 }, { 132, 0, 104 }, + { 135, 11, 735 }, { 132, 10, 739 }, { 134, 0, 1331 }, { 7, 0, 260 }, + { 135, 11, 260 }, { 135, 11, 1063 }, { 7, 0, 45 }, { 9, 0, 542 }, + { 9, 0, 566 }, { 10, 0, 728 }, { 137, 10, 869 }, { 4, 10, 67 }, + { 5, 10, 422 }, { 7, 10, 1037 }, { 7, 10, 1289 }, { 7, 10, 1555 }, + { 9, 10, 741 }, { 145, 10, 108 }, { 139, 0, 263 }, { 134, 0, 1516 }, + { 14, 0, 146 }, { 15, 0, 42 }, { 16, 0, 23 }, { 17, 0, 86 }, + { 146, 0, 17 }, { 138, 0, 468 }, { 136, 0, 1005 }, { 4, 11, 17 }, + { 5, 11, 23 }, { 7, 11, 995 }, { 11, 11, 383 }, { 11, 11, 437 }, + { 12, 11, 460 }, { 140, 11, 532 }, { 7, 0, 87 }, { 142, 0, 288 }, + { 138, 10, 96 }, { 135, 11, 626 }, { 144, 10, 26 }, { 7, 0, 988 }, + { 7, 0, 1939 }, { 9, 0, 64 }, { 9, 0, 502 }, { 12, 0, 22 }, + { 12, 0, 34 }, { 13, 0, 12 }, { 13, 0, 234 }, { 147, 0, 77 }, + { 13, 0, 133 }, { 8, 10, 203 }, { 11, 10, 823 }, { 11, 10, 846 }, + { 12, 10, 482 }, { 13, 10, 277 }, { 13, 10, 302 }, { 13, 10, 464 }, + { 14, 10, 205 }, { 142, 10, 221 }, { 4, 10, 449 }, { 133, 10, 718 }, + { 135, 0, 141 }, { 6, 0, 1842 }, { 136, 0, 872 }, { 8, 11, 70 }, + { 12, 11, 171 }, { 141, 11, 272 }, { 4, 10, 355 }, { 6, 10, 311 }, + { 9, 10, 256 }, { 138, 10, 404 }, { 132, 0, 619 }, { 137, 0, 261 }, + { 10, 11, 233 }, { 10, 10, 758 }, { 139, 11, 76 }, { 5, 0, 246 }, + { 8, 0, 189 }, { 9, 0, 355 }, { 9, 0, 512 }, { 10, 0, 124 }, + { 10, 0, 453 }, { 11, 0, 143 }, { 11, 0, 416 }, { 11, 0, 859 }, + { 141, 0, 341 }, { 134, 11, 442 }, { 133, 10, 827 }, { 5, 10, 64 }, + { 140, 10, 581 }, { 4, 10, 442 }, { 7, 10, 1047 }, { 7, 10, 1352 }, + { 135, 10, 1643 }, { 134, 11, 1709 }, { 5, 0, 678 }, { 6, 0, 305 }, + { 7, 0, 775 }, { 7, 0, 1065 }, { 133, 10, 977 }, { 11, 11, 69 }, + { 12, 11, 105 }, { 12, 11, 117 }, { 13, 11, 213 }, { 14, 11, 13 }, + { 14, 11, 62 }, { 14, 11, 177 }, { 14, 11, 421 }, { 15, 11, 19 }, + { 146, 11, 141 }, { 137, 11, 309 }, { 5, 0, 35 }, { 7, 0, 862 }, + { 7, 0, 1886 }, { 138, 0, 179 }, { 136, 0, 285 }, { 132, 0, 517 }, + { 7, 11, 976 }, { 9, 11, 146 }, { 10, 11, 206 }, { 10, 11, 596 }, + { 13, 11, 218 }, { 142, 11, 153 }, { 132, 10, 254 }, { 6, 0, 214 }, + { 12, 0, 540 }, { 4, 10, 275 }, { 7, 10, 1219 }, { 140, 10, 376 }, + { 8, 0, 667 }, { 11, 0, 403 }, { 146, 0, 83 }, { 12, 0, 74 }, + { 10, 11, 648 }, { 11, 11, 671 }, { 143, 11, 46 }, { 135, 0, 125 }, + { 134, 10, 1753 }, { 133, 0, 761 }, { 6, 0, 912 }, { 4, 11, 518 }, + { 6, 10, 369 }, { 6, 10, 502 }, { 7, 10, 1036 }, { 7, 11, 1136 }, + { 8, 10, 348 }, { 9, 10, 452 }, { 10, 10, 26 }, { 11, 10, 224 }, + { 11, 10, 387 }, { 11, 10, 772 }, { 12, 10, 95 }, { 12, 10, 629 }, + { 13, 10, 195 }, { 13, 10, 207 }, { 13, 10, 241 }, { 14, 10, 260 }, + { 14, 10, 270 }, { 143, 10, 140 }, { 10, 0, 131 }, { 140, 0, 72 }, + { 132, 10, 269 }, { 5, 10, 480 }, { 7, 10, 532 }, { 7, 10, 1197 }, + { 7, 10, 1358 }, { 8, 10, 291 }, { 11, 10, 349 }, { 142, 10, 396 }, + { 8, 11, 689 }, { 137, 11, 863 }, { 8, 0, 333 }, { 138, 0, 182 }, + { 4, 11, 18 }, { 7, 11, 145 }, { 7, 11, 444 }, { 7, 11, 1278 }, + { 8, 11, 49 }, { 8, 11, 400 }, { 9, 11, 71 }, { 9, 11, 250 }, + { 10, 11, 459 }, { 12, 11, 160 }, { 144, 11, 24 }, { 14, 11, 35 }, + { 142, 11, 191 }, { 135, 11, 1864 }, { 135, 0, 1338 }, { 148, 10, 15 }, + { 14, 0, 94 }, { 15, 0, 65 }, { 16, 0, 4 }, { 16, 0, 77 }, + { 16, 0, 80 }, { 145, 0, 5 }, { 12, 11, 82 }, { 143, 11, 36 }, + { 133, 11, 1010 }, { 133, 0, 449 }, { 133, 0, 646 }, { 7, 0, 86 }, + { 8, 0, 103 }, { 135, 10, 657 }, { 7, 0, 2028 }, { 138, 0, 641 }, + { 136, 10, 533 }, { 134, 0, 1 }, { 139, 11, 970 }, { 5, 11, 87 }, + { 7, 11, 313 }, { 7, 11, 1103 }, { 10, 11, 112 }, { 10, 11, 582 }, + { 11, 11, 389 }, { 11, 11, 813 }, { 12, 11, 385 }, { 13, 11, 286 }, + { 14, 11, 124 }, { 146, 11, 108 }, { 6, 0, 869 }, { 132, 11, 267 }, + { 6, 0, 277 }, { 7, 0, 1274 }, { 7, 0, 1386 }, { 146, 0, 87 }, + { 6, 0, 187 }, { 7, 0, 39 }, { 7, 0, 1203 }, { 8, 0, 380 }, + { 14, 0, 117 }, { 149, 0, 28 }, { 4, 10, 211 }, { 4, 10, 332 }, + { 5, 10, 335 }, { 6, 10, 238 }, { 7, 10, 269 }, { 7, 10, 811 }, + { 7, 10, 1797 }, { 8, 10, 836 }, { 9, 10, 507 }, { 141, 10, 242 }, + { 4, 0, 785 }, { 5, 0, 368 }, { 6, 0, 297 }, { 7, 0, 793 }, + { 139, 0, 938 }, { 7, 0, 464 }, { 8, 0, 558 }, { 11, 0, 105 }, + { 12, 0, 231 }, { 14, 0, 386 }, { 15, 0, 102 }, { 148, 0, 75 }, + { 133, 10, 1009 }, { 8, 0, 877 }, { 140, 0, 731 }, { 139, 11, 289 }, + { 10, 11, 249 }, { 139, 11, 209 }, { 132, 11, 561 }, { 134, 0, 1608 }, + { 132, 11, 760 }, { 134, 0, 1429 }, { 9, 11, 154 }, { 140, 11, 485 }, + { 5, 10, 228 }, { 6, 10, 203 }, { 7, 10, 156 }, { 8, 10, 347 }, + { 137, 10, 265 }, { 7, 0, 1010 }, { 11, 0, 733 }, { 11, 0, 759 }, + { 13, 0, 34 }, { 14, 0, 427 }, { 146, 0, 45 }, { 7, 10, 1131 }, + { 135, 10, 1468 }, { 136, 11, 255 }, { 7, 0, 1656 }, { 9, 0, 369 }, + { 10, 0, 338 }, { 10, 0, 490 }, { 11, 0, 154 }, { 11, 0, 545 }, + { 11, 0, 775 }, { 13, 0, 77 }, { 141, 0, 274 }, { 133, 11, 621 }, + { 134, 0, 1038 }, { 4, 11, 368 }, { 135, 11, 641 }, { 6, 0, 2010 }, + { 8, 0, 979 }, { 8, 0, 985 }, { 10, 0, 951 }, { 138, 0, 1011 }, + { 134, 0, 1005 }, { 19, 0, 121 }, { 5, 10, 291 }, { 5, 10, 318 }, + { 7, 10, 765 }, { 9, 10, 389 }, { 140, 10, 548 }, { 5, 0, 20 }, + { 6, 0, 298 }, { 7, 0, 659 }, { 137, 0, 219 }, { 7, 0, 1440 }, + { 11, 0, 854 }, { 11, 0, 872 }, { 11, 0, 921 }, { 12, 0, 551 }, + { 13, 0, 472 }, { 142, 0, 367 }, { 5, 0, 490 }, { 6, 0, 615 }, + { 6, 0, 620 }, { 135, 0, 683 }, { 6, 0, 1070 }, { 134, 0, 1597 }, + { 139, 0, 522 }, { 132, 0, 439 }, { 136, 0, 669 }, { 6, 0, 766 }, + { 6, 0, 1143 }, { 6, 0, 1245 }, { 10, 10, 525 }, { 139, 10, 82 }, + { 9, 11, 92 }, { 147, 11, 91 }, { 6, 0, 668 }, { 134, 0, 1218 }, + { 6, 11, 525 }, { 9, 11, 876 }, { 140, 11, 284 }, { 132, 0, 233 }, + { 136, 0, 547 }, { 132, 10, 422 }, { 5, 10, 355 }, { 145, 10, 0 }, + { 6, 11, 300 }, { 135, 11, 1515 }, { 4, 0, 482 }, { 137, 10, 905 }, + { 4, 0, 886 }, { 7, 0, 346 }, { 133, 11, 594 }, { 133, 10, 865 }, + { 5, 10, 914 }, { 134, 10, 1625 }, { 135, 0, 334 }, { 5, 0, 795 }, + { 6, 0, 1741 }, { 133, 10, 234 }, { 135, 10, 1383 }, { 6, 11, 1641 }, + { 136, 11, 820 }, { 135, 0, 371 }, { 7, 11, 1313 }, { 138, 11, 660 }, + { 135, 10, 1312 }, { 135, 0, 622 }, { 7, 0, 625 }, { 135, 0, 1750 }, + { 135, 0, 339 }, { 4, 0, 203 }, { 135, 0, 1936 }, { 15, 0, 29 }, + { 16, 0, 38 }, { 15, 11, 29 }, { 144, 11, 38 }, { 5, 0, 338 }, + { 135, 0, 1256 }, { 135, 10, 1493 }, { 10, 0, 130 }, { 6, 10, 421 }, + { 7, 10, 61 }, { 7, 10, 1540 }, { 138, 10, 501 }, { 6, 11, 389 }, + { 7, 11, 149 }, { 9, 11, 142 }, { 138, 11, 94 }, { 137, 10, 341 }, + { 11, 0, 678 }, { 12, 0, 307 }, { 142, 10, 98 }, { 6, 11, 8 }, + { 7, 11, 1881 }, { 136, 11, 91 }, { 135, 0, 2044 }, { 6, 0, 770 }, + { 6, 0, 802 }, { 6, 0, 812 }, { 7, 0, 311 }, { 9, 0, 308 }, + { 12, 0, 255 }, { 6, 10, 102 }, { 7, 10, 72 }, { 15, 10, 142 }, + { 147, 10, 67 }, { 151, 10, 30 }, { 135, 10, 823 }, { 135, 0, 1266 }, + { 135, 11, 1746 }, { 135, 10, 1870 }, { 4, 0, 400 }, { 5, 0, 267 }, + { 135, 0, 232 }, { 7, 11, 24 }, { 11, 11, 542 }, { 139, 11, 852 }, + { 135, 11, 1739 }, { 4, 11, 503 }, { 135, 11, 1661 }, { 5, 11, 130 }, + { 7, 11, 1314 }, { 9, 11, 610 }, { 10, 11, 718 }, { 11, 11, 601 }, + { 11, 11, 819 }, { 11, 11, 946 }, { 140, 11, 536 }, { 10, 11, 149 }, + { 11, 11, 280 }, { 142, 11, 336 }, { 7, 0, 739 }, { 11, 0, 690 }, + { 7, 11, 1946 }, { 8, 10, 48 }, { 8, 10, 88 }, { 8, 10, 582 }, + { 8, 10, 681 }, { 9, 10, 373 }, { 9, 10, 864 }, { 11, 10, 157 }, + { 11, 10, 843 }, { 148, 10, 27 }, { 134, 0, 990 }, { 4, 10, 88 }, + { 5, 10, 137 }, { 5, 10, 174 }, { 5, 10, 777 }, { 6, 10, 1664 }, + { 6, 10, 1725 }, { 7, 10, 77 }, { 7, 10, 426 }, { 7, 10, 1317 }, + { 7, 10, 1355 }, { 8, 10, 126 }, { 8, 10, 563 }, { 9, 10, 523 }, + { 9, 10, 750 }, { 10, 10, 310 }, { 10, 10, 836 }, { 11, 10, 42 }, + { 11, 10, 318 }, { 11, 10, 731 }, { 12, 10, 68 }, { 12, 10, 92 }, + { 12, 10, 507 }, { 12, 10, 692 }, { 13, 10, 81 }, { 13, 10, 238 }, + { 13, 10, 374 }, { 14, 10, 436 }, { 18, 10, 138 }, { 19, 10, 78 }, + { 19, 10, 111 }, { 20, 10, 55 }, { 20, 10, 77 }, { 148, 10, 92 }, + { 141, 10, 418 }, { 7, 0, 1831 }, { 132, 10, 938 }, { 6, 0, 776 }, + { 134, 0, 915 }, { 138, 10, 351 }, { 5, 11, 348 }, { 6, 11, 522 }, + { 6, 10, 1668 }, { 7, 10, 1499 }, { 8, 10, 117 }, { 9, 10, 314 }, + { 138, 10, 174 }, { 135, 10, 707 }, { 132, 0, 613 }, { 133, 10, 403 }, + { 132, 11, 392 }, { 5, 11, 433 }, { 9, 11, 633 }, { 139, 11, 629 }, + { 133, 0, 763 }, { 132, 0, 878 }, { 132, 0, 977 }, { 132, 0, 100 }, + { 6, 0, 463 }, { 4, 10, 44 }, { 5, 10, 311 }, { 7, 10, 639 }, + { 7, 10, 762 }, { 7, 10, 1827 }, { 9, 10, 8 }, { 9, 10, 462 }, + { 148, 10, 83 }, { 134, 11, 234 }, { 4, 10, 346 }, { 7, 10, 115 }, + { 9, 10, 180 }, { 9, 10, 456 }, { 138, 10, 363 }, { 5, 0, 362 }, + { 5, 0, 443 }, { 6, 0, 318 }, { 7, 0, 1019 }, { 139, 0, 623 }, + { 5, 0, 463 }, { 8, 0, 296 }, { 7, 11, 140 }, { 7, 11, 1950 }, + { 8, 11, 680 }, { 11, 11, 817 }, { 147, 11, 88 }, { 7, 11, 1222 }, + { 138, 11, 386 }, { 142, 0, 137 }, { 132, 0, 454 }, { 7, 0, 1914 }, + { 6, 11, 5 }, { 7, 10, 1051 }, { 9, 10, 545 }, { 11, 11, 249 }, + { 12, 11, 313 }, { 16, 11, 66 }, { 145, 11, 26 }, { 135, 0, 1527 }, + { 145, 0, 58 }, { 148, 11, 59 }, { 5, 0, 48 }, { 5, 0, 404 }, + { 6, 0, 557 }, { 7, 0, 458 }, { 8, 0, 597 }, { 10, 0, 455 }, + { 10, 0, 606 }, { 11, 0, 49 }, { 11, 0, 548 }, { 12, 0, 476 }, + { 13, 0, 18 }, { 141, 0, 450 }, { 5, 11, 963 }, { 134, 11, 1773 }, + { 133, 0, 729 }, { 138, 11, 586 }, { 5, 0, 442 }, { 135, 0, 1984 }, + { 134, 0, 449 }, { 144, 0, 40 }, { 4, 0, 853 }, { 7, 11, 180 }, + { 8, 11, 509 }, { 136, 11, 792 }, { 6, 10, 185 }, { 7, 10, 1899 }, + { 9, 10, 875 }, { 139, 10, 673 }, { 134, 11, 524 }, { 12, 0, 227 }, + { 4, 10, 327 }, { 5, 10, 478 }, { 7, 10, 1332 }, { 136, 10, 753 }, + { 6, 0, 1491 }, { 5, 10, 1020 }, { 133, 10, 1022 }, { 4, 10, 103 }, + { 133, 10, 401 }, { 132, 11, 931 }, { 4, 10, 499 }, { 135, 10, 1421 }, + { 5, 0, 55 }, { 7, 0, 376 }, { 140, 0, 161 }, { 133, 0, 450 }, + { 6, 0, 1174 }, { 134, 0, 1562 }, { 10, 0, 62 }, { 13, 0, 400 }, + { 135, 11, 1837 }, { 140, 0, 207 }, { 135, 0, 869 }, { 4, 11, 773 }, + { 5, 11, 618 }, { 137, 11, 756 }, { 132, 10, 96 }, { 4, 0, 213 }, + { 7, 0, 223 }, { 8, 0, 80 }, { 135, 10, 968 }, { 4, 11, 90 }, + { 5, 11, 337 }, { 5, 11, 545 }, { 7, 11, 754 }, { 9, 11, 186 }, + { 10, 11, 72 }, { 10, 11, 782 }, { 11, 11, 513 }, { 11, 11, 577 }, + { 11, 11, 610 }, { 11, 11, 889 }, { 11, 11, 961 }, { 12, 11, 354 }, + { 12, 11, 362 }, { 12, 11, 461 }, { 12, 11, 595 }, { 13, 11, 79 }, + { 143, 11, 121 }, { 7, 0, 381 }, { 7, 0, 806 }, { 7, 0, 820 }, + { 8, 0, 354 }, { 8, 0, 437 }, { 8, 0, 787 }, { 9, 0, 657 }, + { 10, 0, 58 }, { 10, 0, 339 }, { 10, 0, 749 }, { 11, 0, 914 }, + { 12, 0, 162 }, { 13, 0, 75 }, { 14, 0, 106 }, { 14, 0, 198 }, + { 14, 0, 320 }, { 14, 0, 413 }, { 146, 0, 43 }, { 136, 0, 747 }, + { 136, 0, 954 }, { 134, 0, 1073 }, { 135, 0, 556 }, { 7, 11, 151 }, + { 9, 11, 329 }, { 139, 11, 254 }, { 5, 0, 692 }, { 134, 0, 1395 }, + { 6, 10, 563 }, { 137, 10, 224 }, { 134, 0, 191 }, { 132, 0, 804 }, + { 9, 11, 187 }, { 10, 11, 36 }, { 17, 11, 44 }, { 146, 11, 64 }, + { 7, 11, 165 }, { 7, 11, 919 }, { 136, 11, 517 }, { 4, 11, 506 }, + { 5, 11, 295 }, { 7, 11, 1680 }, { 15, 11, 14 }, { 144, 11, 5 }, + { 4, 0, 706 }, { 6, 0, 162 }, { 7, 0, 1960 }, { 136, 0, 831 }, + { 135, 11, 1376 }, { 7, 11, 987 }, { 9, 11, 688 }, { 10, 11, 522 }, + { 11, 11, 788 }, { 140, 11, 566 }, { 150, 0, 35 }, { 138, 0, 426 }, + { 135, 0, 1235 }, { 135, 11, 1741 }, { 7, 11, 389 }, { 7, 11, 700 }, + { 7, 11, 940 }, { 8, 11, 514 }, { 9, 11, 116 }, { 9, 11, 535 }, + { 10, 11, 118 }, { 11, 11, 107 }, { 11, 11, 148 }, { 11, 11, 922 }, + { 12, 11, 254 }, { 12, 11, 421 }, { 142, 11, 238 }, { 134, 0, 1234 }, + { 132, 11, 743 }, { 4, 10, 910 }, { 5, 10, 832 }, { 135, 11, 1335 }, + { 141, 0, 96 }, { 135, 11, 185 }, { 146, 0, 149 }, { 4, 0, 204 }, + { 137, 0, 902 }, { 4, 11, 784 }, { 133, 11, 745 }, { 136, 0, 833 }, + { 136, 0, 949 }, { 7, 0, 366 }, { 9, 0, 287 }, { 12, 0, 199 }, + { 12, 0, 556 }, { 12, 0, 577 }, { 5, 11, 81 }, { 7, 11, 146 }, + { 7, 11, 1342 }, { 7, 11, 1446 }, { 8, 11, 53 }, { 8, 11, 561 }, + { 8, 11, 694 }, { 8, 11, 754 }, { 9, 11, 97 }, { 9, 11, 115 }, + { 9, 11, 894 }, { 10, 11, 462 }, { 10, 11, 813 }, { 11, 11, 230 }, + { 11, 11, 657 }, { 11, 11, 699 }, { 11, 11, 748 }, { 12, 11, 119 }, + { 12, 11, 200 }, { 12, 11, 283 }, { 14, 11, 273 }, { 145, 11, 15 }, + { 5, 11, 408 }, { 137, 11, 747 }, { 9, 11, 498 }, { 140, 11, 181 }, + { 6, 0, 2020 }, { 136, 0, 992 }, { 5, 0, 356 }, { 135, 0, 224 }, + { 134, 0, 784 }, { 7, 0, 630 }, { 9, 0, 567 }, { 11, 0, 150 }, + { 11, 0, 444 }, { 13, 0, 119 }, { 8, 10, 528 }, { 137, 10, 348 }, + { 134, 0, 539 }, { 4, 10, 20 }, { 133, 10, 616 }, { 142, 0, 27 }, + { 7, 11, 30 }, { 8, 11, 86 }, { 8, 11, 315 }, { 8, 11, 700 }, + { 9, 11, 576 }, { 9, 11, 858 }, { 11, 11, 310 }, { 11, 11, 888 }, + { 11, 11, 904 }, { 12, 11, 361 }, { 141, 11, 248 }, { 138, 11, 839 }, + { 134, 0, 755 }, { 134, 0, 1063 }, { 7, 10, 1091 }, { 135, 10, 1765 }, + { 134, 11, 428 }, { 7, 11, 524 }, { 8, 11, 169 }, { 8, 11, 234 }, + { 9, 11, 480 }, { 138, 11, 646 }, { 139, 0, 814 }, { 7, 11, 1462 }, + { 139, 11, 659 }, { 4, 10, 26 }, { 5, 10, 429 }, { 6, 10, 245 }, + { 7, 10, 704 }, { 7, 10, 1379 }, { 135, 10, 1474 }, { 7, 11, 1205 }, + { 138, 11, 637 }, { 139, 11, 803 }, { 132, 10, 621 }, { 136, 0, 987 }, + { 4, 11, 266 }, { 8, 11, 4 }, { 9, 11, 39 }, { 10, 11, 166 }, + { 11, 11, 918 }, { 12, 11, 635 }, { 20, 11, 10 }, { 22, 11, 27 }, + { 150, 11, 43 }, { 4, 0, 235 }, { 135, 0, 255 }, { 4, 0, 194 }, + { 5, 0, 584 }, { 6, 0, 384 }, { 7, 0, 583 }, { 10, 0, 761 }, + { 11, 0, 760 }, { 139, 0, 851 }, { 133, 10, 542 }, { 134, 0, 1086 }, + { 133, 10, 868 }, { 8, 0, 1016 }, { 136, 0, 1018 }, { 7, 0, 1396 }, + { 7, 11, 1396 }, { 136, 10, 433 }, { 135, 10, 1495 }, { 138, 10, 215 }, + { 141, 10, 124 }, { 7, 11, 157 }, { 8, 11, 279 }, { 9, 11, 759 }, + { 16, 11, 31 }, { 16, 11, 39 }, { 16, 11, 75 }, { 18, 11, 24 }, + { 20, 11, 42 }, { 152, 11, 1 }, { 5, 0, 562 }, { 134, 11, 604 }, + { 134, 0, 913 }, { 5, 0, 191 }, { 137, 0, 271 }, { 4, 0, 470 }, + { 6, 0, 153 }, { 7, 0, 1503 }, { 7, 0, 1923 }, { 10, 0, 701 }, + { 11, 0, 132 }, { 11, 0, 227 }, { 11, 0, 320 }, { 11, 0, 436 }, + { 11, 0, 525 }, { 11, 0, 855 }, { 11, 0, 873 }, { 12, 0, 41 }, + { 12, 0, 286 }, { 13, 0, 103 }, { 13, 0, 284 }, { 14, 0, 255 }, + { 14, 0, 262 }, { 15, 0, 117 }, { 143, 0, 127 }, { 7, 0, 475 }, + { 12, 0, 45 }, { 147, 10, 112 }, { 132, 11, 567 }, { 137, 11, 859 }, + { 6, 0, 713 }, { 6, 0, 969 }, { 6, 0, 1290 }, { 134, 0, 1551 }, + { 133, 0, 327 }, { 6, 0, 552 }, { 6, 0, 1292 }, { 7, 0, 1754 }, + { 137, 0, 604 }, { 4, 0, 223 }, { 6, 0, 359 }, { 11, 0, 3 }, + { 13, 0, 108 }, { 14, 0, 89 }, { 16, 0, 22 }, { 5, 11, 762 }, + { 7, 11, 1880 }, { 9, 11, 680 }, { 139, 11, 798 }, { 5, 0, 80 }, + { 6, 0, 405 }, { 7, 0, 403 }, { 7, 0, 1502 }, { 8, 0, 456 }, + { 9, 0, 487 }, { 9, 0, 853 }, { 9, 0, 889 }, { 10, 0, 309 }, + { 11, 0, 721 }, { 11, 0, 994 }, { 12, 0, 430 }, { 141, 0, 165 }, + { 133, 11, 298 }, { 132, 10, 647 }, { 134, 0, 2016 }, { 18, 10, 10 }, + { 146, 11, 10 }, { 4, 0, 453 }, { 5, 0, 887 }, { 6, 0, 535 }, + { 8, 0, 6 }, { 8, 0, 543 }, { 136, 0, 826 }, { 136, 0, 975 }, + { 10, 0, 961 }, { 138, 0, 962 }, { 138, 10, 220 }, { 6, 0, 1891 }, + { 6, 0, 1893 }, { 9, 0, 916 }, { 9, 0, 965 }, { 9, 0, 972 }, + { 12, 0, 801 }, { 12, 0, 859 }, { 12, 0, 883 }, { 15, 0, 226 }, + { 149, 0, 51 }, { 132, 10, 109 }, { 135, 11, 267 }, { 7, 11, 92 }, + { 7, 11, 182 }, { 8, 11, 453 }, { 9, 11, 204 }, { 11, 11, 950 }, + { 12, 11, 94 }, { 12, 11, 644 }, { 16, 11, 20 }, { 16, 11, 70 }, + { 16, 11, 90 }, { 147, 11, 55 }, { 134, 10, 1746 }, { 6, 11, 71 }, + { 7, 11, 845 }, { 7, 11, 1308 }, { 8, 11, 160 }, { 137, 11, 318 }, + { 5, 0, 101 }, { 6, 0, 88 }, { 7, 0, 263 }, { 7, 0, 628 }, + { 7, 0, 1677 }, { 8, 0, 349 }, { 9, 0, 100 }, { 10, 0, 677 }, + { 14, 0, 169 }, { 14, 0, 302 }, { 14, 0, 313 }, { 15, 0, 48 }, + { 15, 0, 84 }, { 7, 11, 237 }, { 8, 11, 664 }, { 9, 11, 42 }, + { 9, 11, 266 }, { 9, 11, 380 }, { 9, 11, 645 }, { 10, 11, 177 }, + { 138, 11, 276 }, { 138, 11, 69 }, { 4, 0, 310 }, { 7, 0, 708 }, + { 7, 0, 996 }, { 9, 0, 795 }, { 10, 0, 390 }, { 10, 0, 733 }, + { 11, 0, 451 }, { 12, 0, 249 }, { 14, 0, 115 }, { 14, 0, 286 }, + { 143, 0, 100 }, { 5, 0, 587 }, { 4, 10, 40 }, { 10, 10, 67 }, + { 11, 10, 117 }, { 11, 10, 768 }, { 139, 10, 935 }, { 6, 0, 1942 }, + { 7, 0, 512 }, { 136, 0, 983 }, { 7, 10, 992 }, { 8, 10, 301 }, + { 9, 10, 722 }, { 12, 10, 63 }, { 13, 10, 29 }, { 14, 10, 161 }, + { 143, 10, 18 }, { 136, 11, 76 }, { 139, 10, 923 }, { 134, 0, 645 }, + { 134, 0, 851 }, { 4, 0, 498 }, { 132, 11, 293 }, { 7, 0, 217 }, + { 8, 0, 140 }, { 10, 0, 610 }, { 14, 11, 352 }, { 17, 11, 53 }, + { 18, 11, 146 }, { 18, 11, 152 }, { 19, 11, 11 }, { 150, 11, 54 }, + { 134, 0, 1448 }, { 138, 11, 841 }, { 133, 0, 905 }, { 4, 11, 605 }, + { 7, 11, 518 }, { 7, 11, 1282 }, { 7, 11, 1918 }, { 10, 11, 180 }, + { 139, 11, 218 }, { 139, 11, 917 }, { 135, 10, 825 }, { 140, 10, 328 }, + { 4, 0, 456 }, { 7, 0, 105 }, { 7, 0, 358 }, { 7, 0, 1637 }, + { 8, 0, 643 }, { 139, 0, 483 }, { 134, 0, 792 }, { 6, 11, 96 }, + { 135, 11, 1426 }, { 137, 11, 691 }, { 4, 11, 651 }, { 133, 11, 289 }, + { 7, 11, 688 }, { 8, 11, 35 }, { 9, 11, 511 }, { 10, 11, 767 }, + { 147, 11, 118 }, { 150, 0, 56 }, { 5, 0, 243 }, { 5, 0, 535 }, + { 6, 10, 204 }, { 10, 10, 320 }, { 10, 10, 583 }, { 13, 10, 502 }, + { 14, 10, 72 }, { 14, 10, 274 }, { 14, 10, 312 }, { 14, 10, 344 }, + { 15, 10, 159 }, { 16, 10, 62 }, { 16, 10, 69 }, { 17, 10, 30 }, + { 18, 10, 42 }, { 18, 10, 53 }, { 18, 10, 84 }, { 18, 10, 140 }, + { 19, 10, 68 }, { 19, 10, 85 }, { 20, 10, 5 }, { 20, 10, 45 }, + { 20, 10, 101 }, { 22, 10, 7 }, { 150, 10, 20 }, { 4, 10, 558 }, + { 6, 10, 390 }, { 7, 10, 162 }, { 7, 10, 689 }, { 9, 10, 360 }, + { 138, 10, 653 }, { 146, 11, 23 }, { 135, 0, 1748 }, { 5, 10, 856 }, + { 6, 10, 1672 }, { 6, 10, 1757 }, { 134, 10, 1781 }, { 5, 0, 539 }, + { 5, 0, 754 }, { 6, 0, 876 }, { 132, 11, 704 }, { 135, 11, 1078 }, + { 5, 10, 92 }, { 10, 10, 736 }, { 140, 10, 102 }, { 17, 0, 91 }, + { 5, 10, 590 }, { 137, 10, 213 }, { 134, 0, 1565 }, { 6, 0, 91 }, + { 135, 0, 435 }, { 4, 0, 939 }, { 140, 0, 792 }, { 134, 0, 1399 }, + { 4, 0, 16 }, { 5, 0, 316 }, { 5, 0, 842 }, { 6, 0, 370 }, + { 6, 0, 1778 }, { 8, 0, 166 }, { 11, 0, 812 }, { 12, 0, 206 }, + { 12, 0, 351 }, { 14, 0, 418 }, { 16, 0, 15 }, { 16, 0, 34 }, + { 18, 0, 3 }, { 19, 0, 3 }, { 19, 0, 7 }, { 20, 0, 4 }, + { 21, 0, 21 }, { 4, 11, 720 }, { 133, 11, 306 }, { 144, 0, 95 }, + { 133, 11, 431 }, { 132, 11, 234 }, { 135, 0, 551 }, { 4, 0, 999 }, + { 6, 0, 1966 }, { 134, 0, 2042 }, { 7, 0, 619 }, { 10, 0, 547 }, + { 11, 0, 122 }, { 12, 0, 601 }, { 15, 0, 7 }, { 148, 0, 20 }, + { 5, 11, 464 }, { 6, 11, 236 }, { 7, 11, 276 }, { 7, 11, 696 }, + { 7, 11, 914 }, { 7, 11, 1108 }, { 7, 11, 1448 }, { 9, 11, 15 }, + { 9, 11, 564 }, { 10, 11, 14 }, { 12, 11, 565 }, { 13, 11, 449 }, + { 14, 11, 53 }, { 15, 11, 13 }, { 16, 11, 64 }, { 145, 11, 41 }, + { 6, 0, 884 }, { 6, 0, 1019 }, { 134, 0, 1150 }, { 6, 11, 1767 }, + { 12, 11, 194 }, { 145, 11, 107 }, { 136, 10, 503 }, { 133, 11, 840 }, + { 7, 0, 671 }, { 134, 10, 466 }, { 132, 0, 888 }, { 4, 0, 149 }, + { 138, 0, 368 }, { 4, 0, 154 }, { 7, 0, 1134 }, { 136, 0, 105 }, + { 135, 0, 983 }, { 9, 11, 642 }, { 11, 11, 236 }, { 142, 11, 193 }, + { 4, 0, 31 }, { 6, 0, 429 }, { 7, 0, 962 }, { 9, 0, 458 }, + { 139, 0, 691 }, { 6, 0, 643 }, { 134, 0, 1102 }, { 132, 0, 312 }, + { 4, 11, 68 }, { 5, 11, 634 }, { 6, 11, 386 }, { 7, 11, 794 }, + { 8, 11, 273 }, { 9, 11, 563 }, { 10, 11, 105 }, { 10, 11, 171 }, + { 11, 11, 94 }, { 139, 11, 354 }, { 133, 0, 740 }, { 135, 0, 1642 }, + { 4, 11, 95 }, { 7, 11, 416 }, { 8, 11, 211 }, { 139, 11, 830 }, + { 132, 0, 236 }, { 138, 10, 241 }, { 7, 11, 731 }, { 13, 11, 20 }, + { 143, 11, 11 }, { 5, 0, 836 }, { 5, 0, 857 }, { 6, 0, 1680 }, + { 135, 0, 59 }, { 10, 0, 68 }, { 11, 0, 494 }, { 152, 11, 6 }, + { 4, 0, 81 }, { 139, 0, 867 }, { 135, 0, 795 }, { 133, 11, 689 }, + { 4, 0, 1001 }, { 5, 0, 282 }, { 6, 0, 1932 }, { 6, 0, 1977 }, + { 6, 0, 1987 }, { 6, 0, 1992 }, { 8, 0, 650 }, { 8, 0, 919 }, + { 8, 0, 920 }, { 8, 0, 923 }, { 8, 0, 926 }, { 8, 0, 927 }, + { 8, 0, 931 }, { 8, 0, 939 }, { 8, 0, 947 }, { 8, 0, 956 }, + { 8, 0, 997 }, { 9, 0, 907 }, { 10, 0, 950 }, { 10, 0, 953 }, + { 10, 0, 954 }, { 10, 0, 956 }, { 10, 0, 958 }, { 10, 0, 959 }, + { 10, 0, 964 }, { 10, 0, 970 }, { 10, 0, 972 }, { 10, 0, 973 }, + { 10, 0, 975 }, { 10, 0, 976 }, { 10, 0, 980 }, { 10, 0, 981 }, + { 10, 0, 984 }, { 10, 0, 988 }, { 10, 0, 990 }, { 10, 0, 995 }, + { 10, 0, 999 }, { 10, 0, 1002 }, { 10, 0, 1003 }, { 10, 0, 1005 }, + { 10, 0, 1006 }, { 10, 0, 1008 }, { 10, 0, 1009 }, { 10, 0, 1012 }, + { 10, 0, 1014 }, { 10, 0, 1015 }, { 10, 0, 1019 }, { 10, 0, 1020 }, + { 10, 0, 1022 }, { 12, 0, 959 }, { 12, 0, 961 }, { 12, 0, 962 }, + { 12, 0, 963 }, { 12, 0, 964 }, { 12, 0, 965 }, { 12, 0, 967 }, + { 12, 0, 968 }, { 12, 0, 969 }, { 12, 0, 970 }, { 12, 0, 971 }, + { 12, 0, 972 }, { 12, 0, 973 }, { 12, 0, 974 }, { 12, 0, 975 }, + { 12, 0, 976 }, { 12, 0, 977 }, { 12, 0, 979 }, { 12, 0, 981 }, + { 12, 0, 982 }, { 12, 0, 983 }, { 12, 0, 984 }, { 12, 0, 985 }, + { 12, 0, 986 }, { 12, 0, 987 }, { 12, 0, 989 }, { 12, 0, 990 }, + { 12, 0, 992 }, { 12, 0, 993 }, { 12, 0, 995 }, { 12, 0, 998 }, + { 12, 0, 999 }, { 12, 0, 1000 }, { 12, 0, 1001 }, { 12, 0, 1002 }, + { 12, 0, 1004 }, { 12, 0, 1005 }, { 12, 0, 1006 }, { 12, 0, 1007 }, + { 12, 0, 1008 }, { 12, 0, 1009 }, { 12, 0, 1010 }, { 12, 0, 1011 }, + { 12, 0, 1012 }, { 12, 0, 1014 }, { 12, 0, 1015 }, { 12, 0, 1016 }, + { 12, 0, 1017 }, { 12, 0, 1018 }, { 12, 0, 1019 }, { 12, 0, 1022 }, + { 12, 0, 1023 }, { 14, 0, 475 }, { 14, 0, 477 }, { 14, 0, 478 }, + { 14, 0, 479 }, { 14, 0, 480 }, { 14, 0, 482 }, { 14, 0, 483 }, + { 14, 0, 484 }, { 14, 0, 485 }, { 14, 0, 486 }, { 14, 0, 487 }, + { 14, 0, 488 }, { 14, 0, 489 }, { 14, 0, 490 }, { 14, 0, 491 }, + { 14, 0, 492 }, { 14, 0, 493 }, { 14, 0, 494 }, { 14, 0, 495 }, + { 14, 0, 496 }, { 14, 0, 497 }, { 14, 0, 498 }, { 14, 0, 499 }, + { 14, 0, 500 }, { 14, 0, 501 }, { 14, 0, 502 }, { 14, 0, 503 }, + { 14, 0, 504 }, { 14, 0, 506 }, { 14, 0, 507 }, { 14, 0, 508 }, + { 14, 0, 509 }, { 14, 0, 510 }, { 14, 0, 511 }, { 16, 0, 113 }, + { 16, 0, 114 }, { 16, 0, 115 }, { 16, 0, 117 }, { 16, 0, 118 }, + { 16, 0, 119 }, { 16, 0, 121 }, { 16, 0, 122 }, { 16, 0, 123 }, + { 16, 0, 124 }, { 16, 0, 125 }, { 16, 0, 126 }, { 16, 0, 127 }, + { 18, 0, 242 }, { 18, 0, 243 }, { 18, 0, 244 }, { 18, 0, 245 }, + { 18, 0, 248 }, { 18, 0, 249 }, { 18, 0, 250 }, { 18, 0, 251 }, + { 18, 0, 252 }, { 18, 0, 253 }, { 18, 0, 254 }, { 18, 0, 255 }, + { 20, 0, 125 }, { 20, 0, 126 }, { 148, 0, 127 }, { 7, 11, 1717 }, + { 7, 11, 1769 }, { 138, 11, 546 }, { 7, 11, 1127 }, { 7, 11, 1572 }, + { 10, 11, 297 }, { 10, 11, 422 }, { 11, 11, 764 }, { 11, 11, 810 }, + { 12, 11, 264 }, { 13, 11, 102 }, { 13, 11, 300 }, { 13, 11, 484 }, + { 14, 11, 147 }, { 14, 11, 229 }, { 17, 11, 71 }, { 18, 11, 118 }, + { 147, 11, 120 }, { 6, 0, 1148 }, { 134, 0, 1586 }, { 132, 0, 775 }, + { 135, 10, 954 }, { 133, 11, 864 }, { 133, 11, 928 }, { 138, 11, 189 }, + { 135, 10, 1958 }, { 6, 10, 549 }, { 8, 10, 34 }, { 8, 10, 283 }, + { 9, 10, 165 }, { 138, 10, 475 }, { 5, 10, 652 }, { 5, 10, 701 }, + { 135, 10, 449 }, { 135, 11, 695 }, { 4, 10, 655 }, { 7, 10, 850 }, + { 17, 10, 75 }, { 146, 10, 137 }, { 140, 11, 682 }, { 133, 11, 523 }, + { 8, 0, 970 }, { 136, 10, 670 }, { 136, 11, 555 }, { 7, 11, 76 }, + { 8, 11, 44 }, { 9, 11, 884 }, { 10, 11, 580 }, { 11, 11, 399 }, + { 11, 11, 894 }, { 15, 11, 122 }, { 18, 11, 144 }, { 147, 11, 61 }, + { 6, 10, 159 }, { 6, 10, 364 }, { 7, 10, 516 }, { 7, 10, 1439 }, + { 137, 10, 518 }, { 4, 0, 71 }, { 5, 0, 376 }, { 7, 0, 119 }, + { 138, 0, 665 }, { 141, 10, 151 }, { 11, 0, 827 }, { 14, 0, 34 }, + { 143, 0, 148 }, { 133, 11, 518 }, { 4, 0, 479 }, { 135, 11, 1787 }, + { 135, 11, 1852 }, { 135, 10, 993 }, { 7, 0, 607 }, { 136, 0, 99 }, + { 134, 0, 1960 }, { 132, 0, 793 }, { 4, 0, 41 }, { 5, 0, 74 }, + { 7, 0, 1627 }, { 11, 0, 871 }, { 140, 0, 619 }, { 7, 0, 94 }, + { 11, 0, 329 }, { 11, 0, 965 }, { 12, 0, 241 }, { 14, 0, 354 }, + { 15, 0, 22 }, { 148, 0, 63 }, { 7, 10, 501 }, { 9, 10, 111 }, + { 10, 10, 141 }, { 11, 10, 332 }, { 13, 10, 43 }, { 13, 10, 429 }, + { 14, 10, 130 }, { 14, 10, 415 }, { 145, 10, 102 }, { 9, 0, 209 }, + { 137, 0, 300 }, { 134, 0, 1497 }, { 138, 11, 255 }, { 4, 11, 934 }, + { 5, 11, 138 }, { 136, 11, 610 }, { 133, 0, 98 }, { 6, 0, 1316 }, + { 10, 11, 804 }, { 138, 11, 832 }, { 8, 11, 96 }, { 9, 11, 36 }, + { 10, 11, 607 }, { 11, 11, 423 }, { 11, 11, 442 }, { 12, 11, 309 }, + { 14, 11, 199 }, { 15, 11, 90 }, { 145, 11, 110 }, { 132, 0, 463 }, + { 5, 10, 149 }, { 136, 10, 233 }, { 133, 10, 935 }, { 4, 11, 652 }, + { 8, 11, 320 }, { 9, 11, 13 }, { 9, 11, 398 }, { 9, 11, 727 }, + { 10, 11, 75 }, { 10, 11, 184 }, { 10, 11, 230 }, { 10, 11, 564 }, + { 10, 11, 569 }, { 11, 11, 973 }, { 12, 11, 70 }, { 12, 11, 189 }, + { 13, 11, 57 }, { 13, 11, 257 }, { 22, 11, 6 }, { 150, 11, 16 }, + { 142, 0, 291 }, { 12, 10, 582 }, { 146, 10, 131 }, { 136, 10, 801 }, + { 133, 0, 984 }, { 145, 11, 116 }, { 4, 11, 692 }, { 133, 11, 321 }, + { 4, 0, 182 }, { 6, 0, 205 }, { 135, 0, 220 }, { 4, 0, 42 }, + { 9, 0, 205 }, { 9, 0, 786 }, { 138, 0, 659 }, { 6, 0, 801 }, + { 11, 11, 130 }, { 140, 11, 609 }, { 132, 0, 635 }, { 5, 11, 345 }, + { 135, 11, 1016 }, { 139, 0, 533 }, { 132, 0, 371 }, { 4, 0, 272 }, + { 135, 0, 836 }, { 6, 0, 1282 }, { 135, 11, 1100 }, { 5, 0, 825 }, + { 134, 0, 1640 }, { 135, 11, 1325 }, { 133, 11, 673 }, { 4, 11, 287 }, + { 133, 11, 1018 }, { 135, 0, 357 }, { 6, 0, 467 }, { 137, 0, 879 }, + { 7, 0, 317 }, { 135, 0, 569 }, { 6, 0, 924 }, { 134, 0, 1588 }, + { 5, 11, 34 }, { 5, 10, 406 }, { 10, 11, 724 }, { 12, 11, 444 }, + { 13, 11, 354 }, { 18, 11, 32 }, { 23, 11, 24 }, { 23, 11, 31 }, + { 152, 11, 5 }, { 6, 0, 1795 }, { 6, 0, 1835 }, { 6, 0, 1836 }, + { 6, 0, 1856 }, { 8, 0, 844 }, { 8, 0, 849 }, { 8, 0, 854 }, + { 8, 0, 870 }, { 8, 0, 887 }, { 10, 0, 852 }, { 138, 0, 942 }, + { 6, 10, 69 }, { 135, 10, 117 }, { 137, 0, 307 }, { 4, 0, 944 }, + { 6, 0, 1799 }, { 6, 0, 1825 }, { 10, 0, 848 }, { 10, 0, 875 }, + { 10, 0, 895 }, { 10, 0, 899 }, { 10, 0, 902 }, { 140, 0, 773 }, + { 11, 0, 43 }, { 13, 0, 72 }, { 141, 0, 142 }, { 135, 10, 1830 }, + { 134, 11, 382 }, { 4, 10, 432 }, { 135, 10, 824 }, { 132, 11, 329 }, + { 7, 0, 1820 }, { 139, 11, 124 }, { 133, 10, 826 }, { 133, 0, 525 }, + { 132, 11, 906 }, { 7, 11, 1940 }, { 136, 11, 366 }, { 138, 11, 10 }, + { 4, 11, 123 }, { 4, 11, 649 }, { 5, 11, 605 }, { 7, 11, 1509 }, + { 136, 11, 36 }, { 6, 0, 110 }, { 135, 0, 1681 }, { 133, 0, 493 }, + { 133, 11, 767 }, { 4, 0, 174 }, { 135, 0, 911 }, { 138, 11, 786 }, + { 8, 0, 417 }, { 137, 0, 782 }, { 133, 10, 1000 }, { 7, 0, 733 }, + { 137, 0, 583 }, { 4, 10, 297 }, { 6, 10, 529 }, { 7, 10, 152 }, + { 7, 10, 713 }, { 7, 10, 1845 }, { 8, 10, 710 }, { 8, 10, 717 }, + { 12, 10, 639 }, { 140, 10, 685 }, { 4, 0, 32 }, { 5, 0, 215 }, + { 6, 0, 269 }, { 7, 0, 1782 }, { 7, 0, 1892 }, { 10, 0, 16 }, + { 11, 0, 822 }, { 11, 0, 954 }, { 141, 0, 481 }, { 4, 11, 273 }, + { 5, 11, 658 }, { 133, 11, 995 }, { 136, 0, 477 }, { 134, 11, 72 }, + { 135, 11, 1345 }, { 5, 0, 308 }, { 7, 0, 1088 }, { 4, 10, 520 }, + { 135, 10, 575 }, { 133, 11, 589 }, { 5, 0, 126 }, { 8, 0, 297 }, + { 9, 0, 366 }, { 140, 0, 374 }, { 7, 0, 1551 }, { 139, 0, 361 }, + { 5, 11, 117 }, { 6, 11, 514 }, { 6, 11, 541 }, { 7, 11, 1164 }, + { 7, 11, 1436 }, { 8, 11, 220 }, { 8, 11, 648 }, { 10, 11, 688 }, + { 139, 11, 560 }, { 133, 11, 686 }, { 4, 0, 946 }, { 6, 0, 1807 }, + { 8, 0, 871 }, { 10, 0, 854 }, { 10, 0, 870 }, { 10, 0, 888 }, + { 10, 0, 897 }, { 10, 0, 920 }, { 12, 0, 722 }, { 12, 0, 761 }, + { 12, 0, 763 }, { 12, 0, 764 }, { 14, 0, 454 }, { 14, 0, 465 }, + { 16, 0, 107 }, { 18, 0, 167 }, { 18, 0, 168 }, { 146, 0, 172 }, + { 132, 0, 175 }, { 135, 0, 1307 }, { 132, 0, 685 }, { 135, 11, 1834 }, + { 133, 0, 797 }, { 6, 0, 745 }, { 6, 0, 858 }, { 134, 0, 963 }, + { 133, 0, 565 }, { 5, 10, 397 }, { 6, 10, 154 }, { 7, 11, 196 }, + { 7, 10, 676 }, { 8, 10, 443 }, { 8, 10, 609 }, { 9, 10, 24 }, + { 9, 10, 325 }, { 10, 10, 35 }, { 10, 11, 765 }, { 11, 11, 347 }, + { 11, 10, 535 }, { 11, 11, 552 }, { 11, 11, 576 }, { 11, 10, 672 }, + { 11, 11, 790 }, { 11, 10, 1018 }, { 12, 11, 263 }, { 12, 10, 637 }, + { 13, 11, 246 }, { 13, 11, 270 }, { 13, 11, 395 }, { 14, 11, 74 }, + { 14, 11, 176 }, { 14, 11, 190 }, { 14, 11, 398 }, { 14, 11, 412 }, + { 15, 11, 32 }, { 15, 11, 63 }, { 16, 10, 30 }, { 16, 11, 88 }, + { 147, 11, 105 }, { 13, 11, 84 }, { 141, 11, 122 }, { 4, 0, 252 }, + { 7, 0, 1068 }, { 10, 0, 434 }, { 11, 0, 228 }, { 11, 0, 426 }, + { 13, 0, 231 }, { 18, 0, 106 }, { 148, 0, 87 }, { 137, 0, 826 }, + { 4, 11, 589 }, { 139, 11, 282 }, { 5, 11, 381 }, { 135, 11, 1792 }, + { 132, 0, 791 }, { 5, 0, 231 }, { 10, 0, 509 }, { 133, 10, 981 }, + { 7, 0, 601 }, { 9, 0, 277 }, { 9, 0, 674 }, { 10, 0, 178 }, + { 10, 0, 418 }, { 10, 0, 571 }, { 11, 0, 531 }, { 12, 0, 113 }, + { 12, 0, 475 }, { 13, 0, 99 }, { 142, 0, 428 }, { 4, 10, 56 }, + { 7, 11, 616 }, { 7, 10, 1791 }, { 8, 10, 607 }, { 8, 10, 651 }, + { 10, 11, 413 }, { 11, 10, 465 }, { 11, 10, 835 }, { 12, 10, 337 }, + { 141, 10, 480 }, { 7, 0, 1591 }, { 144, 0, 43 }, { 9, 10, 158 }, + { 138, 10, 411 }, { 135, 0, 1683 }, { 8, 0, 289 }, { 11, 0, 45 }, + { 12, 0, 278 }, { 140, 0, 537 }, { 6, 11, 120 }, { 7, 11, 1188 }, + { 7, 11, 1710 }, { 8, 11, 286 }, { 9, 11, 667 }, { 11, 11, 592 }, + { 139, 11, 730 }, { 136, 10, 617 }, { 135, 0, 1120 }, { 135, 11, 1146 }, + { 139, 10, 563 }, { 4, 11, 352 }, { 4, 10, 369 }, { 135, 11, 687 }, + { 143, 11, 38 }, { 4, 0, 399 }, { 5, 0, 119 }, { 5, 0, 494 }, + { 7, 0, 751 }, { 9, 0, 556 }, { 14, 11, 179 }, { 15, 11, 151 }, + { 150, 11, 11 }, { 4, 11, 192 }, { 5, 11, 49 }, { 6, 11, 200 }, + { 6, 11, 293 }, { 6, 11, 1696 }, { 135, 11, 488 }, { 4, 0, 398 }, + { 133, 0, 660 }, { 7, 0, 1030 }, { 134, 10, 622 }, { 135, 11, 595 }, + { 141, 0, 168 }, { 132, 11, 147 }, { 7, 0, 973 }, { 10, 10, 624 }, + { 142, 10, 279 }, { 132, 10, 363 }, { 132, 0, 642 }, { 133, 11, 934 }, + { 134, 0, 1615 }, { 7, 11, 505 }, { 135, 11, 523 }, { 7, 0, 594 }, + { 7, 0, 851 }, { 7, 0, 1858 }, { 9, 0, 411 }, { 9, 0, 574 }, + { 9, 0, 666 }, { 9, 0, 737 }, { 10, 0, 346 }, { 10, 0, 712 }, + { 11, 0, 246 }, { 11, 0, 432 }, { 11, 0, 517 }, { 11, 0, 647 }, + { 11, 0, 679 }, { 11, 0, 727 }, { 12, 0, 304 }, { 12, 0, 305 }, + { 12, 0, 323 }, { 12, 0, 483 }, { 12, 0, 572 }, { 12, 0, 593 }, + { 12, 0, 602 }, { 13, 0, 95 }, { 13, 0, 101 }, { 13, 0, 171 }, + { 13, 0, 315 }, { 13, 0, 378 }, { 13, 0, 425 }, { 13, 0, 475 }, + { 14, 0, 63 }, { 14, 0, 380 }, { 14, 0, 384 }, { 15, 0, 133 }, + { 18, 0, 112 }, { 148, 0, 72 }, { 135, 0, 1093 }, { 132, 0, 679 }, + { 8, 0, 913 }, { 10, 0, 903 }, { 10, 0, 915 }, { 12, 0, 648 }, + { 12, 0, 649 }, { 14, 0, 455 }, { 16, 0, 112 }, { 138, 11, 438 }, + { 137, 0, 203 }, { 134, 10, 292 }, { 134, 0, 1492 }, { 7, 0, 1374 }, + { 8, 0, 540 }, { 5, 10, 177 }, { 6, 10, 616 }, { 7, 10, 827 }, + { 9, 10, 525 }, { 138, 10, 656 }, { 135, 0, 1486 }, { 9, 0, 714 }, + { 138, 10, 31 }, { 136, 0, 825 }, { 134, 0, 1511 }, { 132, 11, 637 }, + { 134, 0, 952 }, { 4, 10, 161 }, { 133, 10, 631 }, { 5, 0, 143 }, + { 5, 0, 769 }, { 6, 0, 1760 }, { 7, 0, 682 }, { 7, 0, 1992 }, + { 136, 0, 736 }, { 132, 0, 700 }, { 134, 0, 1540 }, { 132, 11, 777 }, + { 9, 11, 867 }, { 138, 11, 837 }, { 7, 0, 1557 }, { 135, 10, 1684 }, + { 133, 0, 860 }, { 6, 0, 422 }, { 7, 0, 0 }, { 7, 0, 1544 }, + { 9, 0, 605 }, { 11, 0, 990 }, { 12, 0, 235 }, { 12, 0, 453 }, + { 13, 0, 47 }, { 13, 0, 266 }, { 9, 10, 469 }, { 9, 10, 709 }, + { 12, 10, 512 }, { 14, 10, 65 }, { 145, 10, 12 }, { 11, 0, 807 }, + { 10, 10, 229 }, { 11, 10, 73 }, { 139, 10, 376 }, { 6, 11, 170 }, + { 7, 11, 1080 }, { 8, 11, 395 }, { 8, 11, 487 }, { 11, 11, 125 }, + { 141, 11, 147 }, { 5, 0, 515 }, { 137, 0, 131 }, { 7, 0, 1605 }, + { 11, 0, 962 }, { 146, 0, 139 }, { 132, 0, 646 }, { 4, 0, 396 }, + { 7, 0, 728 }, { 9, 0, 117 }, { 13, 0, 202 }, { 148, 0, 51 }, + { 6, 0, 121 }, { 6, 0, 124 }, { 6, 0, 357 }, { 7, 0, 1138 }, + { 7, 0, 1295 }, { 8, 0, 162 }, { 8, 0, 508 }, { 11, 0, 655 }, + { 4, 11, 535 }, { 6, 10, 558 }, { 7, 10, 651 }, { 8, 11, 618 }, + { 9, 10, 0 }, { 10, 10, 34 }, { 139, 10, 1008 }, { 135, 11, 1245 }, + { 138, 0, 357 }, { 150, 11, 23 }, { 133, 0, 237 }, { 135, 0, 1784 }, + { 7, 10, 1832 }, { 138, 10, 374 }, { 132, 0, 713 }, { 132, 11, 46 }, + { 6, 0, 1536 }, { 10, 0, 348 }, { 5, 11, 811 }, { 6, 11, 1679 }, + { 6, 11, 1714 }, { 135, 11, 2032 }, { 11, 11, 182 }, { 142, 11, 195 }, + { 6, 0, 523 }, { 7, 0, 738 }, { 7, 10, 771 }, { 7, 10, 1731 }, + { 9, 10, 405 }, { 138, 10, 421 }, { 7, 11, 1458 }, { 9, 11, 407 }, + { 139, 11, 15 }, { 6, 11, 34 }, { 7, 11, 69 }, { 7, 11, 640 }, + { 7, 11, 1089 }, { 8, 11, 708 }, { 8, 11, 721 }, { 9, 11, 363 }, + { 9, 11, 643 }, { 10, 11, 628 }, { 148, 11, 98 }, { 133, 0, 434 }, + { 135, 0, 1877 }, { 7, 0, 571 }, { 138, 0, 366 }, { 5, 10, 881 }, + { 133, 10, 885 }, { 9, 0, 513 }, { 10, 0, 25 }, { 10, 0, 39 }, + { 12, 0, 122 }, { 140, 0, 187 }, { 132, 0, 580 }, { 5, 10, 142 }, + { 134, 10, 546 }, { 132, 11, 462 }, { 137, 0, 873 }, { 5, 10, 466 }, + { 11, 10, 571 }, { 12, 10, 198 }, { 13, 10, 283 }, { 14, 10, 186 }, + { 15, 10, 21 }, { 143, 10, 103 }, { 7, 0, 171 }, { 4, 10, 185 }, + { 5, 10, 257 }, { 5, 10, 839 }, { 5, 10, 936 }, { 9, 10, 399 }, + { 10, 10, 258 }, { 10, 10, 395 }, { 10, 10, 734 }, { 11, 10, 1014 }, + { 12, 10, 23 }, { 13, 10, 350 }, { 14, 10, 150 }, { 147, 10, 6 }, + { 134, 0, 625 }, { 7, 0, 107 }, { 7, 0, 838 }, { 8, 0, 550 }, + { 138, 0, 401 }, { 5, 11, 73 }, { 6, 11, 23 }, { 134, 11, 338 }, + { 4, 0, 943 }, { 6, 0, 1850 }, { 12, 0, 713 }, { 142, 0, 434 }, + { 11, 0, 588 }, { 11, 0, 864 }, { 11, 0, 936 }, { 11, 0, 968 }, + { 12, 0, 73 }, { 12, 0, 343 }, { 12, 0, 394 }, { 13, 0, 275 }, + { 14, 0, 257 }, { 15, 0, 160 }, { 7, 10, 404 }, { 7, 10, 1377 }, + { 7, 10, 1430 }, { 7, 10, 2017 }, { 8, 10, 149 }, { 8, 10, 239 }, + { 8, 10, 512 }, { 8, 10, 793 }, { 8, 10, 818 }, { 9, 10, 474 }, + { 9, 10, 595 }, { 10, 10, 122 }, { 10, 10, 565 }, { 10, 10, 649 }, + { 10, 10, 783 }, { 11, 10, 239 }, { 11, 10, 295 }, { 11, 10, 447 }, + { 11, 10, 528 }, { 11, 10, 639 }, { 11, 10, 800 }, { 12, 10, 25 }, + { 12, 10, 157 }, { 12, 10, 316 }, { 12, 10, 390 }, { 12, 10, 391 }, + { 12, 10, 395 }, { 12, 10, 478 }, { 12, 10, 503 }, { 12, 10, 592 }, + { 12, 10, 680 }, { 13, 10, 50 }, { 13, 10, 53 }, { 13, 10, 132 }, + { 13, 10, 198 }, { 13, 10, 322 }, { 13, 10, 415 }, { 13, 10, 511 }, + { 14, 10, 71 }, { 14, 10, 395 }, { 15, 10, 71 }, { 15, 10, 136 }, + { 17, 10, 123 }, { 18, 10, 93 }, { 147, 10, 58 }, { 133, 0, 768 }, + { 11, 0, 103 }, { 142, 0, 0 }, { 136, 10, 712 }, { 132, 0, 799 }, + { 132, 0, 894 }, { 7, 11, 725 }, { 8, 11, 498 }, { 139, 11, 268 }, + { 135, 11, 1798 }, { 135, 11, 773 }, { 141, 11, 360 }, { 4, 10, 377 }, + { 152, 10, 13 }, { 135, 0, 1673 }, { 132, 11, 583 }, { 134, 0, 1052 }, + { 133, 11, 220 }, { 140, 11, 69 }, { 132, 11, 544 }, { 4, 10, 180 }, + { 135, 10, 1906 }, { 134, 0, 272 }, { 4, 0, 441 }, { 134, 0, 1421 }, + { 4, 0, 9 }, { 5, 0, 128 }, { 7, 0, 368 }, { 11, 0, 480 }, + { 148, 0, 3 }, { 5, 11, 176 }, { 6, 11, 437 }, { 6, 11, 564 }, + { 11, 11, 181 }, { 141, 11, 183 }, { 132, 10, 491 }, { 7, 0, 1182 }, + { 141, 11, 67 }, { 6, 0, 1346 }, { 4, 10, 171 }, { 138, 10, 234 }, + { 4, 10, 586 }, { 7, 10, 1186 }, { 138, 10, 631 }, { 136, 0, 682 }, + { 134, 0, 1004 }, { 15, 0, 24 }, { 143, 11, 24 }, { 134, 0, 968 }, + { 4, 0, 2 }, { 6, 0, 742 }, { 6, 0, 793 }, { 7, 0, 545 }, + { 7, 0, 894 }, { 9, 10, 931 }, { 10, 10, 334 }, { 148, 10, 71 }, + { 136, 11, 600 }, { 133, 10, 765 }, { 9, 0, 769 }, { 140, 0, 185 }, + { 4, 11, 790 }, { 5, 11, 273 }, { 134, 11, 394 }, { 7, 0, 474 }, + { 137, 0, 578 }, { 4, 11, 135 }, { 6, 11, 127 }, { 7, 11, 1185 }, + { 7, 11, 1511 }, { 8, 11, 613 }, { 11, 11, 5 }, { 12, 11, 133 }, + { 12, 11, 495 }, { 12, 11, 586 }, { 14, 11, 385 }, { 15, 11, 118 }, + { 17, 11, 20 }, { 146, 11, 98 }, { 133, 10, 424 }, { 5, 0, 530 }, + { 142, 0, 113 }, { 6, 11, 230 }, { 7, 11, 961 }, { 7, 11, 1085 }, + { 136, 11, 462 }, { 7, 11, 1954 }, { 137, 11, 636 }, { 136, 10, 714 }, + { 149, 11, 6 }, { 135, 10, 685 }, { 9, 10, 420 }, { 10, 10, 269 }, + { 10, 10, 285 }, { 10, 10, 576 }, { 11, 10, 397 }, { 13, 10, 175 }, + { 145, 10, 90 }, { 132, 10, 429 }, { 5, 0, 556 }, { 5, 11, 162 }, + { 136, 11, 68 }, { 132, 11, 654 }, { 4, 11, 156 }, { 7, 11, 998 }, + { 7, 11, 1045 }, { 7, 11, 1860 }, { 9, 11, 48 }, { 9, 11, 692 }, + { 11, 11, 419 }, { 139, 11, 602 }, { 6, 0, 1317 }, { 8, 0, 16 }, + { 9, 0, 825 }, { 12, 0, 568 }, { 7, 11, 1276 }, { 8, 11, 474 }, + { 137, 11, 652 }, { 18, 0, 97 }, { 7, 10, 18 }, { 7, 10, 699 }, + { 7, 10, 1966 }, { 8, 10, 752 }, { 9, 10, 273 }, { 9, 10, 412 }, + { 9, 10, 703 }, { 10, 10, 71 }, { 10, 10, 427 }, { 138, 10, 508 }, + { 10, 0, 703 }, { 7, 11, 1454 }, { 138, 11, 703 }, { 4, 10, 53 }, + { 5, 10, 186 }, { 135, 10, 752 }, { 134, 0, 892 }, { 134, 0, 1571 }, + { 8, 10, 575 }, { 10, 10, 289 }, { 139, 10, 319 }, { 6, 0, 186 }, + { 137, 0, 426 }, { 134, 0, 1101 }, { 132, 10, 675 }, { 132, 0, 585 }, + { 6, 0, 1870 }, { 137, 0, 937 }, { 152, 11, 10 }, { 9, 11, 197 }, + { 10, 11, 300 }, { 12, 11, 473 }, { 13, 11, 90 }, { 141, 11, 405 }, + { 4, 0, 93 }, { 5, 0, 252 }, { 6, 0, 229 }, { 7, 0, 291 }, + { 9, 0, 550 }, { 139, 0, 644 }, { 137, 0, 749 }, { 9, 0, 162 }, + { 6, 10, 209 }, { 8, 10, 468 }, { 9, 10, 210 }, { 11, 10, 36 }, + { 12, 10, 28 }, { 12, 10, 630 }, { 13, 10, 21 }, { 13, 10, 349 }, + { 14, 10, 7 }, { 145, 10, 13 }, { 132, 0, 381 }, { 132, 11, 606 }, + { 4, 10, 342 }, { 135, 10, 1179 }, { 7, 11, 1587 }, { 7, 11, 1707 }, + { 10, 11, 528 }, { 139, 11, 504 }, { 12, 11, 39 }, { 13, 11, 265 }, + { 141, 11, 439 }, { 4, 10, 928 }, { 133, 10, 910 }, { 7, 10, 1838 }, + { 7, 11, 1978 }, { 136, 11, 676 }, { 6, 0, 762 }, { 6, 0, 796 }, + { 134, 0, 956 }, { 4, 10, 318 }, { 4, 10, 496 }, { 7, 10, 856 }, + { 139, 10, 654 }, { 137, 11, 242 }, { 4, 11, 361 }, { 133, 11, 315 }, + { 132, 11, 461 }, { 132, 11, 472 }, { 132, 0, 857 }, { 5, 0, 21 }, + { 6, 0, 77 }, { 6, 0, 157 }, { 7, 0, 974 }, { 7, 0, 1301 }, + { 7, 0, 1339 }, { 7, 0, 1490 }, { 7, 0, 1873 }, { 9, 0, 628 }, + { 7, 10, 915 }, { 8, 10, 247 }, { 147, 10, 0 }, { 4, 10, 202 }, + { 5, 10, 382 }, { 6, 10, 454 }, { 7, 10, 936 }, { 7, 10, 1803 }, + { 8, 10, 758 }, { 9, 10, 375 }, { 9, 10, 895 }, { 10, 10, 743 }, + { 10, 10, 792 }, { 11, 10, 978 }, { 11, 10, 1012 }, { 142, 10, 109 }, + { 7, 11, 617 }, { 10, 11, 498 }, { 11, 11, 501 }, { 12, 11, 16 }, + { 140, 11, 150 }, { 7, 10, 1150 }, { 7, 10, 1425 }, { 7, 10, 1453 }, + { 10, 11, 747 }, { 140, 10, 513 }, { 133, 11, 155 }, { 11, 0, 919 }, + { 141, 0, 409 }, { 138, 10, 791 }, { 10, 0, 633 }, { 139, 11, 729 }, + { 7, 11, 163 }, { 8, 11, 319 }, { 9, 11, 402 }, { 10, 11, 24 }, + { 10, 11, 681 }, { 11, 11, 200 }, { 11, 11, 567 }, { 12, 11, 253 }, + { 12, 11, 410 }, { 142, 11, 219 }, { 5, 11, 475 }, { 7, 11, 1780 }, + { 9, 11, 230 }, { 11, 11, 297 }, { 11, 11, 558 }, { 14, 11, 322 }, + { 147, 11, 76 }, { 7, 0, 332 }, { 6, 10, 445 }, { 137, 10, 909 }, + { 135, 11, 1956 }, { 136, 11, 274 }, { 134, 10, 578 }, { 135, 0, 1489 }, + { 135, 11, 1848 }, { 5, 11, 944 }, { 134, 11, 1769 }, { 132, 11, 144 }, + { 136, 10, 766 }, { 4, 0, 832 }, { 135, 10, 541 }, { 8, 0, 398 }, + { 9, 0, 681 }, { 139, 0, 632 }, { 136, 0, 645 }, { 9, 0, 791 }, + { 10, 0, 93 }, { 16, 0, 13 }, { 17, 0, 23 }, { 18, 0, 135 }, + { 19, 0, 12 }, { 20, 0, 1 }, { 20, 0, 12 }, { 148, 0, 14 }, + { 6, 11, 247 }, { 137, 11, 555 }, { 134, 0, 20 }, { 132, 0, 800 }, + { 135, 0, 1841 }, { 139, 10, 983 }, { 137, 10, 768 }, { 132, 10, 584 }, + { 141, 11, 51 }, { 6, 0, 1993 }, { 4, 11, 620 }, { 138, 11, 280 }, + { 136, 0, 769 }, { 11, 0, 290 }, { 11, 0, 665 }, { 7, 11, 1810 }, + { 11, 11, 866 }, { 12, 11, 103 }, { 13, 11, 495 }, { 17, 11, 67 }, + { 147, 11, 74 }, { 134, 0, 1426 }, { 139, 0, 60 }, { 4, 10, 326 }, + { 135, 10, 1770 }, { 7, 0, 1874 }, { 9, 0, 641 }, { 132, 10, 226 }, + { 6, 0, 644 }, { 5, 10, 426 }, { 8, 10, 30 }, { 9, 10, 2 }, + { 11, 10, 549 }, { 147, 10, 122 }, { 5, 11, 428 }, { 138, 11, 442 }, + { 135, 11, 1871 }, { 135, 0, 1757 }, { 147, 10, 117 }, { 135, 0, 937 }, + { 135, 0, 1652 }, { 6, 0, 654 }, { 134, 0, 1476 }, { 133, 11, 99 }, + { 135, 0, 527 }, { 132, 10, 345 }, { 4, 10, 385 }, { 4, 11, 397 }, + { 7, 10, 265 }, { 135, 10, 587 }, { 4, 0, 579 }, { 5, 0, 226 }, + { 5, 0, 323 }, { 135, 0, 960 }, { 134, 0, 1486 }, { 8, 11, 502 }, + { 144, 11, 9 }, { 4, 10, 347 }, { 5, 10, 423 }, { 5, 10, 996 }, + { 135, 10, 1329 }, { 7, 11, 727 }, { 146, 11, 73 }, { 4, 11, 485 }, + { 7, 11, 353 }, { 7, 10, 1259 }, { 7, 11, 1523 }, { 9, 10, 125 }, + { 139, 10, 65 }, { 6, 0, 325 }, { 5, 10, 136 }, { 6, 11, 366 }, + { 7, 11, 1384 }, { 7, 11, 1601 }, { 136, 10, 644 }, { 138, 11, 160 }, + { 6, 0, 1345 }, { 137, 11, 282 }, { 18, 0, 91 }, { 147, 0, 70 }, + { 136, 0, 404 }, { 4, 11, 157 }, { 133, 11, 471 }, { 133, 0, 973 }, + { 6, 0, 135 }, { 135, 0, 1176 }, { 8, 11, 116 }, { 11, 11, 551 }, + { 142, 11, 159 }, { 4, 0, 549 }, { 4, 10, 433 }, { 133, 10, 719 }, + { 136, 0, 976 }, { 5, 11, 160 }, { 7, 11, 363 }, { 7, 11, 589 }, + { 10, 11, 170 }, { 141, 11, 55 }, { 144, 0, 21 }, { 144, 0, 51 }, + { 135, 0, 314 }, { 135, 10, 1363 }, { 4, 11, 108 }, { 7, 11, 405 }, + { 10, 11, 491 }, { 139, 11, 498 }, { 146, 0, 4 }, { 4, 10, 555 }, + { 8, 10, 536 }, { 10, 10, 288 }, { 139, 10, 1005 }, { 135, 11, 1005 }, + { 6, 0, 281 }, { 7, 0, 6 }, { 8, 0, 282 }, { 8, 0, 480 }, + { 8, 0, 499 }, { 9, 0, 198 }, { 10, 0, 143 }, { 10, 0, 169 }, + { 10, 0, 211 }, { 10, 0, 417 }, { 10, 0, 574 }, { 11, 0, 147 }, + { 11, 0, 395 }, { 12, 0, 75 }, { 12, 0, 407 }, { 12, 0, 608 }, + { 13, 0, 500 }, { 142, 0, 251 }, { 6, 0, 1093 }, { 6, 0, 1405 }, + { 9, 10, 370 }, { 138, 10, 90 }, { 4, 11, 926 }, { 133, 11, 983 }, + { 135, 0, 1776 }, { 134, 0, 1528 }, { 132, 0, 419 }, { 132, 11, 538 }, + { 6, 11, 294 }, { 7, 11, 1267 }, { 136, 11, 624 }, { 135, 11, 1772 }, + { 138, 11, 301 }, { 4, 10, 257 }, { 135, 10, 2031 }, { 4, 0, 138 }, + { 7, 0, 1012 }, { 7, 0, 1280 }, { 9, 0, 76 }, { 135, 10, 1768 }, + { 132, 11, 757 }, { 5, 0, 29 }, { 140, 0, 638 }, { 7, 11, 655 }, + { 135, 11, 1844 }, { 7, 0, 1418 }, { 6, 11, 257 }, { 135, 11, 1522 }, + { 8, 11, 469 }, { 138, 11, 47 }, { 142, 11, 278 }, { 6, 10, 83 }, + { 6, 10, 1733 }, { 135, 10, 1389 }, { 11, 11, 204 }, { 11, 11, 243 }, + { 140, 11, 293 }, { 135, 11, 1875 }, { 6, 0, 1710 }, { 135, 0, 2038 }, + { 137, 11, 299 }, { 4, 0, 17 }, { 5, 0, 23 }, { 7, 0, 995 }, + { 11, 0, 383 }, { 11, 0, 437 }, { 12, 0, 460 }, { 140, 0, 532 }, + { 133, 0, 862 }, { 137, 10, 696 }, { 6, 0, 592 }, { 138, 0, 946 }, + { 138, 11, 599 }, { 7, 10, 1718 }, { 9, 10, 95 }, { 9, 10, 274 }, + { 10, 10, 279 }, { 10, 10, 317 }, { 10, 10, 420 }, { 11, 10, 303 }, + { 11, 10, 808 }, { 12, 10, 134 }, { 12, 10, 367 }, { 13, 10, 149 }, + { 13, 10, 347 }, { 14, 10, 349 }, { 14, 10, 406 }, { 18, 10, 22 }, + { 18, 10, 89 }, { 18, 10, 122 }, { 147, 10, 47 }, { 8, 0, 70 }, + { 12, 0, 171 }, { 141, 0, 272 }, { 133, 10, 26 }, { 132, 10, 550 }, + { 137, 0, 812 }, { 10, 0, 233 }, { 139, 0, 76 }, { 134, 0, 988 }, + { 134, 0, 442 }, { 136, 10, 822 }, { 7, 0, 896 }, { 4, 10, 902 }, + { 5, 10, 809 }, { 134, 10, 122 }, { 5, 11, 150 }, { 7, 11, 106 }, + { 8, 11, 603 }, { 9, 11, 593 }, { 9, 11, 634 }, { 10, 11, 44 }, + { 10, 11, 173 }, { 11, 11, 462 }, { 11, 11, 515 }, { 13, 11, 216 }, + { 13, 11, 288 }, { 142, 11, 400 }, { 136, 0, 483 }, { 135, 10, 262 }, + { 6, 0, 1709 }, { 133, 10, 620 }, { 4, 10, 34 }, { 5, 10, 574 }, + { 7, 10, 279 }, { 7, 10, 1624 }, { 136, 10, 601 }, { 137, 10, 170 }, + { 147, 0, 119 }, { 12, 11, 108 }, { 141, 11, 291 }, { 11, 0, 69 }, + { 12, 0, 105 }, { 12, 0, 117 }, { 13, 0, 213 }, { 14, 0, 13 }, + { 14, 0, 62 }, { 14, 0, 177 }, { 14, 0, 421 }, { 15, 0, 19 }, + { 146, 0, 141 }, { 137, 0, 309 }, { 11, 11, 278 }, { 142, 11, 73 }, + { 7, 0, 608 }, { 7, 0, 976 }, { 9, 0, 146 }, { 10, 0, 206 }, + { 10, 0, 596 }, { 13, 0, 218 }, { 142, 0, 153 }, { 133, 10, 332 }, + { 6, 10, 261 }, { 8, 10, 182 }, { 139, 10, 943 }, { 4, 11, 493 }, + { 144, 11, 55 }, { 134, 10, 1721 }, { 132, 0, 768 }, { 4, 10, 933 }, + { 133, 10, 880 }, { 7, 11, 555 }, { 7, 11, 1316 }, { 7, 11, 1412 }, + { 7, 11, 1839 }, { 9, 11, 192 }, { 9, 11, 589 }, { 11, 11, 241 }, + { 11, 11, 676 }, { 11, 11, 811 }, { 11, 11, 891 }, { 12, 11, 140 }, + { 12, 11, 346 }, { 12, 11, 479 }, { 13, 11, 30 }, { 13, 11, 49 }, + { 13, 11, 381 }, { 14, 11, 188 }, { 15, 11, 150 }, { 16, 11, 76 }, + { 18, 11, 30 }, { 148, 11, 52 }, { 4, 0, 518 }, { 135, 0, 1136 }, + { 6, 11, 568 }, { 7, 11, 112 }, { 7, 11, 1804 }, { 8, 11, 362 }, + { 8, 11, 410 }, { 8, 11, 830 }, { 9, 11, 514 }, { 11, 11, 649 }, + { 142, 11, 157 }, { 135, 11, 673 }, { 8, 0, 689 }, { 137, 0, 863 }, + { 4, 0, 18 }, { 7, 0, 145 }, { 7, 0, 444 }, { 7, 0, 1278 }, + { 8, 0, 49 }, { 8, 0, 400 }, { 9, 0, 71 }, { 9, 0, 250 }, + { 10, 0, 459 }, { 12, 0, 160 }, { 16, 0, 24 }, { 132, 11, 625 }, + { 140, 0, 1020 }, { 4, 0, 997 }, { 6, 0, 1946 }, { 6, 0, 1984 }, + { 134, 0, 1998 }, { 6, 11, 16 }, { 6, 11, 158 }, { 7, 11, 43 }, + { 7, 11, 129 }, { 7, 11, 181 }, { 8, 11, 276 }, { 8, 11, 377 }, + { 10, 11, 523 }, { 11, 11, 816 }, { 12, 11, 455 }, { 13, 11, 303 }, + { 142, 11, 135 }, { 133, 10, 812 }, { 134, 0, 658 }, { 4, 11, 1 }, + { 7, 11, 1143 }, { 7, 11, 1463 }, { 8, 11, 61 }, { 9, 11, 207 }, + { 9, 11, 390 }, { 9, 11, 467 }, { 139, 11, 836 }, { 150, 11, 26 }, + { 140, 0, 106 }, { 6, 0, 1827 }, { 10, 0, 931 }, { 18, 0, 166 }, + { 20, 0, 114 }, { 4, 10, 137 }, { 7, 10, 1178 }, { 7, 11, 1319 }, + { 135, 10, 1520 }, { 133, 0, 1010 }, { 4, 11, 723 }, { 5, 11, 895 }, + { 7, 11, 1031 }, { 8, 11, 199 }, { 8, 11, 340 }, { 9, 11, 153 }, + { 9, 11, 215 }, { 10, 11, 21 }, { 10, 11, 59 }, { 10, 11, 80 }, + { 10, 11, 224 }, { 11, 11, 229 }, { 11, 11, 652 }, { 12, 11, 192 }, + { 13, 11, 146 }, { 142, 11, 91 }, { 132, 11, 295 }, { 6, 11, 619 }, + { 7, 11, 898 }, { 7, 11, 1092 }, { 8, 11, 485 }, { 18, 11, 28 }, + { 147, 11, 116 }, { 137, 11, 51 }, { 6, 10, 1661 }, { 7, 10, 1975 }, + { 7, 10, 2009 }, { 135, 10, 2011 }, { 5, 11, 309 }, { 140, 11, 211 }, + { 5, 0, 87 }, { 7, 0, 313 }, { 7, 0, 1103 }, { 10, 0, 208 }, + { 10, 0, 582 }, { 11, 0, 389 }, { 11, 0, 813 }, { 12, 0, 385 }, + { 13, 0, 286 }, { 14, 0, 124 }, { 146, 0, 108 }, { 5, 11, 125 }, + { 8, 11, 77 }, { 138, 11, 15 }, { 132, 0, 267 }, { 133, 0, 703 }, + { 137, 11, 155 }, { 133, 11, 439 }, { 11, 11, 164 }, { 140, 11, 76 }, + { 9, 0, 496 }, { 5, 10, 89 }, { 7, 10, 1915 }, { 9, 10, 185 }, + { 9, 10, 235 }, { 10, 10, 64 }, { 10, 10, 270 }, { 10, 10, 403 }, + { 10, 10, 469 }, { 10, 10, 529 }, { 10, 10, 590 }, { 11, 10, 140 }, + { 11, 10, 860 }, { 13, 10, 1 }, { 13, 10, 422 }, { 14, 10, 341 }, + { 14, 10, 364 }, { 17, 10, 93 }, { 18, 10, 113 }, { 19, 10, 97 }, + { 147, 10, 113 }, { 133, 10, 695 }, { 135, 0, 1121 }, { 5, 10, 6 }, + { 6, 10, 183 }, { 7, 10, 680 }, { 7, 10, 978 }, { 7, 10, 1013 }, + { 7, 10, 1055 }, { 12, 10, 230 }, { 13, 10, 172 }, { 146, 10, 29 }, + { 4, 11, 8 }, { 7, 11, 1152 }, { 7, 11, 1153 }, { 7, 11, 1715 }, + { 9, 11, 374 }, { 10, 11, 478 }, { 139, 11, 648 }, { 135, 11, 1099 }, + { 6, 10, 29 }, { 139, 10, 63 }, { 4, 0, 561 }, { 10, 0, 249 }, + { 139, 0, 209 }, { 132, 0, 760 }, { 7, 11, 799 }, { 138, 11, 511 }, + { 136, 11, 87 }, { 9, 0, 154 }, { 140, 0, 485 }, { 136, 0, 255 }, + { 132, 0, 323 }, { 140, 0, 419 }, { 132, 10, 311 }, { 134, 10, 1740 }, + { 4, 0, 368 }, { 135, 0, 641 }, { 7, 10, 170 }, { 8, 10, 90 }, + { 8, 10, 177 }, { 8, 10, 415 }, { 11, 10, 714 }, { 142, 10, 281 }, + { 4, 11, 69 }, { 5, 11, 122 }, { 9, 11, 656 }, { 138, 11, 464 }, + { 5, 11, 849 }, { 134, 11, 1633 }, { 8, 0, 522 }, { 142, 0, 328 }, + { 11, 10, 91 }, { 13, 10, 129 }, { 15, 10, 101 }, { 145, 10, 125 }, + { 7, 0, 562 }, { 8, 0, 551 }, { 4, 10, 494 }, { 6, 10, 74 }, + { 7, 10, 44 }, { 11, 11, 499 }, { 12, 10, 17 }, { 15, 10, 5 }, + { 148, 10, 11 }, { 4, 10, 276 }, { 133, 10, 296 }, { 9, 0, 92 }, + { 147, 0, 91 }, { 4, 10, 7 }, { 5, 10, 90 }, { 5, 10, 158 }, + { 6, 10, 542 }, { 7, 10, 221 }, { 7, 10, 1574 }, { 9, 10, 490 }, + { 10, 10, 540 }, { 11, 10, 443 }, { 139, 10, 757 }, { 6, 0, 525 }, + { 6, 0, 1976 }, { 8, 0, 806 }, { 9, 0, 876 }, { 140, 0, 284 }, + { 5, 11, 859 }, { 7, 10, 588 }, { 7, 11, 1160 }, { 8, 11, 107 }, + { 9, 10, 175 }, { 9, 11, 291 }, { 9, 11, 439 }, { 10, 10, 530 }, + { 10, 11, 663 }, { 11, 11, 609 }, { 140, 11, 197 }, { 7, 11, 168 }, + { 13, 11, 196 }, { 141, 11, 237 }, { 139, 0, 958 }, { 133, 0, 594 }, + { 135, 10, 580 }, { 7, 10, 88 }, { 136, 10, 627 }, { 6, 0, 479 }, + { 6, 0, 562 }, { 7, 0, 1060 }, { 13, 0, 6 }, { 5, 10, 872 }, + { 6, 10, 57 }, { 7, 10, 471 }, { 9, 10, 447 }, { 137, 10, 454 }, + { 136, 11, 413 }, { 145, 11, 19 }, { 4, 11, 117 }, { 6, 11, 372 }, + { 7, 11, 1905 }, { 142, 11, 323 }, { 4, 11, 722 }, { 139, 11, 471 }, + { 17, 0, 61 }, { 5, 10, 31 }, { 134, 10, 614 }, { 8, 10, 330 }, + { 140, 10, 477 }, { 7, 10, 1200 }, { 138, 10, 460 }, { 6, 10, 424 }, + { 135, 10, 1866 }, { 6, 0, 1641 }, { 136, 0, 820 }, { 6, 0, 1556 }, + { 134, 0, 1618 }, { 9, 11, 5 }, { 12, 11, 216 }, { 12, 11, 294 }, + { 12, 11, 298 }, { 12, 11, 400 }, { 12, 11, 518 }, { 13, 11, 229 }, + { 143, 11, 139 }, { 15, 11, 155 }, { 144, 11, 79 }, { 4, 0, 302 }, + { 135, 0, 1766 }, { 5, 10, 13 }, { 134, 10, 142 }, { 6, 0, 148 }, + { 7, 0, 1313 }, { 7, 10, 116 }, { 8, 10, 322 }, { 8, 10, 755 }, + { 9, 10, 548 }, { 10, 10, 714 }, { 11, 10, 884 }, { 141, 10, 324 }, + { 137, 0, 676 }, { 9, 11, 88 }, { 139, 11, 270 }, { 5, 11, 12 }, + { 7, 11, 375 }, { 137, 11, 438 }, { 134, 0, 1674 }, { 7, 10, 1472 }, + { 135, 10, 1554 }, { 11, 0, 178 }, { 7, 10, 1071 }, { 7, 10, 1541 }, + { 7, 10, 1767 }, { 7, 10, 1806 }, { 11, 10, 162 }, { 11, 10, 242 }, + { 12, 10, 605 }, { 15, 10, 26 }, { 144, 10, 44 }, { 6, 0, 389 }, + { 7, 0, 149 }, { 9, 0, 142 }, { 138, 0, 94 }, { 140, 11, 71 }, + { 145, 10, 115 }, { 6, 0, 8 }, { 7, 0, 1881 }, { 8, 0, 91 }, + { 11, 11, 966 }, { 12, 11, 287 }, { 13, 11, 342 }, { 13, 11, 402 }, + { 15, 11, 110 }, { 143, 11, 163 }, { 4, 11, 258 }, { 136, 11, 639 }, + { 6, 11, 22 }, { 7, 11, 903 }, { 138, 11, 577 }, { 133, 11, 681 }, + { 135, 10, 1111 }, { 135, 11, 1286 }, { 9, 0, 112 }, { 8, 10, 1 }, + { 138, 10, 326 }, { 5, 10, 488 }, { 6, 10, 527 }, { 7, 10, 489 }, + { 7, 10, 1636 }, { 8, 10, 121 }, { 8, 10, 144 }, { 8, 10, 359 }, + { 9, 10, 193 }, { 9, 10, 241 }, { 9, 10, 336 }, { 9, 10, 882 }, + { 11, 10, 266 }, { 11, 10, 372 }, { 11, 10, 944 }, { 12, 10, 401 }, + { 140, 10, 641 }, { 4, 11, 664 }, { 133, 11, 804 }, { 6, 0, 747 }, + { 134, 0, 1015 }, { 135, 0, 1746 }, { 9, 10, 31 }, { 10, 10, 244 }, + { 10, 10, 699 }, { 12, 10, 149 }, { 141, 10, 497 }, { 133, 10, 377 }, + { 135, 0, 24 }, { 6, 0, 1352 }, { 5, 11, 32 }, { 145, 10, 101 }, + { 7, 0, 1530 }, { 10, 0, 158 }, { 13, 0, 13 }, { 13, 0, 137 }, + { 13, 0, 258 }, { 14, 0, 111 }, { 14, 0, 225 }, { 14, 0, 253 }, + { 14, 0, 304 }, { 14, 0, 339 }, { 14, 0, 417 }, { 146, 0, 33 }, + { 4, 0, 503 }, { 135, 0, 1661 }, { 5, 0, 130 }, { 6, 0, 845 }, + { 7, 0, 1314 }, { 9, 0, 610 }, { 10, 0, 718 }, { 11, 0, 601 }, + { 11, 0, 819 }, { 11, 0, 946 }, { 140, 0, 536 }, { 10, 0, 149 }, + { 11, 0, 280 }, { 142, 0, 336 }, { 134, 0, 1401 }, { 135, 0, 1946 }, + { 8, 0, 663 }, { 144, 0, 8 }, { 134, 0, 1607 }, { 135, 10, 2023 }, + { 4, 11, 289 }, { 7, 11, 629 }, { 7, 11, 1698 }, { 7, 11, 1711 }, + { 140, 11, 215 }, { 6, 11, 450 }, { 136, 11, 109 }, { 10, 0, 882 }, + { 10, 0, 883 }, { 10, 0, 914 }, { 138, 0, 928 }, { 133, 10, 843 }, + { 136, 11, 705 }, { 132, 10, 554 }, { 133, 10, 536 }, { 5, 0, 417 }, + { 9, 10, 79 }, { 11, 10, 625 }, { 145, 10, 7 }, { 7, 11, 1238 }, + { 142, 11, 37 }, { 4, 0, 392 }, { 135, 0, 1597 }, { 5, 0, 433 }, + { 9, 0, 633 }, { 11, 0, 629 }, { 132, 10, 424 }, { 7, 10, 336 }, + { 136, 10, 785 }, { 134, 11, 355 }, { 6, 0, 234 }, { 7, 0, 769 }, + { 9, 0, 18 }, { 138, 0, 358 }, { 4, 10, 896 }, { 134, 10, 1777 }, + { 138, 11, 323 }, { 7, 0, 140 }, { 7, 0, 1950 }, { 8, 0, 680 }, + { 11, 0, 817 }, { 147, 0, 88 }, { 7, 0, 1222 }, { 138, 0, 386 }, + { 139, 11, 908 }, { 11, 0, 249 }, { 12, 0, 313 }, { 16, 0, 66 }, + { 145, 0, 26 }, { 134, 0, 5 }, { 7, 10, 750 }, { 9, 10, 223 }, + { 11, 10, 27 }, { 11, 10, 466 }, { 12, 10, 624 }, { 14, 10, 265 }, + { 146, 10, 61 }, { 134, 11, 26 }, { 134, 0, 1216 }, { 5, 0, 963 }, + { 134, 0, 1773 }, { 4, 11, 414 }, { 5, 11, 467 }, { 9, 11, 654 }, + { 10, 11, 451 }, { 12, 11, 59 }, { 141, 11, 375 }, { 135, 11, 17 }, + { 4, 10, 603 }, { 133, 10, 661 }, { 4, 10, 11 }, { 6, 10, 128 }, + { 7, 10, 231 }, { 7, 10, 1533 }, { 138, 10, 725 }, { 135, 11, 955 }, + { 7, 0, 180 }, { 8, 0, 509 }, { 136, 0, 792 }, { 132, 10, 476 }, + { 132, 0, 1002 }, { 133, 11, 538 }, { 135, 10, 1807 }, { 132, 0, 931 }, + { 7, 0, 943 }, { 11, 0, 614 }, { 140, 0, 747 }, { 135, 0, 1837 }, + { 9, 10, 20 }, { 10, 10, 324 }, { 10, 10, 807 }, { 139, 10, 488 }, + { 134, 0, 641 }, { 6, 11, 280 }, { 10, 11, 502 }, { 11, 11, 344 }, + { 140, 11, 38 }, { 5, 11, 45 }, { 7, 11, 1161 }, { 11, 11, 448 }, + { 11, 11, 880 }, { 13, 11, 139 }, { 13, 11, 407 }, { 15, 11, 16 }, + { 17, 11, 95 }, { 18, 11, 66 }, { 18, 11, 88 }, { 18, 11, 123 }, + { 149, 11, 7 }, { 9, 0, 280 }, { 138, 0, 134 }, { 22, 0, 22 }, + { 23, 0, 5 }, { 151, 0, 29 }, { 136, 11, 777 }, { 4, 0, 90 }, + { 5, 0, 545 }, { 7, 0, 754 }, { 9, 0, 186 }, { 10, 0, 72 }, + { 10, 0, 782 }, { 11, 0, 577 }, { 11, 0, 610 }, { 11, 0, 960 }, + { 12, 0, 354 }, { 12, 0, 362 }, { 12, 0, 595 }, { 4, 11, 410 }, + { 135, 11, 521 }, { 135, 11, 1778 }, { 5, 10, 112 }, { 6, 10, 103 }, + { 134, 10, 150 }, { 138, 10, 356 }, { 132, 0, 742 }, { 7, 0, 151 }, + { 9, 0, 329 }, { 139, 0, 254 }, { 8, 0, 853 }, { 8, 0, 881 }, + { 8, 0, 911 }, { 8, 0, 912 }, { 10, 0, 872 }, { 12, 0, 741 }, + { 12, 0, 742 }, { 152, 0, 18 }, { 4, 11, 573 }, { 136, 11, 655 }, + { 6, 0, 921 }, { 134, 0, 934 }, { 9, 0, 187 }, { 10, 0, 36 }, + { 11, 0, 1016 }, { 17, 0, 44 }, { 146, 0, 64 }, { 7, 0, 833 }, + { 136, 0, 517 }, { 4, 0, 506 }, { 5, 0, 295 }, { 135, 0, 1680 }, + { 4, 10, 708 }, { 8, 10, 15 }, { 9, 10, 50 }, { 9, 10, 386 }, + { 11, 10, 18 }, { 11, 10, 529 }, { 140, 10, 228 }, { 7, 0, 251 }, + { 7, 0, 1701 }, { 8, 0, 436 }, { 4, 10, 563 }, { 7, 10, 592 }, + { 7, 10, 637 }, { 7, 10, 770 }, { 8, 10, 463 }, { 9, 10, 60 }, + { 9, 10, 335 }, { 9, 10, 904 }, { 10, 10, 73 }, { 11, 10, 434 }, + { 12, 10, 585 }, { 13, 10, 331 }, { 18, 10, 110 }, { 148, 10, 60 }, + { 132, 10, 502 }, { 136, 0, 584 }, { 6, 10, 347 }, { 138, 10, 161 }, + { 7, 0, 987 }, { 9, 0, 688 }, { 10, 0, 522 }, { 11, 0, 788 }, + { 12, 0, 137 }, { 12, 0, 566 }, { 14, 0, 9 }, { 14, 0, 24 }, + { 14, 0, 64 }, { 7, 11, 899 }, { 142, 11, 325 }, { 4, 0, 214 }, + { 5, 0, 500 }, { 5, 10, 102 }, { 6, 10, 284 }, { 7, 10, 1079 }, + { 7, 10, 1423 }, { 7, 10, 1702 }, { 8, 10, 470 }, { 9, 10, 554 }, + { 9, 10, 723 }, { 139, 10, 333 }, { 7, 10, 246 }, { 135, 10, 840 }, + { 6, 10, 10 }, { 8, 10, 571 }, { 9, 10, 739 }, { 143, 10, 91 }, + { 133, 10, 626 }, { 146, 0, 195 }, { 134, 0, 1775 }, { 7, 0, 389 }, + { 7, 0, 700 }, { 7, 0, 940 }, { 8, 0, 514 }, { 9, 0, 116 }, + { 9, 0, 535 }, { 10, 0, 118 }, { 11, 0, 107 }, { 11, 0, 148 }, + { 11, 0, 922 }, { 12, 0, 254 }, { 12, 0, 421 }, { 142, 0, 238 }, + { 5, 10, 18 }, { 6, 10, 526 }, { 13, 10, 24 }, { 13, 10, 110 }, + { 19, 10, 5 }, { 147, 10, 44 }, { 132, 0, 743 }, { 11, 0, 292 }, + { 4, 10, 309 }, { 5, 10, 462 }, { 7, 10, 970 }, { 135, 10, 1097 }, + { 22, 10, 30 }, { 150, 10, 33 }, { 139, 11, 338 }, { 135, 11, 1598 }, + { 7, 0, 1283 }, { 9, 0, 227 }, { 11, 0, 325 }, { 11, 0, 408 }, + { 14, 0, 180 }, { 146, 0, 47 }, { 4, 0, 953 }, { 6, 0, 1805 }, + { 6, 0, 1814 }, { 6, 0, 1862 }, { 140, 0, 774 }, { 6, 11, 611 }, + { 135, 11, 1733 }, { 135, 11, 1464 }, { 5, 0, 81 }, { 7, 0, 146 }, + { 7, 0, 1342 }, { 8, 0, 53 }, { 8, 0, 561 }, { 8, 0, 694 }, + { 8, 0, 754 }, { 9, 0, 115 }, { 9, 0, 179 }, { 9, 0, 894 }, + { 10, 0, 462 }, { 10, 0, 813 }, { 11, 0, 230 }, { 11, 0, 657 }, + { 11, 0, 699 }, { 11, 0, 748 }, { 12, 0, 119 }, { 12, 0, 200 }, + { 12, 0, 283 }, { 142, 0, 273 }, { 5, 0, 408 }, { 6, 0, 789 }, + { 6, 0, 877 }, { 6, 0, 1253 }, { 6, 0, 1413 }, { 137, 0, 747 }, + { 134, 10, 1704 }, { 135, 11, 663 }, { 6, 0, 1910 }, { 6, 0, 1915 }, + { 6, 0, 1923 }, { 9, 0, 913 }, { 9, 0, 928 }, { 9, 0, 950 }, + { 9, 0, 954 }, { 9, 0, 978 }, { 9, 0, 993 }, { 12, 0, 812 }, + { 12, 0, 819 }, { 12, 0, 831 }, { 12, 0, 833 }, { 12, 0, 838 }, + { 12, 0, 909 }, { 12, 0, 928 }, { 12, 0, 931 }, { 12, 0, 950 }, + { 15, 0, 186 }, { 15, 0, 187 }, { 15, 0, 195 }, { 15, 0, 196 }, + { 15, 0, 209 }, { 15, 0, 215 }, { 15, 0, 236 }, { 15, 0, 241 }, + { 15, 0, 249 }, { 15, 0, 253 }, { 18, 0, 180 }, { 18, 0, 221 }, + { 18, 0, 224 }, { 18, 0, 227 }, { 18, 0, 229 }, { 149, 0, 60 }, + { 7, 0, 1826 }, { 135, 0, 1938 }, { 11, 0, 490 }, { 18, 0, 143 }, + { 5, 10, 86 }, { 7, 10, 743 }, { 9, 10, 85 }, { 10, 10, 281 }, + { 10, 10, 432 }, { 12, 10, 251 }, { 13, 10, 118 }, { 142, 10, 378 }, + { 5, 10, 524 }, { 133, 10, 744 }, { 141, 11, 442 }, { 10, 10, 107 }, + { 140, 10, 436 }, { 135, 11, 503 }, { 134, 0, 1162 }, { 132, 10, 927 }, + { 7, 0, 30 }, { 8, 0, 86 }, { 8, 0, 315 }, { 8, 0, 700 }, + { 9, 0, 576 }, { 9, 0, 858 }, { 10, 0, 414 }, { 11, 0, 310 }, + { 11, 0, 888 }, { 11, 0, 904 }, { 12, 0, 361 }, { 13, 0, 248 }, + { 13, 0, 371 }, { 14, 0, 142 }, { 12, 10, 670 }, { 146, 10, 94 }, + { 134, 0, 721 }, { 4, 11, 113 }, { 5, 11, 163 }, { 5, 11, 735 }, + { 7, 11, 1009 }, { 7, 10, 1149 }, { 9, 11, 9 }, { 9, 10, 156 }, + { 9, 11, 771 }, { 12, 11, 90 }, { 13, 11, 138 }, { 13, 11, 410 }, + { 143, 11, 128 }, { 138, 0, 839 }, { 133, 10, 778 }, { 137, 0, 617 }, + { 133, 10, 502 }, { 8, 10, 196 }, { 10, 10, 283 }, { 139, 10, 406 }, + { 6, 0, 428 }, { 7, 0, 524 }, { 8, 0, 169 }, { 8, 0, 234 }, + { 9, 0, 480 }, { 138, 0, 646 }, { 133, 10, 855 }, { 134, 0, 1648 }, + { 7, 0, 1205 }, { 138, 0, 637 }, { 7, 0, 1596 }, { 4, 11, 935 }, + { 133, 11, 823 }, { 5, 11, 269 }, { 7, 11, 434 }, { 7, 11, 891 }, + { 8, 11, 339 }, { 9, 11, 702 }, { 11, 11, 594 }, { 11, 11, 718 }, + { 145, 11, 100 }, { 7, 11, 878 }, { 9, 11, 485 }, { 141, 11, 264 }, + { 4, 0, 266 }, { 8, 0, 4 }, { 9, 0, 39 }, { 10, 0, 166 }, + { 11, 0, 918 }, { 12, 0, 635 }, { 20, 0, 10 }, { 22, 0, 27 }, + { 22, 0, 43 }, { 22, 0, 52 }, { 134, 11, 1713 }, { 7, 10, 1400 }, + { 9, 10, 446 }, { 138, 10, 45 }, { 135, 11, 900 }, { 132, 0, 862 }, + { 134, 0, 1554 }, { 135, 11, 1033 }, { 19, 0, 16 }, { 147, 11, 16 }, + { 135, 11, 1208 }, { 7, 0, 157 }, { 136, 0, 279 }, { 6, 0, 604 }, + { 136, 0, 391 }, { 13, 10, 455 }, { 15, 10, 99 }, { 15, 10, 129 }, + { 144, 10, 68 }, { 135, 10, 172 }, { 7, 0, 945 }, { 11, 0, 713 }, + { 139, 0, 744 }, { 4, 0, 973 }, { 10, 0, 877 }, { 10, 0, 937 }, + { 10, 0, 938 }, { 140, 0, 711 }, { 139, 0, 1022 }, { 132, 10, 568 }, + { 142, 11, 143 }, { 4, 0, 567 }, { 9, 0, 859 }, { 132, 10, 732 }, + { 7, 0, 1846 }, { 136, 0, 628 }, { 136, 10, 733 }, { 133, 0, 762 }, + { 4, 10, 428 }, { 135, 10, 1789 }, { 10, 0, 784 }, { 13, 0, 191 }, + { 7, 10, 2015 }, { 140, 10, 665 }, { 133, 0, 298 }, { 7, 0, 633 }, + { 7, 0, 905 }, { 7, 0, 909 }, { 7, 0, 1538 }, { 9, 0, 767 }, + { 140, 0, 636 }, { 138, 10, 806 }, { 132, 0, 795 }, { 139, 0, 301 }, + { 135, 0, 1970 }, { 5, 11, 625 }, { 135, 11, 1617 }, { 135, 11, 275 }, + { 7, 11, 37 }, { 8, 11, 425 }, { 8, 11, 693 }, { 9, 11, 720 }, + { 10, 11, 380 }, { 10, 11, 638 }, { 11, 11, 273 }, { 11, 11, 307 }, + { 11, 11, 473 }, { 12, 11, 61 }, { 143, 11, 43 }, { 135, 11, 198 }, + { 134, 0, 1236 }, { 7, 0, 369 }, { 12, 0, 644 }, { 12, 0, 645 }, + { 144, 0, 90 }, { 19, 0, 15 }, { 149, 0, 27 }, { 6, 0, 71 }, + { 7, 0, 845 }, { 8, 0, 160 }, { 9, 0, 318 }, { 6, 10, 1623 }, + { 134, 10, 1681 }, { 134, 0, 1447 }, { 134, 0, 1255 }, { 138, 0, 735 }, + { 8, 0, 76 }, { 132, 11, 168 }, { 6, 10, 1748 }, { 8, 10, 715 }, + { 9, 10, 802 }, { 10, 10, 46 }, { 10, 10, 819 }, { 13, 10, 308 }, + { 14, 10, 351 }, { 14, 10, 363 }, { 146, 10, 67 }, { 135, 11, 91 }, + { 6, 0, 474 }, { 4, 10, 63 }, { 133, 10, 347 }, { 133, 10, 749 }, + { 138, 0, 841 }, { 133, 10, 366 }, { 6, 0, 836 }, { 132, 11, 225 }, + { 135, 0, 1622 }, { 135, 10, 89 }, { 140, 0, 735 }, { 134, 0, 1601 }, + { 138, 11, 145 }, { 6, 0, 1390 }, { 137, 0, 804 }, { 142, 0, 394 }, + { 6, 11, 15 }, { 7, 11, 70 }, { 10, 11, 240 }, { 147, 11, 93 }, + { 6, 0, 96 }, { 135, 0, 1426 }, { 4, 0, 651 }, { 133, 0, 289 }, + { 7, 11, 956 }, { 7, 10, 977 }, { 7, 11, 1157 }, { 7, 11, 1506 }, + { 7, 11, 1606 }, { 7, 11, 1615 }, { 7, 11, 1619 }, { 7, 11, 1736 }, + { 7, 11, 1775 }, { 8, 11, 590 }, { 9, 11, 324 }, { 9, 11, 736 }, + { 9, 11, 774 }, { 9, 11, 776 }, { 9, 11, 784 }, { 10, 11, 567 }, + { 10, 11, 708 }, { 11, 11, 518 }, { 11, 11, 613 }, { 11, 11, 695 }, + { 11, 11, 716 }, { 11, 11, 739 }, { 11, 11, 770 }, { 11, 11, 771 }, + { 11, 11, 848 }, { 11, 11, 857 }, { 11, 11, 931 }, { 11, 11, 947 }, + { 12, 11, 326 }, { 12, 11, 387 }, { 12, 11, 484 }, { 12, 11, 528 }, + { 12, 11, 552 }, { 12, 11, 613 }, { 13, 11, 189 }, { 13, 11, 256 }, + { 13, 11, 340 }, { 13, 11, 432 }, { 13, 11, 436 }, { 13, 11, 440 }, + { 13, 11, 454 }, { 14, 11, 174 }, { 14, 11, 220 }, { 14, 11, 284 }, + { 14, 11, 390 }, { 145, 11, 121 }, { 7, 0, 688 }, { 8, 0, 35 }, + { 9, 0, 511 }, { 10, 0, 767 }, { 147, 0, 118 }, { 134, 0, 667 }, + { 4, 0, 513 }, { 5, 10, 824 }, { 133, 10, 941 }, { 7, 10, 440 }, + { 8, 10, 230 }, { 139, 10, 106 }, { 134, 0, 2034 }, { 135, 11, 1399 }, + { 143, 11, 66 }, { 135, 11, 1529 }, { 4, 11, 145 }, { 6, 11, 176 }, + { 7, 11, 395 }, { 9, 11, 562 }, { 144, 11, 28 }, { 132, 11, 501 }, + { 132, 0, 704 }, { 134, 0, 1524 }, { 7, 0, 1078 }, { 134, 11, 464 }, + { 6, 11, 509 }, { 10, 11, 82 }, { 20, 11, 91 }, { 151, 11, 13 }, + { 4, 0, 720 }, { 133, 0, 306 }, { 133, 0, 431 }, { 7, 0, 1196 }, + { 4, 10, 914 }, { 5, 10, 800 }, { 133, 10, 852 }, { 135, 11, 1189 }, + { 10, 0, 54 }, { 141, 10, 115 }, { 7, 10, 564 }, { 142, 10, 168 }, + { 5, 0, 464 }, { 6, 0, 236 }, { 7, 0, 696 }, { 7, 0, 914 }, + { 7, 0, 1108 }, { 7, 0, 1448 }, { 9, 0, 15 }, { 9, 0, 564 }, + { 10, 0, 14 }, { 12, 0, 565 }, { 13, 0, 449 }, { 14, 0, 53 }, + { 15, 0, 13 }, { 16, 0, 64 }, { 17, 0, 41 }, { 4, 10, 918 }, + { 133, 10, 876 }, { 6, 0, 1418 }, { 134, 10, 1764 }, { 4, 10, 92 }, + { 133, 10, 274 }, { 134, 0, 907 }, { 4, 11, 114 }, { 8, 10, 501 }, + { 9, 11, 492 }, { 13, 11, 462 }, { 142, 11, 215 }, { 4, 11, 77 }, + { 5, 11, 361 }, { 6, 11, 139 }, { 6, 11, 401 }, { 6, 11, 404 }, + { 7, 11, 413 }, { 7, 11, 715 }, { 7, 11, 1716 }, { 11, 11, 279 }, + { 12, 11, 179 }, { 12, 11, 258 }, { 13, 11, 244 }, { 142, 11, 358 }, + { 6, 0, 1767 }, { 12, 0, 194 }, { 145, 0, 107 }, { 134, 11, 1717 }, + { 5, 10, 743 }, { 142, 11, 329 }, { 4, 10, 49 }, { 7, 10, 280 }, + { 135, 10, 1633 }, { 5, 0, 840 }, { 7, 11, 1061 }, { 8, 11, 82 }, + { 11, 11, 250 }, { 12, 11, 420 }, { 141, 11, 184 }, { 135, 11, 724 }, + { 134, 0, 900 }, { 136, 10, 47 }, { 134, 0, 1436 }, { 144, 11, 0 }, + { 6, 0, 675 }, { 7, 0, 1008 }, { 7, 0, 1560 }, { 9, 0, 642 }, + { 11, 0, 236 }, { 14, 0, 193 }, { 5, 10, 272 }, { 5, 10, 908 }, + { 5, 10, 942 }, { 8, 10, 197 }, { 9, 10, 47 }, { 11, 10, 538 }, + { 139, 10, 742 }, { 4, 0, 68 }, { 5, 0, 628 }, { 5, 0, 634 }, + { 6, 0, 386 }, { 7, 0, 794 }, { 8, 0, 273 }, { 9, 0, 563 }, + { 10, 0, 105 }, { 10, 0, 171 }, { 11, 0, 94 }, { 139, 0, 354 }, + { 135, 10, 1911 }, { 137, 10, 891 }, { 4, 0, 95 }, { 6, 0, 1297 }, + { 6, 0, 1604 }, { 7, 0, 416 }, { 139, 0, 830 }, { 6, 11, 513 }, + { 135, 11, 1052 }, { 7, 0, 731 }, { 13, 0, 20 }, { 143, 0, 11 }, + { 137, 11, 899 }, { 10, 0, 850 }, { 140, 0, 697 }, { 4, 0, 662 }, + { 7, 11, 1417 }, { 12, 11, 382 }, { 17, 11, 48 }, { 152, 11, 12 }, + { 133, 0, 736 }, { 132, 0, 861 }, { 4, 10, 407 }, { 132, 10, 560 }, + { 141, 10, 490 }, { 6, 11, 545 }, { 7, 11, 565 }, { 7, 11, 1669 }, + { 10, 11, 114 }, { 11, 11, 642 }, { 140, 11, 618 }, { 6, 0, 871 }, + { 134, 0, 1000 }, { 5, 0, 864 }, { 10, 0, 648 }, { 11, 0, 671 }, + { 15, 0, 46 }, { 133, 11, 5 }, { 133, 0, 928 }, { 11, 0, 90 }, + { 13, 0, 7 }, { 4, 10, 475 }, { 11, 10, 35 }, { 13, 10, 71 }, + { 13, 10, 177 }, { 142, 10, 422 }, { 136, 0, 332 }, { 135, 11, 192 }, + { 134, 0, 1055 }, { 136, 11, 763 }, { 11, 0, 986 }, { 140, 0, 682 }, + { 7, 0, 76 }, { 8, 0, 44 }, { 9, 0, 884 }, { 10, 0, 580 }, + { 11, 0, 399 }, { 11, 0, 894 }, { 143, 0, 122 }, { 135, 11, 1237 }, + { 135, 10, 636 }, { 11, 0, 300 }, { 6, 10, 222 }, { 7, 10, 1620 }, + { 8, 10, 409 }, { 137, 10, 693 }, { 4, 11, 87 }, { 5, 11, 250 }, + { 10, 11, 601 }, { 13, 11, 298 }, { 13, 11, 353 }, { 141, 11, 376 }, + { 5, 0, 518 }, { 10, 0, 340 }, { 11, 0, 175 }, { 149, 0, 16 }, + { 140, 0, 771 }, { 6, 0, 1108 }, { 137, 0, 831 }, { 132, 0, 836 }, + { 135, 0, 1852 }, { 4, 0, 957 }, { 6, 0, 1804 }, { 8, 0, 842 }, + { 8, 0, 843 }, { 8, 0, 851 }, { 8, 0, 855 }, { 140, 0, 767 }, + { 135, 11, 814 }, { 4, 11, 57 }, { 7, 11, 1195 }, { 7, 11, 1438 }, + { 7, 11, 1548 }, { 7, 11, 1835 }, { 7, 11, 1904 }, { 9, 11, 757 }, + { 10, 11, 604 }, { 139, 11, 519 }, { 133, 10, 882 }, { 138, 0, 246 }, + { 4, 0, 934 }, { 5, 0, 202 }, { 8, 0, 610 }, { 7, 11, 1897 }, + { 12, 11, 290 }, { 13, 11, 80 }, { 13, 11, 437 }, { 145, 11, 74 }, + { 8, 0, 96 }, { 9, 0, 36 }, { 10, 0, 607 }, { 10, 0, 804 }, + { 10, 0, 832 }, { 11, 0, 423 }, { 11, 0, 442 }, { 12, 0, 309 }, + { 14, 0, 199 }, { 15, 0, 90 }, { 145, 0, 110 }, { 132, 10, 426 }, + { 7, 0, 654 }, { 8, 0, 240 }, { 6, 10, 58 }, { 7, 10, 745 }, + { 7, 10, 1969 }, { 8, 10, 675 }, { 9, 10, 479 }, { 9, 10, 731 }, + { 10, 10, 330 }, { 10, 10, 593 }, { 10, 10, 817 }, { 11, 10, 32 }, + { 11, 10, 133 }, { 11, 10, 221 }, { 145, 10, 68 }, { 9, 0, 13 }, + { 9, 0, 398 }, { 9, 0, 727 }, { 10, 0, 75 }, { 10, 0, 184 }, + { 10, 0, 230 }, { 10, 0, 564 }, { 10, 0, 569 }, { 11, 0, 973 }, + { 12, 0, 70 }, { 12, 0, 189 }, { 13, 0, 57 }, { 141, 0, 257 }, + { 4, 11, 209 }, { 135, 11, 902 }, { 7, 0, 391 }, { 137, 10, 538 }, + { 134, 0, 403 }, { 6, 11, 303 }, { 7, 11, 335 }, { 7, 11, 1437 }, + { 7, 11, 1668 }, { 8, 11, 553 }, { 8, 11, 652 }, { 8, 11, 656 }, + { 9, 11, 558 }, { 11, 11, 743 }, { 149, 11, 18 }, { 132, 11, 559 }, + { 11, 0, 75 }, { 142, 0, 267 }, { 6, 0, 815 }, { 141, 11, 2 }, + { 141, 0, 366 }, { 137, 0, 631 }, { 133, 11, 1017 }, { 5, 0, 345 }, + { 135, 0, 1016 }, { 133, 11, 709 }, { 134, 11, 1745 }, { 133, 10, 566 }, + { 7, 0, 952 }, { 6, 10, 48 }, { 9, 10, 139 }, { 10, 10, 399 }, + { 11, 10, 469 }, { 12, 10, 634 }, { 141, 10, 223 }, { 133, 0, 673 }, + { 9, 0, 850 }, { 7, 11, 8 }, { 136, 11, 206 }, { 6, 0, 662 }, + { 149, 0, 35 }, { 4, 0, 287 }, { 133, 0, 1018 }, { 6, 10, 114 }, + { 7, 10, 1224 }, { 7, 10, 1556 }, { 136, 10, 3 }, { 8, 10, 576 }, + { 137, 10, 267 }, { 4, 0, 884 }, { 5, 0, 34 }, { 10, 0, 724 }, + { 12, 0, 444 }, { 13, 0, 354 }, { 18, 0, 32 }, { 23, 0, 24 }, + { 23, 0, 31 }, { 152, 0, 5 }, { 133, 10, 933 }, { 132, 11, 776 }, + { 138, 0, 151 }, { 136, 0, 427 }, { 134, 0, 382 }, { 132, 0, 329 }, + { 9, 0, 846 }, { 10, 0, 827 }, { 138, 11, 33 }, { 9, 0, 279 }, + { 10, 0, 407 }, { 14, 0, 84 }, { 22, 0, 18 }, { 135, 11, 1297 }, + { 136, 11, 406 }, { 132, 0, 906 }, { 136, 0, 366 }, { 134, 0, 843 }, + { 134, 0, 1443 }, { 135, 0, 1372 }, { 138, 0, 992 }, { 4, 0, 123 }, + { 5, 0, 605 }, { 7, 0, 1509 }, { 136, 0, 36 }, { 132, 0, 649 }, + { 8, 11, 175 }, { 10, 11, 168 }, { 138, 11, 573 }, { 133, 0, 767 }, + { 134, 0, 1018 }, { 135, 11, 1305 }, { 12, 10, 30 }, { 13, 10, 148 }, + { 14, 10, 87 }, { 14, 10, 182 }, { 16, 10, 42 }, { 148, 10, 70 }, + { 134, 11, 607 }, { 4, 0, 273 }, { 5, 0, 658 }, { 133, 0, 995 }, + { 6, 0, 72 }, { 139, 11, 174 }, { 10, 0, 483 }, { 12, 0, 368 }, + { 7, 10, 56 }, { 7, 10, 1989 }, { 8, 10, 337 }, { 8, 10, 738 }, + { 9, 10, 600 }, { 13, 10, 447 }, { 142, 10, 92 }, { 5, 11, 784 }, + { 138, 10, 666 }, { 135, 0, 1345 }, { 139, 11, 882 }, { 134, 0, 1293 }, + { 133, 0, 589 }, { 134, 0, 1988 }, { 5, 0, 117 }, { 6, 0, 514 }, + { 6, 0, 541 }, { 7, 0, 1164 }, { 7, 0, 1436 }, { 8, 0, 220 }, + { 8, 0, 648 }, { 10, 0, 688 }, { 139, 0, 560 }, { 136, 0, 379 }, + { 5, 0, 686 }, { 7, 10, 866 }, { 135, 10, 1163 }, { 132, 10, 328 }, + { 9, 11, 14 }, { 9, 11, 441 }, { 10, 11, 306 }, { 139, 11, 9 }, + { 4, 10, 101 }, { 135, 10, 1171 }, { 5, 10, 833 }, { 136, 10, 744 }, + { 5, 11, 161 }, { 7, 11, 839 }, { 135, 11, 887 }, { 7, 0, 196 }, + { 10, 0, 765 }, { 11, 0, 347 }, { 11, 0, 552 }, { 11, 0, 790 }, + { 12, 0, 263 }, { 13, 0, 246 }, { 13, 0, 270 }, { 13, 0, 395 }, + { 14, 0, 176 }, { 14, 0, 190 }, { 14, 0, 398 }, { 14, 0, 412 }, + { 15, 0, 32 }, { 15, 0, 63 }, { 16, 0, 88 }, { 147, 0, 105 }, + { 6, 10, 9 }, { 6, 10, 397 }, { 7, 10, 53 }, { 7, 10, 1742 }, + { 10, 10, 632 }, { 11, 10, 828 }, { 140, 10, 146 }, { 5, 0, 381 }, + { 135, 0, 1792 }, { 134, 0, 1452 }, { 135, 11, 429 }, { 8, 0, 367 }, + { 10, 0, 760 }, { 14, 0, 79 }, { 20, 0, 17 }, { 152, 0, 0 }, + { 7, 0, 616 }, { 138, 0, 413 }, { 11, 10, 417 }, { 12, 10, 223 }, + { 140, 10, 265 }, { 7, 11, 1611 }, { 13, 11, 14 }, { 15, 11, 44 }, + { 19, 11, 13 }, { 148, 11, 76 }, { 135, 0, 1229 }, { 6, 0, 120 }, + { 7, 0, 1188 }, { 7, 0, 1710 }, { 8, 0, 286 }, { 9, 0, 667 }, + { 11, 0, 592 }, { 139, 0, 730 }, { 135, 11, 1814 }, { 135, 0, 1146 }, + { 4, 10, 186 }, { 5, 10, 157 }, { 8, 10, 168 }, { 138, 10, 6 }, + { 4, 0, 352 }, { 135, 0, 687 }, { 4, 0, 192 }, { 5, 0, 49 }, + { 6, 0, 200 }, { 6, 0, 293 }, { 6, 0, 1696 }, { 135, 0, 1151 }, + { 133, 10, 875 }, { 5, 10, 773 }, { 5, 10, 991 }, { 6, 10, 1635 }, + { 134, 10, 1788 }, { 7, 10, 111 }, { 136, 10, 581 }, { 6, 0, 935 }, + { 134, 0, 1151 }, { 134, 0, 1050 }, { 132, 0, 650 }, { 132, 0, 147 }, + { 11, 0, 194 }, { 12, 0, 62 }, { 12, 0, 88 }, { 11, 11, 194 }, + { 12, 11, 62 }, { 140, 11, 88 }, { 6, 0, 339 }, { 135, 0, 923 }, + { 134, 10, 1747 }, { 7, 11, 643 }, { 136, 11, 236 }, { 133, 0, 934 }, + { 7, 10, 1364 }, { 7, 10, 1907 }, { 141, 10, 158 }, { 132, 10, 659 }, + { 4, 10, 404 }, { 135, 10, 675 }, { 7, 11, 581 }, { 9, 11, 644 }, + { 137, 11, 699 }, { 13, 0, 211 }, { 14, 0, 133 }, { 14, 0, 204 }, + { 15, 0, 64 }, { 15, 0, 69 }, { 15, 0, 114 }, { 16, 0, 10 }, + { 19, 0, 23 }, { 19, 0, 35 }, { 19, 0, 39 }, { 19, 0, 51 }, + { 19, 0, 71 }, { 19, 0, 75 }, { 152, 0, 15 }, { 133, 10, 391 }, + { 5, 11, 54 }, { 135, 11, 1513 }, { 7, 0, 222 }, { 8, 0, 341 }, + { 5, 10, 540 }, { 134, 10, 1697 }, { 134, 10, 78 }, { 132, 11, 744 }, + { 136, 0, 293 }, { 137, 11, 701 }, { 7, 11, 930 }, { 10, 11, 402 }, + { 10, 11, 476 }, { 13, 11, 452 }, { 18, 11, 55 }, { 147, 11, 104 }, + { 132, 0, 637 }, { 133, 10, 460 }, { 8, 11, 50 }, { 137, 11, 624 }, + { 132, 11, 572 }, { 134, 0, 1159 }, { 4, 10, 199 }, { 139, 10, 34 }, + { 134, 0, 847 }, { 134, 10, 388 }, { 6, 11, 43 }, { 7, 11, 38 }, + { 8, 11, 248 }, { 9, 11, 504 }, { 138, 11, 513 }, { 9, 0, 683 }, + { 4, 10, 511 }, { 6, 10, 608 }, { 9, 10, 333 }, { 10, 10, 602 }, + { 11, 10, 441 }, { 11, 10, 723 }, { 11, 10, 976 }, { 140, 10, 357 }, + { 9, 0, 867 }, { 138, 0, 837 }, { 6, 0, 944 }, { 135, 11, 326 }, + { 135, 0, 1809 }, { 5, 10, 938 }, { 7, 11, 783 }, { 136, 10, 707 }, + { 133, 11, 766 }, { 133, 11, 363 }, { 6, 0, 170 }, { 7, 0, 1080 }, + { 8, 0, 395 }, { 8, 0, 487 }, { 141, 0, 147 }, { 6, 11, 258 }, + { 140, 11, 409 }, { 4, 0, 535 }, { 8, 0, 618 }, { 5, 11, 249 }, + { 148, 11, 82 }, { 6, 0, 1379 }, { 149, 11, 15 }, { 135, 0, 1625 }, + { 150, 0, 23 }, { 5, 11, 393 }, { 6, 11, 378 }, { 7, 11, 1981 }, + { 9, 11, 32 }, { 9, 11, 591 }, { 10, 11, 685 }, { 10, 11, 741 }, + { 142, 11, 382 }, { 133, 11, 788 }, { 7, 11, 1968 }, { 10, 11, 19 }, + { 139, 11, 911 }, { 7, 11, 1401 }, { 135, 11, 1476 }, { 4, 11, 61 }, + { 5, 11, 58 }, { 5, 11, 171 }, { 5, 11, 635 }, { 5, 11, 683 }, + { 5, 11, 700 }, { 6, 11, 291 }, { 6, 11, 566 }, { 7, 11, 1650 }, + { 11, 11, 523 }, { 12, 11, 273 }, { 12, 11, 303 }, { 15, 11, 39 }, + { 143, 11, 111 }, { 6, 10, 469 }, { 7, 10, 1709 }, { 138, 10, 515 }, + { 4, 0, 778 }, { 134, 11, 589 }, { 132, 0, 46 }, { 5, 0, 811 }, + { 6, 0, 1679 }, { 6, 0, 1714 }, { 135, 0, 2032 }, { 7, 0, 1458 }, + { 9, 0, 407 }, { 11, 0, 15 }, { 12, 0, 651 }, { 149, 0, 37 }, + { 7, 0, 938 }, { 132, 10, 500 }, { 6, 0, 34 }, { 7, 0, 69 }, + { 7, 0, 1089 }, { 7, 0, 1281 }, { 8, 0, 708 }, { 8, 0, 721 }, + { 9, 0, 363 }, { 148, 0, 98 }, { 10, 11, 231 }, { 147, 11, 124 }, + { 7, 11, 726 }, { 152, 11, 9 }, { 5, 10, 68 }, { 134, 10, 383 }, + { 136, 11, 583 }, { 4, 11, 917 }, { 133, 11, 1005 }, { 11, 10, 216 }, + { 139, 10, 340 }, { 135, 11, 1675 }, { 8, 0, 441 }, { 10, 0, 314 }, + { 143, 0, 3 }, { 132, 11, 919 }, { 4, 10, 337 }, { 6, 10, 353 }, + { 7, 10, 1934 }, { 8, 10, 488 }, { 137, 10, 429 }, { 7, 0, 889 }, + { 7, 10, 1795 }, { 8, 10, 259 }, { 9, 10, 135 }, { 9, 10, 177 }, + { 9, 10, 860 }, { 10, 10, 825 }, { 11, 10, 115 }, { 11, 10, 370 }, + { 11, 10, 405 }, { 11, 10, 604 }, { 12, 10, 10 }, { 12, 10, 667 }, + { 12, 10, 669 }, { 13, 10, 76 }, { 14, 10, 310 }, { 15, 10, 76 }, + { 15, 10, 147 }, { 148, 10, 23 }, { 4, 10, 15 }, { 4, 11, 255 }, + { 5, 10, 22 }, { 5, 11, 302 }, { 6, 11, 132 }, { 6, 10, 244 }, + { 7, 10, 40 }, { 7, 11, 128 }, { 7, 10, 200 }, { 7, 11, 283 }, + { 7, 10, 906 }, { 7, 10, 1199 }, { 7, 11, 1299 }, { 9, 10, 616 }, + { 10, 11, 52 }, { 10, 11, 514 }, { 10, 10, 716 }, { 11, 10, 635 }, + { 11, 10, 801 }, { 11, 11, 925 }, { 12, 10, 458 }, { 13, 11, 92 }, + { 142, 11, 309 }, { 132, 0, 462 }, { 137, 11, 173 }, { 135, 10, 1735 }, + { 8, 0, 525 }, { 5, 10, 598 }, { 7, 10, 791 }, { 8, 10, 108 }, + { 137, 10, 123 }, { 5, 0, 73 }, { 6, 0, 23 }, { 134, 0, 338 }, + { 132, 0, 676 }, { 132, 10, 683 }, { 7, 0, 725 }, { 8, 0, 498 }, + { 139, 0, 268 }, { 12, 0, 21 }, { 151, 0, 7 }, { 135, 0, 773 }, + { 4, 10, 155 }, { 135, 10, 1689 }, { 4, 0, 164 }, { 5, 0, 730 }, + { 5, 10, 151 }, { 5, 10, 741 }, { 6, 11, 210 }, { 7, 10, 498 }, + { 7, 10, 870 }, { 7, 10, 1542 }, { 12, 10, 213 }, { 14, 10, 36 }, + { 14, 10, 391 }, { 17, 10, 111 }, { 18, 10, 6 }, { 18, 10, 46 }, + { 18, 10, 151 }, { 19, 10, 36 }, { 20, 10, 32 }, { 20, 10, 56 }, + { 20, 10, 69 }, { 20, 10, 102 }, { 21, 10, 4 }, { 22, 10, 8 }, + { 22, 10, 10 }, { 22, 10, 14 }, { 150, 10, 31 }, { 4, 10, 624 }, + { 135, 10, 1752 }, { 4, 0, 583 }, { 9, 0, 936 }, { 15, 0, 214 }, + { 18, 0, 199 }, { 24, 0, 26 }, { 134, 11, 588 }, { 7, 0, 1462 }, + { 11, 0, 659 }, { 4, 11, 284 }, { 134, 11, 223 }, { 133, 0, 220 }, + { 139, 0, 803 }, { 132, 0, 544 }, { 4, 10, 492 }, { 133, 10, 451 }, + { 16, 0, 98 }, { 148, 0, 119 }, { 4, 11, 218 }, { 7, 11, 526 }, + { 143, 11, 137 }, { 135, 10, 835 }, { 4, 11, 270 }, { 5, 11, 192 }, + { 6, 11, 332 }, { 7, 11, 1322 }, { 13, 11, 9 }, { 13, 10, 70 }, + { 14, 11, 104 }, { 142, 11, 311 }, { 132, 10, 539 }, { 140, 11, 661 }, + { 5, 0, 176 }, { 6, 0, 437 }, { 6, 0, 564 }, { 11, 0, 181 }, + { 141, 0, 183 }, { 135, 0, 1192 }, { 6, 10, 113 }, { 135, 10, 436 }, + { 136, 10, 718 }, { 135, 10, 520 }, { 135, 0, 1878 }, { 140, 11, 196 }, + { 7, 11, 379 }, { 8, 11, 481 }, { 137, 11, 377 }, { 5, 11, 1003 }, + { 6, 11, 149 }, { 137, 11, 746 }, { 8, 11, 262 }, { 9, 11, 627 }, + { 10, 11, 18 }, { 11, 11, 214 }, { 11, 11, 404 }, { 11, 11, 457 }, + { 11, 11, 780 }, { 11, 11, 849 }, { 11, 11, 913 }, { 13, 11, 330 }, + { 13, 11, 401 }, { 142, 11, 200 }, { 149, 0, 26 }, { 136, 11, 304 }, + { 132, 11, 142 }, { 135, 0, 944 }, { 4, 0, 790 }, { 5, 0, 273 }, + { 134, 0, 394 }, { 134, 0, 855 }, { 4, 0, 135 }, { 6, 0, 127 }, + { 7, 0, 1185 }, { 7, 0, 1511 }, { 8, 0, 613 }, { 11, 0, 5 }, + { 12, 0, 336 }, { 12, 0, 495 }, { 12, 0, 586 }, { 12, 0, 660 }, + { 12, 0, 668 }, { 14, 0, 385 }, { 15, 0, 118 }, { 17, 0, 20 }, + { 146, 0, 98 }, { 6, 0, 230 }, { 9, 0, 752 }, { 18, 0, 109 }, + { 12, 10, 610 }, { 13, 10, 431 }, { 144, 10, 59 }, { 7, 0, 1954 }, + { 135, 11, 925 }, { 4, 11, 471 }, { 5, 11, 51 }, { 6, 11, 602 }, + { 8, 11, 484 }, { 10, 11, 195 }, { 140, 11, 159 }, { 132, 10, 307 }, + { 136, 11, 688 }, { 132, 11, 697 }, { 7, 11, 812 }, { 7, 11, 1261 }, + { 7, 11, 1360 }, { 9, 11, 632 }, { 140, 11, 352 }, { 5, 0, 162 }, + { 8, 0, 68 }, { 133, 10, 964 }, { 4, 0, 654 }, { 136, 11, 212 }, + { 4, 0, 156 }, { 7, 0, 998 }, { 7, 0, 1045 }, { 7, 0, 1860 }, + { 9, 0, 48 }, { 9, 0, 692 }, { 11, 0, 419 }, { 139, 0, 602 }, + { 133, 11, 221 }, { 4, 11, 373 }, { 5, 11, 283 }, { 6, 11, 480 }, + { 135, 11, 609 }, { 142, 11, 216 }, { 132, 0, 240 }, { 6, 11, 192 }, + { 9, 11, 793 }, { 145, 11, 55 }, { 4, 10, 75 }, { 5, 10, 180 }, + { 6, 10, 500 }, { 7, 10, 58 }, { 7, 10, 710 }, { 138, 10, 645 }, + { 4, 11, 132 }, { 5, 11, 69 }, { 5, 10, 649 }, { 135, 11, 1242 }, + { 6, 10, 276 }, { 7, 10, 282 }, { 7, 10, 879 }, { 7, 10, 924 }, + { 8, 10, 459 }, { 9, 10, 599 }, { 9, 10, 754 }, { 11, 10, 574 }, + { 12, 10, 128 }, { 12, 10, 494 }, { 13, 10, 52 }, { 13, 10, 301 }, + { 15, 10, 30 }, { 143, 10, 132 }, { 132, 10, 200 }, { 4, 11, 111 }, + { 135, 11, 302 }, { 9, 0, 197 }, { 10, 0, 300 }, { 12, 0, 473 }, + { 13, 0, 90 }, { 141, 0, 405 }, { 132, 11, 767 }, { 6, 11, 42 }, + { 7, 11, 1416 }, { 7, 11, 1590 }, { 7, 11, 2005 }, { 8, 11, 131 }, + { 8, 11, 466 }, { 9, 11, 672 }, { 13, 11, 252 }, { 148, 11, 103 }, + { 8, 0, 958 }, { 8, 0, 999 }, { 10, 0, 963 }, { 138, 0, 1001 }, + { 135, 10, 1621 }, { 135, 0, 858 }, { 4, 0, 606 }, { 137, 11, 444 }, + { 6, 11, 44 }, { 136, 11, 368 }, { 139, 11, 172 }, { 4, 11, 570 }, + { 133, 11, 120 }, { 139, 11, 624 }, { 7, 0, 1978 }, { 8, 0, 676 }, + { 6, 10, 225 }, { 137, 10, 211 }, { 7, 0, 972 }, { 11, 0, 102 }, + { 136, 10, 687 }, { 6, 11, 227 }, { 135, 11, 1589 }, { 8, 10, 58 }, + { 9, 10, 724 }, { 11, 10, 809 }, { 13, 10, 113 }, { 145, 10, 72 }, + { 4, 0, 361 }, { 133, 0, 315 }, { 132, 0, 461 }, { 6, 10, 345 }, + { 135, 10, 1247 }, { 132, 0, 472 }, { 8, 10, 767 }, { 8, 10, 803 }, + { 9, 10, 301 }, { 137, 10, 903 }, { 135, 11, 1333 }, { 135, 11, 477 }, + { 7, 10, 1949 }, { 136, 10, 674 }, { 6, 0, 905 }, { 138, 0, 747 }, + { 133, 0, 155 }, { 134, 10, 259 }, { 7, 0, 163 }, { 8, 0, 319 }, + { 9, 0, 402 }, { 10, 0, 24 }, { 10, 0, 681 }, { 11, 0, 200 }, + { 12, 0, 253 }, { 12, 0, 410 }, { 142, 0, 219 }, { 5, 0, 475 }, + { 7, 0, 1780 }, { 9, 0, 230 }, { 11, 0, 297 }, { 11, 0, 558 }, + { 14, 0, 322 }, { 19, 0, 76 }, { 6, 11, 1667 }, { 7, 11, 2036 }, + { 138, 11, 600 }, { 136, 10, 254 }, { 6, 0, 848 }, { 135, 0, 1956 }, + { 6, 11, 511 }, { 140, 11, 132 }, { 5, 11, 568 }, { 6, 11, 138 }, + { 135, 11, 1293 }, { 6, 0, 631 }, { 137, 0, 838 }, { 149, 0, 36 }, + { 4, 11, 565 }, { 8, 11, 23 }, { 136, 11, 827 }, { 5, 0, 944 }, + { 134, 0, 1769 }, { 4, 0, 144 }, { 6, 0, 842 }, { 6, 0, 1400 }, + { 4, 11, 922 }, { 133, 11, 1023 }, { 133, 10, 248 }, { 9, 10, 800 }, + { 10, 10, 693 }, { 11, 10, 482 }, { 11, 10, 734 }, { 139, 10, 789 }, + { 7, 11, 1002 }, { 139, 11, 145 }, { 4, 10, 116 }, { 5, 10, 95 }, + { 5, 10, 445 }, { 7, 10, 1688 }, { 8, 10, 29 }, { 9, 10, 272 }, + { 11, 10, 509 }, { 139, 10, 915 }, { 14, 0, 369 }, { 146, 0, 72 }, + { 135, 10, 1641 }, { 132, 11, 740 }, { 133, 10, 543 }, { 140, 11, 116 }, + { 6, 0, 247 }, { 9, 0, 555 }, { 5, 10, 181 }, { 136, 10, 41 }, + { 133, 10, 657 }, { 136, 0, 996 }, { 138, 10, 709 }, { 7, 0, 189 }, + { 8, 10, 202 }, { 138, 10, 536 }, { 136, 11, 402 }, { 4, 11, 716 }, + { 141, 11, 31 }, { 10, 0, 280 }, { 138, 0, 797 }, { 9, 10, 423 }, + { 140, 10, 89 }, { 8, 10, 113 }, { 9, 10, 877 }, { 10, 10, 554 }, + { 11, 10, 83 }, { 12, 10, 136 }, { 147, 10, 109 }, { 133, 10, 976 }, + { 7, 0, 746 }, { 132, 10, 206 }, { 136, 0, 526 }, { 139, 0, 345 }, + { 136, 0, 1017 }, { 8, 11, 152 }, { 9, 11, 53 }, { 9, 11, 268 }, + { 9, 11, 901 }, { 10, 11, 518 }, { 10, 11, 829 }, { 11, 11, 188 }, + { 13, 11, 74 }, { 14, 11, 46 }, { 15, 11, 17 }, { 15, 11, 33 }, + { 17, 11, 40 }, { 18, 11, 36 }, { 19, 11, 20 }, { 22, 11, 1 }, + { 152, 11, 2 }, { 133, 11, 736 }, { 136, 11, 532 }, { 5, 0, 428 }, + { 138, 0, 651 }, { 135, 11, 681 }, { 135, 0, 1162 }, { 7, 0, 327 }, + { 13, 0, 230 }, { 17, 0, 113 }, { 8, 10, 226 }, { 10, 10, 537 }, + { 11, 10, 570 }, { 11, 10, 605 }, { 11, 10, 799 }, { 11, 10, 804 }, + { 12, 10, 85 }, { 12, 10, 516 }, { 12, 10, 623 }, { 12, 11, 677 }, + { 13, 10, 361 }, { 14, 10, 77 }, { 14, 10, 78 }, { 147, 10, 110 }, + { 4, 0, 792 }, { 7, 0, 1717 }, { 10, 0, 546 }, { 132, 10, 769 }, + { 4, 11, 684 }, { 136, 11, 384 }, { 132, 10, 551 }, { 134, 0, 1203 }, + { 9, 10, 57 }, { 9, 10, 459 }, { 10, 10, 425 }, { 11, 10, 119 }, + { 12, 10, 184 }, { 12, 10, 371 }, { 13, 10, 358 }, { 145, 10, 51 }, + { 5, 0, 672 }, { 5, 10, 814 }, { 8, 10, 10 }, { 9, 10, 421 }, + { 9, 10, 729 }, { 10, 10, 609 }, { 139, 10, 689 }, { 138, 0, 189 }, + { 134, 10, 624 }, { 7, 11, 110 }, { 7, 11, 188 }, { 8, 11, 290 }, + { 8, 11, 591 }, { 9, 11, 382 }, { 9, 11, 649 }, { 11, 11, 71 }, + { 11, 11, 155 }, { 11, 11, 313 }, { 12, 11, 5 }, { 13, 11, 325 }, + { 142, 11, 287 }, { 133, 0, 99 }, { 6, 0, 1053 }, { 135, 0, 298 }, + { 7, 11, 360 }, { 7, 11, 425 }, { 9, 11, 66 }, { 9, 11, 278 }, + { 138, 11, 644 }, { 4, 0, 397 }, { 136, 0, 555 }, { 137, 10, 269 }, + { 132, 10, 528 }, { 4, 11, 900 }, { 133, 11, 861 }, { 6, 0, 1157 }, + { 5, 11, 254 }, { 7, 11, 985 }, { 136, 11, 73 }, { 7, 11, 1959 }, + { 136, 11, 683 }, { 12, 0, 398 }, { 20, 0, 39 }, { 21, 0, 11 }, + { 150, 0, 41 }, { 4, 0, 485 }, { 7, 0, 353 }, { 135, 0, 1523 }, + { 6, 0, 366 }, { 7, 0, 1384 }, { 135, 0, 1601 }, { 138, 0, 787 }, + { 137, 0, 282 }, { 5, 10, 104 }, { 6, 10, 173 }, { 135, 10, 1631 }, + { 139, 11, 146 }, { 4, 0, 157 }, { 133, 0, 471 }, { 134, 0, 941 }, + { 132, 11, 725 }, { 7, 0, 1336 }, { 8, 10, 138 }, { 8, 10, 342 }, + { 9, 10, 84 }, { 10, 10, 193 }, { 11, 10, 883 }, { 140, 10, 359 }, + { 134, 11, 196 }, { 136, 0, 116 }, { 133, 11, 831 }, { 134, 0, 787 }, + { 134, 10, 95 }, { 6, 10, 406 }, { 10, 10, 409 }, { 10, 10, 447 }, + { 11, 10, 44 }, { 140, 10, 100 }, { 5, 0, 160 }, { 7, 0, 363 }, + { 7, 0, 589 }, { 10, 0, 170 }, { 141, 0, 55 }, { 134, 0, 1815 }, + { 132, 0, 866 }, { 6, 0, 889 }, { 6, 0, 1067 }, { 6, 0, 1183 }, + { 4, 11, 321 }, { 134, 11, 569 }, { 5, 11, 848 }, { 134, 11, 66 }, + { 4, 11, 36 }, { 6, 10, 1636 }, { 7, 11, 1387 }, { 10, 11, 205 }, + { 11, 11, 755 }, { 141, 11, 271 }, { 132, 0, 689 }, { 9, 0, 820 }, + { 4, 10, 282 }, { 7, 10, 1034 }, { 11, 10, 398 }, { 11, 10, 634 }, + { 12, 10, 1 }, { 12, 10, 79 }, { 12, 10, 544 }, { 14, 10, 237 }, + { 17, 10, 10 }, { 146, 10, 20 }, { 4, 0, 108 }, { 7, 0, 804 }, + { 139, 0, 498 }, { 132, 11, 887 }, { 6, 0, 1119 }, { 135, 11, 620 }, + { 6, 11, 165 }, { 138, 11, 388 }, { 5, 0, 244 }, { 5, 10, 499 }, + { 6, 10, 476 }, { 7, 10, 600 }, { 7, 10, 888 }, { 135, 10, 1096 }, + { 140, 0, 609 }, { 135, 0, 1005 }, { 4, 0, 412 }, { 133, 0, 581 }, + { 4, 11, 719 }, { 135, 11, 155 }, { 7, 10, 296 }, { 7, 10, 596 }, + { 8, 10, 560 }, { 8, 10, 586 }, { 9, 10, 612 }, { 11, 10, 304 }, + { 12, 10, 46 }, { 13, 10, 89 }, { 14, 10, 112 }, { 145, 10, 122 }, + { 4, 0, 895 }, { 133, 0, 772 }, { 142, 11, 307 }, { 135, 0, 1898 }, + { 4, 0, 926 }, { 133, 0, 983 }, { 4, 11, 353 }, { 6, 11, 146 }, + { 6, 11, 1789 }, { 7, 11, 288 }, { 7, 11, 990 }, { 7, 11, 1348 }, + { 9, 11, 665 }, { 9, 11, 898 }, { 11, 11, 893 }, { 142, 11, 212 }, + { 132, 0, 538 }, { 133, 11, 532 }, { 6, 0, 294 }, { 7, 0, 1267 }, + { 8, 0, 624 }, { 141, 0, 496 }, { 7, 0, 1325 }, { 4, 11, 45 }, + { 135, 11, 1257 }, { 138, 0, 301 }, { 9, 0, 298 }, { 12, 0, 291 }, + { 13, 0, 276 }, { 14, 0, 6 }, { 17, 0, 18 }, { 21, 0, 32 }, + { 7, 10, 1599 }, { 7, 10, 1723 }, { 8, 10, 79 }, { 8, 10, 106 }, + { 8, 10, 190 }, { 8, 10, 302 }, { 8, 10, 383 }, { 8, 10, 713 }, + { 9, 10, 119 }, { 9, 10, 233 }, { 9, 10, 419 }, { 9, 10, 471 }, + { 10, 10, 181 }, { 10, 10, 406 }, { 11, 10, 57 }, { 11, 10, 85 }, + { 11, 10, 120 }, { 11, 10, 177 }, { 11, 10, 296 }, { 11, 10, 382 }, + { 11, 10, 454 }, { 11, 10, 758 }, { 11, 10, 999 }, { 12, 10, 27 }, + { 12, 10, 131 }, { 12, 10, 245 }, { 12, 10, 312 }, { 12, 10, 446 }, + { 12, 10, 454 }, { 13, 10, 98 }, { 13, 10, 426 }, { 13, 10, 508 }, + { 14, 10, 163 }, { 14, 10, 272 }, { 14, 10, 277 }, { 14, 10, 370 }, + { 15, 10, 95 }, { 15, 10, 138 }, { 15, 10, 167 }, { 17, 10, 38 }, + { 148, 10, 96 }, { 132, 0, 757 }, { 134, 0, 1263 }, { 4, 0, 820 }, + { 134, 10, 1759 }, { 133, 0, 722 }, { 136, 11, 816 }, { 138, 10, 372 }, + { 145, 10, 16 }, { 134, 0, 1039 }, { 4, 0, 991 }, { 134, 0, 2028 }, + { 133, 10, 258 }, { 7, 0, 1875 }, { 139, 0, 124 }, { 6, 11, 559 }, + { 6, 11, 1691 }, { 135, 11, 586 }, { 5, 0, 324 }, { 7, 0, 881 }, + { 8, 10, 134 }, { 9, 10, 788 }, { 140, 10, 438 }, { 7, 11, 1823 }, + { 139, 11, 693 }, { 6, 0, 1348 }, { 134, 0, 1545 }, { 134, 0, 911 }, + { 132, 0, 954 }, { 8, 0, 329 }, { 8, 0, 414 }, { 7, 10, 1948 }, + { 135, 10, 2004 }, { 5, 0, 517 }, { 6, 10, 439 }, { 7, 10, 780 }, + { 135, 10, 1040 }, { 132, 0, 816 }, { 5, 10, 1 }, { 6, 10, 81 }, + { 138, 10, 520 }, { 9, 0, 713 }, { 10, 0, 222 }, { 5, 10, 482 }, + { 8, 10, 98 }, { 10, 10, 700 }, { 10, 10, 822 }, { 11, 10, 302 }, + { 11, 10, 778 }, { 12, 10, 50 }, { 12, 10, 127 }, { 12, 10, 396 }, + { 13, 10, 62 }, { 13, 10, 328 }, { 14, 10, 122 }, { 147, 10, 72 }, + { 137, 0, 33 }, { 5, 10, 2 }, { 7, 10, 1494 }, { 136, 10, 589 }, + { 6, 10, 512 }, { 7, 10, 797 }, { 8, 10, 253 }, { 9, 10, 77 }, + { 10, 10, 1 }, { 10, 11, 108 }, { 10, 10, 129 }, { 10, 10, 225 }, + { 11, 11, 116 }, { 11, 10, 118 }, { 11, 10, 226 }, { 11, 10, 251 }, + { 11, 10, 430 }, { 11, 10, 701 }, { 11, 10, 974 }, { 11, 10, 982 }, + { 12, 10, 64 }, { 12, 10, 260 }, { 12, 10, 488 }, { 140, 10, 690 }, + { 134, 11, 456 }, { 133, 11, 925 }, { 5, 0, 150 }, { 7, 0, 106 }, + { 7, 0, 774 }, { 8, 0, 603 }, { 9, 0, 593 }, { 9, 0, 634 }, + { 10, 0, 44 }, { 10, 0, 173 }, { 11, 0, 462 }, { 11, 0, 515 }, + { 13, 0, 216 }, { 13, 0, 288 }, { 142, 0, 400 }, { 137, 10, 347 }, + { 5, 0, 748 }, { 134, 0, 553 }, { 12, 0, 108 }, { 141, 0, 291 }, + { 7, 0, 420 }, { 4, 10, 12 }, { 7, 10, 522 }, { 7, 10, 809 }, + { 8, 10, 797 }, { 141, 10, 88 }, { 6, 11, 193 }, { 7, 11, 240 }, + { 7, 11, 1682 }, { 10, 11, 51 }, { 10, 11, 640 }, { 11, 11, 410 }, + { 13, 11, 82 }, { 14, 11, 247 }, { 14, 11, 331 }, { 142, 11, 377 }, + { 133, 10, 528 }, { 135, 0, 1777 }, { 4, 0, 493 }, { 144, 0, 55 }, + { 136, 11, 633 }, { 139, 0, 81 }, { 6, 0, 980 }, { 136, 0, 321 }, + { 148, 10, 109 }, { 5, 10, 266 }, { 9, 10, 290 }, { 9, 10, 364 }, + { 10, 10, 293 }, { 11, 10, 606 }, { 142, 10, 45 }, { 6, 0, 568 }, + { 7, 0, 112 }, { 7, 0, 1804 }, { 8, 0, 362 }, { 8, 0, 410 }, + { 8, 0, 830 }, { 9, 0, 514 }, { 11, 0, 649 }, { 142, 0, 157 }, + { 4, 0, 74 }, { 6, 0, 510 }, { 6, 10, 594 }, { 9, 10, 121 }, + { 10, 10, 49 }, { 10, 10, 412 }, { 139, 10, 834 }, { 134, 0, 838 }, + { 136, 10, 748 }, { 132, 10, 466 }, { 132, 0, 625 }, { 135, 11, 1443 }, + { 4, 11, 237 }, { 135, 11, 514 }, { 9, 10, 378 }, { 141, 10, 162 }, + { 6, 0, 16 }, { 6, 0, 158 }, { 7, 0, 43 }, { 7, 0, 129 }, + { 7, 0, 181 }, { 8, 0, 276 }, { 8, 0, 377 }, { 10, 0, 523 }, + { 11, 0, 816 }, { 12, 0, 455 }, { 13, 0, 303 }, { 142, 0, 135 }, + { 135, 0, 281 }, { 4, 0, 1 }, { 7, 0, 1143 }, { 7, 0, 1463 }, + { 8, 0, 61 }, { 9, 0, 207 }, { 9, 0, 390 }, { 9, 0, 467 }, + { 139, 0, 836 }, { 6, 11, 392 }, { 7, 11, 65 }, { 135, 11, 2019 }, + { 132, 10, 667 }, { 4, 0, 723 }, { 5, 0, 895 }, { 7, 0, 1031 }, + { 8, 0, 199 }, { 8, 0, 340 }, { 9, 0, 153 }, { 9, 0, 215 }, + { 10, 0, 21 }, { 10, 0, 59 }, { 10, 0, 80 }, { 10, 0, 224 }, + { 10, 0, 838 }, { 11, 0, 229 }, { 11, 0, 652 }, { 12, 0, 192 }, + { 13, 0, 146 }, { 142, 0, 91 }, { 132, 0, 295 }, { 137, 0, 51 }, + { 9, 11, 222 }, { 10, 11, 43 }, { 139, 11, 900 }, { 5, 0, 309 }, + { 140, 0, 211 }, { 5, 0, 125 }, { 8, 0, 77 }, { 138, 0, 15 }, + { 136, 11, 604 }, { 138, 0, 789 }, { 5, 0, 173 }, { 4, 10, 39 }, + { 7, 10, 1843 }, { 8, 10, 407 }, { 11, 10, 144 }, { 140, 10, 523 }, + { 138, 11, 265 }, { 133, 0, 439 }, { 132, 10, 510 }, { 7, 0, 648 }, + { 7, 0, 874 }, { 11, 0, 164 }, { 12, 0, 76 }, { 18, 0, 9 }, + { 7, 10, 1980 }, { 10, 10, 487 }, { 138, 10, 809 }, { 12, 0, 111 }, + { 14, 0, 294 }, { 19, 0, 45 }, { 13, 10, 260 }, { 146, 10, 63 }, + { 133, 11, 549 }, { 134, 10, 570 }, { 4, 0, 8 }, { 7, 0, 1152 }, + { 7, 0, 1153 }, { 7, 0, 1715 }, { 9, 0, 374 }, { 10, 0, 478 }, + { 139, 0, 648 }, { 135, 0, 1099 }, { 5, 0, 575 }, { 6, 0, 354 }, + { 135, 0, 701 }, { 7, 11, 36 }, { 8, 11, 201 }, { 136, 11, 605 }, + { 4, 10, 787 }, { 136, 11, 156 }, { 6, 0, 518 }, { 149, 11, 13 }, + { 140, 11, 224 }, { 134, 0, 702 }, { 132, 10, 516 }, { 5, 11, 724 }, + { 10, 11, 305 }, { 11, 11, 151 }, { 12, 11, 33 }, { 12, 11, 121 }, + { 12, 11, 381 }, { 17, 11, 3 }, { 17, 11, 27 }, { 17, 11, 78 }, + { 18, 11, 18 }, { 19, 11, 54 }, { 149, 11, 5 }, { 8, 0, 87 }, + { 4, 11, 523 }, { 5, 11, 638 }, { 11, 10, 887 }, { 14, 10, 365 }, + { 142, 10, 375 }, { 138, 0, 438 }, { 136, 10, 821 }, { 135, 11, 1908 }, + { 6, 11, 242 }, { 7, 11, 227 }, { 7, 11, 1581 }, { 8, 11, 104 }, + { 9, 11, 113 }, { 9, 11, 220 }, { 9, 11, 427 }, { 10, 11, 74 }, + { 10, 11, 239 }, { 11, 11, 579 }, { 11, 11, 1023 }, { 13, 11, 4 }, + { 13, 11, 204 }, { 13, 11, 316 }, { 18, 11, 95 }, { 148, 11, 86 }, + { 4, 0, 69 }, { 5, 0, 122 }, { 5, 0, 849 }, { 6, 0, 1633 }, + { 9, 0, 656 }, { 138, 0, 464 }, { 7, 0, 1802 }, { 4, 10, 10 }, + { 139, 10, 786 }, { 135, 11, 861 }, { 139, 0, 499 }, { 7, 0, 476 }, + { 7, 0, 1592 }, { 138, 0, 87 }, { 133, 10, 684 }, { 4, 0, 840 }, + { 134, 10, 27 }, { 142, 0, 283 }, { 6, 0, 1620 }, { 7, 11, 1328 }, + { 136, 11, 494 }, { 5, 0, 859 }, { 7, 0, 1160 }, { 8, 0, 107 }, + { 9, 0, 291 }, { 9, 0, 439 }, { 10, 0, 663 }, { 11, 0, 609 }, + { 140, 0, 197 }, { 7, 11, 1306 }, { 8, 11, 505 }, { 9, 11, 482 }, + { 10, 11, 126 }, { 11, 11, 225 }, { 12, 11, 347 }, { 12, 11, 449 }, + { 13, 11, 19 }, { 142, 11, 218 }, { 5, 11, 268 }, { 10, 11, 764 }, + { 12, 11, 120 }, { 13, 11, 39 }, { 145, 11, 127 }, { 145, 10, 56 }, + { 7, 11, 1672 }, { 10, 11, 472 }, { 11, 11, 189 }, { 143, 11, 51 }, + { 6, 10, 342 }, { 6, 10, 496 }, { 8, 10, 275 }, { 137, 10, 206 }, + { 133, 0, 600 }, { 4, 0, 117 }, { 6, 0, 372 }, { 7, 0, 1905 }, + { 142, 0, 323 }, { 4, 10, 909 }, { 5, 10, 940 }, { 135, 11, 1471 }, + { 132, 10, 891 }, { 4, 0, 722 }, { 139, 0, 471 }, { 4, 11, 384 }, + { 135, 11, 1022 }, { 132, 10, 687 }, { 9, 0, 5 }, { 12, 0, 216 }, + { 12, 0, 294 }, { 12, 0, 298 }, { 12, 0, 400 }, { 12, 0, 518 }, + { 13, 0, 229 }, { 143, 0, 139 }, { 135, 11, 1703 }, { 7, 11, 1602 }, + { 10, 11, 698 }, { 12, 11, 212 }, { 141, 11, 307 }, { 6, 10, 41 }, + { 141, 10, 160 }, { 135, 11, 1077 }, { 9, 11, 159 }, { 11, 11, 28 }, + { 140, 11, 603 }, { 4, 0, 514 }, { 7, 0, 1304 }, { 138, 0, 477 }, + { 134, 0, 1774 }, { 9, 0, 88 }, { 139, 0, 270 }, { 5, 0, 12 }, + { 7, 0, 375 }, { 9, 0, 438 }, { 134, 10, 1718 }, { 132, 11, 515 }, + { 136, 10, 778 }, { 8, 11, 632 }, { 8, 11, 697 }, { 137, 11, 854 }, + { 6, 0, 362 }, { 6, 0, 997 }, { 146, 0, 51 }, { 7, 0, 816 }, + { 7, 0, 1241 }, { 9, 0, 283 }, { 9, 0, 520 }, { 10, 0, 213 }, + { 10, 0, 307 }, { 10, 0, 463 }, { 10, 0, 671 }, { 10, 0, 746 }, + { 11, 0, 401 }, { 11, 0, 794 }, { 12, 0, 517 }, { 18, 0, 107 }, + { 147, 0, 115 }, { 133, 10, 115 }, { 150, 11, 28 }, { 4, 11, 136 }, + { 133, 11, 551 }, { 142, 10, 314 }, { 132, 0, 258 }, { 6, 0, 22 }, + { 7, 0, 903 }, { 7, 0, 1963 }, { 8, 0, 639 }, { 138, 0, 577 }, + { 5, 0, 681 }, { 8, 0, 782 }, { 13, 0, 130 }, { 17, 0, 84 }, + { 5, 10, 193 }, { 140, 10, 178 }, { 9, 11, 17 }, { 138, 11, 291 }, + { 7, 11, 1287 }, { 9, 11, 44 }, { 10, 11, 552 }, { 10, 11, 642 }, + { 11, 11, 839 }, { 12, 11, 274 }, { 12, 11, 275 }, { 12, 11, 372 }, + { 13, 11, 91 }, { 142, 11, 125 }, { 135, 10, 174 }, { 4, 0, 664 }, + { 5, 0, 804 }, { 139, 0, 1013 }, { 134, 0, 942 }, { 6, 0, 1349 }, + { 6, 0, 1353 }, { 6, 0, 1450 }, { 7, 11, 1518 }, { 139, 11, 694 }, + { 11, 0, 356 }, { 4, 10, 122 }, { 5, 10, 796 }, { 5, 10, 952 }, + { 6, 10, 1660 }, { 6, 10, 1671 }, { 8, 10, 567 }, { 9, 10, 687 }, + { 9, 10, 742 }, { 10, 10, 686 }, { 11, 10, 682 }, { 140, 10, 281 }, + { 5, 0, 32 }, { 6, 11, 147 }, { 7, 11, 886 }, { 9, 11, 753 }, + { 138, 11, 268 }, { 5, 10, 179 }, { 7, 10, 1095 }, { 135, 10, 1213 }, + { 4, 10, 66 }, { 7, 10, 722 }, { 135, 10, 904 }, { 135, 10, 352 }, + { 9, 11, 245 }, { 138, 11, 137 }, { 4, 0, 289 }, { 7, 0, 629 }, + { 7, 0, 1698 }, { 7, 0, 1711 }, { 12, 0, 215 }, { 133, 11, 414 }, + { 6, 0, 1975 }, { 135, 11, 1762 }, { 6, 0, 450 }, { 136, 0, 109 }, + { 141, 10, 35 }, { 134, 11, 599 }, { 136, 0, 705 }, { 133, 0, 664 }, + { 134, 11, 1749 }, { 11, 11, 402 }, { 12, 11, 109 }, { 12, 11, 431 }, + { 13, 11, 179 }, { 13, 11, 206 }, { 14, 11, 175 }, { 14, 11, 217 }, + { 16, 11, 3 }, { 148, 11, 53 }, { 135, 0, 1238 }, { 134, 11, 1627 }, + { 132, 11, 488 }, { 13, 0, 318 }, { 10, 10, 592 }, { 10, 10, 753 }, + { 12, 10, 317 }, { 12, 10, 355 }, { 12, 10, 465 }, { 12, 10, 469 }, + { 12, 10, 560 }, { 140, 10, 578 }, { 133, 10, 564 }, { 132, 11, 83 }, + { 140, 11, 676 }, { 6, 0, 1872 }, { 6, 0, 1906 }, { 6, 0, 1907 }, + { 9, 0, 934 }, { 9, 0, 956 }, { 9, 0, 960 }, { 9, 0, 996 }, + { 12, 0, 794 }, { 12, 0, 876 }, { 12, 0, 880 }, { 12, 0, 918 }, + { 15, 0, 230 }, { 18, 0, 234 }, { 18, 0, 238 }, { 21, 0, 38 }, + { 149, 0, 62 }, { 134, 10, 556 }, { 134, 11, 278 }, { 137, 0, 103 }, + { 7, 10, 544 }, { 8, 10, 719 }, { 138, 10, 61 }, { 4, 10, 5 }, + { 5, 10, 498 }, { 8, 10, 637 }, { 137, 10, 521 }, { 7, 0, 777 }, + { 12, 0, 229 }, { 12, 0, 239 }, { 15, 0, 12 }, { 12, 11, 229 }, + { 12, 11, 239 }, { 143, 11, 12 }, { 6, 0, 26 }, { 7, 11, 388 }, + { 7, 11, 644 }, { 139, 11, 781 }, { 7, 11, 229 }, { 8, 11, 59 }, + { 9, 11, 190 }, { 9, 11, 257 }, { 10, 11, 378 }, { 140, 11, 191 }, + { 133, 10, 927 }, { 135, 10, 1441 }, { 4, 10, 893 }, { 5, 10, 780 }, + { 133, 10, 893 }, { 4, 0, 414 }, { 5, 0, 467 }, { 9, 0, 654 }, + { 10, 0, 451 }, { 12, 0, 59 }, { 141, 0, 375 }, { 142, 0, 173 }, + { 135, 0, 17 }, { 7, 0, 1350 }, { 133, 10, 238 }, { 135, 0, 955 }, + { 4, 0, 960 }, { 10, 0, 887 }, { 12, 0, 753 }, { 18, 0, 161 }, + { 18, 0, 162 }, { 152, 0, 19 }, { 136, 11, 344 }, { 6, 10, 1729 }, + { 137, 11, 288 }, { 132, 11, 660 }, { 4, 0, 217 }, { 5, 0, 710 }, + { 7, 0, 760 }, { 7, 0, 1926 }, { 9, 0, 428 }, { 9, 0, 708 }, + { 10, 0, 254 }, { 10, 0, 296 }, { 10, 0, 720 }, { 11, 0, 109 }, + { 11, 0, 255 }, { 12, 0, 165 }, { 12, 0, 315 }, { 13, 0, 107 }, + { 13, 0, 203 }, { 14, 0, 54 }, { 14, 0, 99 }, { 14, 0, 114 }, + { 14, 0, 388 }, { 16, 0, 85 }, { 17, 0, 9 }, { 17, 0, 33 }, + { 20, 0, 25 }, { 20, 0, 28 }, { 20, 0, 29 }, { 21, 0, 9 }, + { 21, 0, 10 }, { 21, 0, 34 }, { 22, 0, 17 }, { 4, 10, 60 }, + { 7, 10, 1800 }, { 8, 10, 314 }, { 9, 10, 700 }, { 139, 10, 487 }, + { 7, 11, 1035 }, { 138, 11, 737 }, { 7, 11, 690 }, { 9, 11, 217 }, + { 9, 11, 587 }, { 140, 11, 521 }, { 6, 0, 919 }, { 7, 11, 706 }, + { 7, 11, 1058 }, { 138, 11, 538 }, { 7, 10, 1853 }, { 138, 10, 437 }, + { 136, 10, 419 }, { 6, 0, 280 }, { 10, 0, 502 }, { 11, 0, 344 }, + { 140, 0, 38 }, { 5, 0, 45 }, { 7, 0, 1161 }, { 11, 0, 448 }, + { 11, 0, 880 }, { 13, 0, 139 }, { 13, 0, 407 }, { 15, 0, 16 }, + { 17, 0, 95 }, { 18, 0, 66 }, { 18, 0, 88 }, { 18, 0, 123 }, + { 149, 0, 7 }, { 11, 11, 92 }, { 11, 11, 196 }, { 11, 11, 409 }, + { 11, 11, 450 }, { 11, 11, 666 }, { 11, 11, 777 }, { 12, 11, 262 }, + { 13, 11, 385 }, { 13, 11, 393 }, { 15, 11, 115 }, { 16, 11, 45 }, + { 145, 11, 82 }, { 136, 0, 777 }, { 134, 11, 1744 }, { 4, 0, 410 }, + { 7, 0, 521 }, { 133, 10, 828 }, { 134, 0, 673 }, { 7, 0, 1110 }, + { 7, 0, 1778 }, { 7, 10, 176 }, { 135, 10, 178 }, { 5, 10, 806 }, + { 7, 11, 268 }, { 7, 10, 1976 }, { 136, 11, 569 }, { 4, 11, 733 }, + { 9, 11, 194 }, { 10, 11, 92 }, { 11, 11, 198 }, { 12, 11, 84 }, + { 12, 11, 87 }, { 13, 11, 128 }, { 144, 11, 74 }, { 5, 0, 341 }, + { 7, 0, 1129 }, { 11, 0, 414 }, { 4, 10, 51 }, { 6, 10, 4 }, + { 7, 10, 591 }, { 7, 10, 849 }, { 7, 10, 951 }, { 7, 10, 1613 }, + { 7, 10, 1760 }, { 7, 10, 1988 }, { 9, 10, 434 }, { 10, 10, 754 }, + { 11, 10, 25 }, { 139, 10, 37 }, { 133, 10, 902 }, { 135, 10, 928 }, + { 135, 0, 787 }, { 132, 0, 436 }, { 134, 10, 270 }, { 7, 0, 1587 }, + { 135, 0, 1707 }, { 6, 0, 377 }, { 7, 0, 1025 }, { 9, 0, 613 }, + { 145, 0, 104 }, { 7, 11, 982 }, { 7, 11, 1361 }, { 10, 11, 32 }, + { 143, 11, 56 }, { 139, 0, 96 }, { 132, 0, 451 }, { 132, 10, 416 }, + { 142, 10, 372 }, { 5, 10, 152 }, { 5, 10, 197 }, { 7, 11, 306 }, + { 7, 10, 340 }, { 7, 10, 867 }, { 10, 10, 548 }, { 10, 10, 581 }, + { 11, 10, 6 }, { 12, 10, 3 }, { 12, 10, 19 }, { 14, 10, 110 }, + { 142, 10, 289 }, { 134, 0, 680 }, { 134, 11, 609 }, { 7, 0, 483 }, + { 7, 10, 190 }, { 8, 10, 28 }, { 8, 10, 141 }, { 8, 10, 444 }, + { 8, 10, 811 }, { 9, 10, 468 }, { 11, 10, 334 }, { 12, 10, 24 }, + { 12, 10, 386 }, { 140, 10, 576 }, { 10, 0, 916 }, { 133, 10, 757 }, + { 5, 10, 721 }, { 135, 10, 1553 }, { 133, 11, 178 }, { 134, 0, 937 }, + { 132, 10, 898 }, { 133, 0, 739 }, { 147, 0, 82 }, { 135, 0, 663 }, + { 146, 0, 128 }, { 5, 10, 277 }, { 141, 10, 247 }, { 134, 0, 1087 }, + { 132, 10, 435 }, { 6, 11, 381 }, { 7, 11, 645 }, { 7, 11, 694 }, + { 136, 11, 546 }, { 7, 0, 503 }, { 135, 0, 1885 }, { 6, 0, 1965 }, + { 8, 0, 925 }, { 138, 0, 955 }, { 4, 0, 113 }, { 5, 0, 163 }, + { 5, 0, 735 }, { 7, 0, 1009 }, { 9, 0, 9 }, { 9, 0, 771 }, + { 12, 0, 90 }, { 13, 0, 138 }, { 13, 0, 410 }, { 143, 0, 128 }, + { 4, 0, 324 }, { 138, 0, 104 }, { 7, 0, 460 }, { 5, 10, 265 }, + { 134, 10, 212 }, { 133, 11, 105 }, { 7, 11, 261 }, { 7, 11, 1107 }, + { 7, 11, 1115 }, { 7, 11, 1354 }, { 7, 11, 1588 }, { 7, 11, 1705 }, + { 7, 11, 1902 }, { 9, 11, 465 }, { 10, 11, 248 }, { 10, 11, 349 }, + { 10, 11, 647 }, { 11, 11, 527 }, { 11, 11, 660 }, { 11, 11, 669 }, + { 12, 11, 529 }, { 141, 11, 305 }, { 5, 11, 438 }, { 9, 11, 694 }, + { 12, 11, 627 }, { 141, 11, 210 }, { 152, 11, 11 }, { 4, 0, 935 }, + { 133, 0, 823 }, { 132, 10, 702 }, { 5, 0, 269 }, { 7, 0, 434 }, + { 7, 0, 891 }, { 8, 0, 339 }, { 9, 0, 702 }, { 11, 0, 594 }, + { 11, 0, 718 }, { 17, 0, 100 }, { 5, 10, 808 }, { 135, 10, 2045 }, + { 7, 0, 1014 }, { 9, 0, 485 }, { 141, 0, 264 }, { 134, 0, 1713 }, + { 7, 0, 1810 }, { 11, 0, 866 }, { 12, 0, 103 }, { 13, 0, 495 }, + { 140, 11, 233 }, { 4, 0, 423 }, { 10, 0, 949 }, { 138, 0, 1013 }, + { 135, 0, 900 }, { 8, 11, 25 }, { 138, 11, 826 }, { 5, 10, 166 }, + { 8, 10, 739 }, { 140, 10, 511 }, { 134, 0, 2018 }, { 7, 11, 1270 }, + { 139, 11, 612 }, { 4, 10, 119 }, { 5, 10, 170 }, { 5, 10, 447 }, + { 7, 10, 1708 }, { 7, 10, 1889 }, { 9, 10, 357 }, { 9, 10, 719 }, + { 12, 10, 486 }, { 140, 10, 596 }, { 12, 0, 574 }, { 140, 11, 574 }, + { 132, 11, 308 }, { 6, 0, 964 }, { 6, 0, 1206 }, { 134, 0, 1302 }, + { 4, 10, 450 }, { 135, 10, 1158 }, { 135, 11, 150 }, { 136, 11, 649 }, + { 14, 0, 213 }, { 148, 0, 38 }, { 9, 11, 45 }, { 9, 11, 311 }, + { 141, 11, 42 }, { 134, 11, 521 }, { 7, 10, 1375 }, { 7, 10, 1466 }, + { 138, 10, 331 }, { 132, 10, 754 }, { 5, 11, 339 }, { 7, 11, 1442 }, + { 14, 11, 3 }, { 15, 11, 41 }, { 147, 11, 66 }, { 136, 11, 378 }, + { 134, 0, 1022 }, { 5, 10, 850 }, { 136, 10, 799 }, { 142, 0, 143 }, + { 135, 0, 2029 }, { 134, 11, 1628 }, { 8, 0, 523 }, { 150, 0, 34 }, + { 5, 0, 625 }, { 135, 0, 1617 }, { 7, 0, 275 }, { 7, 10, 238 }, + { 7, 10, 2033 }, { 8, 10, 120 }, { 8, 10, 188 }, { 8, 10, 659 }, + { 9, 10, 598 }, { 10, 10, 466 }, { 12, 10, 342 }, { 12, 10, 588 }, + { 13, 10, 503 }, { 14, 10, 246 }, { 143, 10, 92 }, { 7, 0, 37 }, + { 8, 0, 425 }, { 8, 0, 693 }, { 9, 0, 720 }, { 10, 0, 380 }, + { 10, 0, 638 }, { 11, 0, 273 }, { 11, 0, 473 }, { 12, 0, 61 }, + { 143, 0, 43 }, { 135, 11, 829 }, { 135, 0, 1943 }, { 132, 0, 765 }, + { 5, 11, 486 }, { 135, 11, 1349 }, { 7, 11, 1635 }, { 8, 11, 17 }, + { 10, 11, 217 }, { 138, 11, 295 }, { 4, 10, 201 }, { 7, 10, 1744 }, + { 8, 10, 602 }, { 11, 10, 247 }, { 11, 10, 826 }, { 145, 10, 65 }, + { 138, 11, 558 }, { 11, 0, 551 }, { 142, 0, 159 }, { 8, 10, 164 }, + { 146, 10, 62 }, { 139, 11, 176 }, { 132, 0, 168 }, { 136, 0, 1010 }, + { 134, 0, 1994 }, { 135, 0, 91 }, { 138, 0, 532 }, { 135, 10, 1243 }, + { 135, 0, 1884 }, { 132, 10, 907 }, { 5, 10, 100 }, { 10, 10, 329 }, + { 12, 10, 416 }, { 149, 10, 29 }, { 134, 11, 447 }, { 132, 10, 176 }, + { 5, 10, 636 }, { 5, 10, 998 }, { 7, 10, 9 }, { 7, 10, 1508 }, + { 8, 10, 26 }, { 9, 10, 317 }, { 9, 10, 358 }, { 10, 10, 210 }, + { 10, 10, 292 }, { 10, 10, 533 }, { 11, 10, 555 }, { 12, 10, 526 }, + { 12, 10, 607 }, { 13, 10, 263 }, { 13, 10, 459 }, { 142, 10, 271 }, + { 4, 11, 609 }, { 135, 11, 756 }, { 6, 0, 15 }, { 7, 0, 70 }, + { 10, 0, 240 }, { 147, 0, 93 }, { 4, 11, 930 }, { 133, 11, 947 }, + { 134, 0, 1227 }, { 134, 0, 1534 }, { 133, 11, 939 }, { 133, 11, 962 }, + { 5, 11, 651 }, { 8, 11, 170 }, { 9, 11, 61 }, { 9, 11, 63 }, + { 10, 11, 23 }, { 10, 11, 37 }, { 10, 11, 834 }, { 11, 11, 4 }, + { 11, 11, 187 }, { 11, 11, 281 }, { 11, 11, 503 }, { 11, 11, 677 }, + { 12, 11, 96 }, { 12, 11, 130 }, { 12, 11, 244 }, { 14, 11, 5 }, + { 14, 11, 40 }, { 14, 11, 162 }, { 14, 11, 202 }, { 146, 11, 133 }, + { 4, 11, 406 }, { 5, 11, 579 }, { 12, 11, 492 }, { 150, 11, 15 }, + { 139, 0, 392 }, { 6, 10, 610 }, { 10, 10, 127 }, { 141, 10, 27 }, + { 7, 0, 655 }, { 7, 0, 1844 }, { 136, 10, 119 }, { 4, 0, 145 }, + { 6, 0, 176 }, { 7, 0, 395 }, { 137, 0, 562 }, { 132, 0, 501 }, + { 140, 11, 145 }, { 136, 0, 1019 }, { 134, 0, 509 }, { 139, 0, 267 }, + { 6, 11, 17 }, { 7, 11, 16 }, { 7, 11, 1001 }, { 7, 11, 1982 }, + { 9, 11, 886 }, { 10, 11, 489 }, { 10, 11, 800 }, { 11, 11, 782 }, + { 12, 11, 320 }, { 13, 11, 467 }, { 14, 11, 145 }, { 14, 11, 387 }, + { 143, 11, 119 }, { 145, 11, 17 }, { 6, 0, 1099 }, { 133, 11, 458 }, + { 7, 11, 1983 }, { 8, 11, 0 }, { 8, 11, 171 }, { 9, 11, 120 }, + { 9, 11, 732 }, { 10, 11, 473 }, { 11, 11, 656 }, { 11, 11, 998 }, + { 18, 11, 0 }, { 18, 11, 2 }, { 147, 11, 21 }, { 12, 11, 427 }, + { 146, 11, 38 }, { 10, 0, 948 }, { 138, 0, 968 }, { 7, 10, 126 }, + { 136, 10, 84 }, { 136, 10, 790 }, { 4, 0, 114 }, { 9, 0, 492 }, + { 13, 0, 462 }, { 142, 0, 215 }, { 6, 10, 64 }, { 12, 10, 377 }, + { 141, 10, 309 }, { 4, 0, 77 }, { 5, 0, 361 }, { 6, 0, 139 }, + { 6, 0, 401 }, { 6, 0, 404 }, { 7, 0, 413 }, { 7, 0, 715 }, + { 7, 0, 1716 }, { 11, 0, 279 }, { 12, 0, 179 }, { 12, 0, 258 }, + { 13, 0, 244 }, { 142, 0, 358 }, { 134, 0, 1717 }, { 7, 0, 772 }, + { 7, 0, 1061 }, { 7, 0, 1647 }, { 8, 0, 82 }, { 11, 0, 250 }, + { 11, 0, 607 }, { 12, 0, 311 }, { 12, 0, 420 }, { 13, 0, 184 }, + { 13, 0, 367 }, { 7, 10, 1104 }, { 11, 10, 269 }, { 11, 10, 539 }, + { 11, 10, 627 }, { 11, 10, 706 }, { 11, 10, 975 }, { 12, 10, 248 }, + { 12, 10, 434 }, { 12, 10, 600 }, { 12, 10, 622 }, { 13, 10, 297 }, + { 13, 10, 485 }, { 14, 10, 69 }, { 14, 10, 409 }, { 143, 10, 108 }, + { 135, 0, 724 }, { 4, 11, 512 }, { 4, 11, 519 }, { 133, 11, 342 }, + { 134, 0, 1133 }, { 145, 11, 29 }, { 11, 10, 977 }, { 141, 10, 507 }, + { 6, 0, 841 }, { 6, 0, 1042 }, { 6, 0, 1194 }, { 10, 0, 993 }, + { 140, 0, 1021 }, { 6, 11, 31 }, { 7, 11, 491 }, { 7, 11, 530 }, + { 8, 11, 592 }, { 9, 10, 34 }, { 11, 11, 53 }, { 11, 10, 484 }, + { 11, 11, 779 }, { 12, 11, 167 }, { 12, 11, 411 }, { 14, 11, 14 }, + { 14, 11, 136 }, { 15, 11, 72 }, { 16, 11, 17 }, { 144, 11, 72 }, + { 4, 0, 1021 }, { 6, 0, 2037 }, { 133, 11, 907 }, { 7, 0, 373 }, + { 8, 0, 335 }, { 8, 0, 596 }, { 9, 0, 488 }, { 6, 10, 1700 }, + { 7, 10, 293 }, { 7, 10, 382 }, { 7, 10, 1026 }, { 7, 10, 1087 }, + { 7, 10, 2027 }, { 8, 10, 252 }, { 8, 10, 727 }, { 8, 10, 729 }, + { 9, 10, 30 }, { 9, 10, 199 }, { 9, 10, 231 }, { 9, 10, 251 }, + { 9, 10, 334 }, { 9, 10, 361 }, { 9, 10, 712 }, { 10, 10, 55 }, + { 10, 10, 60 }, { 10, 10, 232 }, { 10, 10, 332 }, { 10, 10, 384 }, + { 10, 10, 396 }, { 10, 10, 504 }, { 10, 10, 542 }, { 10, 10, 652 }, + { 11, 10, 20 }, { 11, 10, 48 }, { 11, 10, 207 }, { 11, 10, 291 }, + { 11, 10, 298 }, { 11, 10, 342 }, { 11, 10, 365 }, { 11, 10, 394 }, + { 11, 10, 620 }, { 11, 10, 705 }, { 11, 10, 1017 }, { 12, 10, 123 }, + { 12, 10, 340 }, { 12, 10, 406 }, { 12, 10, 643 }, { 13, 10, 61 }, + { 13, 10, 269 }, { 13, 10, 311 }, { 13, 10, 319 }, { 13, 10, 486 }, + { 14, 10, 234 }, { 15, 10, 62 }, { 15, 10, 85 }, { 16, 10, 71 }, + { 18, 10, 119 }, { 148, 10, 105 }, { 150, 0, 37 }, { 4, 11, 208 }, + { 5, 11, 106 }, { 6, 11, 531 }, { 8, 11, 408 }, { 9, 11, 188 }, + { 138, 11, 572 }, { 132, 0, 564 }, { 6, 0, 513 }, { 135, 0, 1052 }, + { 132, 0, 825 }, { 9, 0, 899 }, { 140, 11, 441 }, { 134, 0, 778 }, + { 133, 11, 379 }, { 7, 0, 1417 }, { 12, 0, 382 }, { 17, 0, 48 }, + { 152, 0, 12 }, { 132, 11, 241 }, { 7, 0, 1116 }, { 6, 10, 379 }, + { 7, 10, 270 }, { 8, 10, 176 }, { 8, 10, 183 }, { 9, 10, 432 }, + { 9, 10, 661 }, { 12, 10, 247 }, { 12, 10, 617 }, { 146, 10, 125 }, + { 5, 10, 792 }, { 133, 10, 900 }, { 6, 0, 545 }, { 7, 0, 565 }, + { 7, 0, 1669 }, { 10, 0, 114 }, { 11, 0, 642 }, { 140, 0, 618 }, + { 133, 0, 5 }, { 138, 11, 7 }, { 132, 11, 259 }, { 135, 0, 192 }, + { 134, 0, 701 }, { 136, 0, 763 }, { 135, 10, 1979 }, { 4, 10, 901 }, + { 133, 10, 776 }, { 10, 0, 755 }, { 147, 0, 29 }, { 133, 0, 759 }, + { 4, 11, 173 }, { 5, 11, 312 }, { 5, 11, 512 }, { 135, 11, 1285 }, + { 7, 11, 1603 }, { 7, 11, 1691 }, { 9, 11, 464 }, { 11, 11, 195 }, + { 12, 11, 279 }, { 12, 11, 448 }, { 14, 11, 11 }, { 147, 11, 102 }, + { 7, 0, 370 }, { 7, 0, 1007 }, { 7, 0, 1177 }, { 135, 0, 1565 }, + { 135, 0, 1237 }, { 4, 0, 87 }, { 5, 0, 250 }, { 141, 0, 298 }, + { 4, 11, 452 }, { 5, 11, 583 }, { 5, 11, 817 }, { 6, 11, 433 }, + { 7, 11, 593 }, { 7, 11, 720 }, { 7, 11, 1378 }, { 8, 11, 161 }, + { 9, 11, 284 }, { 10, 11, 313 }, { 139, 11, 886 }, { 4, 11, 547 }, + { 135, 11, 1409 }, { 136, 11, 722 }, { 4, 10, 37 }, { 5, 10, 334 }, + { 135, 10, 1253 }, { 132, 10, 508 }, { 12, 0, 107 }, { 146, 0, 31 }, + { 8, 11, 420 }, { 139, 11, 193 }, { 135, 0, 814 }, { 135, 11, 409 }, + { 140, 0, 991 }, { 4, 0, 57 }, { 7, 0, 1195 }, { 7, 0, 1438 }, + { 7, 0, 1548 }, { 7, 0, 1835 }, { 7, 0, 1904 }, { 9, 0, 757 }, + { 10, 0, 604 }, { 139, 0, 519 }, { 132, 0, 540 }, { 138, 11, 308 }, + { 132, 10, 533 }, { 136, 0, 608 }, { 144, 11, 65 }, { 4, 0, 1014 }, + { 134, 0, 2029 }, { 4, 0, 209 }, { 7, 0, 902 }, { 5, 11, 1002 }, + { 136, 11, 745 }, { 134, 0, 2030 }, { 6, 0, 303 }, { 7, 0, 335 }, + { 7, 0, 1437 }, { 7, 0, 1668 }, { 8, 0, 553 }, { 8, 0, 652 }, + { 8, 0, 656 }, { 9, 0, 558 }, { 11, 0, 743 }, { 149, 0, 18 }, + { 5, 11, 575 }, { 6, 11, 354 }, { 135, 11, 701 }, { 4, 11, 239 }, + { 6, 11, 477 }, { 7, 11, 1607 }, { 11, 11, 68 }, { 139, 11, 617 }, + { 132, 0, 559 }, { 8, 0, 527 }, { 18, 0, 60 }, { 147, 0, 24 }, + { 133, 10, 920 }, { 138, 0, 511 }, { 133, 0, 1017 }, { 133, 0, 675 }, + { 138, 10, 391 }, { 11, 0, 156 }, { 135, 10, 1952 }, { 138, 11, 369 }, + { 132, 11, 367 }, { 133, 0, 709 }, { 6, 0, 698 }, { 134, 0, 887 }, + { 142, 10, 126 }, { 134, 0, 1745 }, { 132, 10, 483 }, { 13, 11, 299 }, + { 142, 11, 75 }, { 133, 0, 714 }, { 7, 0, 8 }, { 136, 0, 206 }, + { 138, 10, 480 }, { 4, 11, 694 }, { 9, 10, 495 }, { 146, 10, 104 }, + { 7, 11, 1248 }, { 11, 11, 621 }, { 139, 11, 702 }, { 140, 11, 687 }, + { 132, 0, 776 }, { 139, 10, 1009 }, { 135, 0, 1272 }, { 134, 0, 1059 }, + { 8, 10, 653 }, { 13, 10, 93 }, { 147, 10, 14 }, { 135, 11, 213 }, + { 136, 0, 406 }, { 133, 10, 172 }, { 132, 0, 947 }, { 8, 0, 175 }, + { 10, 0, 168 }, { 138, 0, 573 }, { 132, 0, 870 }, { 6, 0, 1567 }, + { 151, 11, 28 }, { 134, 11, 472 }, { 5, 10, 260 }, { 136, 11, 132 }, + { 4, 11, 751 }, { 11, 11, 390 }, { 140, 11, 32 }, { 4, 11, 409 }, + { 133, 11, 78 }, { 12, 0, 554 }, { 6, 11, 473 }, { 145, 11, 105 }, + { 133, 0, 784 }, { 8, 0, 908 }, { 136, 11, 306 }, { 139, 0, 882 }, + { 6, 0, 358 }, { 7, 0, 1393 }, { 8, 0, 396 }, { 10, 0, 263 }, + { 14, 0, 154 }, { 16, 0, 48 }, { 17, 0, 8 }, { 7, 11, 1759 }, + { 8, 11, 396 }, { 10, 11, 263 }, { 14, 11, 154 }, { 16, 11, 48 }, + { 145, 11, 8 }, { 13, 11, 163 }, { 13, 11, 180 }, { 18, 11, 78 }, + { 148, 11, 35 }, { 14, 0, 32 }, { 18, 0, 85 }, { 20, 0, 2 }, + { 152, 0, 16 }, { 7, 0, 228 }, { 10, 0, 770 }, { 8, 10, 167 }, + { 8, 10, 375 }, { 9, 10, 82 }, { 9, 10, 561 }, { 138, 10, 620 }, + { 132, 0, 845 }, { 9, 0, 14 }, { 9, 0, 441 }, { 10, 0, 306 }, + { 139, 0, 9 }, { 11, 0, 966 }, { 12, 0, 287 }, { 13, 0, 342 }, + { 13, 0, 402 }, { 15, 0, 110 }, { 15, 0, 163 }, { 8, 10, 194 }, + { 136, 10, 756 }, { 134, 0, 1578 }, { 4, 0, 967 }, { 6, 0, 1820 }, + { 6, 0, 1847 }, { 140, 0, 716 }, { 136, 0, 594 }, { 7, 0, 1428 }, + { 7, 0, 1640 }, { 7, 0, 1867 }, { 9, 0, 169 }, { 9, 0, 182 }, + { 9, 0, 367 }, { 9, 0, 478 }, { 9, 0, 506 }, { 9, 0, 551 }, + { 9, 0, 557 }, { 9, 0, 648 }, { 9, 0, 697 }, { 9, 0, 705 }, + { 9, 0, 725 }, { 9, 0, 787 }, { 9, 0, 794 }, { 10, 0, 198 }, + { 10, 0, 214 }, { 10, 0, 267 }, { 10, 0, 275 }, { 10, 0, 456 }, + { 10, 0, 551 }, { 10, 0, 561 }, { 10, 0, 613 }, { 10, 0, 627 }, + { 10, 0, 668 }, { 10, 0, 675 }, { 10, 0, 691 }, { 10, 0, 695 }, + { 10, 0, 707 }, { 10, 0, 715 }, { 11, 0, 183 }, { 11, 0, 201 }, + { 11, 0, 244 }, { 11, 0, 262 }, { 11, 0, 352 }, { 11, 0, 439 }, + { 11, 0, 493 }, { 11, 0, 572 }, { 11, 0, 591 }, { 11, 0, 608 }, + { 11, 0, 611 }, { 11, 0, 646 }, { 11, 0, 674 }, { 11, 0, 711 }, + { 11, 0, 751 }, { 11, 0, 761 }, { 11, 0, 776 }, { 11, 0, 785 }, + { 11, 0, 850 }, { 11, 0, 853 }, { 11, 0, 862 }, { 11, 0, 865 }, + { 11, 0, 868 }, { 11, 0, 875 }, { 11, 0, 898 }, { 11, 0, 902 }, + { 11, 0, 903 }, { 11, 0, 910 }, { 11, 0, 932 }, { 11, 0, 942 }, + { 11, 0, 957 }, { 11, 0, 967 }, { 11, 0, 972 }, { 12, 0, 148 }, + { 12, 0, 195 }, { 12, 0, 220 }, { 12, 0, 237 }, { 12, 0, 318 }, + { 12, 0, 339 }, { 12, 0, 393 }, { 12, 0, 445 }, { 12, 0, 450 }, + { 12, 0, 474 }, { 12, 0, 505 }, { 12, 0, 509 }, { 12, 0, 533 }, + { 12, 0, 591 }, { 12, 0, 594 }, { 12, 0, 597 }, { 12, 0, 621 }, + { 12, 0, 633 }, { 12, 0, 642 }, { 13, 0, 59 }, { 13, 0, 60 }, + { 13, 0, 145 }, { 13, 0, 239 }, { 13, 0, 250 }, { 13, 0, 329 }, + { 13, 0, 344 }, { 13, 0, 365 }, { 13, 0, 372 }, { 13, 0, 387 }, + { 13, 0, 403 }, { 13, 0, 414 }, { 13, 0, 456 }, { 13, 0, 470 }, + { 13, 0, 478 }, { 13, 0, 483 }, { 13, 0, 489 }, { 14, 0, 55 }, + { 14, 0, 57 }, { 14, 0, 81 }, { 14, 0, 90 }, { 14, 0, 148 }, + { 14, 0, 239 }, { 14, 0, 266 }, { 14, 0, 321 }, { 14, 0, 326 }, + { 14, 0, 327 }, { 14, 0, 330 }, { 14, 0, 347 }, { 14, 0, 355 }, + { 14, 0, 401 }, { 14, 0, 404 }, { 14, 0, 411 }, { 14, 0, 414 }, + { 14, 0, 416 }, { 14, 0, 420 }, { 15, 0, 61 }, { 15, 0, 74 }, + { 15, 0, 87 }, { 15, 0, 88 }, { 15, 0, 94 }, { 15, 0, 96 }, + { 15, 0, 116 }, { 15, 0, 149 }, { 15, 0, 154 }, { 16, 0, 50 }, + { 16, 0, 63 }, { 16, 0, 73 }, { 17, 0, 2 }, { 17, 0, 66 }, + { 17, 0, 92 }, { 17, 0, 103 }, { 17, 0, 112 }, { 17, 0, 120 }, + { 18, 0, 50 }, { 18, 0, 54 }, { 18, 0, 82 }, { 18, 0, 86 }, + { 18, 0, 90 }, { 18, 0, 111 }, { 18, 0, 115 }, { 18, 0, 156 }, + { 19, 0, 40 }, { 19, 0, 79 }, { 20, 0, 78 }, { 21, 0, 22 }, + { 135, 11, 883 }, { 5, 0, 161 }, { 135, 0, 839 }, { 4, 0, 782 }, + { 13, 11, 293 }, { 142, 11, 56 }, { 133, 11, 617 }, { 139, 11, 50 }, + { 135, 10, 22 }, { 145, 0, 64 }, { 5, 10, 639 }, { 7, 10, 1249 }, + { 139, 10, 896 }, { 138, 0, 998 }, { 135, 11, 2042 }, { 4, 11, 546 }, + { 142, 11, 233 }, { 6, 0, 1043 }, { 134, 0, 1574 }, { 134, 0, 1496 }, + { 4, 10, 102 }, { 7, 10, 815 }, { 7, 10, 1699 }, { 139, 10, 964 }, + { 12, 0, 781 }, { 142, 0, 461 }, { 4, 11, 313 }, { 133, 11, 577 }, + { 6, 0, 639 }, { 6, 0, 1114 }, { 137, 0, 817 }, { 8, 11, 184 }, + { 141, 11, 433 }, { 7, 0, 1814 }, { 135, 11, 935 }, { 10, 0, 997 }, + { 140, 0, 958 }, { 4, 0, 812 }, { 137, 11, 625 }, { 132, 10, 899 }, + { 136, 10, 795 }, { 5, 11, 886 }, { 6, 11, 46 }, { 6, 11, 1790 }, + { 7, 11, 14 }, { 7, 11, 732 }, { 7, 11, 1654 }, { 8, 11, 95 }, + { 8, 11, 327 }, { 8, 11, 616 }, { 10, 11, 598 }, { 10, 11, 769 }, + { 11, 11, 134 }, { 11, 11, 747 }, { 12, 11, 378 }, { 142, 11, 97 }, + { 136, 0, 139 }, { 6, 10, 52 }, { 9, 10, 104 }, { 9, 10, 559 }, + { 12, 10, 308 }, { 147, 10, 87 }, { 133, 11, 1021 }, { 132, 10, 604 }, + { 132, 10, 301 }, { 136, 10, 779 }, { 7, 0, 643 }, { 136, 0, 236 }, + { 132, 11, 153 }, { 134, 0, 1172 }, { 147, 10, 32 }, { 133, 11, 798 }, + { 6, 0, 1338 }, { 132, 11, 587 }, { 6, 11, 598 }, { 7, 11, 42 }, + { 8, 11, 695 }, { 10, 11, 212 }, { 11, 11, 158 }, { 14, 11, 196 }, + { 145, 11, 85 }, { 135, 10, 508 }, { 5, 11, 957 }, { 5, 11, 1008 }, + { 135, 11, 249 }, { 4, 11, 129 }, { 135, 11, 465 }, { 5, 0, 54 }, + { 7, 11, 470 }, { 7, 11, 1057 }, { 7, 11, 1201 }, { 9, 11, 755 }, + { 11, 11, 906 }, { 140, 11, 527 }, { 7, 11, 908 }, { 146, 11, 7 }, + { 5, 11, 148 }, { 136, 11, 450 }, { 144, 11, 1 }, { 4, 0, 256 }, + { 135, 0, 1488 }, { 9, 0, 351 }, { 6, 10, 310 }, { 7, 10, 1849 }, + { 8, 10, 72 }, { 8, 10, 272 }, { 8, 10, 431 }, { 9, 10, 12 }, + { 10, 10, 563 }, { 10, 10, 630 }, { 10, 10, 796 }, { 10, 10, 810 }, + { 11, 10, 367 }, { 11, 10, 599 }, { 11, 10, 686 }, { 140, 10, 672 }, + { 6, 0, 1885 }, { 6, 0, 1898 }, { 6, 0, 1899 }, { 140, 0, 955 }, + { 4, 0, 714 }, { 133, 0, 469 }, { 6, 0, 1270 }, { 134, 0, 1456 }, + { 132, 0, 744 }, { 6, 0, 313 }, { 7, 10, 537 }, { 8, 10, 64 }, + { 9, 10, 127 }, { 10, 10, 496 }, { 12, 10, 510 }, { 141, 10, 384 }, + { 4, 11, 217 }, { 4, 10, 244 }, { 5, 11, 710 }, { 7, 10, 233 }, + { 7, 11, 1926 }, { 9, 11, 428 }, { 9, 11, 708 }, { 10, 11, 254 }, + { 10, 11, 296 }, { 10, 11, 720 }, { 11, 11, 109 }, { 11, 11, 255 }, + { 12, 11, 165 }, { 12, 11, 315 }, { 13, 11, 107 }, { 13, 11, 203 }, + { 14, 11, 54 }, { 14, 11, 99 }, { 14, 11, 114 }, { 14, 11, 388 }, + { 16, 11, 85 }, { 17, 11, 9 }, { 17, 11, 33 }, { 20, 11, 25 }, + { 20, 11, 28 }, { 20, 11, 29 }, { 21, 11, 9 }, { 21, 11, 10 }, + { 21, 11, 34 }, { 150, 11, 17 }, { 138, 0, 402 }, { 7, 0, 969 }, + { 146, 0, 55 }, { 8, 0, 50 }, { 137, 0, 624 }, { 134, 0, 1355 }, + { 132, 0, 572 }, { 134, 10, 1650 }, { 10, 10, 702 }, { 139, 10, 245 }, + { 10, 0, 847 }, { 142, 0, 445 }, { 6, 0, 43 }, { 7, 0, 38 }, + { 8, 0, 248 }, { 138, 0, 513 }, { 133, 0, 369 }, { 137, 10, 338 }, + { 133, 0, 766 }, { 133, 0, 363 }, { 133, 10, 896 }, { 8, 11, 392 }, + { 11, 11, 54 }, { 13, 11, 173 }, { 13, 11, 294 }, { 148, 11, 7 }, + { 134, 0, 678 }, { 7, 11, 1230 }, { 136, 11, 531 }, { 6, 0, 258 }, + { 140, 0, 409 }, { 5, 0, 249 }, { 148, 0, 82 }, { 7, 10, 1117 }, + { 136, 10, 539 }, { 5, 0, 393 }, { 6, 0, 378 }, { 7, 0, 1981 }, + { 9, 0, 32 }, { 9, 0, 591 }, { 10, 0, 685 }, { 10, 0, 741 }, + { 142, 0, 382 }, { 133, 0, 788 }, { 134, 0, 1281 }, { 134, 0, 1295 }, + { 7, 0, 1968 }, { 141, 0, 509 }, { 4, 0, 61 }, { 5, 0, 58 }, + { 5, 0, 171 }, { 5, 0, 683 }, { 6, 0, 291 }, { 6, 0, 566 }, + { 7, 0, 1650 }, { 11, 0, 523 }, { 12, 0, 273 }, { 12, 0, 303 }, + { 15, 0, 39 }, { 143, 0, 111 }, { 6, 0, 706 }, { 134, 0, 1283 }, + { 134, 0, 589 }, { 135, 11, 1433 }, { 133, 11, 435 }, { 7, 0, 1059 }, + { 13, 0, 54 }, { 5, 10, 4 }, { 5, 10, 810 }, { 6, 10, 13 }, + { 6, 10, 538 }, { 6, 10, 1690 }, { 6, 10, 1726 }, { 7, 10, 1819 }, + { 8, 10, 148 }, { 8, 10, 696 }, { 8, 10, 791 }, { 12, 10, 125 }, + { 143, 10, 9 }, { 135, 10, 1268 }, { 5, 11, 85 }, { 6, 11, 419 }, + { 7, 11, 134 }, { 7, 11, 305 }, { 7, 11, 361 }, { 7, 11, 1337 }, + { 8, 11, 71 }, { 140, 11, 519 }, { 137, 0, 824 }, { 140, 11, 688 }, + { 5, 11, 691 }, { 7, 11, 345 }, { 7, 10, 1385 }, { 9, 11, 94 }, + { 11, 10, 582 }, { 11, 10, 650 }, { 11, 10, 901 }, { 11, 10, 949 }, + { 12, 11, 169 }, { 12, 10, 232 }, { 12, 10, 236 }, { 13, 10, 413 }, + { 13, 10, 501 }, { 146, 10, 116 }, { 4, 0, 917 }, { 133, 0, 1005 }, + { 7, 0, 1598 }, { 5, 11, 183 }, { 6, 11, 582 }, { 9, 11, 344 }, + { 10, 11, 679 }, { 140, 11, 435 }, { 4, 10, 925 }, { 5, 10, 803 }, + { 8, 10, 698 }, { 138, 10, 828 }, { 132, 0, 919 }, { 135, 11, 511 }, + { 139, 10, 992 }, { 4, 0, 255 }, { 5, 0, 302 }, { 6, 0, 132 }, + { 7, 0, 128 }, { 7, 0, 283 }, { 7, 0, 1299 }, { 10, 0, 52 }, + { 10, 0, 514 }, { 11, 0, 925 }, { 13, 0, 92 }, { 142, 0, 309 }, + { 134, 0, 1369 }, { 135, 10, 1847 }, { 134, 0, 328 }, { 7, 11, 1993 }, + { 136, 11, 684 }, { 133, 10, 383 }, { 137, 0, 173 }, { 134, 11, 583 }, + { 134, 0, 1411 }, { 19, 0, 65 }, { 5, 11, 704 }, { 8, 11, 357 }, + { 10, 11, 745 }, { 14, 11, 426 }, { 17, 11, 94 }, { 147, 11, 57 }, + { 9, 10, 660 }, { 138, 10, 347 }, { 4, 11, 179 }, { 5, 11, 198 }, + { 133, 11, 697 }, { 7, 11, 347 }, { 7, 11, 971 }, { 8, 11, 181 }, + { 138, 11, 711 }, { 141, 0, 442 }, { 11, 0, 842 }, { 11, 0, 924 }, + { 13, 0, 317 }, { 13, 0, 370 }, { 13, 0, 469 }, { 13, 0, 471 }, + { 14, 0, 397 }, { 18, 0, 69 }, { 18, 0, 145 }, { 7, 10, 572 }, + { 9, 10, 592 }, { 11, 10, 680 }, { 12, 10, 356 }, { 140, 10, 550 }, + { 14, 11, 19 }, { 14, 11, 28 }, { 144, 11, 29 }, { 136, 0, 534 }, + { 4, 11, 243 }, { 5, 11, 203 }, { 7, 11, 19 }, { 7, 11, 71 }, + { 7, 11, 113 }, { 10, 11, 405 }, { 11, 11, 357 }, { 142, 11, 240 }, + { 6, 0, 210 }, { 10, 0, 845 }, { 138, 0, 862 }, { 7, 11, 1351 }, + { 9, 11, 581 }, { 10, 11, 639 }, { 11, 11, 453 }, { 140, 11, 584 }, + { 7, 11, 1450 }, { 139, 11, 99 }, { 10, 0, 892 }, { 12, 0, 719 }, + { 144, 0, 105 }, { 4, 0, 284 }, { 6, 0, 223 }, { 134, 11, 492 }, + { 5, 11, 134 }, { 6, 11, 408 }, { 6, 11, 495 }, { 135, 11, 1593 }, + { 136, 0, 529 }, { 137, 0, 807 }, { 4, 0, 218 }, { 7, 0, 526 }, + { 143, 0, 137 }, { 6, 0, 1444 }, { 142, 11, 4 }, { 132, 11, 665 }, + { 4, 0, 270 }, { 5, 0, 192 }, { 6, 0, 332 }, { 7, 0, 1322 }, + { 4, 11, 248 }, { 7, 11, 137 }, { 137, 11, 349 }, { 140, 0, 661 }, + { 7, 0, 1517 }, { 11, 0, 597 }, { 14, 0, 76 }, { 14, 0, 335 }, + { 20, 0, 33 }, { 7, 10, 748 }, { 139, 10, 700 }, { 5, 11, 371 }, + { 135, 11, 563 }, { 146, 11, 57 }, { 133, 10, 127 }, { 133, 0, 418 }, + { 4, 11, 374 }, { 7, 11, 547 }, { 7, 11, 1700 }, { 7, 11, 1833 }, + { 139, 11, 858 }, { 6, 10, 198 }, { 140, 10, 83 }, { 7, 11, 1812 }, + { 13, 11, 259 }, { 13, 11, 356 }, { 14, 11, 242 }, { 147, 11, 114 }, + { 7, 0, 379 }, { 8, 0, 481 }, { 9, 0, 377 }, { 5, 10, 276 }, + { 6, 10, 55 }, { 135, 10, 1369 }, { 138, 11, 286 }, { 5, 0, 1003 }, + { 6, 0, 149 }, { 6, 10, 1752 }, { 136, 10, 726 }, { 8, 0, 262 }, + { 9, 0, 627 }, { 10, 0, 18 }, { 11, 0, 214 }, { 11, 0, 404 }, + { 11, 0, 457 }, { 11, 0, 780 }, { 11, 0, 913 }, { 13, 0, 401 }, + { 14, 0, 200 }, { 6, 11, 1647 }, { 7, 11, 1552 }, { 7, 11, 2010 }, + { 9, 11, 494 }, { 137, 11, 509 }, { 135, 0, 742 }, { 136, 0, 304 }, + { 132, 0, 142 }, { 133, 10, 764 }, { 6, 10, 309 }, { 7, 10, 331 }, + { 138, 10, 550 }, { 135, 10, 1062 }, { 6, 11, 123 }, { 7, 11, 214 }, + { 7, 10, 986 }, { 9, 11, 728 }, { 10, 11, 157 }, { 11, 11, 346 }, + { 11, 11, 662 }, { 143, 11, 106 }, { 135, 10, 1573 }, { 7, 0, 925 }, + { 137, 0, 799 }, { 4, 0, 471 }, { 5, 0, 51 }, { 6, 0, 602 }, + { 8, 0, 484 }, { 138, 0, 195 }, { 136, 0, 688 }, { 132, 0, 697 }, + { 6, 0, 1169 }, { 6, 0, 1241 }, { 6, 10, 194 }, { 7, 10, 133 }, + { 10, 10, 493 }, { 10, 10, 570 }, { 139, 10, 664 }, { 140, 0, 751 }, + { 7, 0, 929 }, { 10, 0, 452 }, { 11, 0, 878 }, { 16, 0, 33 }, + { 5, 10, 24 }, { 5, 10, 569 }, { 6, 10, 3 }, { 6, 10, 119 }, + { 6, 10, 143 }, { 6, 10, 440 }, { 7, 10, 599 }, { 7, 10, 1686 }, + { 7, 10, 1854 }, { 8, 10, 424 }, { 9, 10, 43 }, { 9, 10, 584 }, + { 9, 10, 760 }, { 10, 10, 328 }, { 11, 10, 159 }, { 11, 10, 253 }, + { 12, 10, 487 }, { 140, 10, 531 }, { 4, 11, 707 }, { 13, 11, 106 }, + { 18, 11, 49 }, { 147, 11, 41 }, { 5, 0, 221 }, { 5, 11, 588 }, + { 134, 11, 393 }, { 134, 0, 1437 }, { 6, 11, 211 }, { 7, 11, 1690 }, + { 11, 11, 486 }, { 140, 11, 369 }, { 5, 10, 14 }, { 5, 10, 892 }, + { 6, 10, 283 }, { 7, 10, 234 }, { 136, 10, 537 }, { 4, 0, 988 }, + { 136, 0, 955 }, { 135, 0, 1251 }, { 4, 10, 126 }, { 8, 10, 635 }, + { 147, 10, 34 }, { 4, 10, 316 }, { 135, 10, 1561 }, { 137, 10, 861 }, + { 4, 10, 64 }, { 5, 10, 352 }, { 5, 10, 720 }, { 6, 10, 368 }, + { 139, 10, 359 }, { 134, 0, 192 }, { 4, 0, 132 }, { 5, 0, 69 }, + { 135, 0, 1242 }, { 7, 10, 1577 }, { 10, 10, 304 }, { 10, 10, 549 }, + { 12, 10, 365 }, { 13, 10, 220 }, { 13, 10, 240 }, { 142, 10, 33 }, + { 4, 0, 111 }, { 7, 0, 865 }, { 134, 11, 219 }, { 5, 11, 582 }, + { 6, 11, 1646 }, { 7, 11, 99 }, { 7, 11, 1962 }, { 7, 11, 1986 }, + { 8, 11, 515 }, { 8, 11, 773 }, { 9, 11, 23 }, { 9, 11, 491 }, + { 12, 11, 620 }, { 14, 11, 52 }, { 145, 11, 50 }, { 132, 0, 767 }, + { 7, 11, 568 }, { 148, 11, 21 }, { 6, 0, 42 }, { 7, 0, 1416 }, + { 7, 0, 2005 }, { 8, 0, 131 }, { 8, 0, 466 }, { 9, 0, 672 }, + { 13, 0, 252 }, { 20, 0, 103 }, { 133, 11, 851 }, { 135, 0, 1050 }, + { 6, 10, 175 }, { 137, 10, 289 }, { 5, 10, 432 }, { 133, 10, 913 }, + { 6, 0, 44 }, { 136, 0, 368 }, { 135, 11, 784 }, { 132, 0, 570 }, + { 133, 0, 120 }, { 139, 10, 595 }, { 140, 0, 29 }, { 6, 0, 227 }, + { 135, 0, 1589 }, { 4, 11, 98 }, { 7, 11, 1365 }, { 9, 11, 422 }, + { 9, 11, 670 }, { 10, 11, 775 }, { 11, 11, 210 }, { 13, 11, 26 }, + { 13, 11, 457 }, { 141, 11, 476 }, { 140, 10, 80 }, { 5, 10, 931 }, + { 134, 10, 1698 }, { 133, 0, 522 }, { 134, 0, 1120 }, { 135, 0, 1529 }, + { 12, 0, 739 }, { 14, 0, 448 }, { 142, 0, 467 }, { 11, 10, 526 }, + { 11, 10, 939 }, { 141, 10, 290 }, { 5, 10, 774 }, { 6, 10, 1637 }, + { 6, 10, 1686 }, { 134, 10, 1751 }, { 6, 0, 1667 }, { 135, 0, 2036 }, + { 7, 10, 1167 }, { 11, 10, 934 }, { 13, 10, 391 }, { 145, 10, 76 }, + { 137, 11, 147 }, { 6, 10, 260 }, { 7, 10, 1484 }, { 11, 11, 821 }, + { 12, 11, 110 }, { 12, 11, 153 }, { 18, 11, 41 }, { 150, 11, 19 }, + { 6, 0, 511 }, { 12, 0, 132 }, { 134, 10, 573 }, { 5, 0, 568 }, + { 6, 0, 138 }, { 135, 0, 1293 }, { 132, 0, 1020 }, { 8, 0, 258 }, + { 9, 0, 208 }, { 137, 0, 359 }, { 4, 0, 565 }, { 8, 0, 23 }, + { 136, 0, 827 }, { 134, 0, 344 }, { 4, 0, 922 }, { 5, 0, 1023 }, + { 13, 11, 477 }, { 14, 11, 120 }, { 148, 11, 61 }, { 134, 0, 240 }, + { 5, 11, 209 }, { 6, 11, 30 }, { 11, 11, 56 }, { 139, 11, 305 }, + { 6, 0, 171 }, { 7, 0, 1002 }, { 7, 0, 1324 }, { 9, 0, 415 }, + { 14, 0, 230 }, { 18, 0, 68 }, { 4, 10, 292 }, { 4, 10, 736 }, + { 5, 10, 871 }, { 6, 10, 1689 }, { 7, 10, 1944 }, { 137, 10, 580 }, + { 9, 11, 635 }, { 139, 11, 559 }, { 4, 11, 150 }, { 5, 11, 303 }, + { 134, 11, 327 }, { 6, 10, 63 }, { 135, 10, 920 }, { 133, 10, 793 }, + { 8, 11, 192 }, { 10, 11, 78 }, { 10, 11, 555 }, { 11, 11, 308 }, + { 13, 11, 359 }, { 147, 11, 95 }, { 135, 11, 786 }, { 135, 11, 1712 }, + { 136, 0, 402 }, { 6, 0, 754 }, { 6, 11, 1638 }, { 7, 11, 79 }, + { 7, 11, 496 }, { 9, 11, 138 }, { 10, 11, 336 }, { 11, 11, 12 }, + { 12, 11, 412 }, { 12, 11, 440 }, { 142, 11, 305 }, { 4, 0, 716 }, + { 141, 0, 31 }, { 133, 0, 982 }, { 8, 0, 691 }, { 8, 0, 731 }, + { 5, 10, 67 }, { 6, 10, 62 }, { 6, 10, 374 }, { 135, 10, 1391 }, + { 9, 10, 790 }, { 140, 10, 47 }, { 139, 11, 556 }, { 151, 11, 1 }, + { 7, 11, 204 }, { 7, 11, 415 }, { 8, 11, 42 }, { 10, 11, 85 }, + { 11, 11, 33 }, { 11, 11, 564 }, { 12, 11, 571 }, { 149, 11, 1 }, + { 8, 0, 888 }, { 7, 11, 610 }, { 135, 11, 1501 }, { 4, 10, 391 }, + { 135, 10, 1169 }, { 5, 0, 847 }, { 9, 0, 840 }, { 138, 0, 803 }, + { 137, 0, 823 }, { 134, 0, 785 }, { 8, 0, 152 }, { 9, 0, 53 }, + { 9, 0, 268 }, { 9, 0, 901 }, { 10, 0, 518 }, { 10, 0, 829 }, + { 11, 0, 188 }, { 13, 0, 74 }, { 14, 0, 46 }, { 15, 0, 17 }, + { 15, 0, 33 }, { 17, 0, 40 }, { 18, 0, 36 }, { 19, 0, 20 }, + { 22, 0, 1 }, { 152, 0, 2 }, { 4, 11, 3 }, { 5, 11, 247 }, + { 5, 11, 644 }, { 7, 11, 744 }, { 7, 11, 1207 }, { 7, 11, 1225 }, + { 7, 11, 1909 }, { 146, 11, 147 }, { 136, 0, 532 }, { 135, 0, 681 }, + { 132, 10, 271 }, { 140, 0, 314 }, { 140, 0, 677 }, { 4, 0, 684 }, + { 136, 0, 384 }, { 5, 11, 285 }, { 9, 11, 67 }, { 13, 11, 473 }, + { 143, 11, 82 }, { 4, 10, 253 }, { 5, 10, 544 }, { 7, 10, 300 }, + { 137, 10, 340 }, { 7, 0, 110 }, { 7, 0, 447 }, { 8, 0, 290 }, + { 8, 0, 591 }, { 9, 0, 382 }, { 9, 0, 649 }, { 11, 0, 71 }, + { 11, 0, 155 }, { 11, 0, 313 }, { 12, 0, 5 }, { 13, 0, 325 }, + { 142, 0, 287 }, { 134, 0, 1818 }, { 136, 0, 1007 }, { 138, 0, 321 }, + { 7, 0, 360 }, { 7, 0, 425 }, { 9, 0, 66 }, { 9, 0, 278 }, + { 138, 0, 644 }, { 133, 10, 818 }, { 5, 0, 385 }, { 5, 10, 541 }, + { 6, 10, 94 }, { 6, 10, 499 }, { 7, 10, 230 }, { 139, 10, 321 }, + { 4, 10, 920 }, { 5, 10, 25 }, { 5, 10, 790 }, { 6, 10, 457 }, + { 7, 10, 853 }, { 136, 10, 788 }, { 4, 0, 900 }, { 133, 0, 861 }, + { 5, 0, 254 }, { 7, 0, 985 }, { 136, 0, 73 }, { 7, 0, 1959 }, + { 136, 0, 683 }, { 134, 10, 1765 }, { 133, 10, 822 }, { 132, 10, 634 }, + { 4, 11, 29 }, { 6, 11, 532 }, { 7, 11, 1628 }, { 7, 11, 1648 }, + { 9, 11, 303 }, { 9, 11, 350 }, { 10, 11, 433 }, { 11, 11, 97 }, + { 11, 11, 557 }, { 11, 11, 745 }, { 12, 11, 289 }, { 12, 11, 335 }, + { 12, 11, 348 }, { 12, 11, 606 }, { 13, 11, 116 }, { 13, 11, 233 }, + { 13, 11, 466 }, { 14, 11, 181 }, { 14, 11, 209 }, { 14, 11, 232 }, + { 14, 11, 236 }, { 14, 11, 300 }, { 16, 11, 41 }, { 148, 11, 97 }, + { 19, 0, 86 }, { 6, 10, 36 }, { 7, 10, 658 }, { 136, 10, 454 }, + { 135, 11, 1692 }, { 132, 0, 725 }, { 5, 11, 501 }, { 7, 11, 1704 }, + { 9, 11, 553 }, { 11, 11, 520 }, { 12, 11, 557 }, { 141, 11, 249 }, + { 134, 0, 196 }, { 133, 0, 831 }, { 136, 0, 723 }, { 7, 0, 1897 }, + { 13, 0, 80 }, { 13, 0, 437 }, { 145, 0, 74 }, { 4, 0, 992 }, + { 6, 0, 627 }, { 136, 0, 994 }, { 135, 11, 1294 }, { 132, 10, 104 }, + { 5, 0, 848 }, { 6, 0, 66 }, { 136, 0, 764 }, { 4, 0, 36 }, + { 7, 0, 1387 }, { 10, 0, 205 }, { 139, 0, 755 }, { 6, 0, 1046 }, + { 134, 0, 1485 }, { 134, 0, 950 }, { 132, 0, 887 }, { 14, 0, 450 }, + { 148, 0, 111 }, { 7, 0, 620 }, { 7, 0, 831 }, { 9, 10, 542 }, + { 9, 10, 566 }, { 138, 10, 728 }, { 6, 0, 165 }, { 138, 0, 388 }, + { 139, 10, 263 }, { 4, 0, 719 }, { 135, 0, 155 }, { 138, 10, 468 }, + { 6, 11, 453 }, { 144, 11, 36 }, { 134, 11, 129 }, { 5, 0, 533 }, + { 7, 0, 755 }, { 138, 0, 780 }, { 134, 0, 1465 }, { 4, 0, 353 }, + { 6, 0, 146 }, { 6, 0, 1789 }, { 7, 0, 427 }, { 7, 0, 990 }, + { 7, 0, 1348 }, { 9, 0, 665 }, { 9, 0, 898 }, { 11, 0, 893 }, + { 142, 0, 212 }, { 7, 10, 87 }, { 142, 10, 288 }, { 4, 0, 45 }, + { 135, 0, 1257 }, { 12, 0, 7 }, { 7, 10, 988 }, { 7, 10, 1939 }, + { 9, 10, 64 }, { 9, 10, 502 }, { 12, 10, 34 }, { 13, 10, 12 }, + { 13, 10, 234 }, { 147, 10, 77 }, { 4, 0, 607 }, { 5, 11, 60 }, + { 6, 11, 504 }, { 7, 11, 614 }, { 7, 11, 1155 }, { 140, 11, 0 }, + { 135, 10, 141 }, { 8, 11, 198 }, { 11, 11, 29 }, { 140, 11, 534 }, + { 140, 0, 65 }, { 136, 0, 816 }, { 132, 10, 619 }, { 139, 0, 88 }, + { 5, 10, 246 }, { 8, 10, 189 }, { 9, 10, 355 }, { 9, 10, 512 }, + { 10, 10, 124 }, { 10, 10, 453 }, { 11, 10, 143 }, { 11, 10, 416 }, + { 11, 10, 859 }, { 141, 10, 341 }, { 4, 11, 379 }, { 135, 11, 1397 }, + { 4, 0, 600 }, { 137, 0, 621 }, { 133, 0, 367 }, { 134, 0, 561 }, + { 6, 0, 559 }, { 134, 0, 1691 }, { 6, 0, 585 }, { 134, 11, 585 }, + { 135, 11, 1228 }, { 4, 11, 118 }, { 5, 10, 678 }, { 6, 11, 274 }, + { 6, 11, 361 }, { 7, 11, 75 }, { 141, 11, 441 }, { 135, 11, 1818 }, + { 137, 11, 841 }, { 5, 0, 573 }, { 6, 0, 287 }, { 7, 10, 862 }, + { 7, 10, 1886 }, { 138, 10, 179 }, { 132, 10, 517 }, { 140, 11, 693 }, + { 5, 11, 314 }, { 6, 11, 221 }, { 7, 11, 419 }, { 10, 11, 650 }, + { 11, 11, 396 }, { 12, 11, 156 }, { 13, 11, 369 }, { 14, 11, 333 }, + { 145, 11, 47 }, { 140, 10, 540 }, { 136, 10, 667 }, { 11, 10, 403 }, + { 146, 10, 83 }, { 6, 0, 672 }, { 133, 10, 761 }, { 9, 0, 157 }, + { 10, 10, 131 }, { 140, 10, 72 }, { 7, 0, 714 }, { 134, 11, 460 }, + { 134, 0, 456 }, { 133, 0, 925 }, { 5, 11, 682 }, { 135, 11, 1887 }, + { 136, 11, 510 }, { 136, 11, 475 }, { 133, 11, 1016 }, { 9, 0, 19 }, + { 7, 11, 602 }, { 8, 11, 179 }, { 10, 11, 781 }, { 140, 11, 126 }, + { 6, 11, 329 }, { 138, 11, 111 }, { 6, 0, 822 }, { 134, 0, 1473 }, + { 144, 11, 86 }, { 11, 0, 113 }, { 139, 11, 113 }, { 5, 11, 821 }, + { 134, 11, 1687 }, { 133, 10, 449 }, { 7, 0, 463 }, { 17, 0, 69 }, + { 136, 10, 103 }, { 7, 10, 2028 }, { 138, 10, 641 }, { 6, 0, 193 }, + { 7, 0, 240 }, { 7, 0, 1682 }, { 10, 0, 51 }, { 10, 0, 640 }, + { 11, 0, 410 }, { 13, 0, 82 }, { 14, 0, 247 }, { 14, 0, 331 }, + { 142, 0, 377 }, { 6, 0, 471 }, { 11, 0, 411 }, { 142, 0, 2 }, + { 5, 11, 71 }, { 7, 11, 1407 }, { 9, 11, 388 }, { 9, 11, 704 }, + { 10, 11, 261 }, { 10, 11, 619 }, { 11, 11, 547 }, { 11, 11, 619 }, + { 143, 11, 157 }, { 136, 0, 633 }, { 135, 0, 1148 }, { 6, 0, 554 }, + { 7, 0, 1392 }, { 12, 0, 129 }, { 7, 10, 1274 }, { 7, 10, 1386 }, + { 7, 11, 2008 }, { 9, 11, 337 }, { 10, 11, 517 }, { 146, 10, 87 }, + { 7, 0, 803 }, { 8, 0, 542 }, { 6, 10, 187 }, { 7, 10, 1203 }, + { 8, 10, 380 }, { 14, 10, 117 }, { 149, 10, 28 }, { 6, 10, 297 }, + { 7, 10, 793 }, { 139, 10, 938 }, { 8, 0, 438 }, { 11, 0, 363 }, + { 7, 10, 464 }, { 11, 10, 105 }, { 12, 10, 231 }, { 14, 10, 386 }, + { 15, 10, 102 }, { 148, 10, 75 }, { 5, 11, 16 }, { 6, 11, 86 }, + { 6, 11, 603 }, { 7, 11, 292 }, { 7, 11, 561 }, { 8, 11, 257 }, + { 8, 11, 382 }, { 9, 11, 721 }, { 9, 11, 778 }, { 11, 11, 581 }, + { 140, 11, 466 }, { 6, 0, 717 }, { 4, 11, 486 }, { 133, 11, 491 }, + { 132, 0, 875 }, { 132, 11, 72 }, { 6, 11, 265 }, { 135, 11, 847 }, + { 4, 0, 237 }, { 135, 0, 514 }, { 6, 0, 392 }, { 7, 0, 65 }, + { 135, 0, 2019 }, { 140, 11, 261 }, { 135, 11, 922 }, { 137, 11, 404 }, + { 12, 0, 563 }, { 14, 0, 101 }, { 18, 0, 129 }, { 7, 10, 1010 }, + { 11, 10, 733 }, { 11, 10, 759 }, { 13, 10, 34 }, { 146, 10, 45 }, + { 7, 10, 1656 }, { 9, 10, 369 }, { 10, 10, 338 }, { 10, 10, 490 }, + { 11, 10, 154 }, { 11, 10, 545 }, { 11, 10, 775 }, { 13, 10, 77 }, + { 141, 10, 274 }, { 4, 0, 444 }, { 10, 0, 146 }, { 140, 0, 9 }, + { 139, 11, 163 }, { 7, 0, 1260 }, { 135, 0, 1790 }, { 9, 0, 222 }, + { 10, 0, 43 }, { 139, 0, 900 }, { 137, 11, 234 }, { 138, 0, 971 }, + { 137, 0, 761 }, { 134, 0, 699 }, { 136, 11, 434 }, { 6, 0, 1116 }, + { 7, 0, 1366 }, { 5, 10, 20 }, { 6, 11, 197 }, { 6, 10, 298 }, + { 7, 10, 659 }, { 8, 11, 205 }, { 137, 10, 219 }, { 132, 11, 490 }, + { 11, 11, 820 }, { 150, 11, 51 }, { 7, 10, 1440 }, { 11, 10, 854 }, + { 11, 10, 872 }, { 11, 10, 921 }, { 12, 10, 551 }, { 13, 10, 472 }, + { 142, 10, 367 }, { 140, 11, 13 }, { 132, 0, 829 }, { 12, 0, 242 }, + { 132, 10, 439 }, { 136, 10, 669 }, { 6, 0, 593 }, { 6, 11, 452 }, + { 7, 11, 312 }, { 138, 11, 219 }, { 4, 11, 333 }, { 9, 11, 176 }, + { 12, 11, 353 }, { 141, 11, 187 }, { 7, 0, 36 }, { 8, 0, 201 }, + { 136, 0, 605 }, { 140, 0, 224 }, { 132, 10, 233 }, { 134, 0, 1430 }, + { 134, 0, 1806 }, { 4, 0, 523 }, { 133, 0, 638 }, { 6, 0, 1889 }, + { 9, 0, 958 }, { 9, 0, 971 }, { 9, 0, 976 }, { 12, 0, 796 }, + { 12, 0, 799 }, { 12, 0, 808 }, { 12, 0, 835 }, { 12, 0, 836 }, + { 12, 0, 914 }, { 12, 0, 946 }, { 15, 0, 216 }, { 15, 0, 232 }, + { 18, 0, 183 }, { 18, 0, 187 }, { 18, 0, 194 }, { 18, 0, 212 }, + { 18, 0, 232 }, { 149, 0, 49 }, { 132, 10, 482 }, { 6, 0, 827 }, + { 134, 0, 1434 }, { 135, 10, 346 }, { 134, 0, 2043 }, { 6, 0, 242 }, + { 7, 0, 227 }, { 7, 0, 1581 }, { 8, 0, 104 }, { 9, 0, 113 }, + { 9, 0, 220 }, { 9, 0, 427 }, { 10, 0, 136 }, { 10, 0, 239 }, + { 11, 0, 579 }, { 11, 0, 1023 }, { 13, 0, 4 }, { 13, 0, 204 }, + { 13, 0, 316 }, { 148, 0, 86 }, { 134, 11, 1685 }, { 7, 0, 148 }, + { 8, 0, 284 }, { 141, 0, 63 }, { 142, 0, 10 }, { 135, 11, 584 }, + { 134, 0, 1249 }, { 7, 0, 861 }, { 135, 10, 334 }, { 5, 10, 795 }, + { 6, 10, 1741 }, { 137, 11, 70 }, { 132, 0, 807 }, { 7, 11, 135 }, + { 8, 11, 7 }, { 8, 11, 62 }, { 9, 11, 243 }, { 10, 11, 658 }, + { 10, 11, 697 }, { 11, 11, 456 }, { 139, 11, 756 }, { 9, 11, 395 }, + { 138, 11, 79 }, { 137, 11, 108 }, { 147, 0, 94 }, { 136, 0, 494 }, + { 135, 11, 631 }, { 135, 10, 622 }, { 7, 0, 1510 }, { 135, 10, 1750 }, + { 4, 10, 203 }, { 135, 10, 1936 }, { 7, 11, 406 }, { 7, 11, 459 }, + { 8, 11, 606 }, { 139, 11, 726 }, { 7, 0, 1306 }, { 8, 0, 505 }, + { 9, 0, 482 }, { 10, 0, 126 }, { 11, 0, 225 }, { 12, 0, 347 }, + { 12, 0, 449 }, { 13, 0, 19 }, { 14, 0, 218 }, { 142, 0, 435 }, + { 5, 0, 268 }, { 10, 0, 764 }, { 12, 0, 120 }, { 13, 0, 39 }, + { 145, 0, 127 }, { 142, 11, 68 }, { 11, 10, 678 }, { 140, 10, 307 }, + { 12, 11, 268 }, { 12, 11, 640 }, { 142, 11, 119 }, { 135, 10, 2044 }, + { 133, 11, 612 }, { 4, 11, 372 }, { 7, 11, 482 }, { 8, 11, 158 }, + { 9, 11, 602 }, { 9, 11, 615 }, { 10, 11, 245 }, { 10, 11, 678 }, + { 10, 11, 744 }, { 11, 11, 248 }, { 139, 11, 806 }, { 7, 10, 311 }, + { 9, 10, 308 }, { 140, 10, 255 }, { 4, 0, 384 }, { 135, 0, 1022 }, + { 5, 11, 854 }, { 135, 11, 1991 }, { 135, 10, 1266 }, { 4, 10, 400 }, + { 5, 10, 267 }, { 135, 10, 232 }, { 135, 0, 1703 }, { 9, 0, 159 }, + { 11, 0, 661 }, { 140, 0, 603 }, { 4, 0, 964 }, { 14, 0, 438 }, + { 14, 0, 444 }, { 14, 0, 456 }, { 22, 0, 60 }, { 22, 0, 63 }, + { 9, 11, 106 }, { 9, 11, 163 }, { 9, 11, 296 }, { 10, 11, 167 }, + { 10, 11, 172 }, { 10, 11, 777 }, { 139, 11, 16 }, { 136, 0, 583 }, + { 132, 0, 515 }, { 8, 0, 632 }, { 8, 0, 697 }, { 137, 0, 854 }, + { 5, 11, 195 }, { 135, 11, 1685 }, { 6, 0, 1123 }, { 134, 0, 1365 }, + { 134, 11, 328 }, { 7, 11, 1997 }, { 8, 11, 730 }, { 139, 11, 1006 }, + { 4, 0, 136 }, { 133, 0, 551 }, { 134, 0, 1782 }, { 7, 0, 1287 }, + { 9, 0, 44 }, { 10, 0, 552 }, { 10, 0, 642 }, { 11, 0, 839 }, + { 12, 0, 274 }, { 12, 0, 275 }, { 12, 0, 372 }, { 13, 0, 91 }, + { 142, 0, 125 }, { 5, 11, 751 }, { 11, 11, 797 }, { 140, 11, 203 }, + { 133, 0, 732 }, { 7, 0, 679 }, { 8, 0, 313 }, { 4, 10, 100 }, + { 135, 11, 821 }, { 10, 0, 361 }, { 142, 0, 316 }, { 134, 0, 595 }, + { 6, 0, 147 }, { 7, 0, 886 }, { 9, 0, 753 }, { 138, 0, 268 }, + { 5, 10, 362 }, { 5, 10, 443 }, { 6, 10, 318 }, { 7, 10, 1019 }, + { 139, 10, 623 }, { 5, 10, 463 }, { 136, 10, 296 }, { 4, 10, 454 }, + { 5, 11, 950 }, { 5, 11, 994 }, { 134, 11, 351 }, { 138, 0, 137 }, + { 5, 10, 48 }, { 5, 10, 404 }, { 6, 10, 557 }, { 7, 10, 458 }, + { 8, 10, 597 }, { 10, 10, 455 }, { 10, 10, 606 }, { 11, 10, 49 }, + { 11, 10, 548 }, { 12, 10, 476 }, { 13, 10, 18 }, { 141, 10, 450 }, + { 133, 0, 414 }, { 135, 0, 1762 }, { 5, 11, 421 }, { 135, 11, 47 }, + { 5, 10, 442 }, { 135, 10, 1984 }, { 134, 0, 599 }, { 134, 0, 1749 }, + { 134, 0, 1627 }, { 4, 0, 488 }, { 132, 11, 350 }, { 137, 11, 751 }, + { 132, 0, 83 }, { 140, 0, 676 }, { 133, 11, 967 }, { 7, 0, 1639 }, + { 5, 10, 55 }, { 140, 10, 161 }, { 4, 11, 473 }, { 7, 11, 623 }, + { 8, 11, 808 }, { 9, 11, 871 }, { 9, 11, 893 }, { 11, 11, 38 }, + { 11, 11, 431 }, { 12, 11, 112 }, { 12, 11, 217 }, { 12, 11, 243 }, + { 12, 11, 562 }, { 12, 11, 683 }, { 13, 11, 141 }, { 13, 11, 197 }, + { 13, 11, 227 }, { 13, 11, 406 }, { 13, 11, 487 }, { 14, 11, 156 }, + { 14, 11, 203 }, { 14, 11, 224 }, { 14, 11, 256 }, { 18, 11, 58 }, + { 150, 11, 0 }, { 133, 10, 450 }, { 7, 11, 736 }, { 139, 11, 264 }, + { 134, 0, 278 }, { 4, 11, 222 }, { 7, 11, 286 }, { 136, 11, 629 }, + { 135, 10, 869 }, { 140, 0, 97 }, { 144, 0, 14 }, { 134, 0, 1085 }, + { 4, 10, 213 }, { 7, 10, 223 }, { 136, 10, 80 }, { 7, 0, 388 }, + { 7, 0, 644 }, { 139, 0, 781 }, { 132, 0, 849 }, { 7, 0, 229 }, + { 8, 0, 59 }, { 9, 0, 190 }, { 10, 0, 378 }, { 140, 0, 191 }, + { 7, 10, 381 }, { 7, 10, 806 }, { 7, 10, 820 }, { 8, 10, 354 }, + { 8, 10, 437 }, { 8, 10, 787 }, { 9, 10, 657 }, { 10, 10, 58 }, + { 10, 10, 339 }, { 10, 10, 749 }, { 11, 10, 914 }, { 12, 10, 162 }, + { 13, 10, 75 }, { 14, 10, 106 }, { 14, 10, 198 }, { 14, 10, 320 }, + { 14, 10, 413 }, { 146, 10, 43 }, { 141, 11, 306 }, { 136, 10, 747 }, + { 134, 0, 1115 }, { 16, 0, 94 }, { 16, 0, 108 }, { 136, 11, 146 }, + { 6, 0, 700 }, { 6, 0, 817 }, { 134, 0, 1002 }, { 133, 10, 692 }, + { 4, 11, 465 }, { 135, 11, 1663 }, { 134, 10, 191 }, { 6, 0, 1414 }, + { 135, 11, 913 }, { 132, 0, 660 }, { 7, 0, 1035 }, { 138, 0, 737 }, + { 6, 10, 162 }, { 7, 10, 1960 }, { 136, 10, 831 }, { 132, 10, 706 }, + { 7, 0, 690 }, { 9, 0, 217 }, { 9, 0, 587 }, { 140, 0, 521 }, + { 138, 10, 426 }, { 135, 10, 1235 }, { 6, 11, 82 }, { 7, 11, 138 }, + { 7, 11, 517 }, { 9, 11, 673 }, { 139, 11, 238 }, { 138, 0, 272 }, + { 5, 11, 495 }, { 7, 11, 834 }, { 9, 11, 733 }, { 139, 11, 378 }, + { 134, 0, 1744 }, { 132, 0, 1011 }, { 7, 11, 828 }, { 142, 11, 116 }, + { 4, 0, 733 }, { 9, 0, 194 }, { 10, 0, 92 }, { 11, 0, 198 }, + { 12, 0, 84 }, { 13, 0, 128 }, { 133, 11, 559 }, { 10, 0, 57 }, + { 10, 0, 277 }, { 6, 11, 21 }, { 6, 11, 1737 }, { 7, 11, 1444 }, + { 136, 11, 224 }, { 4, 10, 204 }, { 137, 10, 902 }, { 136, 10, 833 }, + { 11, 0, 348 }, { 12, 0, 99 }, { 18, 0, 1 }, { 18, 0, 11 }, + { 19, 0, 4 }, { 7, 10, 366 }, { 9, 10, 287 }, { 12, 10, 199 }, + { 12, 10, 556 }, { 140, 10, 577 }, { 6, 0, 1981 }, { 136, 0, 936 }, + { 21, 0, 33 }, { 150, 0, 40 }, { 5, 11, 519 }, { 138, 11, 204 }, + { 5, 10, 356 }, { 135, 10, 224 }, { 134, 0, 775 }, { 135, 0, 306 }, + { 7, 10, 630 }, { 9, 10, 567 }, { 11, 10, 150 }, { 11, 10, 444 }, + { 141, 10, 119 }, { 5, 0, 979 }, { 134, 10, 539 }, { 133, 0, 611 }, + { 4, 11, 402 }, { 135, 11, 1679 }, { 5, 0, 178 }, { 7, 11, 2 }, + { 8, 11, 323 }, { 136, 11, 479 }, { 5, 11, 59 }, { 135, 11, 672 }, + { 4, 0, 1010 }, { 6, 0, 1969 }, { 138, 11, 237 }, { 133, 11, 412 }, + { 146, 11, 34 }, { 7, 11, 1740 }, { 146, 11, 48 }, { 134, 0, 664 }, + { 139, 10, 814 }, { 4, 11, 85 }, { 135, 11, 549 }, { 133, 11, 94 }, + { 133, 11, 457 }, { 132, 0, 390 }, { 134, 0, 1510 }, { 4, 10, 235 }, + { 135, 10, 255 }, { 4, 10, 194 }, { 5, 10, 584 }, { 6, 11, 11 }, + { 6, 10, 384 }, { 7, 11, 187 }, { 7, 10, 583 }, { 10, 10, 761 }, + { 11, 10, 760 }, { 139, 10, 851 }, { 4, 11, 522 }, { 139, 11, 802 }, + { 135, 0, 493 }, { 10, 11, 776 }, { 13, 11, 345 }, { 142, 11, 425 }, + { 146, 0, 37 }, { 4, 11, 52 }, { 135, 11, 661 }, { 134, 0, 724 }, + { 134, 0, 829 }, { 133, 11, 520 }, { 133, 10, 562 }, { 4, 11, 281 }, + { 5, 11, 38 }, { 7, 11, 194 }, { 7, 11, 668 }, { 7, 11, 1893 }, + { 137, 11, 397 }, { 5, 10, 191 }, { 137, 10, 271 }, { 7, 0, 1537 }, + { 14, 0, 96 }, { 143, 0, 73 }, { 5, 0, 473 }, { 11, 0, 168 }, + { 4, 10, 470 }, { 6, 10, 153 }, { 7, 10, 1503 }, { 7, 10, 1923 }, + { 10, 10, 701 }, { 11, 10, 132 }, { 11, 10, 227 }, { 11, 10, 320 }, + { 11, 10, 436 }, { 11, 10, 525 }, { 11, 10, 855 }, { 12, 10, 41 }, + { 12, 10, 286 }, { 13, 10, 103 }, { 13, 10, 284 }, { 14, 10, 255 }, + { 14, 10, 262 }, { 15, 10, 117 }, { 143, 10, 127 }, { 133, 0, 105 }, + { 5, 0, 438 }, { 9, 0, 694 }, { 12, 0, 627 }, { 141, 0, 210 }, + { 133, 10, 327 }, { 6, 10, 552 }, { 7, 10, 1754 }, { 137, 10, 604 }, + { 134, 0, 1256 }, { 152, 0, 11 }, { 5, 11, 448 }, { 11, 11, 98 }, + { 139, 11, 524 }, { 7, 0, 1626 }, { 5, 10, 80 }, { 6, 10, 405 }, + { 7, 10, 403 }, { 7, 10, 1502 }, { 8, 10, 456 }, { 9, 10, 487 }, + { 9, 10, 853 }, { 9, 10, 889 }, { 10, 10, 309 }, { 11, 10, 721 }, + { 11, 10, 994 }, { 12, 10, 430 }, { 13, 10, 165 }, { 14, 11, 16 }, + { 146, 11, 44 }, { 132, 0, 779 }, { 8, 0, 25 }, { 138, 0, 826 }, + { 4, 10, 453 }, { 5, 10, 887 }, { 6, 10, 535 }, { 8, 10, 6 }, + { 8, 10, 543 }, { 136, 10, 826 }, { 137, 11, 461 }, { 140, 11, 632 }, + { 132, 0, 308 }, { 135, 0, 741 }, { 132, 0, 671 }, { 7, 0, 150 }, + { 8, 0, 649 }, { 136, 0, 1020 }, { 9, 0, 99 }, { 6, 11, 336 }, + { 8, 11, 552 }, { 9, 11, 285 }, { 10, 11, 99 }, { 139, 11, 568 }, + { 134, 0, 521 }, { 5, 0, 339 }, { 14, 0, 3 }, { 15, 0, 41 }, + { 15, 0, 166 }, { 147, 0, 66 }, { 6, 11, 423 }, { 7, 11, 665 }, + { 7, 11, 1210 }, { 9, 11, 218 }, { 141, 11, 222 }, { 6, 0, 543 }, + { 5, 10, 101 }, { 5, 11, 256 }, { 6, 10, 88 }, { 7, 10, 1677 }, + { 9, 10, 100 }, { 10, 10, 677 }, { 14, 10, 169 }, { 14, 10, 302 }, + { 14, 10, 313 }, { 15, 10, 48 }, { 143, 10, 84 }, { 4, 10, 310 }, + { 7, 10, 708 }, { 7, 10, 996 }, { 9, 10, 795 }, { 10, 10, 390 }, + { 10, 10, 733 }, { 11, 10, 451 }, { 12, 10, 249 }, { 14, 10, 115 }, + { 14, 10, 286 }, { 143, 10, 100 }, { 133, 10, 587 }, { 13, 11, 417 }, + { 14, 11, 129 }, { 143, 11, 15 }, { 134, 0, 1358 }, { 136, 11, 554 }, + { 132, 10, 498 }, { 7, 10, 217 }, { 8, 10, 140 }, { 138, 10, 610 }, + { 135, 11, 989 }, { 135, 11, 634 }, { 6, 0, 155 }, { 140, 0, 234 }, + { 135, 11, 462 }, { 132, 11, 618 }, { 134, 0, 1628 }, { 132, 0, 766 }, + { 4, 11, 339 }, { 5, 10, 905 }, { 135, 11, 259 }, { 135, 0, 829 }, + { 4, 11, 759 }, { 141, 11, 169 }, { 7, 0, 1445 }, { 4, 10, 456 }, + { 7, 10, 358 }, { 7, 10, 1637 }, { 8, 10, 643 }, { 139, 10, 483 }, + { 5, 0, 486 }, { 135, 0, 1349 }, { 5, 11, 688 }, { 135, 11, 712 }, + { 7, 0, 1635 }, { 8, 0, 17 }, { 10, 0, 217 }, { 10, 0, 295 }, + { 12, 0, 2 }, { 140, 11, 2 }, { 138, 0, 558 }, { 150, 10, 56 }, + { 4, 11, 278 }, { 5, 11, 465 }, { 135, 11, 1367 }, { 136, 11, 482 }, + { 133, 10, 535 }, { 6, 0, 1362 }, { 6, 0, 1461 }, { 10, 11, 274 }, + { 10, 11, 625 }, { 139, 11, 530 }, { 5, 0, 599 }, { 5, 11, 336 }, + { 6, 11, 341 }, { 6, 11, 478 }, { 6, 11, 1763 }, { 136, 11, 386 }, + { 7, 10, 1748 }, { 137, 11, 151 }, { 134, 0, 1376 }, { 133, 10, 539 }, + { 135, 11, 73 }, { 135, 11, 1971 }, { 139, 11, 283 }, { 9, 0, 93 }, + { 139, 0, 474 }, { 6, 10, 91 }, { 135, 10, 435 }, { 6, 0, 447 }, + { 5, 11, 396 }, { 134, 11, 501 }, { 4, 10, 16 }, { 5, 10, 316 }, + { 5, 10, 842 }, { 6, 10, 370 }, { 6, 10, 1778 }, { 8, 10, 166 }, + { 11, 10, 812 }, { 12, 10, 206 }, { 12, 10, 351 }, { 14, 10, 418 }, + { 16, 10, 15 }, { 16, 10, 34 }, { 18, 10, 3 }, { 19, 10, 3 }, + { 19, 10, 7 }, { 20, 10, 4 }, { 149, 10, 21 }, { 7, 0, 577 }, + { 7, 0, 1432 }, { 9, 0, 475 }, { 9, 0, 505 }, { 9, 0, 526 }, + { 9, 0, 609 }, { 9, 0, 689 }, { 9, 0, 726 }, { 9, 0, 735 }, + { 9, 0, 738 }, { 10, 0, 556 }, { 10, 0, 674 }, { 10, 0, 684 }, + { 11, 0, 89 }, { 11, 0, 202 }, { 11, 0, 272 }, { 11, 0, 380 }, + { 11, 0, 415 }, { 11, 0, 505 }, { 11, 0, 537 }, { 11, 0, 550 }, + { 11, 0, 562 }, { 11, 0, 640 }, { 11, 0, 667 }, { 11, 0, 688 }, + { 11, 0, 847 }, { 11, 0, 927 }, { 11, 0, 930 }, { 11, 0, 940 }, + { 12, 0, 144 }, { 12, 0, 325 }, { 12, 0, 329 }, { 12, 0, 389 }, + { 12, 0, 403 }, { 12, 0, 451 }, { 12, 0, 515 }, { 12, 0, 604 }, + { 12, 0, 616 }, { 12, 0, 626 }, { 13, 0, 66 }, { 13, 0, 131 }, + { 13, 0, 167 }, { 13, 0, 236 }, { 13, 0, 368 }, { 13, 0, 411 }, + { 13, 0, 434 }, { 13, 0, 453 }, { 13, 0, 461 }, { 13, 0, 474 }, + { 14, 0, 59 }, { 14, 0, 60 }, { 14, 0, 139 }, { 14, 0, 152 }, + { 14, 0, 276 }, { 14, 0, 353 }, { 14, 0, 402 }, { 15, 0, 28 }, + { 15, 0, 81 }, { 15, 0, 123 }, { 15, 0, 152 }, { 18, 0, 136 }, + { 148, 0, 88 }, { 4, 11, 929 }, { 133, 11, 799 }, { 136, 11, 46 }, + { 142, 0, 307 }, { 4, 0, 609 }, { 7, 0, 756 }, { 9, 0, 544 }, + { 11, 0, 413 }, { 144, 0, 25 }, { 10, 0, 687 }, { 7, 10, 619 }, + { 10, 10, 547 }, { 11, 10, 122 }, { 140, 10, 601 }, { 4, 0, 930 }, + { 133, 0, 947 }, { 133, 0, 939 }, { 142, 0, 21 }, { 4, 11, 892 }, + { 133, 11, 770 }, { 133, 0, 962 }, { 5, 0, 651 }, { 8, 0, 170 }, + { 9, 0, 61 }, { 9, 0, 63 }, { 10, 0, 23 }, { 10, 0, 37 }, + { 10, 0, 834 }, { 11, 0, 4 }, { 11, 0, 187 }, { 11, 0, 281 }, + { 11, 0, 503 }, { 11, 0, 677 }, { 12, 0, 96 }, { 12, 0, 130 }, + { 12, 0, 244 }, { 14, 0, 5 }, { 14, 0, 40 }, { 14, 0, 162 }, + { 14, 0, 202 }, { 146, 0, 133 }, { 4, 0, 406 }, { 5, 0, 579 }, + { 12, 0, 492 }, { 150, 0, 15 }, { 135, 11, 158 }, { 135, 0, 597 }, + { 132, 0, 981 }, { 132, 10, 888 }, { 4, 10, 149 }, { 138, 10, 368 }, + { 132, 0, 545 }, { 4, 10, 154 }, { 7, 10, 1134 }, { 136, 10, 105 }, + { 135, 11, 2001 }, { 134, 0, 1558 }, { 4, 10, 31 }, { 6, 10, 429 }, + { 7, 10, 962 }, { 9, 10, 458 }, { 139, 10, 691 }, { 132, 10, 312 }, + { 135, 10, 1642 }, { 6, 0, 17 }, { 6, 0, 1304 }, { 7, 0, 16 }, + { 7, 0, 1001 }, { 9, 0, 886 }, { 10, 0, 489 }, { 10, 0, 800 }, + { 11, 0, 782 }, { 12, 0, 320 }, { 13, 0, 467 }, { 14, 0, 145 }, + { 14, 0, 387 }, { 143, 0, 119 }, { 135, 0, 1982 }, { 17, 0, 17 }, + { 7, 11, 1461 }, { 140, 11, 91 }, { 4, 10, 236 }, { 132, 11, 602 }, + { 138, 0, 907 }, { 136, 0, 110 }, { 7, 0, 272 }, { 19, 0, 53 }, + { 5, 10, 836 }, { 5, 10, 857 }, { 134, 10, 1680 }, { 5, 0, 458 }, + { 7, 11, 1218 }, { 136, 11, 303 }, { 7, 0, 1983 }, { 8, 0, 0 }, + { 8, 0, 171 }, { 9, 0, 120 }, { 9, 0, 732 }, { 10, 0, 473 }, + { 11, 0, 656 }, { 11, 0, 998 }, { 18, 0, 0 }, { 18, 0, 2 }, + { 19, 0, 21 }, { 10, 10, 68 }, { 139, 10, 494 }, { 137, 11, 662 }, + { 4, 11, 13 }, { 5, 11, 567 }, { 7, 11, 1498 }, { 9, 11, 124 }, + { 11, 11, 521 }, { 140, 11, 405 }, { 4, 10, 81 }, { 139, 10, 867 }, + { 135, 11, 1006 }, { 7, 11, 800 }, { 7, 11, 1783 }, { 138, 11, 12 }, + { 9, 0, 295 }, { 10, 0, 443 }, { 5, 10, 282 }, { 8, 10, 650 }, + { 137, 10, 907 }, { 132, 11, 735 }, { 4, 11, 170 }, { 4, 10, 775 }, + { 135, 11, 323 }, { 6, 0, 1844 }, { 10, 0, 924 }, { 11, 11, 844 }, + { 12, 11, 104 }, { 140, 11, 625 }, { 5, 11, 304 }, { 7, 11, 1403 }, + { 140, 11, 498 }, { 134, 0, 1232 }, { 4, 0, 519 }, { 10, 0, 70 }, + { 12, 0, 26 }, { 14, 0, 17 }, { 14, 0, 178 }, { 15, 0, 34 }, + { 149, 0, 12 }, { 132, 0, 993 }, { 4, 11, 148 }, { 133, 11, 742 }, + { 6, 0, 31 }, { 7, 0, 491 }, { 7, 0, 530 }, { 8, 0, 592 }, + { 11, 0, 53 }, { 11, 0, 779 }, { 12, 0, 167 }, { 12, 0, 411 }, + { 14, 0, 14 }, { 14, 0, 136 }, { 15, 0, 72 }, { 16, 0, 17 }, + { 144, 0, 72 }, { 133, 0, 907 }, { 134, 0, 733 }, { 133, 11, 111 }, + { 4, 10, 71 }, { 5, 10, 376 }, { 7, 10, 119 }, { 138, 10, 665 }, + { 136, 0, 55 }, { 8, 0, 430 }, { 136, 11, 430 }, { 4, 0, 208 }, + { 5, 0, 106 }, { 6, 0, 531 }, { 8, 0, 408 }, { 9, 0, 188 }, + { 138, 0, 572 }, { 12, 0, 56 }, { 11, 10, 827 }, { 14, 10, 34 }, + { 143, 10, 148 }, { 134, 0, 1693 }, { 133, 11, 444 }, { 132, 10, 479 }, + { 140, 0, 441 }, { 9, 0, 449 }, { 10, 0, 192 }, { 138, 0, 740 }, + { 134, 0, 928 }, { 4, 0, 241 }, { 7, 10, 607 }, { 136, 10, 99 }, + { 8, 11, 123 }, { 15, 11, 6 }, { 144, 11, 7 }, { 6, 11, 285 }, + { 8, 11, 654 }, { 11, 11, 749 }, { 12, 11, 190 }, { 12, 11, 327 }, + { 13, 11, 120 }, { 13, 11, 121 }, { 13, 11, 327 }, { 15, 11, 47 }, + { 146, 11, 40 }, { 4, 10, 41 }, { 5, 10, 74 }, { 7, 10, 1627 }, + { 11, 10, 871 }, { 140, 10, 619 }, { 7, 0, 1525 }, { 11, 10, 329 }, + { 11, 10, 965 }, { 12, 10, 241 }, { 14, 10, 354 }, { 15, 10, 22 }, + { 148, 10, 63 }, { 132, 0, 259 }, { 135, 11, 183 }, { 9, 10, 209 }, + { 137, 10, 300 }, { 5, 11, 937 }, { 135, 11, 100 }, { 133, 10, 98 }, + { 4, 0, 173 }, { 5, 0, 312 }, { 5, 0, 512 }, { 135, 0, 1285 }, + { 141, 0, 185 }, { 7, 0, 1603 }, { 7, 0, 1691 }, { 9, 0, 464 }, + { 11, 0, 195 }, { 12, 0, 279 }, { 12, 0, 448 }, { 14, 0, 11 }, + { 147, 0, 102 }, { 135, 0, 1113 }, { 133, 10, 984 }, { 4, 0, 452 }, + { 5, 0, 583 }, { 135, 0, 720 }, { 4, 0, 547 }, { 5, 0, 817 }, + { 6, 0, 433 }, { 7, 0, 593 }, { 7, 0, 1378 }, { 8, 0, 161 }, + { 9, 0, 284 }, { 10, 0, 313 }, { 139, 0, 886 }, { 8, 0, 722 }, + { 4, 10, 182 }, { 6, 10, 205 }, { 135, 10, 220 }, { 150, 0, 13 }, + { 4, 10, 42 }, { 9, 10, 205 }, { 9, 10, 786 }, { 138, 10, 659 }, + { 6, 0, 289 }, { 7, 0, 1670 }, { 12, 0, 57 }, { 151, 0, 4 }, + { 132, 10, 635 }, { 14, 0, 43 }, { 146, 0, 21 }, { 139, 10, 533 }, + { 135, 0, 1694 }, { 8, 0, 420 }, { 139, 0, 193 }, { 135, 0, 409 }, + { 132, 10, 371 }, { 4, 10, 272 }, { 135, 10, 836 }, { 5, 10, 825 }, + { 134, 10, 1640 }, { 5, 11, 251 }, { 5, 11, 956 }, { 8, 11, 268 }, + { 9, 11, 214 }, { 146, 11, 142 }, { 138, 0, 308 }, { 6, 0, 1863 }, + { 141, 11, 37 }, { 137, 10, 879 }, { 7, 10, 317 }, { 135, 10, 569 }, + { 132, 11, 294 }, { 134, 0, 790 }, { 5, 0, 1002 }, { 136, 0, 745 }, + { 5, 11, 346 }, { 5, 11, 711 }, { 136, 11, 390 }, { 135, 0, 289 }, + { 5, 0, 504 }, { 11, 0, 68 }, { 137, 10, 307 }, { 4, 0, 239 }, + { 6, 0, 477 }, { 7, 0, 1607 }, { 139, 0, 617 }, { 149, 0, 13 }, + { 133, 0, 609 }, { 133, 11, 624 }, { 5, 11, 783 }, { 7, 11, 1998 }, + { 135, 11, 2047 }, { 133, 10, 525 }, { 132, 0, 367 }, { 132, 11, 594 }, + { 6, 0, 528 }, { 133, 10, 493 }, { 4, 10, 174 }, { 135, 10, 911 }, + { 8, 10, 417 }, { 137, 10, 782 }, { 132, 0, 694 }, { 7, 0, 548 }, + { 137, 0, 58 }, { 4, 10, 32 }, { 5, 10, 215 }, { 6, 10, 269 }, + { 7, 10, 1782 }, { 7, 10, 1892 }, { 10, 10, 16 }, { 11, 10, 822 }, + { 11, 10, 954 }, { 141, 10, 481 }, { 140, 0, 687 }, { 7, 0, 1749 }, + { 136, 10, 477 }, { 132, 11, 569 }, { 133, 10, 308 }, { 135, 10, 1088 }, + { 4, 0, 661 }, { 138, 0, 1004 }, { 5, 11, 37 }, { 6, 11, 39 }, + { 6, 11, 451 }, { 7, 11, 218 }, { 7, 11, 667 }, { 7, 11, 1166 }, + { 7, 11, 1687 }, { 8, 11, 662 }, { 144, 11, 2 }, { 9, 0, 445 }, + { 12, 0, 53 }, { 13, 0, 492 }, { 5, 10, 126 }, { 8, 10, 297 }, + { 9, 10, 366 }, { 140, 10, 374 }, { 7, 10, 1551 }, { 139, 10, 361 }, + { 148, 0, 74 }, { 134, 11, 508 }, { 135, 0, 213 }, { 132, 10, 175 }, + { 132, 10, 685 }, { 6, 0, 760 }, { 6, 0, 834 }, { 134, 0, 1248 }, + { 7, 11, 453 }, { 7, 11, 635 }, { 7, 11, 796 }, { 8, 11, 331 }, + { 9, 11, 328 }, { 9, 11, 330 }, { 9, 11, 865 }, { 10, 11, 119 }, + { 10, 11, 235 }, { 11, 11, 111 }, { 11, 11, 129 }, { 11, 11, 240 }, + { 12, 11, 31 }, { 12, 11, 66 }, { 12, 11, 222 }, { 12, 11, 269 }, + { 12, 11, 599 }, { 12, 11, 689 }, { 13, 11, 186 }, { 13, 11, 364 }, + { 142, 11, 345 }, { 7, 0, 1672 }, { 139, 0, 189 }, { 133, 10, 797 }, + { 133, 10, 565 }, { 6, 0, 1548 }, { 6, 11, 98 }, { 7, 11, 585 }, + { 135, 11, 702 }, { 9, 0, 968 }, { 15, 0, 192 }, { 149, 0, 56 }, + { 4, 10, 252 }, { 6, 11, 37 }, { 7, 11, 299 }, { 7, 10, 1068 }, + { 7, 11, 1666 }, { 8, 11, 195 }, { 8, 11, 316 }, { 9, 11, 178 }, + { 9, 11, 276 }, { 9, 11, 339 }, { 9, 11, 536 }, { 10, 11, 102 }, + { 10, 11, 362 }, { 10, 10, 434 }, { 10, 11, 785 }, { 11, 11, 55 }, + { 11, 11, 149 }, { 11, 10, 228 }, { 11, 10, 426 }, { 11, 11, 773 }, + { 13, 10, 231 }, { 13, 11, 416 }, { 13, 11, 419 }, { 14, 11, 38 }, + { 14, 11, 41 }, { 14, 11, 210 }, { 18, 10, 106 }, { 148, 10, 87 }, + { 4, 0, 751 }, { 11, 0, 390 }, { 140, 0, 32 }, { 4, 0, 409 }, + { 133, 0, 78 }, { 11, 11, 458 }, { 12, 11, 15 }, { 140, 11, 432 }, + { 7, 0, 1602 }, { 10, 0, 257 }, { 10, 0, 698 }, { 11, 0, 544 }, + { 11, 0, 585 }, { 12, 0, 212 }, { 13, 0, 307 }, { 5, 10, 231 }, + { 7, 10, 601 }, { 9, 10, 277 }, { 9, 10, 674 }, { 10, 10, 178 }, + { 10, 10, 418 }, { 10, 10, 509 }, { 11, 10, 531 }, { 12, 10, 113 }, + { 12, 10, 475 }, { 13, 10, 99 }, { 142, 10, 428 }, { 6, 0, 473 }, + { 145, 0, 105 }, { 6, 0, 1949 }, { 15, 0, 156 }, { 133, 11, 645 }, + { 7, 10, 1591 }, { 144, 10, 43 }, { 135, 0, 1779 }, { 135, 10, 1683 }, + { 4, 11, 290 }, { 135, 11, 1356 }, { 134, 0, 763 }, { 6, 11, 70 }, + { 7, 11, 1292 }, { 10, 11, 762 }, { 139, 11, 288 }, { 142, 0, 29 }, + { 140, 11, 428 }, { 7, 0, 883 }, { 7, 11, 131 }, { 7, 11, 422 }, + { 8, 11, 210 }, { 140, 11, 573 }, { 134, 0, 488 }, { 4, 10, 399 }, + { 5, 10, 119 }, { 5, 10, 494 }, { 7, 10, 751 }, { 137, 10, 556 }, + { 133, 0, 617 }, { 132, 11, 936 }, { 139, 0, 50 }, { 7, 0, 1518 }, + { 139, 0, 694 }, { 137, 0, 785 }, { 4, 0, 546 }, { 135, 0, 2042 }, + { 7, 11, 716 }, { 13, 11, 97 }, { 141, 11, 251 }, { 132, 11, 653 }, + { 145, 0, 22 }, { 134, 0, 1016 }, { 4, 0, 313 }, { 133, 0, 577 }, + { 136, 11, 657 }, { 8, 0, 184 }, { 141, 0, 433 }, { 135, 0, 935 }, + { 6, 0, 720 }, { 9, 0, 114 }, { 146, 11, 80 }, { 12, 0, 186 }, + { 12, 0, 292 }, { 14, 0, 100 }, { 18, 0, 70 }, { 7, 10, 594 }, + { 7, 10, 851 }, { 7, 10, 1858 }, { 9, 10, 411 }, { 9, 10, 574 }, + { 9, 10, 666 }, { 9, 10, 737 }, { 10, 10, 346 }, { 10, 10, 712 }, + { 11, 10, 246 }, { 11, 10, 432 }, { 11, 10, 517 }, { 11, 10, 647 }, + { 11, 10, 679 }, { 11, 10, 727 }, { 12, 10, 304 }, { 12, 10, 305 }, + { 12, 10, 323 }, { 12, 10, 483 }, { 12, 10, 572 }, { 12, 10, 593 }, + { 12, 10, 602 }, { 13, 10, 95 }, { 13, 10, 101 }, { 13, 10, 171 }, + { 13, 10, 315 }, { 13, 10, 378 }, { 13, 10, 425 }, { 13, 10, 475 }, + { 14, 10, 63 }, { 14, 10, 380 }, { 14, 10, 384 }, { 15, 10, 133 }, + { 18, 10, 112 }, { 148, 10, 72 }, { 135, 10, 1093 }, { 135, 11, 1836 }, + { 132, 10, 679 }, { 137, 10, 203 }, { 11, 0, 402 }, { 12, 0, 109 }, + { 12, 0, 431 }, { 13, 0, 179 }, { 13, 0, 206 }, { 14, 0, 217 }, + { 16, 0, 3 }, { 148, 0, 53 }, { 7, 11, 1368 }, { 8, 11, 232 }, + { 8, 11, 361 }, { 10, 11, 682 }, { 138, 11, 742 }, { 137, 10, 714 }, + { 5, 0, 886 }, { 6, 0, 46 }, { 6, 0, 1790 }, { 7, 0, 14 }, + { 7, 0, 732 }, { 7, 0, 1654 }, { 8, 0, 95 }, { 8, 0, 327 }, + { 8, 0, 616 }, { 9, 0, 892 }, { 10, 0, 598 }, { 10, 0, 769 }, + { 11, 0, 134 }, { 11, 0, 747 }, { 12, 0, 378 }, { 14, 0, 97 }, + { 137, 11, 534 }, { 4, 0, 969 }, { 136, 10, 825 }, { 137, 11, 27 }, + { 6, 0, 727 }, { 142, 11, 12 }, { 133, 0, 1021 }, { 134, 0, 1190 }, + { 134, 11, 1657 }, { 5, 10, 143 }, { 5, 10, 769 }, { 6, 10, 1760 }, + { 7, 10, 682 }, { 7, 10, 1992 }, { 136, 10, 736 }, { 132, 0, 153 }, + { 135, 11, 127 }, { 133, 0, 798 }, { 132, 0, 587 }, { 6, 0, 598 }, + { 7, 0, 42 }, { 8, 0, 695 }, { 10, 0, 212 }, { 11, 0, 158 }, + { 14, 0, 196 }, { 145, 0, 85 }, { 133, 10, 860 }, { 6, 0, 1929 }, + { 134, 0, 1933 }, { 5, 0, 957 }, { 5, 0, 1008 }, { 9, 0, 577 }, + { 12, 0, 141 }, { 6, 10, 422 }, { 7, 10, 0 }, { 7, 10, 1544 }, + { 8, 11, 364 }, { 11, 10, 990 }, { 12, 10, 453 }, { 13, 10, 47 }, + { 141, 10, 266 }, { 134, 0, 1319 }, { 4, 0, 129 }, { 135, 0, 465 }, + { 7, 0, 470 }, { 7, 0, 1057 }, { 7, 0, 1201 }, { 9, 0, 755 }, + { 11, 0, 906 }, { 140, 0, 527 }, { 7, 0, 908 }, { 146, 0, 7 }, + { 5, 0, 148 }, { 136, 0, 450 }, { 5, 10, 515 }, { 137, 10, 131 }, + { 7, 10, 1605 }, { 11, 10, 962 }, { 146, 10, 139 }, { 132, 10, 646 }, + { 134, 0, 1166 }, { 4, 10, 396 }, { 7, 10, 728 }, { 9, 10, 117 }, + { 13, 10, 202 }, { 148, 10, 51 }, { 6, 10, 121 }, { 6, 10, 124 }, + { 6, 10, 357 }, { 7, 10, 1138 }, { 7, 10, 1295 }, { 8, 10, 162 }, + { 139, 10, 655 }, { 14, 0, 374 }, { 142, 11, 374 }, { 138, 0, 253 }, + { 139, 0, 1003 }, { 5, 11, 909 }, { 9, 11, 849 }, { 138, 11, 805 }, + { 133, 10, 237 }, { 7, 11, 525 }, { 7, 11, 1579 }, { 8, 11, 497 }, + { 136, 11, 573 }, { 137, 0, 46 }, { 132, 0, 879 }, { 134, 0, 806 }, + { 135, 0, 1868 }, { 6, 0, 1837 }, { 134, 0, 1846 }, { 6, 0, 730 }, + { 134, 0, 881 }, { 7, 0, 965 }, { 7, 0, 1460 }, { 7, 0, 1604 }, + { 7, 11, 193 }, { 7, 11, 397 }, { 7, 11, 1105 }, { 8, 11, 124 }, + { 8, 11, 619 }, { 9, 11, 305 }, { 10, 11, 264 }, { 11, 11, 40 }, + { 12, 11, 349 }, { 13, 11, 134 }, { 13, 11, 295 }, { 14, 11, 155 }, + { 15, 11, 120 }, { 146, 11, 105 }, { 136, 0, 506 }, { 143, 0, 10 }, + { 4, 11, 262 }, { 7, 11, 342 }, { 7, 10, 571 }, { 7, 10, 1877 }, + { 10, 10, 366 }, { 141, 11, 23 }, { 133, 11, 641 }, { 10, 0, 22 }, + { 9, 10, 513 }, { 10, 10, 39 }, { 12, 10, 122 }, { 140, 10, 187 }, + { 135, 11, 1431 }, { 150, 11, 49 }, { 4, 11, 99 }, { 6, 11, 250 }, + { 6, 11, 346 }, { 8, 11, 127 }, { 138, 11, 81 }, { 6, 0, 2014 }, + { 8, 0, 928 }, { 10, 0, 960 }, { 10, 0, 979 }, { 140, 0, 996 }, + { 134, 0, 296 }, { 132, 11, 915 }, { 5, 11, 75 }, { 9, 11, 517 }, + { 10, 11, 470 }, { 12, 11, 155 }, { 141, 11, 224 }, { 137, 10, 873 }, + { 4, 0, 854 }, { 140, 11, 18 }, { 134, 0, 587 }, { 7, 10, 107 }, + { 7, 10, 838 }, { 8, 10, 550 }, { 138, 10, 401 }, { 11, 0, 636 }, + { 15, 0, 145 }, { 17, 0, 34 }, { 19, 0, 50 }, { 23, 0, 20 }, + { 11, 10, 588 }, { 11, 10, 864 }, { 11, 10, 968 }, { 143, 10, 160 }, + { 135, 11, 216 }, { 7, 0, 982 }, { 10, 0, 32 }, { 143, 0, 56 }, + { 133, 10, 768 }, { 133, 11, 954 }, { 6, 11, 304 }, { 7, 11, 1114 }, + { 8, 11, 418 }, { 10, 11, 345 }, { 11, 11, 341 }, { 11, 11, 675 }, + { 141, 11, 40 }, { 9, 11, 410 }, { 139, 11, 425 }, { 136, 0, 941 }, + { 5, 0, 435 }, { 132, 10, 894 }, { 5, 0, 85 }, { 6, 0, 419 }, + { 7, 0, 134 }, { 7, 0, 305 }, { 7, 0, 361 }, { 7, 0, 1337 }, + { 8, 0, 71 }, { 140, 0, 519 }, { 140, 0, 688 }, { 135, 0, 740 }, + { 5, 0, 691 }, { 7, 0, 345 }, { 9, 0, 94 }, { 140, 0, 169 }, + { 5, 0, 183 }, { 6, 0, 582 }, { 10, 0, 679 }, { 140, 0, 435 }, + { 134, 11, 14 }, { 6, 0, 945 }, { 135, 0, 511 }, { 134, 11, 1708 }, + { 5, 11, 113 }, { 6, 11, 243 }, { 7, 11, 1865 }, { 11, 11, 161 }, + { 16, 11, 37 }, { 145, 11, 99 }, { 132, 11, 274 }, { 137, 0, 539 }, + { 7, 0, 1993 }, { 8, 0, 684 }, { 134, 10, 272 }, { 6, 0, 659 }, + { 134, 0, 982 }, { 4, 10, 9 }, { 5, 10, 128 }, { 7, 10, 368 }, + { 11, 10, 480 }, { 148, 10, 3 }, { 134, 0, 583 }, { 132, 0, 803 }, + { 133, 0, 704 }, { 4, 0, 179 }, { 5, 0, 198 }, { 133, 0, 697 }, + { 7, 0, 347 }, { 7, 0, 971 }, { 8, 0, 181 }, { 10, 0, 711 }, + { 135, 11, 166 }, { 136, 10, 682 }, { 4, 10, 2 }, { 7, 10, 545 }, + { 7, 10, 894 }, { 136, 11, 521 }, { 135, 0, 481 }, { 132, 0, 243 }, + { 5, 0, 203 }, { 7, 0, 19 }, { 7, 0, 71 }, { 7, 0, 113 }, + { 10, 0, 405 }, { 11, 0, 357 }, { 142, 0, 240 }, { 5, 11, 725 }, + { 5, 11, 727 }, { 135, 11, 1811 }, { 6, 0, 826 }, { 137, 11, 304 }, + { 7, 0, 1450 }, { 139, 0, 99 }, { 133, 11, 654 }, { 134, 0, 492 }, + { 5, 0, 134 }, { 6, 0, 408 }, { 6, 0, 495 }, { 7, 0, 1593 }, + { 6, 11, 273 }, { 10, 11, 188 }, { 13, 11, 377 }, { 146, 11, 77 }, + { 9, 10, 769 }, { 140, 10, 185 }, { 135, 11, 410 }, { 142, 0, 4 }, + { 4, 0, 665 }, { 134, 11, 1785 }, { 4, 0, 248 }, { 7, 0, 137 }, + { 137, 0, 349 }, { 5, 10, 530 }, { 142, 10, 113 }, { 7, 0, 1270 }, + { 139, 0, 612 }, { 132, 11, 780 }, { 5, 0, 371 }, { 135, 0, 563 }, + { 135, 0, 826 }, { 6, 0, 1535 }, { 23, 0, 21 }, { 151, 0, 23 }, + { 4, 0, 374 }, { 7, 0, 547 }, { 7, 0, 1700 }, { 7, 0, 1833 }, + { 139, 0, 858 }, { 133, 10, 556 }, { 7, 11, 612 }, { 8, 11, 545 }, + { 8, 11, 568 }, { 8, 11, 642 }, { 9, 11, 717 }, { 10, 11, 541 }, + { 10, 11, 763 }, { 11, 11, 449 }, { 12, 11, 489 }, { 13, 11, 153 }, + { 13, 11, 296 }, { 14, 11, 138 }, { 14, 11, 392 }, { 15, 11, 50 }, + { 16, 11, 6 }, { 16, 11, 12 }, { 148, 11, 9 }, { 9, 0, 311 }, + { 141, 0, 42 }, { 8, 10, 16 }, { 140, 10, 568 }, { 6, 0, 1968 }, + { 6, 0, 2027 }, { 138, 0, 991 }, { 6, 0, 1647 }, { 7, 0, 1552 }, + { 7, 0, 2010 }, { 9, 0, 494 }, { 137, 0, 509 }, { 133, 11, 948 }, + { 6, 10, 186 }, { 137, 10, 426 }, { 134, 0, 769 }, { 134, 0, 642 }, + { 132, 10, 585 }, { 6, 0, 123 }, { 7, 0, 214 }, { 9, 0, 728 }, + { 10, 0, 157 }, { 11, 0, 346 }, { 11, 0, 662 }, { 143, 0, 106 }, + { 142, 11, 381 }, { 135, 0, 1435 }, { 4, 11, 532 }, { 5, 11, 706 }, + { 135, 11, 662 }, { 5, 11, 837 }, { 134, 11, 1651 }, { 4, 10, 93 }, + { 5, 10, 252 }, { 6, 10, 229 }, { 7, 10, 291 }, { 9, 10, 550 }, + { 139, 10, 644 }, { 148, 0, 79 }, { 137, 10, 749 }, { 134, 0, 1425 }, + { 137, 10, 162 }, { 4, 11, 362 }, { 7, 11, 52 }, { 7, 11, 303 }, + { 140, 11, 166 }, { 132, 10, 381 }, { 4, 11, 330 }, { 7, 11, 933 }, + { 7, 11, 2012 }, { 136, 11, 292 }, { 135, 11, 767 }, { 4, 0, 707 }, + { 5, 0, 588 }, { 6, 0, 393 }, { 13, 0, 106 }, { 18, 0, 49 }, + { 147, 0, 41 }, { 6, 0, 211 }, { 7, 0, 1690 }, { 11, 0, 486 }, + { 140, 0, 369 }, { 137, 11, 883 }, { 4, 11, 703 }, { 135, 11, 207 }, + { 4, 0, 187 }, { 5, 0, 184 }, { 5, 0, 690 }, { 7, 0, 1869 }, + { 10, 0, 756 }, { 139, 0, 783 }, { 132, 11, 571 }, { 134, 0, 1382 }, + { 5, 0, 175 }, { 6, 10, 77 }, { 6, 10, 157 }, { 7, 10, 974 }, + { 7, 10, 1301 }, { 7, 10, 1339 }, { 7, 10, 1490 }, { 7, 10, 1873 }, + { 137, 10, 628 }, { 134, 0, 1493 }, { 5, 11, 873 }, { 133, 11, 960 }, + { 134, 0, 1007 }, { 12, 11, 93 }, { 12, 11, 501 }, { 13, 11, 362 }, + { 14, 11, 151 }, { 15, 11, 40 }, { 15, 11, 59 }, { 16, 11, 46 }, + { 17, 11, 25 }, { 18, 11, 14 }, { 18, 11, 134 }, { 19, 11, 25 }, + { 19, 11, 69 }, { 20, 11, 16 }, { 20, 11, 19 }, { 20, 11, 66 }, + { 21, 11, 23 }, { 21, 11, 25 }, { 150, 11, 42 }, { 11, 10, 919 }, + { 141, 10, 409 }, { 134, 0, 219 }, { 5, 0, 582 }, { 6, 0, 1646 }, + { 7, 0, 99 }, { 7, 0, 1962 }, { 7, 0, 1986 }, { 8, 0, 515 }, + { 8, 0, 773 }, { 9, 0, 23 }, { 9, 0, 491 }, { 12, 0, 620 }, + { 142, 0, 93 }, { 133, 0, 851 }, { 5, 11, 33 }, { 134, 11, 470 }, + { 135, 11, 1291 }, { 134, 0, 1278 }, { 135, 11, 1882 }, { 135, 10, 1489 }, + { 132, 0, 1000 }, { 138, 0, 982 }, { 8, 0, 762 }, { 8, 0, 812 }, + { 137, 0, 910 }, { 6, 11, 47 }, { 7, 11, 90 }, { 7, 11, 664 }, + { 7, 11, 830 }, { 7, 11, 1380 }, { 7, 11, 2025 }, { 8, 11, 448 }, + { 136, 11, 828 }, { 4, 0, 98 }, { 4, 0, 940 }, { 6, 0, 1819 }, + { 6, 0, 1834 }, { 6, 0, 1841 }, { 7, 0, 1365 }, { 8, 0, 859 }, + { 8, 0, 897 }, { 8, 0, 918 }, { 9, 0, 422 }, { 9, 0, 670 }, + { 10, 0, 775 }, { 10, 0, 894 }, { 10, 0, 909 }, { 10, 0, 910 }, + { 10, 0, 935 }, { 11, 0, 210 }, { 12, 0, 750 }, { 12, 0, 755 }, + { 13, 0, 26 }, { 13, 0, 457 }, { 13, 0, 476 }, { 16, 0, 100 }, + { 16, 0, 109 }, { 18, 0, 173 }, { 18, 0, 175 }, { 8, 10, 398 }, + { 9, 10, 681 }, { 139, 10, 632 }, { 9, 11, 417 }, { 137, 11, 493 }, + { 136, 10, 645 }, { 138, 0, 906 }, { 134, 0, 1730 }, { 134, 10, 20 }, + { 133, 11, 1019 }, { 134, 0, 1185 }, { 10, 0, 40 }, { 136, 10, 769 }, + { 9, 0, 147 }, { 134, 11, 208 }, { 140, 0, 650 }, { 5, 0, 209 }, + { 6, 0, 30 }, { 11, 0, 56 }, { 139, 0, 305 }, { 132, 0, 553 }, + { 138, 11, 344 }, { 6, 11, 68 }, { 7, 11, 398 }, { 7, 11, 448 }, + { 7, 11, 1629 }, { 7, 11, 1813 }, { 8, 11, 387 }, { 8, 11, 442 }, + { 9, 11, 710 }, { 10, 11, 282 }, { 138, 11, 722 }, { 5, 0, 597 }, + { 14, 0, 20 }, { 142, 11, 20 }, { 135, 0, 1614 }, { 135, 10, 1757 }, + { 4, 0, 150 }, { 5, 0, 303 }, { 6, 0, 327 }, { 135, 10, 937 }, + { 16, 0, 49 }, { 7, 10, 1652 }, { 144, 11, 49 }, { 8, 0, 192 }, + { 10, 0, 78 }, { 141, 0, 359 }, { 135, 0, 786 }, { 143, 0, 134 }, + { 6, 0, 1638 }, { 7, 0, 79 }, { 7, 0, 496 }, { 9, 0, 138 }, + { 10, 0, 336 }, { 11, 0, 12 }, { 12, 0, 412 }, { 12, 0, 440 }, + { 142, 0, 305 }, { 136, 11, 491 }, { 4, 10, 579 }, { 5, 10, 226 }, + { 5, 10, 323 }, { 135, 10, 960 }, { 7, 0, 204 }, { 7, 0, 415 }, + { 8, 0, 42 }, { 10, 0, 85 }, { 139, 0, 564 }, { 132, 0, 614 }, + { 4, 11, 403 }, { 5, 11, 441 }, { 7, 11, 450 }, { 11, 11, 101 }, + { 12, 11, 193 }, { 141, 11, 430 }, { 135, 11, 1927 }, { 135, 11, 1330 }, + { 4, 0, 3 }, { 5, 0, 247 }, { 5, 0, 644 }, { 7, 0, 744 }, + { 7, 0, 1207 }, { 7, 0, 1225 }, { 7, 0, 1909 }, { 146, 0, 147 }, + { 136, 0, 942 }, { 4, 0, 1019 }, { 134, 0, 2023 }, { 5, 11, 679 }, + { 133, 10, 973 }, { 5, 0, 285 }, { 9, 0, 67 }, { 13, 0, 473 }, + { 143, 0, 82 }, { 7, 11, 328 }, { 137, 11, 326 }, { 151, 0, 8 }, + { 6, 10, 135 }, { 135, 10, 1176 }, { 135, 11, 1128 }, { 134, 0, 1309 }, + { 135, 11, 1796 }, { 135, 10, 314 }, { 4, 11, 574 }, { 7, 11, 350 }, + { 7, 11, 1024 }, { 8, 11, 338 }, { 9, 11, 677 }, { 10, 11, 808 }, + { 139, 11, 508 }, { 7, 11, 818 }, { 17, 11, 14 }, { 17, 11, 45 }, + { 18, 11, 75 }, { 148, 11, 18 }, { 146, 10, 4 }, { 135, 11, 1081 }, + { 4, 0, 29 }, { 6, 0, 532 }, { 7, 0, 1628 }, { 7, 0, 1648 }, + { 9, 0, 350 }, { 10, 0, 433 }, { 11, 0, 97 }, { 11, 0, 557 }, + { 11, 0, 745 }, { 12, 0, 289 }, { 12, 0, 335 }, { 12, 0, 348 }, + { 12, 0, 606 }, { 13, 0, 116 }, { 13, 0, 233 }, { 13, 0, 466 }, + { 14, 0, 181 }, { 14, 0, 209 }, { 14, 0, 232 }, { 14, 0, 236 }, + { 14, 0, 300 }, { 16, 0, 41 }, { 148, 0, 97 }, { 7, 0, 318 }, + { 6, 10, 281 }, { 8, 10, 282 }, { 8, 10, 480 }, { 8, 10, 499 }, + { 9, 10, 198 }, { 10, 10, 143 }, { 10, 10, 169 }, { 10, 10, 211 }, + { 10, 10, 417 }, { 10, 10, 574 }, { 11, 10, 147 }, { 11, 10, 395 }, + { 12, 10, 75 }, { 12, 10, 407 }, { 12, 10, 608 }, { 13, 10, 500 }, + { 142, 10, 251 }, { 135, 11, 1676 }, { 135, 11, 2037 }, { 135, 0, 1692 }, + { 5, 0, 501 }, { 7, 0, 1704 }, { 9, 0, 553 }, { 11, 0, 520 }, + { 12, 0, 557 }, { 141, 0, 249 }, { 6, 0, 1527 }, { 14, 0, 324 }, + { 15, 0, 55 }, { 15, 0, 80 }, { 14, 11, 324 }, { 15, 11, 55 }, + { 143, 11, 80 }, { 135, 10, 1776 }, { 8, 0, 988 }, { 137, 11, 297 }, + { 132, 10, 419 }, { 142, 0, 223 }, { 139, 11, 234 }, { 7, 0, 1123 }, + { 12, 0, 508 }, { 14, 0, 102 }, { 14, 0, 226 }, { 144, 0, 57 }, + { 4, 10, 138 }, { 7, 10, 1012 }, { 7, 10, 1280 }, { 137, 10, 76 }, + { 7, 0, 1764 }, { 5, 10, 29 }, { 140, 10, 638 }, { 134, 0, 2015 }, + { 134, 0, 1599 }, { 138, 11, 56 }, { 6, 11, 306 }, { 7, 11, 1140 }, + { 7, 11, 1340 }, { 8, 11, 133 }, { 138, 11, 449 }, { 139, 11, 1011 }, + { 6, 10, 1710 }, { 135, 10, 2038 }, { 7, 11, 1763 }, { 140, 11, 310 }, + { 6, 0, 129 }, { 4, 10, 17 }, { 5, 10, 23 }, { 7, 10, 995 }, + { 11, 10, 383 }, { 11, 10, 437 }, { 12, 10, 460 }, { 140, 10, 532 }, + { 5, 11, 329 }, { 136, 11, 260 }, { 133, 10, 862 }, { 132, 0, 534 }, + { 6, 0, 811 }, { 135, 0, 626 }, { 132, 11, 657 }, { 4, 0, 25 }, + { 5, 0, 60 }, { 6, 0, 504 }, { 7, 0, 614 }, { 7, 0, 1155 }, + { 12, 0, 0 }, { 152, 11, 7 }, { 7, 0, 1248 }, { 11, 0, 621 }, + { 139, 0, 702 }, { 137, 0, 321 }, { 8, 10, 70 }, { 12, 10, 171 }, + { 141, 10, 272 }, { 10, 10, 233 }, { 139, 10, 76 }, { 4, 0, 379 }, + { 7, 0, 1397 }, { 134, 10, 442 }, { 5, 11, 66 }, { 7, 11, 1896 }, + { 136, 11, 288 }, { 134, 11, 1643 }, { 134, 10, 1709 }, { 4, 11, 21 }, + { 5, 11, 91 }, { 5, 11, 570 }, { 5, 11, 648 }, { 5, 11, 750 }, + { 5, 11, 781 }, { 6, 11, 54 }, { 6, 11, 112 }, { 6, 11, 402 }, + { 6, 11, 1732 }, { 7, 11, 315 }, { 7, 11, 749 }, { 7, 11, 1347 }, + { 7, 11, 1900 }, { 9, 11, 78 }, { 9, 11, 508 }, { 10, 11, 611 }, + { 11, 11, 510 }, { 11, 11, 728 }, { 13, 11, 36 }, { 14, 11, 39 }, + { 16, 11, 83 }, { 17, 11, 124 }, { 148, 11, 30 }, { 4, 0, 118 }, + { 6, 0, 274 }, { 6, 0, 361 }, { 7, 0, 75 }, { 141, 0, 441 }, + { 10, 11, 322 }, { 10, 11, 719 }, { 139, 11, 407 }, { 147, 10, 119 }, + { 12, 11, 549 }, { 14, 11, 67 }, { 147, 11, 60 }, { 11, 10, 69 }, + { 12, 10, 105 }, { 12, 10, 117 }, { 13, 10, 213 }, { 14, 10, 13 }, + { 14, 10, 62 }, { 14, 10, 177 }, { 14, 10, 421 }, { 15, 10, 19 }, + { 146, 10, 141 }, { 9, 0, 841 }, { 137, 10, 309 }, { 7, 10, 608 }, + { 7, 10, 976 }, { 8, 11, 125 }, { 8, 11, 369 }, { 8, 11, 524 }, + { 9, 10, 146 }, { 10, 10, 206 }, { 10, 11, 486 }, { 10, 10, 596 }, + { 11, 11, 13 }, { 11, 11, 381 }, { 11, 11, 736 }, { 11, 11, 766 }, + { 11, 11, 845 }, { 13, 11, 114 }, { 13, 10, 218 }, { 13, 11, 292 }, + { 14, 11, 47 }, { 142, 10, 153 }, { 12, 0, 693 }, { 135, 11, 759 }, + { 5, 0, 314 }, { 6, 0, 221 }, { 7, 0, 419 }, { 10, 0, 650 }, + { 11, 0, 396 }, { 12, 0, 156 }, { 13, 0, 369 }, { 14, 0, 333 }, + { 145, 0, 47 }, { 6, 11, 1684 }, { 6, 11, 1731 }, { 7, 11, 356 }, + { 7, 11, 1932 }, { 8, 11, 54 }, { 8, 11, 221 }, { 9, 11, 225 }, + { 9, 11, 356 }, { 10, 11, 77 }, { 10, 11, 446 }, { 10, 11, 731 }, + { 12, 11, 404 }, { 141, 11, 491 }, { 132, 11, 375 }, { 4, 10, 518 }, + { 135, 10, 1136 }, { 4, 0, 913 }, { 4, 11, 411 }, { 11, 11, 643 }, + { 140, 11, 115 }, { 4, 11, 80 }, { 133, 11, 44 }, { 8, 10, 689 }, + { 137, 10, 863 }, { 138, 0, 880 }, { 4, 10, 18 }, { 7, 10, 145 }, + { 7, 10, 444 }, { 7, 10, 1278 }, { 8, 10, 49 }, { 8, 10, 400 }, + { 9, 10, 71 }, { 9, 10, 250 }, { 10, 10, 459 }, { 12, 10, 160 }, + { 144, 10, 24 }, { 136, 0, 475 }, { 5, 0, 1016 }, { 5, 11, 299 }, + { 135, 11, 1083 }, { 7, 0, 602 }, { 8, 0, 179 }, { 10, 0, 781 }, + { 140, 0, 126 }, { 6, 0, 329 }, { 138, 0, 111 }, { 135, 0, 1864 }, + { 4, 11, 219 }, { 7, 11, 1761 }, { 137, 11, 86 }, { 6, 0, 1888 }, + { 6, 0, 1892 }, { 6, 0, 1901 }, { 6, 0, 1904 }, { 9, 0, 953 }, + { 9, 0, 985 }, { 9, 0, 991 }, { 9, 0, 1001 }, { 12, 0, 818 }, + { 12, 0, 846 }, { 12, 0, 847 }, { 12, 0, 861 }, { 12, 0, 862 }, + { 12, 0, 873 }, { 12, 0, 875 }, { 12, 0, 877 }, { 12, 0, 879 }, + { 12, 0, 881 }, { 12, 0, 884 }, { 12, 0, 903 }, { 12, 0, 915 }, + { 12, 0, 926 }, { 12, 0, 939 }, { 15, 0, 182 }, { 15, 0, 219 }, + { 15, 0, 255 }, { 18, 0, 191 }, { 18, 0, 209 }, { 18, 0, 211 }, + { 149, 0, 41 }, { 5, 11, 328 }, { 135, 11, 918 }, { 137, 0, 780 }, + { 12, 0, 82 }, { 143, 0, 36 }, { 133, 10, 1010 }, { 5, 0, 821 }, + { 134, 0, 1687 }, { 133, 11, 514 }, { 132, 0, 956 }, { 134, 0, 1180 }, + { 10, 0, 112 }, { 5, 10, 87 }, { 7, 10, 313 }, { 7, 10, 1103 }, + { 10, 10, 582 }, { 11, 10, 389 }, { 11, 10, 813 }, { 12, 10, 385 }, + { 13, 10, 286 }, { 14, 10, 124 }, { 146, 10, 108 }, { 5, 0, 71 }, + { 7, 0, 1407 }, { 9, 0, 704 }, { 10, 0, 261 }, { 10, 0, 619 }, + { 11, 0, 547 }, { 11, 0, 619 }, { 143, 0, 157 }, { 4, 0, 531 }, + { 5, 0, 455 }, { 5, 11, 301 }, { 6, 11, 571 }, { 14, 11, 49 }, + { 146, 11, 102 }, { 132, 10, 267 }, { 6, 0, 385 }, { 7, 0, 2008 }, + { 9, 0, 337 }, { 138, 0, 517 }, { 133, 11, 726 }, { 133, 11, 364 }, + { 4, 11, 76 }, { 7, 11, 1550 }, { 9, 11, 306 }, { 9, 11, 430 }, + { 9, 11, 663 }, { 10, 11, 683 }, { 11, 11, 427 }, { 11, 11, 753 }, + { 12, 11, 334 }, { 12, 11, 442 }, { 14, 11, 258 }, { 14, 11, 366 }, + { 143, 11, 131 }, { 6, 0, 1865 }, { 6, 0, 1879 }, { 6, 0, 1881 }, + { 6, 0, 1894 }, { 6, 0, 1908 }, { 9, 0, 915 }, { 9, 0, 926 }, + { 9, 0, 940 }, { 9, 0, 943 }, { 9, 0, 966 }, { 9, 0, 980 }, + { 9, 0, 989 }, { 9, 0, 1005 }, { 9, 0, 1010 }, { 12, 0, 813 }, + { 12, 0, 817 }, { 12, 0, 840 }, { 12, 0, 843 }, { 12, 0, 855 }, + { 12, 0, 864 }, { 12, 0, 871 }, { 12, 0, 872 }, { 12, 0, 899 }, + { 12, 0, 905 }, { 12, 0, 924 }, { 15, 0, 171 }, { 15, 0, 181 }, + { 15, 0, 224 }, { 15, 0, 235 }, { 15, 0, 251 }, { 146, 0, 184 }, + { 137, 11, 52 }, { 5, 0, 16 }, { 6, 0, 86 }, { 6, 0, 603 }, + { 7, 0, 292 }, { 7, 0, 561 }, { 8, 0, 257 }, { 8, 0, 382 }, + { 9, 0, 721 }, { 9, 0, 778 }, { 11, 0, 581 }, { 140, 0, 466 }, + { 4, 0, 486 }, { 5, 0, 491 }, { 135, 10, 1121 }, { 4, 0, 72 }, + { 6, 0, 265 }, { 135, 0, 1300 }, { 135, 11, 1183 }, { 10, 10, 249 }, + { 139, 10, 209 }, { 132, 10, 561 }, { 137, 11, 519 }, { 4, 11, 656 }, + { 4, 10, 760 }, { 135, 11, 779 }, { 9, 10, 154 }, { 140, 10, 485 }, + { 135, 11, 1793 }, { 135, 11, 144 }, { 136, 10, 255 }, { 133, 0, 621 }, + { 4, 10, 368 }, { 135, 10, 641 }, { 135, 11, 1373 }, { 7, 11, 554 }, + { 7, 11, 605 }, { 141, 11, 10 }, { 137, 0, 234 }, { 5, 0, 815 }, + { 6, 0, 1688 }, { 134, 0, 1755 }, { 5, 11, 838 }, { 5, 11, 841 }, + { 134, 11, 1649 }, { 7, 0, 1987 }, { 7, 0, 2040 }, { 136, 0, 743 }, + { 133, 11, 1012 }, { 6, 0, 197 }, { 136, 0, 205 }, { 6, 0, 314 }, + { 134, 11, 314 }, { 144, 11, 53 }, { 6, 11, 251 }, { 7, 11, 365 }, + { 7, 11, 1357 }, { 7, 11, 1497 }, { 8, 11, 154 }, { 141, 11, 281 }, + { 133, 11, 340 }, { 6, 0, 452 }, { 7, 0, 312 }, { 138, 0, 219 }, + { 138, 0, 589 }, { 4, 0, 333 }, { 9, 0, 176 }, { 12, 0, 353 }, + { 141, 0, 187 }, { 9, 10, 92 }, { 147, 10, 91 }, { 134, 0, 1110 }, + { 11, 0, 47 }, { 139, 11, 495 }, { 6, 10, 525 }, { 8, 10, 806 }, + { 9, 10, 876 }, { 140, 10, 284 }, { 8, 11, 261 }, { 9, 11, 144 }, + { 9, 11, 466 }, { 10, 11, 370 }, { 12, 11, 470 }, { 13, 11, 144 }, + { 142, 11, 348 }, { 137, 11, 897 }, { 8, 0, 863 }, { 8, 0, 864 }, + { 8, 0, 868 }, { 8, 0, 884 }, { 10, 0, 866 }, { 10, 0, 868 }, + { 10, 0, 873 }, { 10, 0, 911 }, { 10, 0, 912 }, { 10, 0, 944 }, + { 12, 0, 727 }, { 6, 11, 248 }, { 9, 11, 546 }, { 10, 11, 535 }, + { 11, 11, 681 }, { 141, 11, 135 }, { 6, 0, 300 }, { 135, 0, 1515 }, + { 134, 0, 1237 }, { 139, 10, 958 }, { 133, 10, 594 }, { 140, 11, 250 }, + { 134, 0, 1685 }, { 134, 11, 567 }, { 7, 0, 135 }, { 8, 0, 7 }, + { 8, 0, 62 }, { 9, 0, 243 }, { 10, 0, 658 }, { 10, 0, 697 }, + { 11, 0, 456 }, { 139, 0, 756 }, { 9, 0, 395 }, { 138, 0, 79 }, + { 6, 10, 1641 }, { 136, 10, 820 }, { 4, 10, 302 }, { 135, 10, 1766 }, + { 134, 11, 174 }, { 135, 10, 1313 }, { 135, 0, 631 }, { 134, 10, 1674 }, + { 134, 11, 395 }, { 138, 0, 835 }, { 7, 0, 406 }, { 7, 0, 459 }, + { 8, 0, 606 }, { 139, 0, 726 }, { 134, 11, 617 }, { 134, 0, 979 }, + { 6, 10, 389 }, { 7, 10, 149 }, { 9, 10, 142 }, { 138, 10, 94 }, + { 5, 11, 878 }, { 133, 11, 972 }, { 6, 10, 8 }, { 7, 10, 1881 }, + { 8, 10, 91 }, { 136, 11, 511 }, { 133, 0, 612 }, { 132, 11, 351 }, + { 4, 0, 372 }, { 7, 0, 482 }, { 8, 0, 158 }, { 9, 0, 602 }, + { 9, 0, 615 }, { 10, 0, 245 }, { 10, 0, 678 }, { 10, 0, 744 }, + { 11, 0, 248 }, { 139, 0, 806 }, { 5, 0, 854 }, { 135, 0, 1991 }, + { 132, 11, 286 }, { 135, 11, 344 }, { 7, 11, 438 }, { 7, 11, 627 }, + { 7, 11, 1516 }, { 8, 11, 40 }, { 9, 11, 56 }, { 9, 11, 294 }, + { 10, 11, 30 }, { 10, 11, 259 }, { 11, 11, 969 }, { 146, 11, 148 }, + { 135, 0, 1492 }, { 5, 11, 259 }, { 7, 11, 414 }, { 7, 11, 854 }, + { 142, 11, 107 }, { 135, 10, 1746 }, { 6, 0, 833 }, { 134, 0, 998 }, + { 135, 10, 24 }, { 6, 0, 750 }, { 135, 0, 1739 }, { 4, 10, 503 }, + { 135, 10, 1661 }, { 5, 10, 130 }, { 7, 10, 1314 }, { 9, 10, 610 }, + { 10, 10, 718 }, { 11, 10, 601 }, { 11, 10, 819 }, { 11, 10, 946 }, + { 140, 10, 536 }, { 10, 10, 149 }, { 11, 10, 280 }, { 142, 10, 336 }, + { 132, 11, 738 }, { 135, 10, 1946 }, { 5, 0, 195 }, { 135, 0, 1685 }, + { 7, 0, 1997 }, { 8, 0, 730 }, { 139, 0, 1006 }, { 151, 11, 17 }, + { 133, 11, 866 }, { 14, 0, 463 }, { 14, 0, 470 }, { 150, 0, 61 }, + { 5, 0, 751 }, { 8, 0, 266 }, { 11, 0, 578 }, { 4, 10, 392 }, + { 135, 10, 1597 }, { 5, 10, 433 }, { 9, 10, 633 }, { 139, 10, 629 }, + { 135, 0, 821 }, { 6, 0, 715 }, { 134, 0, 1325 }, { 133, 11, 116 }, + { 6, 0, 868 }, { 132, 11, 457 }, { 134, 0, 959 }, { 6, 10, 234 }, + { 138, 11, 199 }, { 7, 0, 1053 }, { 7, 10, 1950 }, { 8, 10, 680 }, + { 11, 10, 817 }, { 147, 10, 88 }, { 7, 10, 1222 }, { 138, 10, 386 }, + { 5, 0, 950 }, { 5, 0, 994 }, { 6, 0, 351 }, { 134, 0, 1124 }, + { 134, 0, 1081 }, { 7, 0, 1595 }, { 6, 10, 5 }, { 11, 10, 249 }, + { 12, 10, 313 }, { 16, 10, 66 }, { 145, 10, 26 }, { 148, 0, 59 }, + { 5, 11, 527 }, { 6, 11, 189 }, { 135, 11, 859 }, { 5, 10, 963 }, + { 6, 10, 1773 }, { 11, 11, 104 }, { 11, 11, 554 }, { 15, 11, 60 }, + { 143, 11, 125 }, { 135, 0, 47 }, { 137, 0, 684 }, { 134, 11, 116 }, + { 134, 0, 1606 }, { 134, 0, 777 }, { 7, 0, 1020 }, { 8, 10, 509 }, + { 136, 10, 792 }, { 135, 0, 1094 }, { 132, 0, 350 }, { 133, 11, 487 }, + { 4, 11, 86 }, { 5, 11, 667 }, { 5, 11, 753 }, { 6, 11, 316 }, + { 6, 11, 455 }, { 135, 11, 946 }, { 7, 0, 1812 }, { 13, 0, 259 }, + { 13, 0, 356 }, { 14, 0, 242 }, { 147, 0, 114 }, { 132, 10, 931 }, + { 133, 0, 967 }, { 4, 0, 473 }, { 7, 0, 623 }, { 8, 0, 808 }, + { 9, 0, 871 }, { 9, 0, 893 }, { 11, 0, 38 }, { 11, 0, 431 }, + { 12, 0, 112 }, { 12, 0, 217 }, { 12, 0, 243 }, { 12, 0, 562 }, + { 12, 0, 663 }, { 12, 0, 683 }, { 13, 0, 141 }, { 13, 0, 197 }, + { 13, 0, 227 }, { 13, 0, 406 }, { 13, 0, 487 }, { 14, 0, 156 }, + { 14, 0, 203 }, { 14, 0, 224 }, { 14, 0, 256 }, { 18, 0, 58 }, + { 150, 0, 0 }, { 138, 0, 286 }, { 7, 10, 943 }, { 139, 10, 614 }, + { 135, 10, 1837 }, { 150, 11, 45 }, { 132, 0, 798 }, { 4, 0, 222 }, + { 7, 0, 286 }, { 136, 0, 629 }, { 4, 11, 79 }, { 7, 11, 1773 }, + { 10, 11, 450 }, { 11, 11, 589 }, { 13, 11, 332 }, { 13, 11, 493 }, + { 14, 11, 183 }, { 14, 11, 334 }, { 14, 11, 362 }, { 14, 11, 368 }, + { 14, 11, 376 }, { 14, 11, 379 }, { 19, 11, 90 }, { 19, 11, 103 }, + { 19, 11, 127 }, { 148, 11, 90 }, { 5, 0, 337 }, { 11, 0, 513 }, + { 11, 0, 889 }, { 11, 0, 961 }, { 12, 0, 461 }, { 13, 0, 79 }, + { 15, 0, 121 }, { 4, 10, 90 }, { 5, 10, 545 }, { 7, 10, 754 }, + { 9, 10, 186 }, { 10, 10, 72 }, { 10, 10, 782 }, { 11, 10, 577 }, + { 11, 10, 610 }, { 12, 10, 354 }, { 12, 10, 362 }, { 140, 10, 595 }, + { 141, 0, 306 }, { 136, 0, 146 }, { 7, 0, 1646 }, { 9, 10, 329 }, + { 11, 10, 254 }, { 141, 11, 124 }, { 4, 0, 465 }, { 135, 0, 1663 }, + { 132, 0, 525 }, { 133, 11, 663 }, { 10, 0, 299 }, { 18, 0, 74 }, + { 9, 10, 187 }, { 11, 10, 1016 }, { 145, 10, 44 }, { 7, 0, 165 }, + { 7, 0, 919 }, { 4, 10, 506 }, { 136, 10, 517 }, { 5, 10, 295 }, + { 135, 10, 1680 }, { 133, 11, 846 }, { 134, 0, 1064 }, { 5, 11, 378 }, + { 7, 11, 1402 }, { 7, 11, 1414 }, { 8, 11, 465 }, { 9, 11, 286 }, + { 10, 11, 185 }, { 10, 11, 562 }, { 10, 11, 635 }, { 11, 11, 31 }, + { 11, 11, 393 }, { 12, 11, 456 }, { 13, 11, 312 }, { 18, 11, 65 }, + { 18, 11, 96 }, { 147, 11, 89 }, { 132, 0, 596 }, { 7, 10, 987 }, + { 9, 10, 688 }, { 10, 10, 522 }, { 11, 10, 788 }, { 140, 10, 566 }, + { 6, 0, 82 }, { 7, 0, 138 }, { 7, 0, 517 }, { 7, 0, 1741 }, + { 11, 0, 238 }, { 4, 11, 648 }, { 134, 10, 1775 }, { 7, 0, 1233 }, + { 7, 10, 700 }, { 7, 10, 940 }, { 8, 10, 514 }, { 9, 10, 116 }, + { 9, 10, 535 }, { 10, 10, 118 }, { 11, 10, 107 }, { 11, 10, 148 }, + { 11, 10, 922 }, { 12, 10, 254 }, { 12, 10, 421 }, { 142, 10, 238 }, + { 4, 0, 962 }, { 6, 0, 1824 }, { 8, 0, 894 }, { 12, 0, 708 }, + { 12, 0, 725 }, { 14, 0, 451 }, { 20, 0, 94 }, { 22, 0, 59 }, + { 150, 0, 62 }, { 5, 11, 945 }, { 6, 11, 1656 }, { 6, 11, 1787 }, + { 7, 11, 167 }, { 8, 11, 824 }, { 9, 11, 391 }, { 10, 11, 375 }, + { 139, 11, 185 }, { 5, 0, 495 }, { 7, 0, 834 }, { 9, 0, 733 }, + { 139, 0, 378 }, { 4, 10, 743 }, { 135, 11, 1273 }, { 6, 0, 1204 }, + { 7, 11, 1645 }, { 8, 11, 352 }, { 137, 11, 249 }, { 139, 10, 292 }, + { 133, 0, 559 }, { 132, 11, 152 }, { 9, 0, 499 }, { 10, 0, 341 }, + { 15, 0, 144 }, { 19, 0, 49 }, { 7, 10, 1283 }, { 9, 10, 227 }, + { 11, 10, 325 }, { 11, 10, 408 }, { 14, 10, 180 }, { 146, 10, 47 }, + { 6, 0, 21 }, { 6, 0, 1737 }, { 7, 0, 1444 }, { 136, 0, 224 }, + { 133, 11, 1006 }, { 7, 0, 1446 }, { 9, 0, 97 }, { 17, 0, 15 }, + { 5, 10, 81 }, { 7, 10, 146 }, { 7, 10, 1342 }, { 8, 10, 53 }, + { 8, 10, 561 }, { 8, 10, 694 }, { 8, 10, 754 }, { 9, 10, 115 }, + { 9, 10, 894 }, { 10, 10, 462 }, { 10, 10, 813 }, { 11, 10, 230 }, + { 11, 10, 657 }, { 11, 10, 699 }, { 11, 10, 748 }, { 12, 10, 119 }, + { 12, 10, 200 }, { 12, 10, 283 }, { 142, 10, 273 }, { 5, 10, 408 }, + { 137, 10, 747 }, { 135, 11, 431 }, { 135, 11, 832 }, { 6, 0, 729 }, + { 134, 0, 953 }, { 4, 0, 727 }, { 8, 0, 565 }, { 5, 11, 351 }, + { 7, 11, 264 }, { 136, 11, 565 }, { 134, 0, 1948 }, { 5, 0, 519 }, + { 5, 11, 40 }, { 7, 11, 598 }, { 7, 11, 1638 }, { 8, 11, 78 }, + { 9, 11, 166 }, { 9, 11, 640 }, { 9, 11, 685 }, { 9, 11, 773 }, + { 11, 11, 215 }, { 13, 11, 65 }, { 14, 11, 172 }, { 14, 11, 317 }, + { 145, 11, 6 }, { 8, 11, 60 }, { 9, 11, 343 }, { 139, 11, 769 }, + { 137, 11, 455 }, { 134, 0, 1193 }, { 140, 0, 790 }, { 7, 11, 1951 }, + { 8, 11, 765 }, { 8, 11, 772 }, { 140, 11, 671 }, { 7, 11, 108 }, + { 8, 11, 219 }, { 8, 11, 388 }, { 9, 11, 639 }, { 9, 11, 775 }, + { 11, 11, 275 }, { 140, 11, 464 }, { 132, 11, 468 }, { 7, 10, 30 }, + { 8, 10, 86 }, { 8, 10, 315 }, { 8, 10, 700 }, { 9, 10, 576 }, + { 9, 10, 858 }, { 11, 10, 310 }, { 11, 10, 888 }, { 11, 10, 904 }, + { 12, 10, 361 }, { 141, 10, 248 }, { 5, 11, 15 }, { 6, 11, 56 }, + { 7, 11, 1758 }, { 8, 11, 500 }, { 9, 11, 730 }, { 11, 11, 331 }, + { 13, 11, 150 }, { 142, 11, 282 }, { 4, 0, 402 }, { 7, 0, 2 }, + { 8, 0, 323 }, { 136, 0, 479 }, { 138, 10, 839 }, { 11, 0, 580 }, + { 142, 0, 201 }, { 5, 0, 59 }, { 135, 0, 672 }, { 137, 10, 617 }, + { 146, 0, 34 }, { 134, 11, 1886 }, { 4, 0, 961 }, { 136, 0, 896 }, + { 6, 0, 1285 }, { 5, 11, 205 }, { 6, 11, 438 }, { 137, 11, 711 }, + { 134, 10, 428 }, { 7, 10, 524 }, { 8, 10, 169 }, { 8, 10, 234 }, + { 9, 10, 480 }, { 138, 10, 646 }, { 148, 0, 46 }, { 141, 0, 479 }, + { 133, 11, 534 }, { 6, 0, 2019 }, { 134, 10, 1648 }, { 4, 0, 85 }, + { 7, 0, 549 }, { 7, 10, 1205 }, { 138, 10, 637 }, { 4, 0, 663 }, + { 5, 0, 94 }, { 7, 11, 235 }, { 7, 11, 1475 }, { 15, 11, 68 }, + { 146, 11, 120 }, { 6, 11, 443 }, { 9, 11, 237 }, { 9, 11, 571 }, + { 9, 11, 695 }, { 10, 11, 139 }, { 11, 11, 715 }, { 12, 11, 417 }, + { 141, 11, 421 }, { 132, 0, 783 }, { 4, 0, 682 }, { 8, 0, 65 }, + { 9, 10, 39 }, { 10, 10, 166 }, { 11, 10, 918 }, { 12, 10, 635 }, + { 20, 10, 10 }, { 22, 10, 27 }, { 22, 10, 43 }, { 150, 10, 52 }, + { 6, 0, 11 }, { 135, 0, 187 }, { 132, 0, 522 }, { 4, 0, 52 }, + { 135, 0, 661 }, { 4, 0, 383 }, { 133, 0, 520 }, { 135, 11, 546 }, + { 11, 0, 343 }, { 142, 0, 127 }, { 4, 11, 578 }, { 7, 10, 157 }, + { 7, 11, 624 }, { 7, 11, 916 }, { 8, 10, 279 }, { 10, 11, 256 }, + { 11, 11, 87 }, { 139, 11, 703 }, { 134, 10, 604 }, { 4, 0, 281 }, + { 5, 0, 38 }, { 7, 0, 194 }, { 7, 0, 668 }, { 7, 0, 1893 }, + { 137, 0, 397 }, { 7, 10, 945 }, { 11, 10, 713 }, { 139, 10, 744 }, + { 139, 10, 1022 }, { 9, 0, 635 }, { 139, 0, 559 }, { 5, 11, 923 }, + { 7, 11, 490 }, { 12, 11, 553 }, { 13, 11, 100 }, { 14, 11, 118 }, + { 143, 11, 75 }, { 132, 0, 975 }, { 132, 10, 567 }, { 137, 10, 859 }, + { 7, 10, 1846 }, { 7, 11, 1846 }, { 8, 10, 628 }, { 136, 11, 628 }, + { 148, 0, 116 }, { 138, 11, 750 }, { 14, 0, 51 }, { 14, 11, 51 }, + { 15, 11, 7 }, { 148, 11, 20 }, { 132, 0, 858 }, { 134, 0, 1075 }, + { 4, 11, 924 }, { 133, 10, 762 }, { 136, 0, 535 }, { 133, 0, 448 }, + { 10, 10, 784 }, { 141, 10, 191 }, { 133, 10, 298 }, { 7, 0, 610 }, + { 135, 0, 1501 }, { 7, 10, 633 }, { 7, 10, 905 }, { 7, 10, 909 }, + { 7, 10, 1538 }, { 9, 10, 767 }, { 140, 10, 636 }, { 4, 11, 265 }, + { 7, 11, 807 }, { 135, 11, 950 }, { 5, 11, 93 }, { 12, 11, 267 }, + { 144, 11, 26 }, { 136, 0, 191 }, { 139, 10, 301 }, { 135, 10, 1970 }, + { 135, 0, 267 }, { 4, 0, 319 }, { 5, 0, 699 }, { 138, 0, 673 }, + { 6, 0, 336 }, { 7, 0, 92 }, { 7, 0, 182 }, { 8, 0, 453 }, + { 8, 0, 552 }, { 9, 0, 204 }, { 9, 0, 285 }, { 10, 0, 99 }, + { 11, 0, 568 }, { 11, 0, 950 }, { 12, 0, 94 }, { 16, 0, 20 }, + { 16, 0, 70 }, { 19, 0, 55 }, { 12, 10, 644 }, { 144, 10, 90 }, + { 6, 0, 551 }, { 7, 0, 1308 }, { 7, 10, 845 }, { 7, 11, 994 }, + { 8, 10, 160 }, { 137, 10, 318 }, { 19, 11, 1 }, { 19, 11, 26 }, + { 150, 11, 9 }, { 7, 0, 1406 }, { 9, 0, 218 }, { 141, 0, 222 }, + { 5, 0, 256 }, { 138, 0, 69 }, { 5, 11, 233 }, { 5, 11, 320 }, + { 6, 11, 140 }, { 7, 11, 330 }, { 136, 11, 295 }, { 6, 0, 1980 }, + { 136, 0, 952 }, { 4, 0, 833 }, { 137, 11, 678 }, { 133, 11, 978 }, + { 4, 11, 905 }, { 6, 11, 1701 }, { 137, 11, 843 }, { 138, 10, 735 }, + { 136, 10, 76 }, { 17, 0, 39 }, { 148, 0, 36 }, { 18, 0, 81 }, + { 146, 11, 81 }, { 14, 0, 352 }, { 17, 0, 53 }, { 18, 0, 146 }, + { 18, 0, 152 }, { 19, 0, 11 }, { 150, 0, 54 }, { 135, 0, 634 }, + { 138, 10, 841 }, { 132, 0, 618 }, { 4, 0, 339 }, { 7, 0, 259 }, + { 17, 0, 73 }, { 4, 11, 275 }, { 140, 11, 376 }, { 132, 11, 509 }, + { 7, 11, 273 }, { 139, 11, 377 }, { 4, 0, 759 }, { 13, 0, 169 }, + { 137, 10, 804 }, { 6, 10, 96 }, { 135, 10, 1426 }, { 4, 10, 651 }, + { 133, 10, 289 }, { 7, 0, 1075 }, { 8, 10, 35 }, { 9, 10, 511 }, + { 10, 10, 767 }, { 147, 10, 118 }, { 6, 0, 649 }, { 6, 0, 670 }, + { 136, 0, 482 }, { 5, 0, 336 }, { 6, 0, 341 }, { 6, 0, 478 }, + { 6, 0, 1763 }, { 136, 0, 386 }, { 5, 11, 802 }, { 7, 11, 2021 }, + { 8, 11, 805 }, { 14, 11, 94 }, { 15, 11, 65 }, { 16, 11, 4 }, + { 16, 11, 77 }, { 16, 11, 80 }, { 145, 11, 5 }, { 6, 0, 1035 }, + { 5, 11, 167 }, { 5, 11, 899 }, { 6, 11, 410 }, { 137, 11, 777 }, + { 134, 11, 1705 }, { 5, 0, 924 }, { 133, 0, 969 }, { 132, 10, 704 }, + { 135, 0, 73 }, { 135, 11, 10 }, { 135, 10, 1078 }, { 5, 11, 11 }, + { 6, 11, 117 }, { 6, 11, 485 }, { 7, 11, 1133 }, { 9, 11, 582 }, + { 9, 11, 594 }, { 11, 11, 21 }, { 11, 11, 818 }, { 12, 11, 535 }, + { 141, 11, 86 }, { 135, 0, 1971 }, { 4, 11, 264 }, { 7, 11, 1067 }, + { 8, 11, 204 }, { 8, 11, 385 }, { 139, 11, 953 }, { 6, 0, 1458 }, + { 135, 0, 1344 }, { 5, 0, 396 }, { 134, 0, 501 }, { 4, 10, 720 }, + { 133, 10, 306 }, { 4, 0, 929 }, { 5, 0, 799 }, { 8, 0, 46 }, + { 8, 0, 740 }, { 133, 10, 431 }, { 7, 11, 646 }, { 7, 11, 1730 }, + { 11, 11, 446 }, { 141, 11, 178 }, { 7, 0, 276 }, { 5, 10, 464 }, + { 6, 10, 236 }, { 7, 10, 696 }, { 7, 10, 914 }, { 7, 10, 1108 }, + { 7, 10, 1448 }, { 9, 10, 15 }, { 9, 10, 564 }, { 10, 10, 14 }, + { 12, 10, 565 }, { 13, 10, 449 }, { 14, 10, 53 }, { 15, 10, 13 }, + { 16, 10, 64 }, { 145, 10, 41 }, { 4, 0, 892 }, { 133, 0, 770 }, + { 6, 10, 1767 }, { 12, 10, 194 }, { 145, 10, 107 }, { 135, 0, 158 }, + { 5, 10, 840 }, { 138, 11, 608 }, { 134, 0, 1432 }, { 138, 11, 250 }, + { 8, 11, 794 }, { 9, 11, 400 }, { 10, 11, 298 }, { 142, 11, 228 }, + { 151, 0, 25 }, { 7, 11, 1131 }, { 135, 11, 1468 }, { 135, 0, 2001 }, + { 9, 10, 642 }, { 11, 10, 236 }, { 142, 10, 193 }, { 4, 10, 68 }, + { 5, 10, 634 }, { 6, 10, 386 }, { 7, 10, 794 }, { 8, 10, 273 }, + { 9, 10, 563 }, { 10, 10, 105 }, { 10, 10, 171 }, { 11, 10, 94 }, + { 139, 10, 354 }, { 136, 11, 724 }, { 132, 0, 478 }, { 11, 11, 512 }, + { 13, 11, 205 }, { 19, 11, 30 }, { 22, 11, 36 }, { 151, 11, 19 }, + { 7, 0, 1461 }, { 140, 0, 91 }, { 6, 11, 190 }, { 7, 11, 768 }, + { 135, 11, 1170 }, { 4, 0, 602 }, { 8, 0, 211 }, { 4, 10, 95 }, + { 7, 10, 416 }, { 139, 10, 830 }, { 7, 10, 731 }, { 13, 10, 20 }, + { 143, 10, 11 }, { 6, 0, 1068 }, { 135, 0, 1872 }, { 4, 0, 13 }, + { 5, 0, 567 }, { 7, 0, 1498 }, { 9, 0, 124 }, { 11, 0, 521 }, + { 12, 0, 405 }, { 135, 11, 1023 }, { 135, 0, 1006 }, { 132, 0, 735 }, + { 138, 0, 812 }, { 4, 0, 170 }, { 135, 0, 323 }, { 6, 11, 137 }, + { 9, 11, 75 }, { 9, 11, 253 }, { 10, 11, 194 }, { 138, 11, 444 }, + { 5, 0, 304 }, { 7, 0, 1403 }, { 5, 10, 864 }, { 10, 10, 648 }, + { 11, 10, 671 }, { 143, 10, 46 }, { 135, 11, 1180 }, { 133, 10, 928 }, + { 4, 0, 148 }, { 133, 0, 742 }, { 11, 10, 986 }, { 140, 10, 682 }, + { 133, 0, 523 }, { 135, 11, 1743 }, { 7, 0, 730 }, { 18, 0, 144 }, + { 19, 0, 61 }, { 8, 10, 44 }, { 9, 10, 884 }, { 10, 10, 580 }, + { 11, 10, 399 }, { 11, 10, 894 }, { 143, 10, 122 }, { 5, 11, 760 }, + { 7, 11, 542 }, { 8, 11, 135 }, { 136, 11, 496 }, { 136, 0, 981 }, + { 133, 0, 111 }, { 10, 0, 132 }, { 11, 0, 191 }, { 11, 0, 358 }, + { 139, 0, 460 }, { 7, 11, 319 }, { 7, 11, 355 }, { 7, 11, 763 }, + { 10, 11, 389 }, { 145, 11, 43 }, { 134, 0, 890 }, { 134, 0, 1420 }, + { 136, 11, 557 }, { 133, 10, 518 }, { 133, 0, 444 }, { 135, 0, 1787 }, + { 135, 10, 1852 }, { 8, 0, 123 }, { 15, 0, 6 }, { 144, 0, 7 }, + { 6, 0, 2041 }, { 10, 11, 38 }, { 139, 11, 784 }, { 136, 0, 932 }, + { 5, 0, 937 }, { 135, 0, 100 }, { 6, 0, 995 }, { 4, 11, 58 }, + { 5, 11, 286 }, { 6, 11, 319 }, { 7, 11, 402 }, { 7, 11, 1254 }, + { 7, 11, 1903 }, { 8, 11, 356 }, { 140, 11, 408 }, { 4, 11, 389 }, + { 9, 11, 181 }, { 9, 11, 255 }, { 10, 11, 8 }, { 10, 11, 29 }, + { 10, 11, 816 }, { 11, 11, 311 }, { 11, 11, 561 }, { 12, 11, 67 }, + { 141, 11, 181 }, { 138, 0, 255 }, { 5, 0, 138 }, { 4, 10, 934 }, + { 136, 10, 610 }, { 4, 0, 965 }, { 10, 0, 863 }, { 138, 0, 898 }, + { 10, 10, 804 }, { 138, 10, 832 }, { 12, 0, 631 }, { 8, 10, 96 }, + { 9, 10, 36 }, { 10, 10, 607 }, { 11, 10, 423 }, { 11, 10, 442 }, + { 12, 10, 309 }, { 14, 10, 199 }, { 15, 10, 90 }, { 145, 10, 110 }, + { 134, 0, 1394 }, { 4, 0, 652 }, { 8, 0, 320 }, { 22, 0, 6 }, + { 22, 0, 16 }, { 9, 10, 13 }, { 9, 10, 398 }, { 9, 10, 727 }, + { 10, 10, 75 }, { 10, 10, 184 }, { 10, 10, 230 }, { 10, 10, 564 }, + { 10, 10, 569 }, { 11, 10, 973 }, { 12, 10, 70 }, { 12, 10, 189 }, + { 13, 10, 57 }, { 141, 10, 257 }, { 6, 0, 897 }, { 134, 0, 1333 }, + { 4, 0, 692 }, { 133, 0, 321 }, { 133, 11, 373 }, { 135, 0, 922 }, + { 5, 0, 619 }, { 133, 0, 698 }, { 137, 10, 631 }, { 5, 10, 345 }, + { 135, 10, 1016 }, { 9, 0, 957 }, { 9, 0, 1018 }, { 12, 0, 828 }, + { 12, 0, 844 }, { 12, 0, 897 }, { 12, 0, 901 }, { 12, 0, 943 }, + { 15, 0, 180 }, { 18, 0, 197 }, { 18, 0, 200 }, { 18, 0, 213 }, + { 18, 0, 214 }, { 146, 0, 226 }, { 5, 0, 917 }, { 134, 0, 1659 }, + { 135, 0, 1100 }, { 134, 0, 1173 }, { 134, 0, 1930 }, { 5, 0, 251 }, + { 5, 0, 956 }, { 8, 0, 268 }, { 9, 0, 214 }, { 146, 0, 142 }, + { 133, 10, 673 }, { 137, 10, 850 }, { 4, 10, 287 }, { 133, 10, 1018 }, + { 132, 11, 672 }, { 5, 0, 346 }, { 5, 0, 711 }, { 8, 0, 390 }, + { 11, 11, 752 }, { 139, 11, 885 }, { 5, 10, 34 }, { 10, 10, 724 }, + { 12, 10, 444 }, { 13, 10, 354 }, { 18, 10, 32 }, { 23, 10, 24 }, + { 23, 10, 31 }, { 152, 10, 5 }, { 4, 11, 710 }, { 134, 11, 606 }, + { 134, 0, 744 }, { 134, 10, 382 }, { 133, 11, 145 }, { 4, 10, 329 }, + { 7, 11, 884 }, { 140, 11, 124 }, { 4, 11, 467 }, { 5, 11, 405 }, + { 134, 11, 544 }, { 9, 10, 846 }, { 138, 10, 827 }, { 133, 0, 624 }, + { 9, 11, 372 }, { 15, 11, 2 }, { 19, 11, 10 }, { 147, 11, 18 }, + { 4, 11, 387 }, { 135, 11, 1288 }, { 5, 0, 783 }, { 7, 0, 1998 }, + { 135, 0, 2047 }, { 132, 10, 906 }, { 136, 10, 366 }, { 135, 11, 550 }, + { 4, 10, 123 }, { 4, 10, 649 }, { 5, 10, 605 }, { 7, 10, 1509 }, + { 136, 10, 36 }, { 134, 0, 1125 }, { 132, 0, 594 }, { 133, 10, 767 }, + { 135, 11, 1227 }, { 136, 11, 467 }, { 4, 11, 576 }, { 135, 11, 1263 }, + { 4, 0, 268 }, { 7, 0, 1534 }, { 135, 11, 1534 }, { 4, 10, 273 }, + { 5, 10, 658 }, { 5, 11, 919 }, { 5, 10, 995 }, { 134, 11, 1673 }, + { 133, 0, 563 }, { 134, 10, 72 }, { 135, 10, 1345 }, { 4, 11, 82 }, + { 5, 11, 333 }, { 5, 11, 904 }, { 6, 11, 207 }, { 7, 11, 325 }, + { 7, 11, 1726 }, { 8, 11, 101 }, { 10, 11, 778 }, { 139, 11, 220 }, + { 5, 0, 37 }, { 6, 0, 39 }, { 6, 0, 451 }, { 7, 0, 218 }, + { 7, 0, 667 }, { 7, 0, 1166 }, { 7, 0, 1687 }, { 8, 0, 662 }, + { 16, 0, 2 }, { 133, 10, 589 }, { 134, 0, 1332 }, { 133, 11, 903 }, + { 134, 0, 508 }, { 5, 10, 117 }, { 6, 10, 514 }, { 6, 10, 541 }, + { 7, 10, 1164 }, { 7, 10, 1436 }, { 8, 10, 220 }, { 8, 10, 648 }, + { 10, 10, 688 }, { 11, 10, 560 }, { 140, 11, 147 }, { 6, 11, 555 }, + { 135, 11, 485 }, { 133, 10, 686 }, { 7, 0, 453 }, { 7, 0, 635 }, + { 7, 0, 796 }, { 8, 0, 331 }, { 9, 0, 330 }, { 9, 0, 865 }, + { 10, 0, 119 }, { 10, 0, 235 }, { 11, 0, 111 }, { 11, 0, 129 }, + { 11, 0, 240 }, { 12, 0, 31 }, { 12, 0, 66 }, { 12, 0, 222 }, + { 12, 0, 269 }, { 12, 0, 599 }, { 12, 0, 684 }, { 12, 0, 689 }, + { 12, 0, 691 }, { 142, 0, 345 }, { 135, 0, 1834 }, { 4, 11, 705 }, + { 7, 11, 615 }, { 138, 11, 251 }, { 136, 11, 345 }, { 137, 0, 527 }, + { 6, 0, 98 }, { 7, 0, 702 }, { 135, 0, 991 }, { 11, 0, 576 }, + { 14, 0, 74 }, { 7, 10, 196 }, { 10, 10, 765 }, { 11, 10, 347 }, + { 11, 10, 552 }, { 11, 10, 790 }, { 12, 10, 263 }, { 13, 10, 246 }, + { 13, 10, 270 }, { 13, 10, 395 }, { 14, 10, 176 }, { 14, 10, 190 }, + { 14, 10, 398 }, { 14, 10, 412 }, { 15, 10, 32 }, { 15, 10, 63 }, + { 16, 10, 88 }, { 147, 10, 105 }, { 134, 11, 90 }, { 13, 0, 84 }, + { 141, 0, 122 }, { 6, 0, 37 }, { 7, 0, 299 }, { 7, 0, 1666 }, + { 8, 0, 195 }, { 8, 0, 316 }, { 9, 0, 178 }, { 9, 0, 276 }, + { 9, 0, 339 }, { 9, 0, 536 }, { 10, 0, 102 }, { 10, 0, 362 }, + { 10, 0, 785 }, { 11, 0, 55 }, { 11, 0, 149 }, { 11, 0, 773 }, + { 13, 0, 416 }, { 13, 0, 419 }, { 14, 0, 38 }, { 14, 0, 41 }, + { 142, 0, 210 }, { 5, 10, 381 }, { 135, 10, 1792 }, { 7, 11, 813 }, + { 12, 11, 497 }, { 141, 11, 56 }, { 7, 10, 616 }, { 138, 10, 413 }, + { 133, 0, 645 }, { 6, 11, 125 }, { 135, 11, 1277 }, { 132, 0, 290 }, + { 6, 0, 70 }, { 7, 0, 1292 }, { 10, 0, 762 }, { 139, 0, 288 }, + { 6, 10, 120 }, { 7, 10, 1188 }, { 7, 10, 1710 }, { 8, 10, 286 }, + { 9, 10, 667 }, { 11, 10, 592 }, { 139, 10, 730 }, { 135, 11, 1784 }, + { 7, 0, 1315 }, { 135, 11, 1315 }, { 134, 0, 1955 }, { 135, 10, 1146 }, + { 7, 0, 131 }, { 7, 0, 422 }, { 8, 0, 210 }, { 140, 0, 573 }, + { 4, 10, 352 }, { 135, 10, 687 }, { 139, 0, 797 }, { 143, 0, 38 }, + { 14, 0, 179 }, { 15, 0, 151 }, { 150, 0, 11 }, { 7, 0, 488 }, + { 4, 10, 192 }, { 5, 10, 49 }, { 6, 10, 200 }, { 6, 10, 293 }, + { 134, 10, 1696 }, { 132, 0, 936 }, { 135, 11, 703 }, { 6, 11, 160 }, + { 7, 11, 1106 }, { 9, 11, 770 }, { 10, 11, 618 }, { 11, 11, 112 }, + { 140, 11, 413 }, { 5, 0, 453 }, { 134, 0, 441 }, { 135, 0, 595 }, + { 132, 10, 650 }, { 132, 10, 147 }, { 6, 0, 991 }, { 6, 0, 1182 }, + { 12, 11, 271 }, { 145, 11, 109 }, { 133, 10, 934 }, { 140, 11, 221 }, + { 132, 0, 653 }, { 7, 0, 505 }, { 135, 0, 523 }, { 134, 0, 903 }, + { 135, 11, 479 }, { 7, 11, 304 }, { 9, 11, 646 }, { 9, 11, 862 }, + { 10, 11, 262 }, { 11, 11, 696 }, { 12, 11, 208 }, { 15, 11, 79 }, + { 147, 11, 108 }, { 146, 0, 80 }, { 135, 11, 981 }, { 142, 0, 432 }, + { 132, 0, 314 }, { 137, 11, 152 }, { 7, 0, 1368 }, { 8, 0, 232 }, + { 8, 0, 361 }, { 10, 0, 682 }, { 138, 0, 742 }, { 135, 11, 1586 }, + { 9, 0, 534 }, { 4, 11, 434 }, { 11, 11, 663 }, { 12, 11, 210 }, + { 13, 11, 166 }, { 13, 11, 310 }, { 14, 11, 373 }, { 147, 11, 43 }, + { 7, 11, 1091 }, { 135, 11, 1765 }, { 6, 11, 550 }, { 135, 11, 652 }, + { 137, 0, 27 }, { 142, 0, 12 }, { 4, 10, 637 }, { 5, 11, 553 }, + { 7, 11, 766 }, { 138, 11, 824 }, { 7, 11, 737 }, { 8, 11, 298 }, + { 136, 11, 452 }, { 7, 0, 736 }, { 139, 0, 264 }, { 134, 0, 1657 }, + { 133, 11, 292 }, { 138, 11, 135 }, { 6, 0, 844 }, { 134, 0, 1117 }, + { 135, 0, 127 }, { 9, 10, 867 }, { 138, 10, 837 }, { 6, 0, 1184 }, + { 134, 0, 1208 }, { 134, 0, 1294 }, { 136, 0, 364 }, { 6, 0, 1415 }, + { 7, 0, 1334 }, { 11, 0, 125 }, { 6, 10, 170 }, { 7, 11, 393 }, + { 8, 10, 395 }, { 8, 10, 487 }, { 10, 11, 603 }, { 11, 11, 206 }, + { 141, 10, 147 }, { 137, 11, 748 }, { 4, 11, 912 }, { 137, 11, 232 }, + { 4, 10, 535 }, { 136, 10, 618 }, { 137, 0, 792 }, { 7, 11, 1973 }, + { 136, 11, 716 }, { 135, 11, 98 }, { 5, 0, 909 }, { 9, 0, 849 }, + { 138, 0, 805 }, { 4, 0, 630 }, { 132, 0, 699 }, { 5, 11, 733 }, + { 14, 11, 103 }, { 150, 10, 23 }, { 12, 11, 158 }, { 18, 11, 8 }, + { 19, 11, 62 }, { 20, 11, 6 }, { 22, 11, 4 }, { 23, 11, 2 }, + { 151, 11, 9 }, { 132, 0, 968 }, { 132, 10, 778 }, { 132, 10, 46 }, + { 5, 10, 811 }, { 6, 10, 1679 }, { 6, 10, 1714 }, { 135, 10, 2032 }, + { 6, 0, 1446 }, { 7, 10, 1458 }, { 9, 10, 407 }, { 139, 10, 15 }, + { 7, 0, 206 }, { 7, 0, 397 }, { 7, 0, 621 }, { 7, 0, 640 }, + { 8, 0, 124 }, { 8, 0, 619 }, { 9, 0, 305 }, { 9, 0, 643 }, + { 10, 0, 264 }, { 10, 0, 628 }, { 11, 0, 40 }, { 12, 0, 349 }, + { 13, 0, 134 }, { 13, 0, 295 }, { 14, 0, 155 }, { 15, 0, 120 }, + { 18, 0, 105 }, { 6, 10, 34 }, { 7, 10, 1089 }, { 8, 10, 708 }, + { 8, 10, 721 }, { 9, 10, 363 }, { 148, 10, 98 }, { 4, 0, 262 }, + { 5, 0, 641 }, { 135, 0, 342 }, { 137, 11, 72 }, { 4, 0, 99 }, + { 6, 0, 250 }, { 6, 0, 346 }, { 8, 0, 127 }, { 138, 0, 81 }, + { 132, 0, 915 }, { 5, 0, 75 }, { 9, 0, 517 }, { 10, 0, 470 }, + { 12, 0, 155 }, { 141, 0, 224 }, { 132, 10, 462 }, { 11, 11, 600 }, + { 11, 11, 670 }, { 141, 11, 245 }, { 142, 0, 83 }, { 5, 10, 73 }, + { 6, 10, 23 }, { 134, 10, 338 }, { 6, 0, 1031 }, { 139, 11, 923 }, + { 7, 11, 164 }, { 7, 11, 1571 }, { 9, 11, 107 }, { 140, 11, 225 }, + { 134, 0, 1470 }, { 133, 0, 954 }, { 6, 0, 304 }, { 8, 0, 418 }, + { 10, 0, 345 }, { 11, 0, 341 }, { 139, 0, 675 }, { 9, 0, 410 }, + { 139, 0, 425 }, { 4, 11, 27 }, { 5, 11, 484 }, { 5, 11, 510 }, + { 6, 11, 434 }, { 7, 11, 1000 }, { 7, 11, 1098 }, { 8, 11, 2 }, + { 136, 11, 200 }, { 134, 0, 734 }, { 140, 11, 257 }, { 7, 10, 725 }, + { 8, 10, 498 }, { 139, 10, 268 }, { 134, 0, 1822 }, { 135, 0, 1798 }, + { 135, 10, 773 }, { 132, 11, 460 }, { 4, 11, 932 }, { 133, 11, 891 }, + { 134, 0, 14 }, { 132, 10, 583 }, { 7, 10, 1462 }, { 8, 11, 625 }, + { 139, 10, 659 }, { 5, 0, 113 }, { 6, 0, 243 }, { 6, 0, 1708 }, + { 7, 0, 1865 }, { 11, 0, 161 }, { 16, 0, 37 }, { 17, 0, 99 }, + { 133, 10, 220 }, { 134, 11, 76 }, { 5, 11, 461 }, { 135, 11, 1925 }, + { 140, 0, 69 }, { 8, 11, 92 }, { 137, 11, 221 }, { 139, 10, 803 }, + { 132, 10, 544 }, { 4, 0, 274 }, { 134, 0, 922 }, { 132, 0, 541 }, + { 5, 0, 627 }, { 6, 10, 437 }, { 6, 10, 564 }, { 11, 10, 181 }, + { 141, 10, 183 }, { 135, 10, 1192 }, { 7, 0, 166 }, { 132, 11, 763 }, + { 133, 11, 253 }, { 134, 0, 849 }, { 9, 11, 73 }, { 10, 11, 110 }, + { 14, 11, 185 }, { 145, 11, 119 }, { 5, 11, 212 }, { 12, 11, 35 }, + { 141, 11, 382 }, { 133, 0, 717 }, { 137, 0, 304 }, { 136, 0, 600 }, + { 133, 0, 654 }, { 6, 0, 273 }, { 10, 0, 188 }, { 13, 0, 377 }, + { 146, 0, 77 }, { 4, 10, 790 }, { 5, 10, 273 }, { 134, 10, 394 }, + { 132, 0, 543 }, { 135, 0, 410 }, { 11, 0, 98 }, { 11, 0, 524 }, + { 141, 0, 87 }, { 132, 0, 941 }, { 135, 11, 1175 }, { 4, 0, 250 }, + { 7, 0, 1612 }, { 11, 0, 186 }, { 12, 0, 133 }, { 6, 10, 127 }, + { 7, 10, 1511 }, { 8, 10, 613 }, { 12, 10, 495 }, { 12, 10, 586 }, + { 12, 10, 660 }, { 12, 10, 668 }, { 14, 10, 385 }, { 15, 10, 118 }, + { 17, 10, 20 }, { 146, 10, 98 }, { 6, 0, 1785 }, { 133, 11, 816 }, + { 134, 0, 1339 }, { 7, 0, 961 }, { 7, 0, 1085 }, { 7, 0, 1727 }, + { 8, 0, 462 }, { 6, 10, 230 }, { 135, 11, 1727 }, { 9, 0, 636 }, + { 135, 10, 1954 }, { 132, 0, 780 }, { 5, 11, 869 }, { 5, 11, 968 }, + { 6, 11, 1626 }, { 8, 11, 734 }, { 136, 11, 784 }, { 4, 11, 542 }, + { 6, 11, 1716 }, { 6, 11, 1727 }, { 7, 11, 1082 }, { 7, 11, 1545 }, + { 8, 11, 56 }, { 8, 11, 118 }, { 8, 11, 412 }, { 8, 11, 564 }, + { 9, 11, 888 }, { 9, 11, 908 }, { 10, 11, 50 }, { 10, 11, 423 }, + { 11, 11, 685 }, { 11, 11, 697 }, { 11, 11, 933 }, { 12, 11, 299 }, + { 13, 11, 126 }, { 13, 11, 136 }, { 13, 11, 170 }, { 141, 11, 190 }, + { 134, 11, 226 }, { 4, 11, 232 }, { 9, 11, 202 }, { 10, 11, 474 }, + { 140, 11, 433 }, { 137, 11, 500 }, { 5, 0, 529 }, { 136, 10, 68 }, + { 132, 10, 654 }, { 4, 10, 156 }, { 7, 10, 998 }, { 7, 10, 1045 }, + { 7, 10, 1860 }, { 9, 10, 48 }, { 9, 10, 692 }, { 11, 10, 419 }, + { 139, 10, 602 }, { 7, 0, 1276 }, { 8, 0, 474 }, { 9, 0, 652 }, + { 6, 11, 108 }, { 7, 11, 1003 }, { 7, 11, 1181 }, { 136, 11, 343 }, + { 7, 11, 1264 }, { 7, 11, 1678 }, { 11, 11, 945 }, { 12, 11, 341 }, + { 12, 11, 471 }, { 140, 11, 569 }, { 134, 11, 1712 }, { 5, 0, 948 }, + { 12, 0, 468 }, { 19, 0, 96 }, { 148, 0, 24 }, { 4, 11, 133 }, + { 7, 11, 711 }, { 7, 11, 1298 }, { 7, 11, 1585 }, { 135, 11, 1929 }, + { 6, 0, 753 }, { 140, 0, 657 }, { 139, 0, 941 }, { 6, 11, 99 }, + { 7, 11, 1808 }, { 145, 11, 57 }, { 6, 11, 574 }, { 7, 11, 428 }, + { 7, 11, 1250 }, { 10, 11, 669 }, { 11, 11, 485 }, { 11, 11, 840 }, + { 12, 11, 300 }, { 142, 11, 250 }, { 4, 0, 532 }, { 5, 0, 706 }, + { 135, 0, 662 }, { 5, 0, 837 }, { 6, 0, 1651 }, { 139, 0, 985 }, + { 7, 0, 1861 }, { 9, 10, 197 }, { 10, 10, 300 }, { 12, 10, 473 }, + { 13, 10, 90 }, { 141, 10, 405 }, { 137, 11, 252 }, { 6, 11, 323 }, + { 135, 11, 1564 }, { 4, 0, 330 }, { 4, 0, 863 }, { 7, 0, 933 }, + { 7, 0, 2012 }, { 8, 0, 292 }, { 7, 11, 461 }, { 8, 11, 775 }, + { 138, 11, 435 }, { 132, 10, 606 }, { 4, 11, 655 }, { 7, 11, 850 }, + { 17, 11, 75 }, { 146, 11, 137 }, { 135, 0, 767 }, { 7, 10, 1978 }, + { 136, 10, 676 }, { 132, 0, 641 }, { 135, 11, 1559 }, { 134, 0, 1233 }, + { 137, 0, 242 }, { 17, 0, 114 }, { 4, 10, 361 }, { 133, 10, 315 }, + { 137, 0, 883 }, { 132, 10, 461 }, { 138, 0, 274 }, { 134, 0, 2008 }, + { 134, 0, 1794 }, { 4, 0, 703 }, { 135, 0, 207 }, { 12, 0, 285 }, + { 132, 10, 472 }, { 132, 0, 571 }, { 5, 0, 873 }, { 5, 0, 960 }, + { 8, 0, 823 }, { 9, 0, 881 }, { 136, 11, 577 }, { 7, 0, 617 }, + { 10, 0, 498 }, { 11, 0, 501 }, { 12, 0, 16 }, { 140, 0, 150 }, + { 138, 10, 747 }, { 132, 0, 431 }, { 133, 10, 155 }, { 11, 0, 283 }, + { 11, 0, 567 }, { 7, 10, 163 }, { 8, 10, 319 }, { 9, 10, 402 }, + { 10, 10, 24 }, { 10, 10, 681 }, { 11, 10, 200 }, { 12, 10, 253 }, + { 12, 10, 410 }, { 142, 10, 219 }, { 4, 11, 413 }, { 5, 11, 677 }, + { 8, 11, 432 }, { 140, 11, 280 }, { 9, 0, 401 }, { 5, 10, 475 }, + { 7, 10, 1780 }, { 11, 10, 297 }, { 11, 10, 558 }, { 14, 10, 322 }, + { 147, 10, 76 }, { 6, 0, 781 }, { 9, 0, 134 }, { 10, 0, 2 }, + { 10, 0, 27 }, { 10, 0, 333 }, { 11, 0, 722 }, { 143, 0, 1 }, + { 5, 0, 33 }, { 6, 0, 470 }, { 139, 0, 424 }, { 135, 0, 2006 }, + { 12, 0, 783 }, { 135, 10, 1956 }, { 136, 0, 274 }, { 135, 0, 1882 }, + { 132, 0, 794 }, { 135, 0, 1848 }, { 5, 10, 944 }, { 134, 10, 1769 }, + { 6, 0, 47 }, { 7, 0, 90 }, { 7, 0, 664 }, { 7, 0, 830 }, + { 7, 0, 1380 }, { 7, 0, 2025 }, { 8, 0, 448 }, { 136, 0, 828 }, + { 132, 10, 144 }, { 134, 0, 1199 }, { 4, 11, 395 }, { 139, 11, 762 }, + { 135, 11, 1504 }, { 9, 0, 417 }, { 137, 0, 493 }, { 9, 11, 174 }, + { 10, 11, 164 }, { 11, 11, 440 }, { 11, 11, 841 }, { 143, 11, 98 }, + { 134, 11, 426 }, { 139, 11, 1002 }, { 134, 0, 295 }, { 134, 0, 816 }, + { 6, 10, 247 }, { 137, 10, 555 }, { 133, 0, 1019 }, { 4, 0, 620 }, + { 5, 11, 476 }, { 10, 10, 280 }, { 138, 10, 797 }, { 139, 0, 464 }, + { 5, 11, 76 }, { 6, 11, 458 }, { 6, 11, 497 }, { 7, 11, 764 }, + { 7, 11, 868 }, { 9, 11, 658 }, { 10, 11, 594 }, { 11, 11, 173 }, + { 11, 11, 566 }, { 12, 11, 20 }, { 12, 11, 338 }, { 141, 11, 200 }, + { 134, 0, 208 }, { 4, 11, 526 }, { 7, 11, 1029 }, { 135, 11, 1054 }, + { 132, 11, 636 }, { 6, 11, 233 }, { 7, 11, 660 }, { 7, 11, 1124 }, + { 17, 11, 31 }, { 19, 11, 22 }, { 151, 11, 14 }, { 10, 0, 442 }, + { 133, 10, 428 }, { 10, 0, 930 }, { 140, 0, 778 }, { 6, 0, 68 }, + { 7, 0, 448 }, { 7, 0, 1629 }, { 7, 0, 1769 }, { 7, 0, 1813 }, + { 8, 0, 442 }, { 8, 0, 516 }, { 9, 0, 710 }, { 10, 0, 282 }, + { 10, 0, 722 }, { 7, 10, 1717 }, { 138, 10, 546 }, { 134, 0, 1128 }, + { 11, 0, 844 }, { 12, 0, 104 }, { 140, 0, 625 }, { 4, 11, 432 }, + { 135, 11, 824 }, { 138, 10, 189 }, { 133, 0, 787 }, { 133, 10, 99 }, + { 4, 11, 279 }, { 7, 11, 301 }, { 137, 11, 362 }, { 8, 0, 491 }, + { 4, 10, 397 }, { 136, 10, 555 }, { 4, 11, 178 }, { 133, 11, 399 }, + { 134, 0, 711 }, { 144, 0, 9 }, { 4, 0, 403 }, { 5, 0, 441 }, + { 7, 0, 450 }, { 10, 0, 840 }, { 11, 0, 101 }, { 12, 0, 193 }, + { 141, 0, 430 }, { 135, 11, 1246 }, { 12, 10, 398 }, { 20, 10, 39 }, + { 21, 10, 11 }, { 150, 10, 41 }, { 4, 10, 485 }, { 7, 10, 353 }, + { 135, 10, 1523 }, { 6, 10, 366 }, { 7, 10, 1384 }, { 7, 10, 1601 }, + { 135, 11, 1912 }, { 7, 0, 396 }, { 10, 0, 160 }, { 135, 11, 396 }, + { 137, 10, 282 }, { 134, 11, 1692 }, { 4, 10, 157 }, { 5, 10, 471 }, + { 6, 11, 202 }, { 10, 11, 448 }, { 11, 11, 208 }, { 12, 11, 360 }, + { 17, 11, 117 }, { 17, 11, 118 }, { 18, 11, 27 }, { 148, 11, 67 }, + { 133, 0, 679 }, { 137, 0, 326 }, { 136, 10, 116 }, { 7, 11, 872 }, + { 10, 11, 516 }, { 139, 11, 167 }, { 132, 11, 224 }, { 5, 11, 546 }, + { 7, 11, 35 }, { 8, 11, 11 }, { 8, 11, 12 }, { 9, 11, 315 }, + { 9, 11, 533 }, { 10, 11, 802 }, { 11, 11, 166 }, { 12, 11, 525 }, + { 142, 11, 243 }, { 7, 0, 1128 }, { 135, 11, 1920 }, { 5, 11, 241 }, + { 8, 11, 242 }, { 9, 11, 451 }, { 10, 11, 667 }, { 11, 11, 598 }, + { 140, 11, 429 }, { 6, 0, 737 }, { 5, 10, 160 }, { 7, 10, 363 }, + { 7, 10, 589 }, { 10, 10, 170 }, { 141, 10, 55 }, { 135, 0, 1796 }, + { 142, 11, 254 }, { 4, 0, 574 }, { 7, 0, 350 }, { 7, 0, 1024 }, + { 8, 0, 338 }, { 9, 0, 677 }, { 138, 0, 808 }, { 134, 0, 1096 }, + { 137, 11, 516 }, { 7, 0, 405 }, { 10, 0, 491 }, { 4, 10, 108 }, + { 4, 11, 366 }, { 139, 10, 498 }, { 11, 11, 337 }, { 142, 11, 303 }, + { 134, 11, 1736 }, { 7, 0, 1081 }, { 140, 11, 364 }, { 7, 10, 1005 }, + { 140, 10, 609 }, { 7, 0, 1676 }, { 4, 10, 895 }, { 133, 10, 772 }, + { 135, 0, 2037 }, { 6, 0, 1207 }, { 11, 11, 916 }, { 142, 11, 419 }, + { 14, 11, 140 }, { 148, 11, 41 }, { 6, 11, 331 }, { 136, 11, 623 }, + { 9, 0, 944 }, { 9, 0, 969 }, { 9, 0, 1022 }, { 12, 0, 913 }, + { 12, 0, 936 }, { 15, 0, 177 }, { 15, 0, 193 }, { 4, 10, 926 }, + { 133, 10, 983 }, { 5, 0, 354 }, { 135, 11, 506 }, { 8, 0, 598 }, + { 9, 0, 664 }, { 138, 0, 441 }, { 4, 11, 640 }, { 133, 11, 513 }, + { 137, 0, 297 }, { 132, 10, 538 }, { 6, 10, 294 }, { 7, 10, 1267 }, + { 136, 10, 624 }, { 7, 0, 1772 }, { 7, 11, 1888 }, { 8, 11, 289 }, + { 11, 11, 45 }, { 12, 11, 278 }, { 140, 11, 537 }, { 135, 10, 1325 }, + { 138, 0, 751 }, { 141, 0, 37 }, { 134, 0, 1828 }, { 132, 10, 757 }, + { 132, 11, 394 }, { 6, 0, 257 }, { 135, 0, 1522 }, { 4, 0, 582 }, + { 9, 0, 191 }, { 135, 11, 1931 }, { 7, 11, 574 }, { 7, 11, 1719 }, + { 137, 11, 145 }, { 132, 11, 658 }, { 10, 0, 790 }, { 132, 11, 369 }, + { 9, 11, 781 }, { 10, 11, 144 }, { 11, 11, 385 }, { 13, 11, 161 }, + { 13, 11, 228 }, { 13, 11, 268 }, { 148, 11, 107 }, { 8, 0, 469 }, + { 10, 0, 47 }, { 136, 11, 374 }, { 6, 0, 306 }, { 7, 0, 1140 }, + { 7, 0, 1340 }, { 8, 0, 133 }, { 138, 0, 449 }, { 139, 0, 1011 }, + { 7, 10, 1875 }, { 139, 10, 124 }, { 4, 11, 344 }, { 6, 11, 498 }, + { 139, 11, 323 }, { 137, 0, 299 }, { 132, 0, 837 }, { 133, 11, 906 }, + { 5, 0, 329 }, { 8, 0, 260 }, { 138, 0, 10 }, { 134, 0, 1320 }, + { 4, 0, 657 }, { 146, 0, 158 }, { 135, 0, 1191 }, { 152, 0, 7 }, + { 6, 0, 1939 }, { 8, 0, 974 }, { 138, 0, 996 }, { 135, 0, 1665 }, + { 11, 11, 126 }, { 139, 11, 287 }, { 143, 0, 8 }, { 14, 11, 149 }, + { 14, 11, 399 }, { 143, 11, 57 }, { 5, 0, 66 }, { 7, 0, 1896 }, + { 136, 0, 288 }, { 7, 0, 175 }, { 10, 0, 494 }, { 5, 10, 150 }, + { 8, 10, 603 }, { 9, 10, 593 }, { 9, 10, 634 }, { 10, 10, 173 }, + { 11, 10, 462 }, { 11, 10, 515 }, { 13, 10, 216 }, { 13, 10, 288 }, + { 142, 10, 400 }, { 134, 0, 1643 }, { 136, 11, 21 }, { 4, 0, 21 }, + { 5, 0, 91 }, { 5, 0, 648 }, { 5, 0, 750 }, { 5, 0, 781 }, + { 6, 0, 54 }, { 6, 0, 112 }, { 6, 0, 402 }, { 6, 0, 1732 }, + { 7, 0, 315 }, { 7, 0, 749 }, { 7, 0, 1427 }, { 7, 0, 1900 }, + { 9, 0, 78 }, { 9, 0, 508 }, { 10, 0, 611 }, { 10, 0, 811 }, + { 11, 0, 510 }, { 11, 0, 728 }, { 13, 0, 36 }, { 14, 0, 39 }, + { 16, 0, 83 }, { 17, 0, 124 }, { 148, 0, 30 }, { 4, 0, 668 }, + { 136, 0, 570 }, { 10, 0, 322 }, { 10, 0, 719 }, { 139, 0, 407 }, + { 135, 11, 1381 }, { 136, 11, 193 }, { 12, 10, 108 }, { 141, 10, 291 }, + { 132, 11, 616 }, { 136, 11, 692 }, { 8, 0, 125 }, { 8, 0, 369 }, + { 8, 0, 524 }, { 10, 0, 486 }, { 11, 0, 13 }, { 11, 0, 381 }, + { 11, 0, 736 }, { 11, 0, 766 }, { 11, 0, 845 }, { 13, 0, 114 }, + { 13, 0, 292 }, { 142, 0, 47 }, { 134, 0, 1247 }, { 6, 0, 1684 }, + { 6, 0, 1731 }, { 7, 0, 356 }, { 8, 0, 54 }, { 8, 0, 221 }, + { 9, 0, 225 }, { 9, 0, 356 }, { 10, 0, 77 }, { 10, 0, 446 }, + { 10, 0, 731 }, { 12, 0, 404 }, { 141, 0, 491 }, { 135, 10, 1777 }, + { 4, 11, 305 }, { 4, 10, 493 }, { 144, 10, 55 }, { 4, 0, 951 }, + { 6, 0, 1809 }, { 6, 0, 1849 }, { 8, 0, 846 }, { 8, 0, 866 }, + { 8, 0, 899 }, { 10, 0, 896 }, { 12, 0, 694 }, { 142, 0, 468 }, + { 5, 11, 214 }, { 7, 11, 603 }, { 8, 11, 611 }, { 9, 11, 686 }, + { 10, 11, 88 }, { 11, 11, 459 }, { 11, 11, 496 }, { 12, 11, 463 }, + { 12, 11, 590 }, { 13, 11, 0 }, { 142, 11, 214 }, { 132, 0, 411 }, + { 4, 0, 80 }, { 133, 0, 44 }, { 140, 11, 74 }, { 143, 0, 31 }, + { 7, 0, 669 }, { 6, 10, 568 }, { 7, 10, 1804 }, { 8, 10, 362 }, + { 8, 10, 410 }, { 8, 10, 830 }, { 9, 10, 514 }, { 11, 10, 649 }, + { 142, 10, 157 }, { 7, 0, 673 }, { 134, 11, 1703 }, { 132, 10, 625 }, + { 134, 0, 1303 }, { 5, 0, 299 }, { 135, 0, 1083 }, { 138, 0, 704 }, + { 6, 0, 275 }, { 7, 0, 408 }, { 6, 10, 158 }, { 7, 10, 129 }, + { 7, 10, 181 }, { 8, 10, 276 }, { 8, 10, 377 }, { 10, 10, 523 }, + { 11, 10, 816 }, { 12, 10, 455 }, { 13, 10, 303 }, { 142, 10, 135 }, + { 4, 0, 219 }, { 7, 0, 367 }, { 7, 0, 1713 }, { 7, 0, 1761 }, + { 9, 0, 86 }, { 9, 0, 537 }, { 10, 0, 165 }, { 12, 0, 219 }, + { 140, 0, 561 }, { 8, 0, 216 }, { 4, 10, 1 }, { 4, 11, 737 }, + { 6, 11, 317 }, { 7, 10, 1143 }, { 7, 10, 1463 }, { 9, 10, 207 }, + { 9, 10, 390 }, { 9, 10, 467 }, { 10, 11, 98 }, { 11, 11, 294 }, + { 11, 10, 836 }, { 12, 11, 60 }, { 12, 11, 437 }, { 13, 11, 64 }, + { 13, 11, 380 }, { 142, 11, 430 }, { 6, 11, 1758 }, { 8, 11, 520 }, + { 9, 11, 345 }, { 9, 11, 403 }, { 142, 11, 350 }, { 5, 11, 47 }, + { 10, 11, 242 }, { 138, 11, 579 }, { 5, 11, 139 }, { 7, 11, 1168 }, + { 138, 11, 539 }, { 135, 0, 1319 }, { 4, 10, 295 }, { 4, 10, 723 }, + { 5, 10, 895 }, { 7, 10, 1031 }, { 8, 10, 199 }, { 8, 10, 340 }, + { 9, 10, 153 }, { 9, 10, 215 }, { 10, 10, 21 }, { 10, 10, 59 }, + { 10, 10, 80 }, { 10, 10, 224 }, { 10, 10, 838 }, { 11, 10, 229 }, + { 11, 10, 652 }, { 12, 10, 192 }, { 13, 10, 146 }, { 142, 10, 91 }, + { 140, 0, 428 }, { 137, 10, 51 }, { 133, 0, 514 }, { 5, 10, 309 }, + { 140, 10, 211 }, { 6, 0, 1010 }, { 5, 10, 125 }, { 8, 10, 77 }, + { 138, 10, 15 }, { 4, 0, 55 }, { 5, 0, 301 }, { 6, 0, 571 }, + { 142, 0, 49 }, { 146, 0, 102 }, { 136, 11, 370 }, { 4, 11, 107 }, + { 7, 11, 613 }, { 8, 11, 358 }, { 8, 11, 439 }, { 8, 11, 504 }, + { 9, 11, 501 }, { 10, 11, 383 }, { 139, 11, 477 }, { 132, 11, 229 }, + { 133, 0, 364 }, { 133, 10, 439 }, { 4, 11, 903 }, { 135, 11, 1816 }, + { 11, 0, 379 }, { 140, 10, 76 }, { 4, 0, 76 }, { 4, 0, 971 }, + { 7, 0, 1550 }, { 9, 0, 306 }, { 9, 0, 430 }, { 9, 0, 663 }, + { 10, 0, 683 }, { 10, 0, 921 }, { 11, 0, 427 }, { 11, 0, 753 }, + { 12, 0, 334 }, { 12, 0, 442 }, { 14, 0, 258 }, { 14, 0, 366 }, + { 143, 0, 131 }, { 137, 0, 52 }, { 4, 11, 47 }, { 6, 11, 373 }, + { 7, 11, 452 }, { 7, 11, 543 }, { 7, 11, 1714 }, { 7, 11, 1856 }, + { 9, 11, 6 }, { 11, 11, 257 }, { 139, 11, 391 }, { 4, 10, 8 }, + { 7, 10, 1152 }, { 7, 10, 1153 }, { 7, 10, 1715 }, { 9, 10, 374 }, + { 10, 10, 478 }, { 139, 10, 648 }, { 4, 11, 785 }, { 133, 11, 368 }, + { 135, 10, 1099 }, { 135, 11, 860 }, { 5, 11, 980 }, { 134, 11, 1754 }, + { 134, 0, 1258 }, { 6, 0, 1058 }, { 6, 0, 1359 }, { 7, 11, 536 }, + { 7, 11, 1331 }, { 136, 11, 143 }, { 4, 0, 656 }, { 135, 0, 779 }, + { 136, 10, 87 }, { 5, 11, 19 }, { 6, 11, 533 }, { 146, 11, 126 }, + { 7, 0, 144 }, { 138, 10, 438 }, { 5, 11, 395 }, { 5, 11, 951 }, + { 134, 11, 1776 }, { 135, 0, 1373 }, { 7, 0, 554 }, { 7, 0, 605 }, + { 141, 0, 10 }, { 4, 10, 69 }, { 5, 10, 122 }, { 9, 10, 656 }, + { 138, 10, 464 }, { 5, 10, 849 }, { 134, 10, 1633 }, { 5, 0, 838 }, + { 5, 0, 841 }, { 134, 0, 1649 }, { 133, 0, 1012 }, { 139, 10, 499 }, + { 7, 10, 476 }, { 7, 10, 1592 }, { 138, 10, 87 }, { 6, 0, 251 }, + { 7, 0, 365 }, { 7, 0, 1357 }, { 7, 0, 1497 }, { 8, 0, 154 }, + { 141, 0, 281 }, { 132, 11, 441 }, { 132, 11, 695 }, { 7, 11, 497 }, + { 9, 11, 387 }, { 147, 11, 81 }, { 133, 0, 340 }, { 14, 10, 283 }, + { 142, 11, 283 }, { 134, 0, 810 }, { 135, 11, 1894 }, { 139, 0, 495 }, + { 5, 11, 284 }, { 6, 11, 49 }, { 6, 11, 350 }, { 7, 11, 1 }, + { 7, 11, 377 }, { 7, 11, 1693 }, { 8, 11, 18 }, { 8, 11, 678 }, + { 9, 11, 161 }, { 9, 11, 585 }, { 9, 11, 671 }, { 9, 11, 839 }, + { 11, 11, 912 }, { 141, 11, 427 }, { 5, 10, 859 }, { 7, 10, 1160 }, + { 8, 10, 107 }, { 9, 10, 291 }, { 9, 10, 439 }, { 10, 10, 663 }, + { 11, 10, 609 }, { 140, 10, 197 }, { 8, 0, 261 }, { 9, 0, 144 }, + { 9, 0, 466 }, { 10, 0, 370 }, { 12, 0, 470 }, { 13, 0, 144 }, + { 142, 0, 348 }, { 137, 0, 897 }, { 6, 0, 248 }, { 9, 0, 546 }, + { 10, 0, 535 }, { 11, 0, 681 }, { 141, 0, 135 }, { 4, 0, 358 }, + { 135, 0, 1496 }, { 134, 0, 567 }, { 136, 0, 445 }, { 4, 10, 117 }, + { 6, 10, 372 }, { 7, 10, 1905 }, { 142, 10, 323 }, { 4, 10, 722 }, + { 139, 10, 471 }, { 6, 0, 697 }, { 134, 0, 996 }, { 7, 11, 2007 }, + { 9, 11, 101 }, { 9, 11, 450 }, { 10, 11, 66 }, { 10, 11, 842 }, + { 11, 11, 536 }, { 140, 11, 587 }, { 132, 0, 577 }, { 134, 0, 1336 }, + { 9, 10, 5 }, { 12, 10, 216 }, { 12, 10, 294 }, { 12, 10, 298 }, + { 12, 10, 400 }, { 12, 10, 518 }, { 13, 10, 229 }, { 143, 10, 139 }, + { 6, 0, 174 }, { 138, 0, 917 }, { 134, 10, 1774 }, { 5, 10, 12 }, + { 7, 10, 375 }, { 9, 10, 88 }, { 9, 10, 438 }, { 11, 11, 62 }, + { 139, 10, 270 }, { 134, 11, 1766 }, { 6, 11, 0 }, { 7, 11, 84 }, + { 7, 10, 816 }, { 7, 10, 1241 }, { 9, 10, 283 }, { 9, 10, 520 }, + { 10, 10, 213 }, { 10, 10, 307 }, { 10, 10, 463 }, { 10, 10, 671 }, + { 10, 10, 746 }, { 11, 10, 401 }, { 11, 10, 794 }, { 11, 11, 895 }, + { 12, 10, 517 }, { 17, 11, 11 }, { 18, 10, 107 }, { 147, 10, 115 }, + { 5, 0, 878 }, { 133, 0, 972 }, { 6, 11, 1665 }, { 7, 11, 256 }, + { 7, 11, 1388 }, { 138, 11, 499 }, { 4, 10, 258 }, { 136, 10, 639 }, + { 4, 11, 22 }, { 5, 11, 10 }, { 6, 10, 22 }, { 7, 11, 848 }, + { 7, 10, 903 }, { 7, 10, 1963 }, { 8, 11, 97 }, { 138, 10, 577 }, + { 5, 10, 681 }, { 136, 10, 782 }, { 133, 11, 481 }, { 132, 0, 351 }, + { 4, 10, 664 }, { 5, 10, 804 }, { 139, 10, 1013 }, { 6, 11, 134 }, + { 7, 11, 437 }, { 7, 11, 959 }, { 9, 11, 37 }, { 14, 11, 285 }, + { 14, 11, 371 }, { 144, 11, 60 }, { 7, 11, 486 }, { 8, 11, 155 }, + { 11, 11, 93 }, { 140, 11, 164 }, { 132, 0, 286 }, { 7, 0, 438 }, + { 7, 0, 627 }, { 7, 0, 1516 }, { 8, 0, 40 }, { 9, 0, 56 }, + { 9, 0, 294 }, { 10, 0, 30 }, { 11, 0, 969 }, { 11, 0, 995 }, + { 146, 0, 148 }, { 5, 11, 591 }, { 135, 11, 337 }, { 134, 0, 1950 }, + { 133, 10, 32 }, { 138, 11, 500 }, { 5, 11, 380 }, { 5, 11, 650 }, + { 136, 11, 310 }, { 4, 11, 364 }, { 7, 11, 1156 }, { 7, 11, 1187 }, + { 137, 11, 409 }, { 4, 0, 738 }, { 134, 11, 482 }, { 4, 11, 781 }, + { 6, 11, 487 }, { 7, 11, 926 }, { 8, 11, 263 }, { 139, 11, 500 }, + { 135, 11, 418 }, { 6, 0, 2047 }, { 10, 0, 969 }, { 4, 10, 289 }, + { 7, 10, 629 }, { 7, 10, 1698 }, { 7, 10, 1711 }, { 140, 10, 215 }, + { 6, 10, 450 }, { 136, 10, 109 }, { 134, 0, 818 }, { 136, 10, 705 }, + { 133, 0, 866 }, { 4, 11, 94 }, { 135, 11, 1265 }, { 132, 11, 417 }, + { 134, 0, 1467 }, { 135, 10, 1238 }, { 4, 0, 972 }, { 6, 0, 1851 }, + { 134, 0, 1857 }, { 134, 0, 355 }, { 133, 0, 116 }, { 132, 0, 457 }, + { 135, 11, 1411 }, { 4, 11, 408 }, { 4, 11, 741 }, { 135, 11, 500 }, + { 134, 10, 26 }, { 142, 11, 137 }, { 5, 0, 527 }, { 6, 0, 189 }, + { 7, 0, 859 }, { 136, 0, 267 }, { 11, 0, 104 }, { 11, 0, 554 }, + { 15, 0, 60 }, { 143, 0, 125 }, { 134, 0, 1613 }, { 4, 10, 414 }, + { 5, 10, 467 }, { 9, 10, 654 }, { 10, 10, 451 }, { 12, 10, 59 }, + { 141, 10, 375 }, { 135, 10, 17 }, { 134, 0, 116 }, { 135, 11, 541 }, + { 135, 10, 955 }, { 6, 11, 73 }, { 135, 11, 177 }, { 133, 11, 576 }, + { 134, 0, 886 }, { 133, 0, 487 }, { 4, 0, 86 }, { 5, 0, 667 }, + { 5, 0, 753 }, { 6, 0, 316 }, { 6, 0, 455 }, { 135, 0, 946 }, + { 142, 11, 231 }, { 150, 0, 45 }, { 134, 0, 863 }, { 134, 0, 1953 }, + { 6, 10, 280 }, { 10, 10, 502 }, { 11, 10, 344 }, { 140, 10, 38 }, + { 4, 0, 79 }, { 7, 0, 1773 }, { 10, 0, 450 }, { 11, 0, 589 }, + { 13, 0, 332 }, { 13, 0, 493 }, { 14, 0, 183 }, { 14, 0, 334 }, + { 14, 0, 362 }, { 14, 0, 368 }, { 14, 0, 376 }, { 14, 0, 379 }, + { 19, 0, 90 }, { 19, 0, 103 }, { 19, 0, 127 }, { 148, 0, 90 }, + { 5, 10, 45 }, { 7, 10, 1161 }, { 11, 10, 448 }, { 11, 10, 880 }, + { 13, 10, 139 }, { 13, 10, 407 }, { 15, 10, 16 }, { 17, 10, 95 }, + { 18, 10, 66 }, { 18, 10, 88 }, { 18, 10, 123 }, { 149, 10, 7 }, + { 136, 10, 777 }, { 4, 10, 410 }, { 135, 10, 521 }, { 135, 10, 1778 }, + { 135, 11, 538 }, { 142, 0, 381 }, { 133, 11, 413 }, { 134, 0, 1142 }, + { 6, 0, 1189 }, { 136, 11, 495 }, { 5, 0, 663 }, { 6, 0, 1962 }, + { 134, 0, 2003 }, { 7, 11, 54 }, { 8, 11, 312 }, { 10, 11, 191 }, + { 10, 11, 614 }, { 140, 11, 567 }, { 132, 10, 436 }, { 133, 0, 846 }, + { 10, 0, 528 }, { 11, 0, 504 }, { 7, 10, 1587 }, { 135, 10, 1707 }, + { 5, 0, 378 }, { 8, 0, 465 }, { 9, 0, 286 }, { 10, 0, 185 }, + { 10, 0, 562 }, { 10, 0, 635 }, { 11, 0, 31 }, { 11, 0, 393 }, + { 13, 0, 312 }, { 18, 0, 65 }, { 18, 0, 96 }, { 147, 0, 89 }, + { 7, 0, 899 }, { 14, 0, 325 }, { 6, 11, 468 }, { 7, 11, 567 }, + { 7, 11, 1478 }, { 8, 11, 530 }, { 142, 11, 290 }, { 7, 0, 1880 }, + { 9, 0, 680 }, { 139, 0, 798 }, { 134, 0, 1770 }, { 132, 0, 648 }, + { 150, 11, 35 }, { 5, 0, 945 }, { 6, 0, 1656 }, { 6, 0, 1787 }, + { 7, 0, 167 }, { 8, 0, 824 }, { 9, 0, 391 }, { 10, 0, 375 }, + { 139, 0, 185 }, { 6, 11, 484 }, { 135, 11, 822 }, { 134, 0, 2046 }, + { 7, 0, 1645 }, { 8, 0, 352 }, { 137, 0, 249 }, { 132, 0, 152 }, + { 6, 0, 611 }, { 135, 0, 1733 }, { 6, 11, 1724 }, { 135, 11, 2022 }, + { 133, 0, 1006 }, { 141, 11, 96 }, { 5, 0, 420 }, { 135, 0, 1449 }, + { 146, 11, 149 }, { 135, 0, 832 }, { 135, 10, 663 }, { 133, 0, 351 }, + { 5, 0, 40 }, { 7, 0, 598 }, { 7, 0, 1638 }, { 8, 0, 78 }, + { 9, 0, 166 }, { 9, 0, 640 }, { 9, 0, 685 }, { 9, 0, 773 }, + { 11, 0, 215 }, { 13, 0, 65 }, { 14, 0, 172 }, { 14, 0, 317 }, + { 145, 0, 6 }, { 8, 0, 60 }, { 9, 0, 343 }, { 139, 0, 769 }, + { 134, 0, 1354 }, { 132, 0, 724 }, { 137, 0, 745 }, { 132, 11, 474 }, + { 7, 0, 1951 }, { 8, 0, 765 }, { 8, 0, 772 }, { 140, 0, 671 }, + { 7, 0, 108 }, { 8, 0, 219 }, { 8, 0, 388 }, { 9, 0, 775 }, + { 11, 0, 275 }, { 140, 0, 464 }, { 137, 0, 639 }, { 135, 10, 503 }, + { 133, 11, 366 }, { 5, 0, 15 }, { 6, 0, 56 }, { 7, 0, 1758 }, + { 8, 0, 500 }, { 9, 0, 730 }, { 11, 0, 331 }, { 13, 0, 150 }, + { 14, 0, 282 }, { 5, 11, 305 }, { 9, 11, 560 }, { 141, 11, 208 }, + { 4, 10, 113 }, { 5, 10, 163 }, { 5, 10, 735 }, { 7, 10, 1009 }, + { 9, 10, 9 }, { 9, 10, 771 }, { 12, 10, 90 }, { 13, 10, 138 }, + { 13, 10, 410 }, { 143, 10, 128 }, { 4, 10, 324 }, { 138, 10, 104 }, + { 135, 11, 466 }, { 142, 11, 27 }, { 134, 0, 1886 }, { 5, 0, 205 }, + { 6, 0, 438 }, { 9, 0, 711 }, { 4, 11, 480 }, { 6, 11, 167 }, + { 6, 11, 302 }, { 6, 11, 1642 }, { 7, 11, 130 }, { 7, 11, 656 }, + { 7, 11, 837 }, { 7, 11, 1547 }, { 7, 11, 1657 }, { 8, 11, 429 }, + { 9, 11, 228 }, { 10, 11, 643 }, { 13, 11, 289 }, { 13, 11, 343 }, + { 147, 11, 101 }, { 134, 0, 865 }, { 6, 0, 2025 }, { 136, 0, 965 }, + { 7, 11, 278 }, { 10, 11, 739 }, { 11, 11, 708 }, { 141, 11, 348 }, + { 133, 0, 534 }, { 135, 11, 1922 }, { 137, 0, 691 }, { 4, 10, 935 }, + { 133, 10, 823 }, { 6, 0, 443 }, { 9, 0, 237 }, { 9, 0, 571 }, + { 9, 0, 695 }, { 10, 0, 139 }, { 11, 0, 715 }, { 12, 0, 417 }, + { 141, 0, 421 }, { 5, 10, 269 }, { 7, 10, 434 }, { 7, 10, 891 }, + { 8, 10, 339 }, { 9, 10, 702 }, { 11, 10, 594 }, { 11, 10, 718 }, + { 145, 10, 100 }, { 6, 0, 1555 }, { 7, 0, 878 }, { 9, 10, 485 }, + { 141, 10, 264 }, { 134, 10, 1713 }, { 7, 10, 1810 }, { 11, 10, 866 }, + { 12, 10, 103 }, { 141, 10, 495 }, { 135, 10, 900 }, { 6, 0, 1410 }, + { 9, 11, 316 }, { 139, 11, 256 }, { 4, 0, 995 }, { 135, 0, 1033 }, + { 132, 0, 578 }, { 10, 0, 881 }, { 12, 0, 740 }, { 12, 0, 743 }, + { 140, 0, 759 }, { 132, 0, 822 }, { 133, 0, 923 }, { 142, 10, 143 }, + { 135, 11, 1696 }, { 6, 11, 363 }, { 7, 11, 1955 }, { 136, 11, 725 }, + { 132, 0, 924 }, { 133, 0, 665 }, { 135, 10, 2029 }, { 135, 0, 1901 }, + { 4, 0, 265 }, { 6, 0, 1092 }, { 6, 0, 1417 }, { 7, 0, 807 }, + { 135, 0, 950 }, { 5, 0, 93 }, { 12, 0, 267 }, { 141, 0, 498 }, + { 135, 0, 1451 }, { 5, 11, 813 }, { 135, 11, 2046 }, { 5, 10, 625 }, + { 135, 10, 1617 }, { 135, 0, 747 }, { 6, 0, 788 }, { 137, 0, 828 }, + { 7, 0, 184 }, { 11, 0, 307 }, { 11, 0, 400 }, { 15, 0, 130 }, + { 5, 11, 712 }, { 7, 11, 1855 }, { 8, 10, 425 }, { 8, 10, 693 }, + { 9, 10, 720 }, { 10, 10, 380 }, { 10, 10, 638 }, { 11, 11, 17 }, + { 11, 10, 473 }, { 12, 10, 61 }, { 13, 11, 321 }, { 144, 11, 67 }, + { 135, 0, 198 }, { 6, 11, 320 }, { 7, 11, 781 }, { 7, 11, 1921 }, + { 9, 11, 55 }, { 10, 11, 186 }, { 10, 11, 273 }, { 10, 11, 664 }, + { 10, 11, 801 }, { 11, 11, 996 }, { 11, 11, 997 }, { 13, 11, 157 }, + { 142, 11, 170 }, { 136, 11, 271 }, { 135, 0, 994 }, { 7, 11, 103 }, + { 7, 11, 863 }, { 11, 11, 184 }, { 14, 11, 299 }, { 145, 11, 62 }, + { 11, 10, 551 }, { 142, 10, 159 }, { 5, 0, 233 }, { 5, 0, 320 }, + { 6, 0, 140 }, { 8, 0, 295 }, { 8, 0, 615 }, { 136, 11, 615 }, + { 133, 0, 978 }, { 4, 0, 905 }, { 6, 0, 1701 }, { 137, 0, 843 }, + { 132, 10, 168 }, { 4, 0, 974 }, { 8, 0, 850 }, { 12, 0, 709 }, + { 12, 0, 768 }, { 140, 0, 786 }, { 135, 10, 91 }, { 152, 0, 6 }, + { 138, 10, 532 }, { 135, 10, 1884 }, { 132, 0, 509 }, { 6, 0, 1307 }, + { 135, 0, 273 }, { 5, 11, 77 }, { 7, 11, 1455 }, { 10, 11, 843 }, + { 19, 11, 73 }, { 150, 11, 5 }, { 132, 11, 458 }, { 135, 11, 1420 }, + { 6, 11, 109 }, { 138, 11, 382 }, { 6, 0, 201 }, { 6, 11, 330 }, + { 7, 10, 70 }, { 7, 11, 1084 }, { 10, 10, 240 }, { 11, 11, 142 }, + { 147, 10, 93 }, { 7, 0, 1041 }, { 140, 11, 328 }, { 133, 11, 354 }, + { 134, 0, 1040 }, { 133, 0, 693 }, { 134, 0, 774 }, { 139, 0, 234 }, + { 132, 0, 336 }, { 7, 0, 1399 }, { 139, 10, 392 }, { 20, 0, 22 }, + { 148, 11, 22 }, { 5, 0, 802 }, { 7, 0, 2021 }, { 136, 0, 805 }, + { 5, 0, 167 }, { 5, 0, 899 }, { 6, 0, 410 }, { 137, 0, 777 }, + { 137, 0, 789 }, { 134, 0, 1705 }, { 7, 10, 655 }, { 135, 10, 1844 }, + { 4, 10, 145 }, { 6, 10, 176 }, { 7, 10, 395 }, { 137, 10, 562 }, + { 132, 10, 501 }, { 135, 0, 10 }, { 5, 0, 11 }, { 6, 0, 117 }, + { 6, 0, 485 }, { 7, 0, 1133 }, { 9, 0, 582 }, { 9, 0, 594 }, + { 10, 0, 82 }, { 11, 0, 21 }, { 11, 0, 818 }, { 12, 0, 535 }, + { 13, 0, 86 }, { 20, 0, 91 }, { 23, 0, 13 }, { 134, 10, 509 }, + { 4, 0, 264 }, { 7, 0, 1067 }, { 8, 0, 204 }, { 8, 0, 385 }, + { 139, 0, 953 }, { 139, 11, 737 }, { 138, 0, 56 }, { 134, 0, 1917 }, + { 133, 0, 470 }, { 10, 11, 657 }, { 14, 11, 297 }, { 142, 11, 361 }, + { 135, 11, 412 }, { 7, 0, 1198 }, { 7, 11, 1198 }, { 8, 11, 556 }, + { 14, 11, 123 }, { 14, 11, 192 }, { 143, 11, 27 }, { 7, 11, 1985 }, + { 14, 11, 146 }, { 15, 11, 42 }, { 16, 11, 23 }, { 17, 11, 86 }, + { 146, 11, 17 }, { 11, 0, 1015 }, { 136, 11, 122 }, { 4, 10, 114 }, + { 9, 10, 492 }, { 13, 10, 462 }, { 142, 10, 215 }, { 4, 10, 77 }, + { 5, 10, 361 }, { 6, 10, 139 }, { 6, 10, 401 }, { 6, 10, 404 }, + { 7, 10, 413 }, { 7, 10, 715 }, { 7, 10, 1716 }, { 11, 10, 279 }, + { 12, 10, 179 }, { 12, 10, 258 }, { 13, 10, 244 }, { 142, 10, 358 }, + { 134, 10, 1717 }, { 7, 10, 1061 }, { 8, 10, 82 }, { 11, 10, 250 }, + { 12, 10, 420 }, { 141, 10, 184 }, { 133, 0, 715 }, { 135, 10, 724 }, + { 9, 0, 919 }, { 9, 0, 922 }, { 9, 0, 927 }, { 9, 0, 933 }, + { 9, 0, 962 }, { 9, 0, 1000 }, { 9, 0, 1002 }, { 9, 0, 1021 }, + { 12, 0, 890 }, { 12, 0, 907 }, { 12, 0, 930 }, { 15, 0, 207 }, + { 15, 0, 228 }, { 15, 0, 238 }, { 149, 0, 61 }, { 8, 0, 794 }, + { 9, 0, 400 }, { 10, 0, 298 }, { 142, 0, 228 }, { 5, 11, 430 }, + { 5, 11, 932 }, { 6, 11, 131 }, { 7, 11, 417 }, { 9, 11, 522 }, + { 11, 11, 314 }, { 141, 11, 390 }, { 132, 0, 867 }, { 8, 0, 724 }, + { 132, 11, 507 }, { 137, 11, 261 }, { 4, 11, 343 }, { 133, 11, 511 }, + { 6, 0, 190 }, { 7, 0, 768 }, { 135, 0, 1170 }, { 6, 10, 513 }, + { 135, 10, 1052 }, { 7, 11, 455 }, { 138, 11, 591 }, { 134, 0, 1066 }, + { 137, 10, 899 }, { 14, 0, 67 }, { 147, 0, 60 }, { 4, 0, 948 }, + { 18, 0, 174 }, { 146, 0, 176 }, { 135, 0, 1023 }, { 7, 10, 1417 }, + { 12, 10, 382 }, { 17, 10, 48 }, { 152, 10, 12 }, { 134, 11, 575 }, + { 132, 0, 764 }, { 6, 10, 545 }, { 7, 10, 565 }, { 7, 10, 1669 }, + { 10, 10, 114 }, { 11, 10, 642 }, { 140, 10, 618 }, { 6, 0, 137 }, + { 9, 0, 75 }, { 9, 0, 253 }, { 10, 0, 194 }, { 138, 0, 444 }, + { 4, 0, 756 }, { 133, 10, 5 }, { 8, 0, 1008 }, { 135, 10, 192 }, + { 132, 0, 842 }, { 11, 0, 643 }, { 12, 0, 115 }, { 136, 10, 763 }, + { 139, 0, 67 }, { 133, 10, 759 }, { 4, 0, 821 }, { 5, 0, 760 }, + { 7, 0, 542 }, { 8, 0, 135 }, { 8, 0, 496 }, { 135, 11, 580 }, + { 7, 10, 370 }, { 7, 10, 1007 }, { 7, 10, 1177 }, { 135, 10, 1565 }, + { 135, 10, 1237 }, { 140, 0, 736 }, { 7, 0, 319 }, { 7, 0, 355 }, + { 7, 0, 763 }, { 10, 0, 389 }, { 145, 0, 43 }, { 8, 11, 333 }, + { 138, 11, 182 }, { 4, 10, 87 }, { 5, 10, 250 }, { 141, 10, 298 }, + { 138, 0, 786 }, { 134, 0, 2044 }, { 8, 11, 330 }, { 140, 11, 477 }, + { 135, 11, 1338 }, { 132, 11, 125 }, { 134, 0, 1030 }, { 134, 0, 1083 }, + { 132, 11, 721 }, { 135, 10, 814 }, { 7, 11, 776 }, { 8, 11, 145 }, + { 147, 11, 56 }, { 134, 0, 1226 }, { 4, 10, 57 }, { 7, 10, 1195 }, + { 7, 10, 1438 }, { 7, 10, 1548 }, { 7, 10, 1835 }, { 7, 10, 1904 }, + { 9, 10, 757 }, { 10, 10, 604 }, { 139, 10, 519 }, { 7, 11, 792 }, + { 8, 11, 147 }, { 10, 11, 821 }, { 139, 11, 1021 }, { 137, 11, 797 }, + { 4, 0, 58 }, { 5, 0, 286 }, { 6, 0, 319 }, { 7, 0, 402 }, + { 7, 0, 1254 }, { 7, 0, 1903 }, { 8, 0, 356 }, { 140, 0, 408 }, + { 4, 0, 389 }, { 4, 0, 815 }, { 9, 0, 181 }, { 9, 0, 255 }, + { 10, 0, 8 }, { 10, 0, 29 }, { 10, 0, 816 }, { 11, 0, 311 }, + { 11, 0, 561 }, { 12, 0, 67 }, { 141, 0, 181 }, { 7, 11, 1472 }, + { 135, 11, 1554 }, { 7, 11, 1071 }, { 7, 11, 1541 }, { 7, 11, 1767 }, + { 7, 11, 1806 }, { 7, 11, 1999 }, { 9, 11, 248 }, { 10, 11, 400 }, + { 11, 11, 162 }, { 11, 11, 178 }, { 11, 11, 242 }, { 12, 11, 605 }, + { 15, 11, 26 }, { 144, 11, 44 }, { 5, 11, 168 }, { 5, 11, 930 }, + { 8, 11, 74 }, { 9, 11, 623 }, { 12, 11, 500 }, { 12, 11, 579 }, + { 13, 11, 41 }, { 143, 11, 93 }, { 6, 11, 220 }, { 7, 11, 1101 }, + { 141, 11, 105 }, { 5, 0, 474 }, { 7, 0, 507 }, { 4, 10, 209 }, + { 7, 11, 507 }, { 135, 10, 902 }, { 132, 0, 427 }, { 6, 0, 413 }, + { 7, 10, 335 }, { 7, 10, 1437 }, { 7, 10, 1668 }, { 8, 10, 553 }, + { 8, 10, 652 }, { 8, 10, 656 }, { 9, 10, 558 }, { 11, 10, 743 }, + { 149, 10, 18 }, { 132, 0, 730 }, { 6, 11, 19 }, { 7, 11, 1413 }, + { 139, 11, 428 }, { 133, 0, 373 }, { 132, 10, 559 }, { 7, 11, 96 }, + { 8, 11, 401 }, { 137, 11, 896 }, { 7, 0, 799 }, { 7, 0, 1972 }, + { 5, 10, 1017 }, { 138, 10, 511 }, { 135, 0, 1793 }, { 7, 11, 1961 }, + { 7, 11, 1965 }, { 8, 11, 702 }, { 136, 11, 750 }, { 8, 11, 150 }, + { 8, 11, 737 }, { 140, 11, 366 }, { 132, 0, 322 }, { 133, 10, 709 }, + { 8, 11, 800 }, { 9, 11, 148 }, { 9, 11, 872 }, { 9, 11, 890 }, + { 11, 11, 309 }, { 11, 11, 1001 }, { 13, 11, 267 }, { 141, 11, 323 }, + { 134, 10, 1745 }, { 7, 0, 290 }, { 136, 10, 206 }, { 7, 0, 1651 }, + { 145, 0, 89 }, { 139, 0, 2 }, { 132, 0, 672 }, { 6, 0, 1860 }, + { 8, 0, 905 }, { 10, 0, 844 }, { 10, 0, 846 }, { 10, 0, 858 }, + { 12, 0, 699 }, { 12, 0, 746 }, { 140, 0, 772 }, { 135, 11, 424 }, + { 133, 11, 547 }, { 133, 0, 737 }, { 5, 11, 490 }, { 6, 11, 615 }, + { 6, 11, 620 }, { 135, 11, 683 }, { 6, 0, 746 }, { 134, 0, 1612 }, + { 132, 10, 776 }, { 9, 11, 385 }, { 149, 11, 17 }, { 133, 0, 145 }, + { 135, 10, 1272 }, { 7, 0, 884 }, { 140, 0, 124 }, { 4, 0, 387 }, + { 135, 0, 1288 }, { 5, 11, 133 }, { 136, 10, 406 }, { 136, 11, 187 }, + { 6, 0, 679 }, { 8, 11, 8 }, { 138, 11, 0 }, { 135, 0, 550 }, + { 135, 11, 798 }, { 136, 11, 685 }, { 7, 11, 1086 }, { 145, 11, 46 }, + { 8, 10, 175 }, { 10, 10, 168 }, { 138, 10, 573 }, { 135, 0, 1305 }, + { 4, 0, 576 }, { 135, 0, 1263 }, { 6, 0, 686 }, { 134, 0, 1563 }, + { 134, 0, 607 }, { 5, 0, 919 }, { 134, 0, 1673 }, { 148, 0, 37 }, + { 8, 11, 774 }, { 10, 11, 670 }, { 140, 11, 51 }, { 133, 10, 784 }, + { 139, 10, 882 }, { 4, 0, 82 }, { 5, 0, 333 }, { 5, 0, 904 }, + { 6, 0, 207 }, { 7, 0, 325 }, { 7, 0, 1726 }, { 8, 0, 101 }, + { 10, 0, 778 }, { 139, 0, 220 }, { 135, 11, 371 }, { 132, 0, 958 }, + { 133, 0, 903 }, { 4, 11, 127 }, { 5, 11, 350 }, { 6, 11, 356 }, + { 8, 11, 426 }, { 9, 11, 572 }, { 10, 11, 247 }, { 139, 11, 312 }, + { 140, 0, 147 }, { 6, 11, 59 }, { 7, 11, 885 }, { 9, 11, 603 }, + { 141, 11, 397 }, { 10, 0, 367 }, { 9, 10, 14 }, { 9, 10, 441 }, + { 139, 10, 9 }, { 11, 10, 966 }, { 12, 10, 287 }, { 13, 10, 342 }, + { 13, 10, 402 }, { 15, 10, 110 }, { 143, 10, 163 }, { 134, 0, 690 }, + { 132, 0, 705 }, { 9, 0, 651 }, { 11, 0, 971 }, { 13, 0, 273 }, + { 7, 10, 1428 }, { 7, 10, 1640 }, { 7, 10, 1867 }, { 9, 10, 169 }, + { 9, 10, 182 }, { 9, 10, 367 }, { 9, 10, 478 }, { 9, 10, 506 }, + { 9, 10, 551 }, { 9, 10, 557 }, { 9, 10, 648 }, { 9, 10, 697 }, + { 9, 10, 705 }, { 9, 10, 725 }, { 9, 10, 787 }, { 9, 10, 794 }, + { 10, 10, 198 }, { 10, 10, 214 }, { 10, 10, 267 }, { 10, 10, 275 }, + { 10, 10, 456 }, { 10, 10, 551 }, { 10, 10, 561 }, { 10, 10, 613 }, + { 10, 10, 627 }, { 10, 10, 668 }, { 10, 10, 675 }, { 10, 10, 691 }, + { 10, 10, 695 }, { 10, 10, 707 }, { 10, 10, 715 }, { 11, 10, 183 }, + { 11, 10, 201 }, { 11, 10, 262 }, { 11, 10, 352 }, { 11, 10, 439 }, + { 11, 10, 493 }, { 11, 10, 572 }, { 11, 10, 591 }, { 11, 10, 608 }, + { 11, 10, 611 }, { 11, 10, 646 }, { 11, 10, 674 }, { 11, 10, 711 }, + { 11, 10, 751 }, { 11, 10, 761 }, { 11, 10, 776 }, { 11, 10, 785 }, + { 11, 10, 850 }, { 11, 10, 853 }, { 11, 10, 862 }, { 11, 10, 865 }, + { 11, 10, 868 }, { 11, 10, 875 }, { 11, 10, 898 }, { 11, 10, 902 }, + { 11, 10, 903 }, { 11, 10, 910 }, { 11, 10, 932 }, { 11, 10, 942 }, + { 11, 10, 957 }, { 11, 10, 967 }, { 11, 10, 972 }, { 12, 10, 148 }, + { 12, 10, 195 }, { 12, 10, 220 }, { 12, 10, 237 }, { 12, 10, 318 }, + { 12, 10, 339 }, { 12, 10, 393 }, { 12, 10, 445 }, { 12, 10, 450 }, + { 12, 10, 474 }, { 12, 10, 505 }, { 12, 10, 509 }, { 12, 10, 533 }, + { 12, 10, 591 }, { 12, 10, 594 }, { 12, 10, 597 }, { 12, 10, 621 }, + { 12, 10, 633 }, { 12, 10, 642 }, { 13, 10, 59 }, { 13, 10, 60 }, + { 13, 10, 145 }, { 13, 10, 239 }, { 13, 10, 250 }, { 13, 10, 329 }, + { 13, 10, 344 }, { 13, 10, 365 }, { 13, 10, 372 }, { 13, 10, 387 }, + { 13, 10, 403 }, { 13, 10, 414 }, { 13, 10, 456 }, { 13, 10, 470 }, + { 13, 10, 478 }, { 13, 10, 483 }, { 13, 10, 489 }, { 14, 10, 55 }, + { 14, 10, 57 }, { 14, 10, 81 }, { 14, 10, 90 }, { 14, 10, 148 }, + { 14, 10, 239 }, { 14, 10, 266 }, { 14, 10, 321 }, { 14, 10, 326 }, + { 14, 10, 327 }, { 14, 10, 330 }, { 14, 10, 347 }, { 14, 10, 355 }, + { 14, 10, 401 }, { 14, 10, 404 }, { 14, 10, 411 }, { 14, 10, 414 }, + { 14, 10, 416 }, { 14, 10, 420 }, { 15, 10, 61 }, { 15, 10, 74 }, + { 15, 10, 87 }, { 15, 10, 88 }, { 15, 10, 94 }, { 15, 10, 96 }, + { 15, 10, 116 }, { 15, 10, 149 }, { 15, 10, 154 }, { 16, 10, 50 }, + { 16, 10, 63 }, { 16, 10, 73 }, { 17, 10, 2 }, { 17, 10, 66 }, + { 17, 10, 92 }, { 17, 10, 103 }, { 17, 10, 112 }, { 17, 10, 120 }, + { 18, 10, 50 }, { 18, 10, 54 }, { 18, 10, 82 }, { 18, 10, 86 }, + { 18, 10, 90 }, { 18, 10, 111 }, { 18, 10, 115 }, { 18, 10, 156 }, + { 19, 10, 40 }, { 19, 10, 79 }, { 20, 10, 78 }, { 149, 10, 22 }, + { 7, 0, 887 }, { 5, 10, 161 }, { 135, 10, 839 }, { 142, 11, 98 }, + { 134, 0, 90 }, { 138, 11, 356 }, { 135, 11, 441 }, { 6, 11, 111 }, + { 7, 11, 4 }, { 8, 11, 163 }, { 8, 11, 776 }, { 138, 11, 566 }, + { 134, 0, 908 }, { 134, 0, 1261 }, { 7, 0, 813 }, { 12, 0, 497 }, + { 141, 0, 56 }, { 134, 0, 1235 }, { 135, 0, 429 }, { 135, 11, 1994 }, + { 138, 0, 904 }, { 6, 0, 125 }, { 7, 0, 1277 }, { 137, 0, 772 }, + { 151, 0, 12 }, { 4, 0, 841 }, { 5, 0, 386 }, { 133, 11, 386 }, + { 5, 11, 297 }, { 135, 11, 1038 }, { 6, 0, 860 }, { 6, 0, 1069 }, + { 135, 11, 309 }, { 136, 0, 946 }, { 135, 10, 1814 }, { 141, 11, 418 }, + { 136, 11, 363 }, { 10, 0, 768 }, { 139, 0, 787 }, { 22, 11, 30 }, + { 150, 11, 33 }, { 6, 0, 160 }, { 7, 0, 1106 }, { 9, 0, 770 }, + { 11, 0, 112 }, { 140, 0, 413 }, { 11, 11, 216 }, { 139, 11, 340 }, + { 136, 10, 139 }, { 135, 11, 1390 }, { 135, 11, 808 }, { 132, 11, 280 }, + { 12, 0, 271 }, { 17, 0, 109 }, { 7, 10, 643 }, { 136, 10, 236 }, + { 140, 11, 54 }, { 4, 11, 421 }, { 133, 11, 548 }, { 11, 0, 719 }, + { 12, 0, 36 }, { 141, 0, 337 }, { 7, 0, 581 }, { 9, 0, 644 }, + { 137, 0, 699 }, { 11, 11, 511 }, { 13, 11, 394 }, { 14, 11, 298 }, + { 14, 11, 318 }, { 146, 11, 103 }, { 7, 0, 304 }, { 9, 0, 646 }, + { 9, 0, 862 }, { 11, 0, 696 }, { 12, 0, 208 }, { 15, 0, 79 }, + { 147, 0, 108 }, { 4, 0, 631 }, { 7, 0, 1126 }, { 135, 0, 1536 }, + { 135, 11, 1527 }, { 8, 0, 880 }, { 10, 0, 869 }, { 138, 0, 913 }, + { 7, 0, 1513 }, { 5, 10, 54 }, { 6, 11, 254 }, { 9, 11, 109 }, + { 138, 11, 103 }, { 135, 0, 981 }, { 133, 11, 729 }, { 132, 10, 744 }, + { 132, 0, 434 }, { 134, 0, 550 }, { 7, 0, 930 }, { 10, 0, 476 }, + { 13, 0, 452 }, { 19, 0, 104 }, { 6, 11, 1630 }, { 10, 10, 402 }, + { 146, 10, 55 }, { 5, 0, 553 }, { 138, 0, 824 }, { 136, 0, 452 }, + { 8, 0, 151 }, { 137, 10, 624 }, { 132, 10, 572 }, { 132, 0, 772 }, + { 133, 11, 671 }, { 133, 0, 292 }, { 138, 0, 135 }, { 132, 11, 889 }, + { 140, 11, 207 }, { 9, 0, 504 }, { 6, 10, 43 }, { 7, 10, 38 }, + { 8, 10, 248 }, { 138, 10, 513 }, { 6, 0, 1089 }, { 135, 11, 1910 }, + { 4, 11, 627 }, { 133, 11, 775 }, { 135, 0, 783 }, { 133, 10, 766 }, + { 133, 10, 363 }, { 7, 0, 387 }, { 135, 11, 387 }, { 7, 0, 393 }, + { 10, 0, 603 }, { 11, 0, 206 }, { 7, 11, 202 }, { 11, 11, 362 }, + { 11, 11, 948 }, { 140, 11, 388 }, { 6, 11, 507 }, { 7, 11, 451 }, + { 8, 11, 389 }, { 12, 11, 490 }, { 13, 11, 16 }, { 13, 11, 215 }, + { 13, 11, 351 }, { 18, 11, 132 }, { 147, 11, 125 }, { 4, 0, 912 }, + { 9, 0, 232 }, { 135, 11, 841 }, { 6, 10, 258 }, { 140, 10, 409 }, + { 5, 10, 249 }, { 148, 10, 82 }, { 136, 11, 566 }, { 6, 0, 977 }, + { 135, 11, 1214 }, { 7, 0, 1973 }, { 136, 0, 716 }, { 135, 0, 98 }, + { 133, 0, 733 }, { 5, 11, 912 }, { 134, 11, 1695 }, { 5, 10, 393 }, + { 6, 10, 378 }, { 7, 10, 1981 }, { 9, 10, 32 }, { 9, 10, 591 }, + { 10, 10, 685 }, { 10, 10, 741 }, { 142, 10, 382 }, { 133, 10, 788 }, + { 10, 0, 19 }, { 11, 0, 911 }, { 7, 10, 1968 }, { 141, 10, 509 }, + { 5, 0, 668 }, { 5, 11, 236 }, { 6, 11, 572 }, { 8, 11, 492 }, + { 11, 11, 618 }, { 144, 11, 56 }, { 135, 11, 1789 }, { 4, 0, 360 }, + { 5, 0, 635 }, { 5, 0, 700 }, { 5, 10, 58 }, { 5, 10, 171 }, + { 5, 10, 683 }, { 6, 10, 291 }, { 6, 10, 566 }, { 7, 10, 1650 }, + { 11, 10, 523 }, { 12, 10, 273 }, { 12, 10, 303 }, { 15, 10, 39 }, + { 143, 10, 111 }, { 133, 0, 901 }, { 134, 10, 589 }, { 5, 11, 190 }, + { 136, 11, 318 }, { 140, 0, 656 }, { 7, 0, 726 }, { 152, 0, 9 }, + { 4, 10, 917 }, { 133, 10, 1005 }, { 135, 10, 1598 }, { 134, 11, 491 }, + { 4, 10, 919 }, { 133, 11, 434 }, { 137, 0, 72 }, { 6, 0, 1269 }, + { 6, 0, 1566 }, { 134, 0, 1621 }, { 9, 0, 463 }, { 10, 0, 595 }, + { 4, 10, 255 }, { 5, 10, 302 }, { 6, 10, 132 }, { 7, 10, 128 }, + { 7, 10, 283 }, { 7, 10, 1299 }, { 10, 10, 52 }, { 10, 10, 514 }, + { 11, 10, 925 }, { 13, 10, 92 }, { 142, 10, 309 }, { 135, 0, 1454 }, + { 134, 0, 1287 }, { 11, 0, 600 }, { 13, 0, 245 }, { 137, 10, 173 }, + { 136, 0, 989 }, { 7, 0, 164 }, { 7, 0, 1571 }, { 9, 0, 107 }, + { 140, 0, 225 }, { 6, 0, 1061 }, { 141, 10, 442 }, { 4, 0, 27 }, + { 5, 0, 484 }, { 5, 0, 510 }, { 6, 0, 434 }, { 7, 0, 1000 }, + { 7, 0, 1098 }, { 136, 0, 2 }, { 7, 11, 85 }, { 7, 11, 247 }, + { 8, 11, 585 }, { 10, 11, 163 }, { 138, 11, 316 }, { 11, 11, 103 }, + { 142, 11, 0 }, { 134, 0, 1127 }, { 4, 0, 460 }, { 134, 0, 852 }, + { 134, 10, 210 }, { 4, 0, 932 }, { 133, 0, 891 }, { 6, 0, 588 }, + { 147, 11, 83 }, { 8, 0, 625 }, { 4, 10, 284 }, { 134, 10, 223 }, + { 134, 0, 76 }, { 8, 0, 92 }, { 137, 0, 221 }, { 4, 11, 124 }, + { 10, 11, 457 }, { 11, 11, 121 }, { 11, 11, 169 }, { 11, 11, 422 }, + { 11, 11, 870 }, { 12, 11, 214 }, { 13, 11, 389 }, { 14, 11, 187 }, + { 143, 11, 77 }, { 9, 11, 618 }, { 138, 11, 482 }, { 4, 10, 218 }, + { 7, 10, 526 }, { 143, 10, 137 }, { 13, 0, 9 }, { 14, 0, 104 }, + { 14, 0, 311 }, { 4, 10, 270 }, { 5, 10, 192 }, { 6, 10, 332 }, + { 135, 10, 1322 }, { 140, 10, 661 }, { 135, 11, 1193 }, { 6, 11, 107 }, + { 7, 11, 638 }, { 7, 11, 1632 }, { 137, 11, 396 }, { 132, 0, 763 }, + { 4, 0, 622 }, { 5, 11, 370 }, { 134, 11, 1756 }, { 133, 0, 253 }, + { 135, 0, 546 }, { 9, 0, 73 }, { 10, 0, 110 }, { 14, 0, 185 }, + { 17, 0, 119 }, { 133, 11, 204 }, { 7, 0, 624 }, { 7, 0, 916 }, + { 10, 0, 256 }, { 139, 0, 87 }, { 7, 10, 379 }, { 8, 10, 481 }, + { 137, 10, 377 }, { 5, 0, 212 }, { 12, 0, 35 }, { 13, 0, 382 }, + { 5, 11, 970 }, { 134, 11, 1706 }, { 9, 0, 746 }, { 5, 10, 1003 }, + { 134, 10, 149 }, { 10, 0, 150 }, { 11, 0, 849 }, { 13, 0, 330 }, + { 8, 10, 262 }, { 9, 10, 627 }, { 11, 10, 214 }, { 11, 10, 404 }, + { 11, 10, 457 }, { 11, 10, 780 }, { 11, 10, 913 }, { 13, 10, 401 }, + { 142, 10, 200 }, { 134, 0, 1466 }, { 135, 11, 3 }, { 6, 0, 1299 }, + { 4, 11, 35 }, { 5, 11, 121 }, { 5, 11, 483 }, { 5, 11, 685 }, + { 6, 11, 489 }, { 7, 11, 1204 }, { 136, 11, 394 }, { 135, 10, 742 }, + { 4, 10, 142 }, { 136, 10, 304 }, { 4, 11, 921 }, { 133, 11, 1007 }, + { 134, 0, 1518 }, { 6, 0, 1229 }, { 135, 0, 1175 }, { 133, 0, 816 }, + { 12, 0, 159 }, { 4, 10, 471 }, { 4, 11, 712 }, { 5, 10, 51 }, + { 6, 10, 602 }, { 7, 10, 925 }, { 8, 10, 484 }, { 138, 10, 195 }, + { 134, 11, 1629 }, { 5, 0, 869 }, { 5, 0, 968 }, { 6, 0, 1626 }, + { 8, 0, 734 }, { 136, 0, 784 }, { 4, 0, 542 }, { 6, 0, 1716 }, + { 6, 0, 1727 }, { 7, 0, 1082 }, { 7, 0, 1545 }, { 8, 0, 56 }, + { 8, 0, 118 }, { 8, 0, 412 }, { 8, 0, 564 }, { 9, 0, 888 }, + { 9, 0, 908 }, { 10, 0, 50 }, { 10, 0, 423 }, { 11, 0, 685 }, + { 11, 0, 697 }, { 11, 0, 933 }, { 12, 0, 299 }, { 13, 0, 126 }, + { 13, 0, 136 }, { 13, 0, 170 }, { 13, 0, 190 }, { 136, 10, 688 }, + { 132, 10, 697 }, { 4, 0, 232 }, { 9, 0, 202 }, { 10, 0, 474 }, + { 140, 0, 433 }, { 136, 0, 212 }, { 6, 0, 108 }, { 7, 0, 1003 }, + { 7, 0, 1181 }, { 8, 0, 111 }, { 136, 0, 343 }, { 5, 10, 221 }, + { 135, 11, 1255 }, { 133, 11, 485 }, { 134, 0, 1712 }, { 142, 0, 216 }, + { 5, 0, 643 }, { 6, 0, 516 }, { 4, 11, 285 }, { 5, 11, 317 }, + { 6, 11, 301 }, { 7, 11, 7 }, { 8, 11, 153 }, { 10, 11, 766 }, + { 11, 11, 468 }, { 12, 11, 467 }, { 141, 11, 143 }, { 4, 0, 133 }, + { 7, 0, 711 }, { 7, 0, 1298 }, { 135, 0, 1585 }, { 134, 0, 650 }, + { 135, 11, 512 }, { 6, 0, 99 }, { 7, 0, 1808 }, { 145, 0, 57 }, + { 6, 0, 246 }, { 6, 0, 574 }, { 7, 0, 428 }, { 9, 0, 793 }, + { 10, 0, 669 }, { 11, 0, 485 }, { 11, 0, 840 }, { 12, 0, 300 }, + { 14, 0, 250 }, { 145, 0, 55 }, { 4, 10, 132 }, { 5, 10, 69 }, + { 135, 10, 1242 }, { 136, 0, 1023 }, { 7, 0, 302 }, { 132, 10, 111 }, + { 135, 0, 1871 }, { 132, 0, 728 }, { 9, 0, 252 }, { 132, 10, 767 }, + { 6, 0, 461 }, { 7, 0, 1590 }, { 7, 10, 1416 }, { 7, 10, 2005 }, + { 8, 10, 131 }, { 8, 10, 466 }, { 9, 10, 672 }, { 13, 10, 252 }, + { 148, 10, 103 }, { 6, 0, 323 }, { 135, 0, 1564 }, { 7, 0, 461 }, + { 136, 0, 775 }, { 6, 10, 44 }, { 136, 10, 368 }, { 139, 0, 172 }, + { 132, 0, 464 }, { 4, 10, 570 }, { 133, 10, 120 }, { 137, 11, 269 }, + { 6, 10, 227 }, { 135, 10, 1589 }, { 6, 11, 1719 }, { 6, 11, 1735 }, + { 7, 11, 2016 }, { 7, 11, 2020 }, { 8, 11, 837 }, { 137, 11, 852 }, + { 7, 0, 727 }, { 146, 0, 73 }, { 132, 0, 1023 }, { 135, 11, 852 }, + { 135, 10, 1529 }, { 136, 0, 577 }, { 138, 11, 568 }, { 134, 0, 1037 }, + { 8, 11, 67 }, { 138, 11, 419 }, { 4, 0, 413 }, { 5, 0, 677 }, + { 8, 0, 432 }, { 140, 0, 280 }, { 10, 0, 600 }, { 6, 10, 1667 }, + { 7, 11, 967 }, { 7, 10, 2036 }, { 141, 11, 11 }, { 6, 10, 511 }, + { 140, 10, 132 }, { 6, 0, 799 }, { 5, 10, 568 }, { 6, 10, 138 }, + { 135, 10, 1293 }, { 8, 0, 159 }, { 4, 10, 565 }, { 136, 10, 827 }, + { 7, 0, 646 }, { 7, 0, 1730 }, { 11, 0, 446 }, { 141, 0, 178 }, + { 4, 10, 922 }, { 133, 10, 1023 }, { 135, 11, 11 }, { 132, 0, 395 }, + { 11, 0, 145 }, { 135, 10, 1002 }, { 9, 0, 174 }, { 10, 0, 164 }, + { 11, 0, 440 }, { 11, 0, 514 }, { 11, 0, 841 }, { 15, 0, 98 }, + { 149, 0, 20 }, { 134, 0, 426 }, { 10, 0, 608 }, { 139, 0, 1002 }, + { 7, 11, 320 }, { 8, 11, 51 }, { 12, 11, 481 }, { 12, 11, 570 }, + { 148, 11, 106 }, { 9, 0, 977 }, { 9, 0, 983 }, { 132, 11, 445 }, + { 138, 0, 250 }, { 139, 0, 100 }, { 6, 0, 1982 }, { 136, 10, 402 }, + { 133, 11, 239 }, { 4, 10, 716 }, { 141, 10, 31 }, { 5, 0, 476 }, + { 7, 11, 83 }, { 7, 11, 1990 }, { 8, 11, 130 }, { 139, 11, 720 }, + { 8, 10, 691 }, { 136, 10, 731 }, { 5, 11, 123 }, { 6, 11, 530 }, + { 7, 11, 348 }, { 135, 11, 1419 }, { 5, 0, 76 }, { 6, 0, 458 }, + { 6, 0, 497 }, { 7, 0, 868 }, { 9, 0, 658 }, { 10, 0, 594 }, + { 11, 0, 173 }, { 11, 0, 566 }, { 12, 0, 20 }, { 12, 0, 338 }, + { 141, 0, 200 }, { 9, 11, 139 }, { 10, 11, 399 }, { 11, 11, 469 }, + { 12, 11, 634 }, { 141, 11, 223 }, { 9, 10, 840 }, { 138, 10, 803 }, + { 133, 10, 847 }, { 11, 11, 223 }, { 140, 11, 168 }, { 132, 11, 210 }, + { 8, 0, 447 }, { 9, 10, 53 }, { 9, 10, 268 }, { 9, 10, 901 }, + { 10, 10, 518 }, { 10, 10, 829 }, { 11, 10, 188 }, { 13, 10, 74 }, + { 14, 10, 46 }, { 15, 10, 17 }, { 15, 10, 33 }, { 17, 10, 40 }, + { 18, 10, 36 }, { 19, 10, 20 }, { 22, 10, 1 }, { 152, 10, 2 }, + { 4, 0, 526 }, { 7, 0, 1029 }, { 135, 0, 1054 }, { 19, 11, 59 }, + { 150, 11, 2 }, { 4, 0, 636 }, { 6, 0, 1875 }, { 6, 0, 1920 }, + { 9, 0, 999 }, { 12, 0, 807 }, { 12, 0, 825 }, { 15, 0, 179 }, + { 15, 0, 190 }, { 18, 0, 182 }, { 136, 10, 532 }, { 6, 0, 1699 }, + { 7, 0, 660 }, { 7, 0, 1124 }, { 17, 0, 31 }, { 19, 0, 22 }, + { 151, 0, 14 }, { 135, 10, 681 }, { 132, 11, 430 }, { 140, 10, 677 }, + { 4, 10, 684 }, { 136, 10, 384 }, { 132, 11, 756 }, { 133, 11, 213 }, + { 7, 0, 188 }, { 7, 10, 110 }, { 8, 10, 290 }, { 8, 10, 591 }, + { 9, 10, 382 }, { 9, 10, 649 }, { 11, 10, 71 }, { 11, 10, 155 }, + { 11, 10, 313 }, { 12, 10, 5 }, { 13, 10, 325 }, { 142, 10, 287 }, + { 7, 10, 360 }, { 7, 10, 425 }, { 9, 10, 66 }, { 9, 10, 278 }, + { 138, 10, 644 }, { 142, 11, 164 }, { 4, 0, 279 }, { 7, 0, 301 }, + { 137, 0, 362 }, { 134, 11, 586 }, { 135, 0, 1743 }, { 4, 0, 178 }, + { 133, 0, 399 }, { 4, 10, 900 }, { 133, 10, 861 }, { 5, 10, 254 }, + { 7, 10, 985 }, { 136, 10, 73 }, { 133, 11, 108 }, { 7, 10, 1959 }, + { 136, 10, 683 }, { 133, 11, 219 }, { 4, 11, 193 }, { 5, 11, 916 }, + { 7, 11, 364 }, { 10, 11, 398 }, { 10, 11, 726 }, { 11, 11, 317 }, + { 11, 11, 626 }, { 12, 11, 142 }, { 12, 11, 288 }, { 12, 11, 678 }, + { 13, 11, 313 }, { 15, 11, 113 }, { 18, 11, 114 }, { 21, 11, 30 }, + { 150, 11, 53 }, { 6, 11, 241 }, { 7, 11, 907 }, { 8, 11, 832 }, + { 9, 11, 342 }, { 10, 11, 729 }, { 11, 11, 284 }, { 11, 11, 445 }, + { 11, 11, 651 }, { 11, 11, 863 }, { 13, 11, 398 }, { 146, 11, 99 }, + { 132, 0, 872 }, { 134, 0, 831 }, { 134, 0, 1692 }, { 6, 0, 202 }, + { 6, 0, 1006 }, { 9, 0, 832 }, { 10, 0, 636 }, { 11, 0, 208 }, + { 12, 0, 360 }, { 17, 0, 118 }, { 18, 0, 27 }, { 20, 0, 67 }, + { 137, 11, 734 }, { 132, 10, 725 }, { 7, 11, 993 }, { 138, 11, 666 }, + { 134, 0, 1954 }, { 134, 10, 196 }, { 7, 0, 872 }, { 10, 0, 516 }, + { 139, 0, 167 }, { 133, 10, 831 }, { 4, 11, 562 }, { 9, 11, 254 }, + { 139, 11, 879 }, { 137, 0, 313 }, { 4, 0, 224 }, { 132, 11, 786 }, + { 11, 0, 24 }, { 12, 0, 170 }, { 136, 10, 723 }, { 5, 0, 546 }, + { 7, 0, 35 }, { 8, 0, 11 }, { 8, 0, 12 }, { 9, 0, 315 }, + { 9, 0, 533 }, { 10, 0, 802 }, { 11, 0, 166 }, { 12, 0, 525 }, + { 142, 0, 243 }, { 7, 0, 1937 }, { 13, 10, 80 }, { 13, 10, 437 }, + { 145, 10, 74 }, { 5, 0, 241 }, { 8, 0, 242 }, { 9, 0, 451 }, + { 10, 0, 667 }, { 11, 0, 598 }, { 140, 0, 429 }, { 150, 0, 46 }, + { 6, 0, 1273 }, { 137, 0, 830 }, { 5, 10, 848 }, { 6, 10, 66 }, + { 136, 10, 764 }, { 6, 0, 825 }, { 134, 0, 993 }, { 4, 0, 1006 }, + { 10, 0, 327 }, { 13, 0, 271 }, { 4, 10, 36 }, { 7, 10, 1387 }, + { 139, 10, 755 }, { 134, 0, 1023 }, { 135, 0, 1580 }, { 4, 0, 366 }, + { 137, 0, 516 }, { 132, 10, 887 }, { 6, 0, 1736 }, { 135, 0, 1891 }, + { 6, 11, 216 }, { 7, 11, 901 }, { 7, 11, 1343 }, { 136, 11, 493 }, + { 6, 10, 165 }, { 138, 10, 388 }, { 7, 11, 341 }, { 139, 11, 219 }, + { 4, 10, 719 }, { 135, 10, 155 }, { 134, 0, 1935 }, { 132, 0, 826 }, + { 6, 0, 331 }, { 6, 0, 1605 }, { 8, 0, 623 }, { 11, 0, 139 }, + { 139, 0, 171 }, { 135, 11, 1734 }, { 10, 11, 115 }, { 11, 11, 420 }, + { 12, 11, 154 }, { 13, 11, 404 }, { 14, 11, 346 }, { 15, 11, 54 }, + { 143, 11, 112 }, { 7, 0, 288 }, { 4, 10, 353 }, { 6, 10, 146 }, + { 6, 10, 1789 }, { 7, 10, 990 }, { 7, 10, 1348 }, { 9, 10, 665 }, + { 9, 10, 898 }, { 11, 10, 893 }, { 142, 10, 212 }, { 6, 0, 916 }, + { 134, 0, 1592 }, { 7, 0, 1888 }, { 4, 10, 45 }, { 135, 10, 1257 }, + { 5, 11, 1011 }, { 136, 11, 701 }, { 139, 11, 596 }, { 4, 11, 54 }, + { 5, 11, 666 }, { 7, 11, 1039 }, { 7, 11, 1130 }, { 9, 11, 195 }, + { 138, 11, 302 }, { 134, 0, 1471 }, { 134, 0, 1570 }, { 132, 0, 394 }, + { 140, 10, 65 }, { 136, 10, 816 }, { 135, 0, 1931 }, { 7, 0, 574 }, + { 135, 0, 1719 }, { 134, 11, 467 }, { 132, 0, 658 }, { 9, 0, 781 }, + { 10, 0, 144 }, { 11, 0, 385 }, { 13, 0, 161 }, { 13, 0, 228 }, + { 13, 0, 268 }, { 20, 0, 107 }, { 134, 11, 1669 }, { 136, 0, 374 }, + { 135, 0, 735 }, { 4, 0, 344 }, { 6, 0, 498 }, { 139, 0, 323 }, + { 7, 0, 586 }, { 7, 0, 1063 }, { 6, 10, 559 }, { 134, 10, 1691 }, + { 137, 0, 155 }, { 133, 0, 906 }, { 7, 11, 122 }, { 9, 11, 259 }, + { 10, 11, 84 }, { 11, 11, 470 }, { 12, 11, 541 }, { 141, 11, 379 }, + { 134, 0, 1139 }, { 10, 0, 108 }, { 139, 0, 116 }, { 134, 10, 456 }, + { 133, 10, 925 }, { 5, 11, 82 }, { 5, 11, 131 }, { 7, 11, 1755 }, + { 8, 11, 31 }, { 9, 11, 168 }, { 9, 11, 764 }, { 139, 11, 869 }, + { 134, 11, 605 }, { 5, 11, 278 }, { 137, 11, 68 }, { 4, 11, 163 }, + { 5, 11, 201 }, { 5, 11, 307 }, { 5, 11, 310 }, { 6, 11, 335 }, + { 7, 11, 284 }, { 136, 11, 165 }, { 135, 11, 1660 }, { 6, 11, 33 }, + { 135, 11, 1244 }, { 4, 0, 616 }, { 136, 11, 483 }, { 8, 0, 857 }, + { 8, 0, 902 }, { 8, 0, 910 }, { 10, 0, 879 }, { 12, 0, 726 }, + { 4, 11, 199 }, { 139, 11, 34 }, { 136, 0, 692 }, { 6, 10, 193 }, + { 7, 10, 240 }, { 7, 10, 1682 }, { 10, 10, 51 }, { 10, 10, 640 }, + { 11, 10, 410 }, { 13, 10, 82 }, { 14, 10, 247 }, { 14, 10, 331 }, + { 142, 10, 377 }, { 6, 0, 823 }, { 134, 0, 983 }, { 139, 10, 411 }, + { 132, 0, 305 }, { 136, 10, 633 }, { 138, 11, 203 }, { 134, 0, 681 }, + { 6, 11, 326 }, { 7, 11, 677 }, { 137, 11, 425 }, { 5, 0, 214 }, + { 7, 0, 603 }, { 8, 0, 611 }, { 9, 0, 686 }, { 10, 0, 88 }, + { 11, 0, 459 }, { 11, 0, 496 }, { 12, 0, 463 }, { 12, 0, 590 }, + { 141, 0, 0 }, { 136, 0, 1004 }, { 142, 0, 23 }, { 134, 0, 1703 }, + { 147, 11, 8 }, { 145, 11, 56 }, { 135, 0, 1443 }, { 4, 10, 237 }, + { 135, 10, 514 }, { 6, 0, 714 }, { 145, 0, 19 }, { 5, 11, 358 }, + { 7, 11, 473 }, { 7, 11, 1184 }, { 10, 11, 662 }, { 13, 11, 212 }, + { 13, 11, 304 }, { 13, 11, 333 }, { 145, 11, 98 }, { 4, 0, 737 }, + { 10, 0, 98 }, { 11, 0, 294 }, { 12, 0, 60 }, { 12, 0, 437 }, + { 13, 0, 64 }, { 13, 0, 380 }, { 142, 0, 430 }, { 6, 10, 392 }, + { 7, 10, 65 }, { 135, 10, 2019 }, { 6, 0, 1758 }, { 8, 0, 520 }, + { 9, 0, 345 }, { 9, 0, 403 }, { 142, 0, 350 }, { 5, 0, 47 }, + { 10, 0, 242 }, { 138, 0, 579 }, { 5, 0, 139 }, { 7, 0, 1168 }, + { 138, 0, 539 }, { 134, 0, 1459 }, { 13, 0, 388 }, { 141, 11, 388 }, + { 134, 0, 253 }, { 7, 10, 1260 }, { 135, 10, 1790 }, { 10, 0, 252 }, + { 9, 10, 222 }, { 139, 10, 900 }, { 140, 0, 745 }, { 133, 11, 946 }, + { 4, 0, 107 }, { 7, 0, 613 }, { 8, 0, 439 }, { 8, 0, 504 }, + { 9, 0, 501 }, { 10, 0, 383 }, { 139, 0, 477 }, { 135, 11, 1485 }, + { 132, 0, 871 }, { 7, 11, 411 }, { 7, 11, 590 }, { 8, 11, 631 }, + { 9, 11, 323 }, { 10, 11, 355 }, { 11, 11, 491 }, { 12, 11, 143 }, + { 12, 11, 402 }, { 13, 11, 73 }, { 14, 11, 408 }, { 15, 11, 107 }, + { 146, 11, 71 }, { 132, 0, 229 }, { 132, 0, 903 }, { 140, 0, 71 }, + { 133, 0, 549 }, { 4, 0, 47 }, { 6, 0, 373 }, { 7, 0, 452 }, + { 7, 0, 543 }, { 7, 0, 1828 }, { 7, 0, 1856 }, { 9, 0, 6 }, + { 11, 0, 257 }, { 139, 0, 391 }, { 7, 11, 1467 }, { 8, 11, 328 }, + { 10, 11, 544 }, { 11, 11, 955 }, { 13, 11, 320 }, { 145, 11, 83 }, + { 5, 0, 980 }, { 134, 0, 1754 }, { 136, 0, 865 }, { 5, 0, 705 }, + { 137, 0, 606 }, { 7, 0, 161 }, { 8, 10, 201 }, { 136, 10, 605 }, + { 143, 11, 35 }, { 5, 11, 835 }, { 6, 11, 483 }, { 140, 10, 224 }, + { 7, 0, 536 }, { 7, 0, 1331 }, { 136, 0, 143 }, { 134, 0, 1388 }, + { 5, 0, 724 }, { 10, 0, 305 }, { 11, 0, 151 }, { 12, 0, 33 }, + { 12, 0, 121 }, { 12, 0, 381 }, { 17, 0, 3 }, { 17, 0, 27 }, + { 17, 0, 78 }, { 18, 0, 18 }, { 19, 0, 54 }, { 149, 0, 5 }, + { 4, 10, 523 }, { 133, 10, 638 }, { 5, 0, 19 }, { 134, 0, 533 }, + { 5, 0, 395 }, { 5, 0, 951 }, { 134, 0, 1776 }, { 135, 0, 1908 }, + { 132, 0, 846 }, { 10, 0, 74 }, { 11, 0, 663 }, { 12, 0, 210 }, + { 13, 0, 166 }, { 13, 0, 310 }, { 14, 0, 373 }, { 18, 0, 95 }, + { 19, 0, 43 }, { 6, 10, 242 }, { 7, 10, 227 }, { 7, 10, 1581 }, + { 8, 10, 104 }, { 9, 10, 113 }, { 9, 10, 220 }, { 9, 10, 427 }, + { 10, 10, 239 }, { 11, 10, 579 }, { 11, 10, 1023 }, { 13, 10, 4 }, + { 13, 10, 204 }, { 13, 10, 316 }, { 148, 10, 86 }, { 9, 11, 716 }, + { 11, 11, 108 }, { 13, 11, 123 }, { 14, 11, 252 }, { 19, 11, 38 }, + { 21, 11, 3 }, { 151, 11, 11 }, { 8, 0, 372 }, { 9, 0, 122 }, + { 138, 0, 175 }, { 132, 11, 677 }, { 7, 11, 1374 }, { 136, 11, 540 }, + { 135, 10, 861 }, { 132, 0, 695 }, { 7, 0, 497 }, { 9, 0, 387 }, + { 147, 0, 81 }, { 136, 0, 937 }, { 134, 0, 718 }, { 7, 0, 1328 }, + { 136, 10, 494 }, { 132, 11, 331 }, { 6, 0, 1581 }, { 133, 11, 747 }, + { 5, 0, 284 }, { 6, 0, 49 }, { 6, 0, 350 }, { 7, 0, 1 }, + { 7, 0, 377 }, { 7, 0, 1693 }, { 8, 0, 18 }, { 8, 0, 678 }, + { 9, 0, 161 }, { 9, 0, 585 }, { 9, 0, 671 }, { 9, 0, 839 }, + { 11, 0, 912 }, { 141, 0, 427 }, { 7, 10, 1306 }, { 8, 10, 505 }, + { 9, 10, 482 }, { 10, 10, 126 }, { 11, 10, 225 }, { 12, 10, 347 }, + { 12, 10, 449 }, { 13, 10, 19 }, { 14, 10, 218 }, { 142, 10, 435 }, + { 10, 10, 764 }, { 12, 10, 120 }, { 13, 10, 39 }, { 145, 10, 127 }, + { 4, 0, 597 }, { 133, 10, 268 }, { 134, 0, 1094 }, { 4, 0, 1008 }, + { 134, 0, 1973 }, { 132, 0, 811 }, { 139, 0, 908 }, { 135, 0, 1471 }, + { 133, 11, 326 }, { 4, 10, 384 }, { 135, 10, 1022 }, { 7, 0, 1935 }, + { 8, 0, 324 }, { 12, 0, 42 }, { 4, 11, 691 }, { 7, 11, 1935 }, + { 8, 11, 324 }, { 9, 11, 35 }, { 10, 11, 680 }, { 11, 11, 364 }, + { 12, 11, 42 }, { 13, 11, 357 }, { 146, 11, 16 }, { 135, 0, 2014 }, + { 7, 0, 2007 }, { 9, 0, 101 }, { 9, 0, 450 }, { 10, 0, 66 }, + { 10, 0, 842 }, { 11, 0, 536 }, { 12, 0, 587 }, { 6, 11, 32 }, + { 7, 11, 385 }, { 7, 11, 757 }, { 7, 11, 1916 }, { 8, 11, 37 }, + { 8, 11, 94 }, { 8, 11, 711 }, { 9, 11, 541 }, { 10, 11, 162 }, + { 10, 11, 795 }, { 11, 11, 989 }, { 11, 11, 1010 }, { 12, 11, 14 }, + { 142, 11, 308 }, { 139, 0, 586 }, { 135, 10, 1703 }, { 7, 0, 1077 }, + { 11, 0, 28 }, { 9, 10, 159 }, { 140, 10, 603 }, { 6, 0, 1221 }, + { 136, 10, 583 }, { 6, 11, 152 }, { 6, 11, 349 }, { 6, 11, 1682 }, + { 7, 11, 1252 }, { 8, 11, 112 }, { 9, 11, 435 }, { 9, 11, 668 }, + { 10, 11, 290 }, { 10, 11, 319 }, { 10, 11, 815 }, { 11, 11, 180 }, + { 11, 11, 837 }, { 12, 11, 240 }, { 13, 11, 152 }, { 13, 11, 219 }, + { 142, 11, 158 }, { 139, 0, 62 }, { 132, 10, 515 }, { 8, 10, 632 }, + { 8, 10, 697 }, { 137, 10, 854 }, { 134, 0, 1766 }, { 132, 11, 581 }, + { 6, 11, 126 }, { 7, 11, 573 }, { 8, 11, 397 }, { 142, 11, 44 }, + { 150, 0, 28 }, { 11, 0, 670 }, { 22, 0, 25 }, { 4, 10, 136 }, + { 133, 10, 551 }, { 6, 0, 1665 }, { 7, 0, 256 }, { 7, 0, 1388 }, + { 138, 0, 499 }, { 4, 0, 22 }, { 5, 0, 10 }, { 7, 0, 1576 }, + { 136, 0, 97 }, { 134, 10, 1782 }, { 5, 0, 481 }, { 7, 10, 1287 }, + { 9, 10, 44 }, { 10, 10, 552 }, { 10, 10, 642 }, { 11, 10, 839 }, + { 12, 10, 274 }, { 12, 10, 275 }, { 12, 10, 372 }, { 13, 10, 91 }, + { 142, 10, 125 }, { 133, 11, 926 }, { 7, 11, 1232 }, { 137, 11, 531 }, + { 6, 0, 134 }, { 7, 0, 437 }, { 7, 0, 1824 }, { 9, 0, 37 }, + { 14, 0, 285 }, { 142, 0, 371 }, { 7, 0, 486 }, { 8, 0, 155 }, + { 11, 0, 93 }, { 140, 0, 164 }, { 6, 0, 1391 }, { 134, 0, 1442 }, + { 133, 11, 670 }, { 133, 0, 591 }, { 6, 10, 147 }, { 7, 10, 886 }, + { 7, 11, 1957 }, { 9, 10, 753 }, { 138, 10, 268 }, { 5, 0, 380 }, + { 5, 0, 650 }, { 7, 0, 1173 }, { 136, 0, 310 }, { 4, 0, 364 }, + { 7, 0, 1156 }, { 7, 0, 1187 }, { 137, 0, 409 }, { 135, 11, 1621 }, + { 134, 0, 482 }, { 133, 11, 506 }, { 4, 0, 781 }, { 6, 0, 487 }, + { 7, 0, 926 }, { 8, 0, 263 }, { 139, 0, 500 }, { 138, 10, 137 }, + { 135, 11, 242 }, { 139, 11, 96 }, { 133, 10, 414 }, { 135, 10, 1762 }, + { 134, 0, 804 }, { 5, 11, 834 }, { 7, 11, 1202 }, { 8, 11, 14 }, + { 9, 11, 481 }, { 137, 11, 880 }, { 134, 10, 599 }, { 4, 0, 94 }, + { 135, 0, 1265 }, { 4, 0, 415 }, { 132, 0, 417 }, { 5, 0, 348 }, + { 6, 0, 522 }, { 6, 10, 1749 }, { 7, 11, 1526 }, { 138, 11, 465 }, + { 134, 10, 1627 }, { 132, 0, 1012 }, { 132, 10, 488 }, { 4, 11, 357 }, + { 6, 11, 172 }, { 7, 11, 143 }, { 137, 11, 413 }, { 4, 10, 83 }, + { 4, 11, 590 }, { 146, 11, 76 }, { 140, 10, 676 }, { 7, 11, 287 }, + { 8, 11, 355 }, { 9, 11, 293 }, { 137, 11, 743 }, { 134, 10, 278 }, + { 6, 0, 1803 }, { 18, 0, 165 }, { 24, 0, 21 }, { 5, 11, 169 }, + { 7, 11, 333 }, { 136, 11, 45 }, { 12, 10, 97 }, { 140, 11, 97 }, + { 4, 0, 408 }, { 4, 0, 741 }, { 135, 0, 500 }, { 132, 11, 198 }, + { 7, 10, 388 }, { 7, 10, 644 }, { 139, 10, 781 }, { 4, 11, 24 }, + { 5, 11, 140 }, { 5, 11, 185 }, { 7, 11, 1500 }, { 11, 11, 565 }, + { 139, 11, 838 }, { 6, 0, 1321 }, { 9, 0, 257 }, { 7, 10, 229 }, + { 8, 10, 59 }, { 9, 10, 190 }, { 10, 10, 378 }, { 140, 10, 191 }, + { 4, 11, 334 }, { 133, 11, 593 }, { 135, 11, 1885 }, { 134, 0, 1138 }, + { 4, 0, 249 }, { 6, 0, 73 }, { 135, 0, 177 }, { 133, 0, 576 }, + { 142, 0, 231 }, { 137, 0, 288 }, { 132, 10, 660 }, { 7, 10, 1035 }, + { 138, 10, 737 }, { 135, 0, 1487 }, { 6, 0, 989 }, { 9, 0, 433 }, + { 7, 10, 690 }, { 9, 10, 587 }, { 140, 10, 521 }, { 7, 0, 1264 }, + { 7, 0, 1678 }, { 11, 0, 945 }, { 12, 0, 341 }, { 12, 0, 471 }, + { 140, 0, 569 }, { 132, 11, 709 }, { 133, 11, 897 }, { 5, 11, 224 }, + { 13, 11, 174 }, { 146, 11, 52 }, { 135, 11, 1840 }, { 134, 10, 1744 }, + { 12, 0, 87 }, { 16, 0, 74 }, { 4, 10, 733 }, { 9, 10, 194 }, + { 10, 10, 92 }, { 11, 10, 198 }, { 12, 10, 84 }, { 141, 10, 128 }, + { 140, 0, 779 }, { 135, 0, 538 }, { 4, 11, 608 }, { 133, 11, 497 }, + { 133, 0, 413 }, { 7, 11, 1375 }, { 7, 11, 1466 }, { 138, 11, 331 }, + { 136, 0, 495 }, { 6, 11, 540 }, { 136, 11, 136 }, { 7, 0, 54 }, + { 8, 0, 312 }, { 10, 0, 191 }, { 10, 0, 614 }, { 140, 0, 567 }, + { 6, 0, 468 }, { 7, 0, 567 }, { 7, 0, 1478 }, { 8, 0, 530 }, + { 14, 0, 290 }, { 133, 11, 999 }, { 4, 11, 299 }, { 7, 10, 306 }, + { 135, 11, 1004 }, { 142, 11, 296 }, { 134, 0, 1484 }, { 133, 10, 979 }, + { 6, 0, 609 }, { 9, 0, 815 }, { 12, 11, 137 }, { 14, 11, 9 }, + { 14, 11, 24 }, { 142, 11, 64 }, { 133, 11, 456 }, { 6, 0, 484 }, + { 135, 0, 822 }, { 133, 10, 178 }, { 136, 11, 180 }, { 132, 11, 755 }, + { 137, 0, 900 }, { 135, 0, 1335 }, { 6, 0, 1724 }, { 135, 0, 2022 }, + { 135, 11, 1139 }, { 5, 0, 640 }, { 132, 10, 390 }, { 6, 0, 1831 }, + { 138, 11, 633 }, { 135, 11, 566 }, { 4, 11, 890 }, { 5, 11, 805 }, + { 5, 11, 819 }, { 5, 11, 961 }, { 6, 11, 396 }, { 6, 11, 1631 }, + { 6, 11, 1678 }, { 7, 11, 1967 }, { 7, 11, 2041 }, { 9, 11, 630 }, + { 11, 11, 8 }, { 11, 11, 1019 }, { 12, 11, 176 }, { 13, 11, 225 }, + { 14, 11, 292 }, { 149, 11, 24 }, { 132, 0, 474 }, { 134, 0, 1103 }, + { 135, 0, 1504 }, { 134, 0, 1576 }, { 6, 0, 961 }, { 6, 0, 1034 }, + { 140, 0, 655 }, { 11, 11, 514 }, { 149, 11, 20 }, { 5, 0, 305 }, + { 135, 11, 1815 }, { 7, 11, 1505 }, { 10, 11, 190 }, { 10, 11, 634 }, + { 11, 11, 792 }, { 12, 11, 358 }, { 140, 11, 447 }, { 5, 11, 0 }, + { 6, 11, 536 }, { 7, 11, 604 }, { 13, 11, 445 }, { 145, 11, 126 }, + { 7, 0, 1236 }, { 133, 10, 105 }, { 4, 0, 480 }, { 6, 0, 217 }, + { 6, 0, 302 }, { 6, 0, 1642 }, { 7, 0, 130 }, { 7, 0, 837 }, + { 7, 0, 1321 }, { 7, 0, 1547 }, { 7, 0, 1657 }, { 8, 0, 429 }, + { 9, 0, 228 }, { 13, 0, 289 }, { 13, 0, 343 }, { 19, 0, 101 }, + { 6, 11, 232 }, { 6, 11, 412 }, { 7, 11, 1074 }, { 8, 11, 9 }, + { 8, 11, 157 }, { 8, 11, 786 }, { 9, 11, 196 }, { 9, 11, 352 }, + { 9, 11, 457 }, { 10, 11, 337 }, { 11, 11, 232 }, { 11, 11, 877 }, + { 12, 11, 480 }, { 140, 11, 546 }, { 5, 10, 438 }, { 7, 11, 958 }, + { 9, 10, 694 }, { 12, 10, 627 }, { 13, 11, 38 }, { 141, 10, 210 }, + { 4, 11, 382 }, { 136, 11, 579 }, { 7, 0, 278 }, { 10, 0, 739 }, + { 11, 0, 708 }, { 141, 0, 348 }, { 4, 11, 212 }, { 135, 11, 1206 }, + { 135, 11, 1898 }, { 6, 0, 708 }, { 6, 0, 1344 }, { 152, 10, 11 }, + { 137, 11, 768 }, { 134, 0, 1840 }, { 140, 0, 233 }, { 8, 10, 25 }, + { 138, 10, 826 }, { 6, 0, 2017 }, { 133, 11, 655 }, { 6, 0, 1488 }, + { 139, 11, 290 }, { 132, 10, 308 }, { 134, 0, 1590 }, { 134, 0, 1800 }, + { 134, 0, 1259 }, { 16, 0, 28 }, { 6, 11, 231 }, { 7, 11, 95 }, + { 136, 11, 423 }, { 133, 11, 300 }, { 135, 10, 150 }, { 136, 10, 649 }, + { 7, 11, 1874 }, { 137, 11, 641 }, { 6, 11, 237 }, { 7, 11, 611 }, + { 8, 11, 100 }, { 9, 11, 416 }, { 11, 11, 335 }, { 12, 11, 173 }, + { 146, 11, 101 }, { 137, 0, 45 }, { 134, 10, 521 }, { 17, 0, 36 }, + { 14, 11, 26 }, { 146, 11, 150 }, { 7, 0, 1442 }, { 14, 0, 22 }, + { 5, 10, 339 }, { 15, 10, 41 }, { 15, 10, 166 }, { 147, 10, 66 }, + { 8, 0, 378 }, { 6, 11, 581 }, { 135, 11, 1119 }, { 134, 0, 1507 }, + { 147, 11, 117 }, { 139, 0, 39 }, { 134, 0, 1054 }, { 6, 0, 363 }, + { 7, 0, 1955 }, { 136, 0, 725 }, { 134, 0, 2036 }, { 133, 11, 199 }, + { 6, 0, 1871 }, { 9, 0, 935 }, { 9, 0, 961 }, { 9, 0, 1004 }, + { 9, 0, 1016 }, { 12, 0, 805 }, { 12, 0, 852 }, { 12, 0, 853 }, + { 12, 0, 869 }, { 12, 0, 882 }, { 12, 0, 896 }, { 12, 0, 906 }, + { 12, 0, 917 }, { 12, 0, 940 }, { 15, 0, 170 }, { 15, 0, 176 }, + { 15, 0, 188 }, { 15, 0, 201 }, { 15, 0, 205 }, { 15, 0, 212 }, + { 15, 0, 234 }, { 15, 0, 244 }, { 18, 0, 181 }, { 18, 0, 193 }, + { 18, 0, 196 }, { 18, 0, 201 }, { 18, 0, 202 }, { 18, 0, 210 }, + { 18, 0, 217 }, { 18, 0, 235 }, { 18, 0, 236 }, { 18, 0, 237 }, + { 21, 0, 54 }, { 21, 0, 55 }, { 21, 0, 58 }, { 21, 0, 59 }, + { 152, 0, 22 }, { 134, 10, 1628 }, { 137, 0, 805 }, { 5, 0, 813 }, + { 135, 0, 2046 }, { 142, 11, 42 }, { 5, 0, 712 }, { 6, 0, 1240 }, + { 11, 0, 17 }, { 13, 0, 321 }, { 144, 0, 67 }, { 132, 0, 617 }, + { 135, 10, 829 }, { 6, 0, 320 }, { 7, 0, 781 }, { 7, 0, 1921 }, + { 9, 0, 55 }, { 10, 0, 186 }, { 10, 0, 273 }, { 10, 0, 664 }, + { 10, 0, 801 }, { 11, 0, 996 }, { 11, 0, 997 }, { 13, 0, 157 }, + { 142, 0, 170 }, { 136, 0, 271 }, { 5, 10, 486 }, { 135, 10, 1349 }, + { 18, 11, 91 }, { 147, 11, 70 }, { 10, 0, 445 }, { 7, 10, 1635 }, + { 8, 10, 17 }, { 138, 10, 295 }, { 136, 11, 404 }, { 7, 0, 103 }, + { 7, 0, 863 }, { 11, 0, 184 }, { 145, 0, 62 }, { 138, 10, 558 }, + { 137, 0, 659 }, { 6, 11, 312 }, { 6, 11, 1715 }, { 10, 11, 584 }, + { 11, 11, 546 }, { 11, 11, 692 }, { 12, 11, 259 }, { 12, 11, 295 }, + { 13, 11, 46 }, { 141, 11, 154 }, { 134, 0, 676 }, { 132, 11, 588 }, + { 4, 11, 231 }, { 5, 11, 61 }, { 6, 11, 104 }, { 7, 11, 729 }, + { 7, 11, 964 }, { 7, 11, 1658 }, { 140, 11, 414 }, { 6, 11, 263 }, + { 138, 11, 757 }, { 11, 0, 337 }, { 142, 0, 303 }, { 135, 11, 1363 }, + { 132, 11, 320 }, { 140, 0, 506 }, { 134, 10, 447 }, { 5, 0, 77 }, + { 7, 0, 1455 }, { 10, 0, 843 }, { 147, 0, 73 }, { 7, 10, 577 }, + { 7, 10, 1432 }, { 9, 10, 475 }, { 9, 10, 505 }, { 9, 10, 526 }, + { 9, 10, 609 }, { 9, 10, 689 }, { 9, 10, 726 }, { 9, 10, 735 }, + { 9, 10, 738 }, { 10, 10, 556 }, { 10, 10, 674 }, { 10, 10, 684 }, + { 11, 10, 89 }, { 11, 10, 202 }, { 11, 10, 272 }, { 11, 10, 380 }, + { 11, 10, 415 }, { 11, 10, 505 }, { 11, 10, 537 }, { 11, 10, 550 }, + { 11, 10, 562 }, { 11, 10, 640 }, { 11, 10, 667 }, { 11, 10, 688 }, + { 11, 10, 847 }, { 11, 10, 927 }, { 11, 10, 930 }, { 11, 10, 940 }, + { 12, 10, 144 }, { 12, 10, 325 }, { 12, 10, 329 }, { 12, 10, 389 }, + { 12, 10, 403 }, { 12, 10, 451 }, { 12, 10, 515 }, { 12, 10, 604 }, + { 12, 10, 616 }, { 12, 10, 626 }, { 13, 10, 66 }, { 13, 10, 131 }, + { 13, 10, 167 }, { 13, 10, 236 }, { 13, 10, 368 }, { 13, 10, 411 }, + { 13, 10, 434 }, { 13, 10, 453 }, { 13, 10, 461 }, { 13, 10, 474 }, + { 14, 10, 59 }, { 14, 10, 60 }, { 14, 10, 139 }, { 14, 10, 152 }, + { 14, 10, 276 }, { 14, 10, 353 }, { 14, 10, 402 }, { 15, 10, 28 }, + { 15, 10, 81 }, { 15, 10, 123 }, { 15, 10, 152 }, { 18, 10, 136 }, + { 148, 10, 88 }, { 132, 0, 458 }, { 135, 0, 1420 }, { 6, 0, 109 }, + { 10, 0, 382 }, { 4, 11, 405 }, { 4, 10, 609 }, { 7, 10, 756 }, + { 7, 11, 817 }, { 9, 10, 544 }, { 11, 10, 413 }, { 14, 11, 58 }, + { 14, 10, 307 }, { 16, 10, 25 }, { 17, 11, 37 }, { 146, 11, 124 }, + { 6, 0, 330 }, { 7, 0, 1084 }, { 11, 0, 142 }, { 133, 11, 974 }, + { 4, 10, 930 }, { 133, 10, 947 }, { 5, 10, 939 }, { 142, 11, 394 }, + { 16, 0, 91 }, { 145, 0, 87 }, { 5, 11, 235 }, { 5, 10, 962 }, + { 7, 11, 1239 }, { 11, 11, 131 }, { 140, 11, 370 }, { 11, 0, 492 }, + { 5, 10, 651 }, { 8, 10, 170 }, { 9, 10, 61 }, { 9, 10, 63 }, + { 10, 10, 23 }, { 10, 10, 37 }, { 10, 10, 834 }, { 11, 10, 4 }, + { 11, 10, 281 }, { 11, 10, 503 }, { 11, 10, 677 }, { 12, 10, 96 }, + { 12, 10, 130 }, { 12, 10, 244 }, { 14, 10, 5 }, { 14, 10, 40 }, + { 14, 10, 162 }, { 14, 10, 202 }, { 146, 10, 133 }, { 4, 10, 406 }, + { 5, 10, 579 }, { 12, 10, 492 }, { 150, 10, 15 }, { 9, 11, 137 }, + { 138, 11, 221 }, { 134, 0, 1239 }, { 11, 0, 211 }, { 140, 0, 145 }, + { 7, 11, 390 }, { 138, 11, 140 }, { 135, 11, 1418 }, { 135, 11, 1144 }, + { 134, 0, 1049 }, { 7, 0, 321 }, { 6, 10, 17 }, { 7, 10, 1001 }, + { 7, 10, 1982 }, { 9, 10, 886 }, { 10, 10, 489 }, { 10, 10, 800 }, + { 11, 10, 782 }, { 12, 10, 320 }, { 13, 10, 467 }, { 14, 10, 145 }, + { 14, 10, 387 }, { 143, 10, 119 }, { 145, 10, 17 }, { 5, 11, 407 }, + { 11, 11, 489 }, { 19, 11, 37 }, { 20, 11, 73 }, { 150, 11, 38 }, + { 133, 10, 458 }, { 135, 0, 1985 }, { 7, 10, 1983 }, { 8, 10, 0 }, + { 8, 10, 171 }, { 9, 10, 120 }, { 9, 10, 732 }, { 10, 10, 473 }, + { 11, 10, 656 }, { 11, 10, 998 }, { 18, 10, 0 }, { 18, 10, 2 }, + { 147, 10, 21 }, { 5, 11, 325 }, { 7, 11, 1483 }, { 8, 11, 5 }, + { 8, 11, 227 }, { 9, 11, 105 }, { 10, 11, 585 }, { 140, 11, 614 }, + { 136, 0, 122 }, { 132, 0, 234 }, { 135, 11, 1196 }, { 6, 0, 976 }, + { 6, 0, 1098 }, { 134, 0, 1441 }, { 7, 0, 253 }, { 136, 0, 549 }, + { 6, 11, 621 }, { 13, 11, 504 }, { 144, 11, 19 }, { 132, 10, 519 }, + { 5, 0, 430 }, { 5, 0, 932 }, { 6, 0, 131 }, { 7, 0, 417 }, + { 9, 0, 522 }, { 11, 0, 314 }, { 141, 0, 390 }, { 14, 0, 149 }, + { 14, 0, 399 }, { 143, 0, 57 }, { 5, 10, 907 }, { 6, 10, 31 }, + { 6, 11, 218 }, { 7, 10, 491 }, { 7, 10, 530 }, { 8, 10, 592 }, + { 11, 10, 53 }, { 11, 10, 779 }, { 12, 10, 167 }, { 12, 10, 411 }, + { 14, 10, 14 }, { 14, 10, 136 }, { 15, 10, 72 }, { 16, 10, 17 }, + { 144, 10, 72 }, { 140, 11, 330 }, { 7, 11, 454 }, { 7, 11, 782 }, + { 136, 11, 768 }, { 132, 0, 507 }, { 10, 11, 676 }, { 140, 11, 462 }, + { 6, 0, 630 }, { 9, 0, 811 }, { 4, 10, 208 }, { 5, 10, 106 }, + { 6, 10, 531 }, { 8, 10, 408 }, { 9, 10, 188 }, { 138, 10, 572 }, + { 4, 0, 343 }, { 5, 0, 511 }, { 134, 10, 1693 }, { 134, 11, 164 }, + { 132, 0, 448 }, { 7, 0, 455 }, { 138, 0, 591 }, { 135, 0, 1381 }, + { 12, 10, 441 }, { 150, 11, 50 }, { 9, 10, 449 }, { 10, 10, 192 }, + { 138, 10, 740 }, { 6, 0, 575 }, { 132, 10, 241 }, { 134, 0, 1175 }, + { 134, 0, 653 }, { 134, 0, 1761 }, { 134, 0, 1198 }, { 132, 10, 259 }, + { 6, 11, 343 }, { 7, 11, 195 }, { 9, 11, 226 }, { 10, 11, 197 }, + { 10, 11, 575 }, { 11, 11, 502 }, { 139, 11, 899 }, { 7, 0, 1127 }, + { 7, 0, 1572 }, { 10, 0, 297 }, { 10, 0, 422 }, { 11, 0, 764 }, + { 11, 0, 810 }, { 12, 0, 264 }, { 13, 0, 102 }, { 13, 0, 300 }, + { 13, 0, 484 }, { 14, 0, 147 }, { 14, 0, 229 }, { 17, 0, 71 }, + { 18, 0, 118 }, { 147, 0, 120 }, { 135, 11, 666 }, { 132, 0, 678 }, + { 4, 10, 173 }, { 5, 10, 312 }, { 5, 10, 512 }, { 135, 10, 1285 }, + { 7, 10, 1603 }, { 7, 10, 1691 }, { 9, 10, 464 }, { 11, 10, 195 }, + { 12, 10, 279 }, { 12, 10, 448 }, { 14, 10, 11 }, { 147, 10, 102 }, + { 16, 0, 99 }, { 146, 0, 164 }, { 7, 11, 1125 }, { 9, 11, 143 }, + { 11, 11, 61 }, { 14, 11, 405 }, { 150, 11, 21 }, { 137, 11, 260 }, + { 4, 10, 452 }, { 5, 10, 583 }, { 5, 10, 817 }, { 6, 10, 433 }, + { 7, 10, 593 }, { 7, 10, 720 }, { 7, 10, 1378 }, { 8, 10, 161 }, + { 9, 10, 284 }, { 10, 10, 313 }, { 139, 10, 886 }, { 132, 10, 547 }, + { 136, 10, 722 }, { 14, 0, 35 }, { 142, 0, 191 }, { 141, 0, 45 }, + { 138, 0, 121 }, { 132, 0, 125 }, { 134, 0, 1622 }, { 133, 11, 959 }, + { 8, 10, 420 }, { 139, 10, 193 }, { 132, 0, 721 }, { 135, 10, 409 }, + { 136, 0, 145 }, { 7, 0, 792 }, { 8, 0, 147 }, { 10, 0, 821 }, + { 11, 0, 970 }, { 11, 0, 1021 }, { 136, 11, 173 }, { 134, 11, 266 }, + { 132, 0, 715 }, { 7, 0, 1999 }, { 138, 10, 308 }, { 133, 0, 531 }, + { 5, 0, 168 }, { 5, 0, 930 }, { 8, 0, 74 }, { 9, 0, 623 }, + { 12, 0, 500 }, { 140, 0, 579 }, { 144, 0, 65 }, { 138, 11, 246 }, + { 6, 0, 220 }, { 7, 0, 1101 }, { 13, 0, 105 }, { 142, 11, 314 }, + { 5, 10, 1002 }, { 136, 10, 745 }, { 134, 0, 960 }, { 20, 0, 0 }, + { 148, 11, 0 }, { 4, 0, 1005 }, { 4, 10, 239 }, { 6, 10, 477 }, + { 7, 10, 1607 }, { 11, 10, 68 }, { 139, 10, 617 }, { 6, 0, 19 }, + { 7, 0, 1413 }, { 139, 0, 428 }, { 149, 10, 13 }, { 7, 0, 96 }, + { 8, 0, 401 }, { 8, 0, 703 }, { 9, 0, 896 }, { 136, 11, 300 }, + { 134, 0, 1595 }, { 145, 0, 116 }, { 136, 0, 1021 }, { 7, 0, 1961 }, + { 7, 0, 1965 }, { 7, 0, 2030 }, { 8, 0, 150 }, { 8, 0, 702 }, + { 8, 0, 737 }, { 8, 0, 750 }, { 140, 0, 366 }, { 11, 11, 75 }, + { 142, 11, 267 }, { 132, 10, 367 }, { 8, 0, 800 }, { 9, 0, 148 }, + { 9, 0, 872 }, { 9, 0, 890 }, { 11, 0, 309 }, { 11, 0, 1001 }, + { 13, 0, 267 }, { 13, 0, 323 }, { 5, 11, 427 }, { 5, 11, 734 }, + { 7, 11, 478 }, { 136, 11, 52 }, { 7, 11, 239 }, { 11, 11, 217 }, + { 142, 11, 165 }, { 132, 11, 323 }, { 140, 11, 419 }, { 13, 0, 299 }, + { 142, 0, 75 }, { 6, 11, 87 }, { 6, 11, 1734 }, { 7, 11, 20 }, + { 7, 11, 1056 }, { 8, 11, 732 }, { 9, 11, 406 }, { 9, 11, 911 }, + { 138, 11, 694 }, { 134, 0, 1383 }, { 132, 10, 694 }, { 133, 11, 613 }, + { 137, 0, 779 }, { 4, 0, 598 }, { 140, 10, 687 }, { 6, 0, 970 }, + { 135, 0, 424 }, { 133, 0, 547 }, { 7, 11, 32 }, { 7, 11, 984 }, + { 8, 11, 85 }, { 8, 11, 709 }, { 9, 11, 579 }, { 9, 11, 847 }, + { 9, 11, 856 }, { 10, 11, 799 }, { 11, 11, 258 }, { 11, 11, 1007 }, + { 12, 11, 331 }, { 12, 11, 615 }, { 13, 11, 188 }, { 13, 11, 435 }, + { 14, 11, 8 }, { 15, 11, 165 }, { 16, 11, 27 }, { 148, 11, 40 }, + { 6, 0, 1222 }, { 134, 0, 1385 }, { 132, 0, 876 }, { 138, 11, 151 }, + { 135, 10, 213 }, { 4, 11, 167 }, { 135, 11, 82 }, { 133, 0, 133 }, + { 6, 11, 24 }, { 7, 11, 74 }, { 7, 11, 678 }, { 137, 11, 258 }, + { 5, 11, 62 }, { 6, 11, 534 }, { 7, 11, 684 }, { 7, 11, 1043 }, + { 7, 11, 1072 }, { 8, 11, 280 }, { 8, 11, 541 }, { 8, 11, 686 }, + { 10, 11, 519 }, { 11, 11, 252 }, { 140, 11, 282 }, { 136, 0, 187 }, + { 8, 0, 8 }, { 10, 0, 0 }, { 10, 0, 818 }, { 139, 0, 988 }, + { 132, 11, 359 }, { 11, 0, 429 }, { 15, 0, 51 }, { 135, 10, 1672 }, + { 136, 0, 685 }, { 5, 11, 211 }, { 7, 11, 88 }, { 136, 11, 627 }, + { 134, 0, 472 }, { 136, 0, 132 }, { 6, 11, 145 }, { 141, 11, 336 }, + { 4, 10, 751 }, { 11, 10, 390 }, { 140, 10, 32 }, { 6, 0, 938 }, + { 6, 0, 1060 }, { 4, 11, 263 }, { 4, 10, 409 }, { 133, 10, 78 }, + { 137, 0, 874 }, { 8, 0, 774 }, { 10, 0, 670 }, { 12, 0, 51 }, + { 4, 11, 916 }, { 6, 10, 473 }, { 7, 10, 1602 }, { 10, 10, 698 }, + { 12, 10, 212 }, { 13, 10, 307 }, { 145, 10, 105 }, { 146, 0, 92 }, + { 143, 10, 156 }, { 132, 0, 830 }, { 137, 0, 701 }, { 4, 11, 599 }, + { 6, 11, 1634 }, { 7, 11, 5 }, { 7, 11, 55 }, { 7, 11, 67 }, + { 7, 11, 97 }, { 7, 11, 691 }, { 7, 11, 979 }, { 7, 11, 1697 }, + { 8, 11, 207 }, { 8, 11, 214 }, { 8, 11, 231 }, { 8, 11, 294 }, + { 8, 11, 336 }, { 8, 11, 428 }, { 8, 11, 451 }, { 8, 11, 460 }, + { 8, 11, 471 }, { 8, 11, 622 }, { 8, 11, 626 }, { 8, 11, 679 }, + { 8, 11, 759 }, { 8, 11, 829 }, { 9, 11, 11 }, { 9, 11, 246 }, + { 9, 11, 484 }, { 9, 11, 573 }, { 9, 11, 706 }, { 9, 11, 762 }, + { 9, 11, 798 }, { 9, 11, 855 }, { 9, 11, 870 }, { 9, 11, 912 }, + { 10, 11, 303 }, { 10, 11, 335 }, { 10, 11, 424 }, { 10, 11, 461 }, + { 10, 11, 543 }, { 10, 11, 759 }, { 10, 11, 814 }, { 11, 11, 59 }, + { 11, 11, 199 }, { 11, 11, 235 }, { 11, 11, 475 }, { 11, 11, 590 }, + { 11, 11, 929 }, { 11, 11, 963 }, { 12, 11, 114 }, { 12, 11, 182 }, + { 12, 11, 226 }, { 12, 11, 332 }, { 12, 11, 439 }, { 12, 11, 575 }, + { 12, 11, 598 }, { 13, 11, 8 }, { 13, 11, 125 }, { 13, 11, 194 }, + { 13, 11, 287 }, { 14, 11, 197 }, { 14, 11, 383 }, { 15, 11, 53 }, + { 17, 11, 63 }, { 19, 11, 46 }, { 19, 11, 98 }, { 19, 11, 106 }, + { 148, 11, 85 }, { 4, 0, 127 }, { 5, 0, 350 }, { 6, 0, 356 }, + { 8, 0, 426 }, { 9, 0, 572 }, { 10, 0, 247 }, { 139, 0, 312 }, + { 134, 0, 1215 }, { 6, 0, 59 }, { 9, 0, 603 }, { 13, 0, 397 }, + { 7, 11, 1853 }, { 138, 11, 437 }, { 134, 0, 1762 }, { 147, 11, 126 }, + { 135, 10, 883 }, { 13, 0, 293 }, { 142, 0, 56 }, { 133, 10, 617 }, + { 139, 10, 50 }, { 5, 11, 187 }, { 7, 10, 1518 }, { 139, 10, 694 }, + { 135, 0, 441 }, { 6, 0, 111 }, { 7, 0, 4 }, { 8, 0, 163 }, + { 8, 0, 776 }, { 138, 0, 566 }, { 132, 0, 806 }, { 4, 11, 215 }, + { 9, 11, 38 }, { 10, 11, 3 }, { 11, 11, 23 }, { 11, 11, 127 }, + { 139, 11, 796 }, { 14, 0, 233 }, { 4, 10, 546 }, { 135, 10, 2042 }, + { 135, 0, 1994 }, { 134, 0, 1739 }, { 135, 11, 1530 }, { 136, 0, 393 }, + { 5, 0, 297 }, { 7, 0, 1038 }, { 14, 0, 359 }, { 19, 0, 52 }, + { 148, 0, 47 }, { 135, 0, 309 }, { 4, 10, 313 }, { 133, 10, 577 }, + { 8, 10, 184 }, { 141, 10, 433 }, { 135, 10, 935 }, { 12, 10, 186 }, + { 12, 10, 292 }, { 14, 10, 100 }, { 146, 10, 70 }, { 136, 0, 363 }, + { 14, 0, 175 }, { 11, 10, 402 }, { 12, 10, 109 }, { 12, 10, 431 }, + { 13, 10, 179 }, { 13, 10, 206 }, { 14, 10, 217 }, { 16, 10, 3 }, + { 148, 10, 53 }, { 5, 10, 886 }, { 6, 10, 46 }, { 6, 10, 1790 }, + { 7, 10, 14 }, { 7, 10, 732 }, { 7, 10, 1654 }, { 8, 10, 95 }, + { 8, 10, 327 }, { 8, 10, 616 }, { 9, 10, 892 }, { 10, 10, 598 }, + { 10, 10, 769 }, { 11, 10, 134 }, { 11, 10, 747 }, { 12, 10, 378 }, + { 142, 10, 97 }, { 136, 0, 666 }, { 135, 0, 1675 }, { 6, 0, 655 }, + { 134, 0, 1600 }, { 135, 0, 808 }, { 133, 10, 1021 }, { 4, 11, 28 }, + { 5, 11, 440 }, { 7, 11, 248 }, { 11, 11, 833 }, { 140, 11, 344 }, + { 134, 11, 1654 }, { 132, 0, 280 }, { 140, 0, 54 }, { 4, 0, 421 }, + { 133, 0, 548 }, { 132, 10, 153 }, { 6, 11, 339 }, { 135, 11, 923 }, + { 133, 11, 853 }, { 133, 10, 798 }, { 132, 10, 587 }, { 6, 11, 249 }, + { 7, 11, 1234 }, { 139, 11, 573 }, { 6, 10, 598 }, { 7, 10, 42 }, + { 8, 10, 695 }, { 10, 10, 212 }, { 11, 10, 158 }, { 14, 10, 196 }, + { 145, 10, 85 }, { 7, 0, 249 }, { 5, 10, 957 }, { 133, 10, 1008 }, + { 4, 10, 129 }, { 135, 10, 465 }, { 6, 0, 254 }, { 7, 0, 842 }, + { 7, 0, 1659 }, { 9, 0, 109 }, { 10, 0, 103 }, { 7, 10, 908 }, + { 7, 10, 1201 }, { 9, 10, 755 }, { 11, 10, 906 }, { 12, 10, 527 }, + { 146, 10, 7 }, { 5, 0, 262 }, { 136, 10, 450 }, { 144, 0, 1 }, + { 10, 11, 201 }, { 142, 11, 319 }, { 7, 11, 49 }, { 7, 11, 392 }, + { 8, 11, 20 }, { 8, 11, 172 }, { 8, 11, 690 }, { 9, 11, 383 }, + { 9, 11, 845 }, { 10, 11, 48 }, { 11, 11, 293 }, { 11, 11, 832 }, + { 11, 11, 920 }, { 141, 11, 221 }, { 5, 11, 858 }, { 133, 11, 992 }, + { 134, 0, 805 }, { 139, 10, 1003 }, { 6, 0, 1630 }, { 134, 11, 307 }, + { 7, 11, 1512 }, { 135, 11, 1794 }, { 6, 11, 268 }, { 137, 11, 62 }, + { 135, 10, 1868 }, { 133, 0, 671 }, { 4, 0, 989 }, { 8, 0, 972 }, + { 136, 0, 998 }, { 132, 11, 423 }, { 132, 0, 889 }, { 135, 0, 1382 }, + { 135, 0, 1910 }, { 7, 10, 965 }, { 7, 10, 1460 }, { 135, 10, 1604 }, + { 4, 0, 627 }, { 5, 0, 775 }, { 138, 11, 106 }, { 134, 11, 348 }, + { 7, 0, 202 }, { 11, 0, 362 }, { 11, 0, 948 }, { 140, 0, 388 }, + { 138, 11, 771 }, { 6, 11, 613 }, { 136, 11, 223 }, { 6, 0, 560 }, + { 7, 0, 451 }, { 8, 0, 389 }, { 12, 0, 490 }, { 13, 0, 16 }, + { 13, 0, 215 }, { 13, 0, 351 }, { 18, 0, 132 }, { 147, 0, 125 }, + { 135, 0, 841 }, { 136, 0, 566 }, { 136, 0, 938 }, { 132, 11, 670 }, + { 5, 0, 912 }, { 6, 0, 1695 }, { 140, 11, 55 }, { 9, 11, 40 }, + { 139, 11, 136 }, { 7, 0, 1361 }, { 7, 10, 982 }, { 10, 10, 32 }, + { 143, 10, 56 }, { 11, 11, 259 }, { 140, 11, 270 }, { 5, 0, 236 }, + { 6, 0, 572 }, { 8, 0, 492 }, { 11, 0, 618 }, { 144, 0, 56 }, + { 8, 11, 572 }, { 9, 11, 310 }, { 9, 11, 682 }, { 137, 11, 698 }, + { 134, 0, 1854 }, { 5, 0, 190 }, { 136, 0, 318 }, { 133, 10, 435 }, + { 135, 0, 1376 }, { 4, 11, 296 }, { 6, 11, 352 }, { 7, 11, 401 }, + { 7, 11, 1410 }, { 7, 11, 1594 }, { 7, 11, 1674 }, { 8, 11, 63 }, + { 8, 11, 660 }, { 137, 11, 74 }, { 7, 0, 349 }, { 5, 10, 85 }, + { 6, 10, 419 }, { 7, 10, 305 }, { 7, 10, 361 }, { 7, 10, 1337 }, + { 8, 10, 71 }, { 140, 10, 519 }, { 4, 11, 139 }, { 4, 11, 388 }, + { 140, 11, 188 }, { 6, 0, 1972 }, { 6, 0, 2013 }, { 8, 0, 951 }, + { 10, 0, 947 }, { 10, 0, 974 }, { 10, 0, 1018 }, { 142, 0, 476 }, + { 140, 10, 688 }, { 135, 10, 740 }, { 5, 10, 691 }, { 7, 10, 345 }, + { 9, 10, 94 }, { 140, 10, 169 }, { 9, 0, 344 }, { 5, 10, 183 }, + { 6, 10, 582 }, { 10, 10, 679 }, { 140, 10, 435 }, { 135, 10, 511 }, + { 132, 0, 850 }, { 8, 11, 441 }, { 10, 11, 314 }, { 143, 11, 3 }, + { 7, 10, 1993 }, { 136, 10, 684 }, { 4, 11, 747 }, { 6, 11, 290 }, + { 6, 10, 583 }, { 7, 11, 649 }, { 7, 11, 1479 }, { 135, 11, 1583 }, + { 133, 11, 232 }, { 133, 10, 704 }, { 134, 0, 910 }, { 4, 10, 179 }, + { 5, 10, 198 }, { 133, 10, 697 }, { 7, 10, 347 }, { 7, 10, 971 }, + { 8, 10, 181 }, { 138, 10, 711 }, { 136, 11, 525 }, { 14, 0, 19 }, + { 14, 0, 28 }, { 144, 0, 29 }, { 7, 0, 85 }, { 7, 0, 247 }, + { 8, 0, 585 }, { 138, 0, 163 }, { 4, 0, 487 }, { 7, 11, 472 }, + { 7, 11, 1801 }, { 10, 11, 748 }, { 141, 11, 458 }, { 4, 10, 243 }, + { 5, 10, 203 }, { 7, 10, 19 }, { 7, 10, 71 }, { 7, 10, 113 }, + { 10, 10, 405 }, { 11, 10, 357 }, { 142, 10, 240 }, { 7, 10, 1450 }, + { 139, 10, 99 }, { 132, 11, 425 }, { 138, 0, 145 }, { 147, 0, 83 }, + { 6, 10, 492 }, { 137, 11, 247 }, { 4, 0, 1013 }, { 134, 0, 2033 }, + { 5, 10, 134 }, { 6, 10, 408 }, { 6, 10, 495 }, { 135, 10, 1593 }, + { 135, 0, 1922 }, { 134, 11, 1768 }, { 4, 0, 124 }, { 10, 0, 457 }, + { 11, 0, 121 }, { 11, 0, 169 }, { 11, 0, 870 }, { 11, 0, 874 }, + { 12, 0, 214 }, { 14, 0, 187 }, { 143, 0, 77 }, { 5, 0, 557 }, + { 135, 0, 1457 }, { 139, 0, 66 }, { 5, 11, 943 }, { 6, 11, 1779 }, + { 142, 10, 4 }, { 4, 10, 248 }, { 4, 10, 665 }, { 7, 10, 137 }, + { 137, 10, 349 }, { 7, 0, 1193 }, { 5, 11, 245 }, { 6, 11, 576 }, + { 7, 11, 582 }, { 136, 11, 225 }, { 144, 0, 82 }, { 7, 10, 1270 }, + { 139, 10, 612 }, { 5, 0, 454 }, { 10, 0, 352 }, { 138, 11, 352 }, + { 18, 0, 57 }, { 5, 10, 371 }, { 135, 10, 563 }, { 135, 0, 1333 }, + { 6, 0, 107 }, { 7, 0, 638 }, { 7, 0, 1632 }, { 9, 0, 396 }, + { 134, 11, 610 }, { 5, 0, 370 }, { 134, 0, 1756 }, { 4, 10, 374 }, + { 7, 10, 547 }, { 7, 10, 1700 }, { 7, 10, 1833 }, { 139, 10, 858 }, + { 133, 0, 204 }, { 6, 0, 1305 }, { 9, 10, 311 }, { 141, 10, 42 }, + { 5, 0, 970 }, { 134, 0, 1706 }, { 6, 10, 1647 }, { 7, 10, 1552 }, + { 7, 10, 2010 }, { 9, 10, 494 }, { 137, 10, 509 }, { 13, 11, 455 }, + { 15, 11, 99 }, { 15, 11, 129 }, { 144, 11, 68 }, { 135, 0, 3 }, + { 4, 0, 35 }, { 5, 0, 121 }, { 5, 0, 483 }, { 5, 0, 685 }, + { 6, 0, 489 }, { 6, 0, 782 }, { 6, 0, 1032 }, { 7, 0, 1204 }, + { 136, 0, 394 }, { 4, 0, 921 }, { 133, 0, 1007 }, { 8, 11, 360 }, + { 138, 11, 63 }, { 135, 0, 1696 }, { 134, 0, 1519 }, { 132, 11, 443 }, + { 135, 11, 944 }, { 6, 10, 123 }, { 7, 10, 214 }, { 9, 10, 728 }, + { 10, 10, 157 }, { 11, 10, 346 }, { 11, 10, 662 }, { 143, 10, 106 }, + { 137, 0, 981 }, { 135, 10, 1435 }, { 134, 0, 1072 }, { 132, 0, 712 }, + { 134, 0, 1629 }, { 134, 0, 728 }, { 4, 11, 298 }, { 137, 11, 483 }, + { 6, 0, 1177 }, { 6, 0, 1271 }, { 5, 11, 164 }, { 7, 11, 121 }, + { 142, 11, 189 }, { 7, 0, 1608 }, { 4, 10, 707 }, { 5, 10, 588 }, + { 6, 10, 393 }, { 13, 10, 106 }, { 18, 10, 49 }, { 147, 10, 41 }, + { 23, 0, 16 }, { 151, 11, 16 }, { 6, 10, 211 }, { 7, 10, 1690 }, + { 11, 10, 486 }, { 140, 10, 369 }, { 133, 0, 485 }, { 19, 11, 15 }, + { 149, 11, 27 }, { 4, 11, 172 }, { 9, 11, 611 }, { 10, 11, 436 }, + { 12, 11, 673 }, { 141, 11, 255 }, { 5, 11, 844 }, { 10, 11, 484 }, + { 11, 11, 754 }, { 12, 11, 457 }, { 14, 11, 171 }, { 14, 11, 389 }, + { 146, 11, 153 }, { 4, 0, 285 }, { 5, 0, 27 }, { 5, 0, 317 }, + { 6, 0, 301 }, { 7, 0, 7 }, { 8, 0, 153 }, { 10, 0, 766 }, + { 11, 0, 468 }, { 12, 0, 467 }, { 141, 0, 143 }, { 134, 0, 1462 }, + { 9, 11, 263 }, { 10, 11, 147 }, { 138, 11, 492 }, { 133, 11, 537 }, + { 6, 0, 1945 }, { 6, 0, 1986 }, { 6, 0, 1991 }, { 134, 0, 2038 }, + { 134, 10, 219 }, { 137, 11, 842 }, { 14, 0, 52 }, { 17, 0, 50 }, + { 5, 10, 582 }, { 6, 10, 1646 }, { 7, 10, 99 }, { 7, 10, 1962 }, + { 7, 10, 1986 }, { 8, 10, 515 }, { 8, 10, 773 }, { 9, 10, 23 }, + { 9, 10, 491 }, { 12, 10, 620 }, { 142, 10, 93 }, { 138, 11, 97 }, + { 20, 0, 21 }, { 20, 0, 44 }, { 133, 10, 851 }, { 136, 0, 819 }, + { 139, 0, 917 }, { 5, 11, 230 }, { 5, 11, 392 }, { 6, 11, 420 }, + { 8, 10, 762 }, { 8, 10, 812 }, { 9, 11, 568 }, { 9, 10, 910 }, + { 140, 11, 612 }, { 135, 0, 784 }, { 15, 0, 135 }, { 143, 11, 135 }, + { 10, 0, 454 }, { 140, 0, 324 }, { 4, 11, 0 }, { 5, 11, 41 }, + { 7, 11, 1459 }, { 7, 11, 1469 }, { 7, 11, 1618 }, { 7, 11, 1859 }, + { 9, 11, 549 }, { 139, 11, 905 }, { 4, 10, 98 }, { 7, 10, 1365 }, + { 9, 10, 422 }, { 9, 10, 670 }, { 10, 10, 775 }, { 11, 10, 210 }, + { 13, 10, 26 }, { 13, 10, 457 }, { 141, 10, 476 }, { 6, 0, 1719 }, + { 6, 0, 1735 }, { 7, 0, 2016 }, { 7, 0, 2020 }, { 8, 0, 837 }, + { 137, 0, 852 }, { 133, 11, 696 }, { 135, 0, 852 }, { 132, 0, 952 }, + { 134, 10, 1730 }, { 132, 11, 771 }, { 138, 0, 568 }, { 137, 0, 448 }, + { 139, 0, 146 }, { 8, 0, 67 }, { 138, 0, 419 }, { 133, 11, 921 }, + { 137, 10, 147 }, { 134, 0, 1826 }, { 10, 0, 657 }, { 14, 0, 297 }, + { 142, 0, 361 }, { 6, 0, 666 }, { 6, 0, 767 }, { 134, 0, 1542 }, + { 139, 0, 729 }, { 6, 11, 180 }, { 7, 11, 1137 }, { 8, 11, 751 }, + { 139, 11, 805 }, { 4, 11, 183 }, { 7, 11, 271 }, { 11, 11, 824 }, + { 11, 11, 952 }, { 13, 11, 278 }, { 13, 11, 339 }, { 13, 11, 482 }, + { 14, 11, 424 }, { 148, 11, 99 }, { 4, 0, 669 }, { 5, 11, 477 }, + { 5, 11, 596 }, { 6, 11, 505 }, { 7, 11, 1221 }, { 11, 11, 907 }, + { 12, 11, 209 }, { 141, 11, 214 }, { 135, 11, 1215 }, { 5, 0, 402 }, + { 6, 10, 30 }, { 11, 10, 56 }, { 139, 10, 305 }, { 7, 11, 564 }, + { 142, 11, 168 }, { 139, 0, 152 }, { 7, 0, 912 }, { 135, 10, 1614 }, + { 4, 10, 150 }, { 5, 10, 303 }, { 134, 10, 327 }, { 7, 0, 320 }, + { 8, 0, 51 }, { 9, 0, 868 }, { 10, 0, 833 }, { 12, 0, 481 }, + { 12, 0, 570 }, { 148, 0, 106 }, { 132, 0, 445 }, { 7, 11, 274 }, + { 11, 11, 263 }, { 11, 11, 479 }, { 11, 11, 507 }, { 140, 11, 277 }, + { 10, 0, 555 }, { 11, 0, 308 }, { 19, 0, 95 }, { 6, 11, 1645 }, + { 8, 10, 192 }, { 10, 10, 78 }, { 141, 10, 359 }, { 135, 10, 786 }, + { 6, 11, 92 }, { 6, 11, 188 }, { 7, 11, 1269 }, { 7, 11, 1524 }, + { 7, 11, 1876 }, { 10, 11, 228 }, { 139, 11, 1020 }, { 4, 11, 459 }, + { 133, 11, 966 }, { 11, 0, 386 }, { 6, 10, 1638 }, { 7, 10, 79 }, + { 7, 10, 496 }, { 9, 10, 138 }, { 10, 10, 336 }, { 12, 10, 412 }, + { 12, 10, 440 }, { 142, 10, 305 }, { 133, 0, 239 }, { 7, 0, 83 }, + { 7, 0, 1990 }, { 8, 0, 130 }, { 139, 0, 720 }, { 138, 11, 709 }, + { 4, 0, 143 }, { 5, 0, 550 }, { 133, 0, 752 }, { 5, 0, 123 }, + { 6, 0, 530 }, { 7, 0, 348 }, { 135, 0, 1419 }, { 135, 0, 2024 }, + { 6, 11, 18 }, { 7, 11, 179 }, { 7, 11, 721 }, { 7, 11, 932 }, + { 8, 11, 548 }, { 8, 11, 757 }, { 9, 11, 54 }, { 9, 11, 65 }, + { 9, 11, 532 }, { 9, 11, 844 }, { 10, 11, 113 }, { 10, 11, 117 }, + { 10, 11, 236 }, { 10, 11, 315 }, { 10, 11, 430 }, { 10, 11, 798 }, + { 11, 11, 153 }, { 11, 11, 351 }, { 11, 11, 375 }, { 12, 11, 78 }, + { 12, 11, 151 }, { 12, 11, 392 }, { 14, 11, 248 }, { 143, 11, 23 }, + { 7, 10, 204 }, { 7, 10, 415 }, { 8, 10, 42 }, { 10, 10, 85 }, + { 139, 10, 564 }, { 134, 0, 958 }, { 133, 11, 965 }, { 132, 0, 210 }, + { 135, 11, 1429 }, { 138, 11, 480 }, { 134, 11, 182 }, { 139, 11, 345 }, + { 10, 11, 65 }, { 10, 11, 488 }, { 138, 11, 497 }, { 4, 10, 3 }, + { 5, 10, 247 }, { 5, 10, 644 }, { 7, 10, 744 }, { 7, 10, 1207 }, + { 7, 10, 1225 }, { 7, 10, 1909 }, { 146, 10, 147 }, { 132, 0, 430 }, + { 5, 10, 285 }, { 9, 10, 67 }, { 13, 10, 473 }, { 143, 10, 82 }, + { 144, 11, 16 }, { 7, 11, 1162 }, { 9, 11, 588 }, { 10, 11, 260 }, + { 151, 10, 8 }, { 133, 0, 213 }, { 138, 0, 7 }, { 135, 0, 801 }, + { 134, 11, 1786 }, { 135, 11, 308 }, { 6, 0, 936 }, { 134, 0, 1289 }, + { 133, 0, 108 }, { 132, 0, 885 }, { 133, 0, 219 }, { 139, 0, 587 }, + { 4, 0, 193 }, { 5, 0, 916 }, { 6, 0, 1041 }, { 7, 0, 364 }, + { 10, 0, 398 }, { 10, 0, 726 }, { 11, 0, 317 }, { 11, 0, 626 }, + { 12, 0, 142 }, { 12, 0, 288 }, { 12, 0, 678 }, { 13, 0, 313 }, + { 15, 0, 113 }, { 146, 0, 114 }, { 135, 0, 1165 }, { 6, 0, 241 }, + { 9, 0, 342 }, { 10, 0, 729 }, { 11, 0, 284 }, { 11, 0, 445 }, + { 11, 0, 651 }, { 11, 0, 863 }, { 13, 0, 398 }, { 146, 0, 99 }, + { 7, 0, 907 }, { 136, 0, 832 }, { 9, 0, 303 }, { 4, 10, 29 }, + { 6, 10, 532 }, { 7, 10, 1628 }, { 7, 10, 1648 }, { 9, 10, 350 }, + { 10, 10, 433 }, { 11, 10, 97 }, { 11, 10, 557 }, { 11, 10, 745 }, + { 12, 10, 289 }, { 12, 10, 335 }, { 12, 10, 348 }, { 12, 10, 606 }, + { 13, 10, 116 }, { 13, 10, 233 }, { 13, 10, 466 }, { 14, 10, 181 }, + { 14, 10, 209 }, { 14, 10, 232 }, { 14, 10, 236 }, { 14, 10, 300 }, + { 16, 10, 41 }, { 148, 10, 97 }, { 7, 11, 423 }, { 7, 10, 1692 }, + { 136, 11, 588 }, { 6, 0, 931 }, { 134, 0, 1454 }, { 5, 10, 501 }, + { 7, 10, 1704 }, { 9, 10, 553 }, { 11, 10, 520 }, { 12, 10, 557 }, + { 141, 10, 249 }, { 136, 11, 287 }, { 4, 0, 562 }, { 9, 0, 254 }, + { 139, 0, 879 }, { 132, 0, 786 }, { 14, 11, 32 }, { 18, 11, 85 }, + { 20, 11, 2 }, { 152, 11, 16 }, { 135, 0, 1294 }, { 7, 11, 723 }, + { 135, 11, 1135 }, { 6, 0, 216 }, { 7, 0, 901 }, { 7, 0, 1343 }, + { 8, 0, 493 }, { 134, 11, 403 }, { 7, 11, 719 }, { 8, 11, 809 }, + { 136, 11, 834 }, { 5, 11, 210 }, { 6, 11, 213 }, { 7, 11, 60 }, + { 10, 11, 364 }, { 139, 11, 135 }, { 7, 0, 341 }, { 11, 0, 219 }, + { 5, 11, 607 }, { 8, 11, 326 }, { 136, 11, 490 }, { 4, 11, 701 }, + { 5, 11, 472 }, { 5, 11, 639 }, { 7, 11, 1249 }, { 9, 11, 758 }, + { 139, 11, 896 }, { 135, 11, 380 }, { 135, 11, 1947 }, { 139, 0, 130 }, + { 135, 0, 1734 }, { 10, 0, 115 }, { 11, 0, 420 }, { 12, 0, 154 }, + { 13, 0, 404 }, { 14, 0, 346 }, { 143, 0, 54 }, { 134, 10, 129 }, + { 4, 11, 386 }, { 7, 11, 41 }, { 8, 11, 405 }, { 9, 11, 497 }, + { 11, 11, 110 }, { 11, 11, 360 }, { 15, 11, 37 }, { 144, 11, 84 }, + { 141, 11, 282 }, { 5, 11, 46 }, { 7, 11, 1452 }, { 7, 11, 1480 }, + { 8, 11, 634 }, { 140, 11, 472 }, { 4, 11, 524 }, { 136, 11, 810 }, + { 10, 11, 238 }, { 141, 11, 33 }, { 133, 0, 604 }, { 5, 0, 1011 }, + { 136, 0, 701 }, { 8, 0, 856 }, { 8, 0, 858 }, { 8, 0, 879 }, + { 12, 0, 702 }, { 142, 0, 447 }, { 4, 0, 54 }, { 5, 0, 666 }, + { 7, 0, 1039 }, { 7, 0, 1130 }, { 9, 0, 195 }, { 138, 0, 302 }, + { 4, 10, 25 }, { 5, 10, 60 }, { 6, 10, 504 }, { 7, 10, 614 }, + { 7, 10, 1155 }, { 140, 10, 0 }, { 7, 10, 1248 }, { 11, 10, 621 }, + { 139, 10, 702 }, { 133, 11, 997 }, { 137, 10, 321 }, { 134, 0, 1669 }, + { 134, 0, 1791 }, { 4, 10, 379 }, { 135, 10, 1397 }, { 138, 11, 372 }, + { 5, 11, 782 }, { 5, 11, 829 }, { 134, 11, 1738 }, { 135, 0, 1228 }, + { 4, 10, 118 }, { 6, 10, 274 }, { 6, 10, 361 }, { 7, 10, 75 }, + { 141, 10, 441 }, { 132, 0, 623 }, { 9, 11, 279 }, { 10, 11, 407 }, + { 14, 11, 84 }, { 150, 11, 18 }, { 137, 10, 841 }, { 135, 0, 798 }, + { 140, 10, 693 }, { 5, 10, 314 }, { 6, 10, 221 }, { 7, 10, 419 }, + { 10, 10, 650 }, { 11, 10, 396 }, { 12, 10, 156 }, { 13, 10, 369 }, + { 14, 10, 333 }, { 145, 10, 47 }, { 135, 11, 1372 }, { 7, 0, 122 }, + { 9, 0, 259 }, { 10, 0, 84 }, { 11, 0, 470 }, { 12, 0, 541 }, + { 141, 0, 379 }, { 134, 0, 837 }, { 8, 0, 1013 }, { 4, 11, 78 }, + { 5, 11, 96 }, { 5, 11, 182 }, { 7, 11, 1724 }, { 7, 11, 1825 }, + { 10, 11, 394 }, { 10, 11, 471 }, { 11, 11, 532 }, { 14, 11, 340 }, + { 145, 11, 88 }, { 134, 0, 577 }, { 135, 11, 1964 }, { 132, 10, 913 }, + { 134, 0, 460 }, { 8, 0, 891 }, { 10, 0, 901 }, { 10, 0, 919 }, + { 10, 0, 932 }, { 12, 0, 715 }, { 12, 0, 728 }, { 12, 0, 777 }, + { 14, 0, 457 }, { 144, 0, 103 }, { 5, 0, 82 }, { 5, 0, 131 }, + { 7, 0, 1755 }, { 8, 0, 31 }, { 9, 0, 168 }, { 9, 0, 764 }, + { 139, 0, 869 }, { 136, 10, 475 }, { 6, 0, 605 }, { 5, 10, 1016 }, + { 9, 11, 601 }, { 9, 11, 619 }, { 10, 11, 505 }, { 10, 11, 732 }, + { 11, 11, 355 }, { 140, 11, 139 }, { 7, 10, 602 }, { 8, 10, 179 }, + { 10, 10, 781 }, { 140, 10, 126 }, { 134, 0, 1246 }, { 6, 10, 329 }, + { 138, 10, 111 }, { 6, 11, 215 }, { 7, 11, 1028 }, { 7, 11, 1473 }, + { 7, 11, 1721 }, { 9, 11, 424 }, { 138, 11, 779 }, { 5, 0, 278 }, + { 137, 0, 68 }, { 6, 0, 932 }, { 6, 0, 1084 }, { 144, 0, 86 }, + { 4, 0, 163 }, { 5, 0, 201 }, { 5, 0, 307 }, { 5, 0, 310 }, + { 6, 0, 335 }, { 7, 0, 284 }, { 7, 0, 1660 }, { 136, 0, 165 }, + { 136, 0, 781 }, { 134, 0, 707 }, { 6, 0, 33 }, { 135, 0, 1244 }, + { 5, 10, 821 }, { 6, 11, 67 }, { 6, 10, 1687 }, { 7, 11, 258 }, + { 7, 11, 1630 }, { 9, 11, 354 }, { 9, 11, 675 }, { 10, 11, 830 }, + { 14, 11, 80 }, { 145, 11, 80 }, { 6, 11, 141 }, { 7, 11, 225 }, + { 9, 11, 59 }, { 9, 11, 607 }, { 10, 11, 312 }, { 11, 11, 687 }, + { 12, 11, 555 }, { 13, 11, 373 }, { 13, 11, 494 }, { 148, 11, 58 }, + { 134, 0, 1113 }, { 9, 0, 388 }, { 5, 10, 71 }, { 7, 10, 1407 }, + { 9, 10, 704 }, { 10, 10, 261 }, { 10, 10, 619 }, { 11, 10, 547 }, + { 11, 10, 619 }, { 143, 10, 157 }, { 7, 0, 1953 }, { 136, 0, 720 }, + { 138, 0, 203 }, { 7, 10, 2008 }, { 9, 10, 337 }, { 138, 10, 517 }, + { 6, 0, 326 }, { 7, 0, 677 }, { 137, 0, 425 }, { 139, 11, 81 }, + { 7, 0, 1316 }, { 7, 0, 1412 }, { 7, 0, 1839 }, { 9, 0, 589 }, + { 11, 0, 241 }, { 11, 0, 676 }, { 11, 0, 811 }, { 11, 0, 891 }, + { 12, 0, 140 }, { 12, 0, 346 }, { 12, 0, 479 }, { 13, 0, 140 }, + { 13, 0, 381 }, { 14, 0, 188 }, { 18, 0, 30 }, { 148, 0, 108 }, + { 5, 0, 416 }, { 6, 10, 86 }, { 6, 10, 603 }, { 7, 10, 292 }, + { 7, 10, 561 }, { 8, 10, 257 }, { 8, 10, 382 }, { 9, 10, 721 }, + { 9, 10, 778 }, { 11, 10, 581 }, { 140, 10, 466 }, { 4, 10, 486 }, + { 133, 10, 491 }, { 134, 0, 1300 }, { 132, 10, 72 }, { 7, 0, 847 }, + { 6, 10, 265 }, { 7, 11, 430 }, { 139, 11, 46 }, { 5, 11, 602 }, + { 6, 11, 106 }, { 7, 11, 1786 }, { 7, 11, 1821 }, { 7, 11, 2018 }, + { 9, 11, 418 }, { 137, 11, 763 }, { 5, 0, 358 }, { 7, 0, 535 }, + { 7, 0, 1184 }, { 10, 0, 662 }, { 13, 0, 212 }, { 13, 0, 304 }, + { 13, 0, 333 }, { 145, 0, 98 }, { 5, 11, 65 }, { 6, 11, 416 }, + { 7, 11, 1720 }, { 7, 11, 1924 }, { 8, 11, 677 }, { 10, 11, 109 }, + { 11, 11, 14 }, { 11, 11, 70 }, { 11, 11, 569 }, { 11, 11, 735 }, + { 15, 11, 153 }, { 148, 11, 80 }, { 6, 0, 1823 }, { 8, 0, 839 }, + { 8, 0, 852 }, { 8, 0, 903 }, { 10, 0, 940 }, { 12, 0, 707 }, + { 140, 0, 775 }, { 135, 11, 1229 }, { 6, 0, 1522 }, { 140, 0, 654 }, + { 136, 11, 595 }, { 139, 0, 163 }, { 141, 0, 314 }, { 132, 0, 978 }, + { 4, 0, 601 }, { 6, 0, 2035 }, { 137, 10, 234 }, { 5, 10, 815 }, + { 6, 10, 1688 }, { 134, 10, 1755 }, { 133, 0, 946 }, { 136, 0, 434 }, + { 6, 10, 197 }, { 136, 10, 205 }, { 7, 0, 411 }, { 7, 0, 590 }, + { 8, 0, 631 }, { 9, 0, 323 }, { 10, 0, 355 }, { 11, 0, 491 }, + { 12, 0, 143 }, { 12, 0, 402 }, { 13, 0, 73 }, { 14, 0, 408 }, + { 15, 0, 107 }, { 146, 0, 71 }, { 7, 0, 1467 }, { 8, 0, 328 }, + { 10, 0, 544 }, { 11, 0, 955 }, { 12, 0, 13 }, { 13, 0, 320 }, + { 145, 0, 83 }, { 142, 0, 410 }, { 11, 0, 511 }, { 13, 0, 394 }, + { 14, 0, 298 }, { 14, 0, 318 }, { 146, 0, 103 }, { 6, 10, 452 }, + { 7, 10, 312 }, { 138, 10, 219 }, { 138, 10, 589 }, { 4, 10, 333 }, + { 9, 10, 176 }, { 12, 10, 353 }, { 141, 10, 187 }, { 135, 11, 329 }, + { 132, 11, 469 }, { 5, 0, 835 }, { 134, 0, 483 }, { 134, 11, 1743 }, + { 5, 11, 929 }, { 6, 11, 340 }, { 8, 11, 376 }, { 136, 11, 807 }, + { 134, 10, 1685 }, { 132, 0, 677 }, { 5, 11, 218 }, { 7, 11, 1610 }, + { 138, 11, 83 }, { 5, 11, 571 }, { 135, 11, 1842 }, { 132, 11, 455 }, + { 137, 0, 70 }, { 135, 0, 1405 }, { 7, 10, 135 }, { 8, 10, 7 }, + { 8, 10, 62 }, { 9, 10, 243 }, { 10, 10, 658 }, { 10, 10, 697 }, + { 11, 10, 456 }, { 139, 10, 756 }, { 9, 10, 395 }, { 138, 10, 79 }, + { 137, 0, 108 }, { 6, 11, 161 }, { 7, 11, 372 }, { 137, 11, 597 }, + { 132, 11, 349 }, { 132, 0, 777 }, { 132, 0, 331 }, { 135, 10, 631 }, + { 133, 0, 747 }, { 6, 11, 432 }, { 6, 11, 608 }, { 139, 11, 322 }, + { 138, 10, 835 }, { 5, 11, 468 }, { 7, 11, 1809 }, { 10, 11, 325 }, + { 11, 11, 856 }, { 12, 11, 345 }, { 143, 11, 104 }, { 133, 11, 223 }, + { 7, 10, 406 }, { 7, 10, 459 }, { 8, 10, 606 }, { 139, 10, 726 }, + { 132, 11, 566 }, { 142, 0, 68 }, { 4, 11, 59 }, { 135, 11, 1394 }, + { 6, 11, 436 }, { 139, 11, 481 }, { 4, 11, 48 }, { 5, 11, 271 }, + { 135, 11, 953 }, { 139, 11, 170 }, { 5, 11, 610 }, { 136, 11, 457 }, + { 133, 11, 755 }, { 135, 11, 1217 }, { 133, 10, 612 }, { 132, 11, 197 }, + { 132, 0, 505 }, { 4, 10, 372 }, { 7, 10, 482 }, { 8, 10, 158 }, + { 9, 10, 602 }, { 9, 10, 615 }, { 10, 10, 245 }, { 10, 10, 678 }, + { 10, 10, 744 }, { 11, 10, 248 }, { 139, 10, 806 }, { 133, 0, 326 }, + { 5, 10, 854 }, { 135, 10, 1991 }, { 4, 0, 691 }, { 146, 0, 16 }, + { 6, 0, 628 }, { 9, 0, 35 }, { 10, 0, 680 }, { 10, 0, 793 }, + { 11, 0, 364 }, { 13, 0, 357 }, { 143, 0, 164 }, { 138, 0, 654 }, + { 6, 0, 32 }, { 7, 0, 385 }, { 7, 0, 757 }, { 7, 0, 1916 }, + { 8, 0, 37 }, { 8, 0, 94 }, { 8, 0, 711 }, { 9, 0, 541 }, + { 10, 0, 162 }, { 10, 0, 795 }, { 11, 0, 989 }, { 11, 0, 1010 }, + { 12, 0, 14 }, { 142, 0, 308 }, { 133, 11, 217 }, { 6, 0, 152 }, + { 6, 0, 349 }, { 6, 0, 1682 }, { 7, 0, 1252 }, { 8, 0, 112 }, + { 9, 0, 435 }, { 9, 0, 668 }, { 10, 0, 290 }, { 10, 0, 319 }, + { 10, 0, 815 }, { 11, 0, 180 }, { 11, 0, 837 }, { 12, 0, 240 }, + { 13, 0, 152 }, { 13, 0, 219 }, { 142, 0, 158 }, { 4, 0, 581 }, + { 134, 0, 726 }, { 5, 10, 195 }, { 135, 10, 1685 }, { 6, 0, 126 }, + { 7, 0, 573 }, { 8, 0, 397 }, { 142, 0, 44 }, { 138, 0, 89 }, + { 7, 10, 1997 }, { 8, 10, 730 }, { 139, 10, 1006 }, { 134, 0, 1531 }, + { 134, 0, 1167 }, { 5, 0, 926 }, { 12, 0, 203 }, { 133, 10, 751 }, + { 4, 11, 165 }, { 7, 11, 1398 }, { 135, 11, 1829 }, { 7, 0, 1232 }, + { 137, 0, 531 }, { 135, 10, 821 }, { 134, 0, 943 }, { 133, 0, 670 }, + { 4, 0, 880 }, { 139, 0, 231 }, { 134, 0, 1617 }, { 135, 0, 1957 }, + { 5, 11, 9 }, { 7, 11, 297 }, { 7, 11, 966 }, { 140, 11, 306 }, + { 6, 0, 975 }, { 134, 0, 985 }, { 5, 10, 950 }, { 5, 10, 994 }, + { 134, 10, 351 }, { 12, 11, 21 }, { 151, 11, 7 }, { 5, 11, 146 }, + { 6, 11, 411 }, { 138, 11, 721 }, { 7, 0, 242 }, { 135, 0, 1942 }, + { 6, 11, 177 }, { 135, 11, 467 }, { 5, 0, 421 }, { 7, 10, 47 }, + { 137, 10, 684 }, { 5, 0, 834 }, { 7, 0, 1202 }, { 8, 0, 14 }, + { 9, 0, 481 }, { 137, 0, 880 }, { 138, 0, 465 }, { 6, 0, 688 }, + { 9, 0, 834 }, { 132, 10, 350 }, { 132, 0, 855 }, { 4, 0, 357 }, + { 6, 0, 172 }, { 7, 0, 143 }, { 137, 0, 413 }, { 133, 11, 200 }, + { 132, 0, 590 }, { 7, 10, 1812 }, { 13, 10, 259 }, { 13, 10, 356 }, + { 14, 10, 242 }, { 147, 10, 114 }, { 133, 10, 967 }, { 11, 0, 114 }, + { 4, 10, 473 }, { 7, 10, 623 }, { 8, 10, 808 }, { 9, 10, 871 }, + { 9, 10, 893 }, { 11, 10, 431 }, { 12, 10, 112 }, { 12, 10, 217 }, + { 12, 10, 243 }, { 12, 10, 562 }, { 12, 10, 663 }, { 12, 10, 683 }, + { 13, 10, 141 }, { 13, 10, 197 }, { 13, 10, 227 }, { 13, 10, 406 }, + { 13, 10, 487 }, { 14, 10, 156 }, { 14, 10, 203 }, { 14, 10, 224 }, + { 14, 10, 256 }, { 18, 10, 58 }, { 150, 10, 0 }, { 138, 10, 286 }, + { 4, 10, 222 }, { 7, 10, 286 }, { 136, 10, 629 }, { 5, 0, 169 }, + { 7, 0, 333 }, { 136, 0, 45 }, { 134, 11, 481 }, { 132, 0, 198 }, + { 4, 0, 24 }, { 5, 0, 140 }, { 5, 0, 185 }, { 7, 0, 1500 }, + { 11, 0, 565 }, { 11, 0, 838 }, { 4, 11, 84 }, { 7, 11, 1482 }, + { 10, 11, 76 }, { 138, 11, 142 }, { 133, 0, 585 }, { 141, 10, 306 }, + { 133, 11, 1015 }, { 4, 11, 315 }, { 5, 11, 507 }, { 135, 11, 1370 }, + { 136, 10, 146 }, { 6, 0, 691 }, { 134, 0, 1503 }, { 4, 0, 334 }, + { 133, 0, 593 }, { 4, 10, 465 }, { 135, 10, 1663 }, { 142, 11, 173 }, + { 135, 0, 913 }, { 12, 0, 116 }, { 134, 11, 1722 }, { 134, 0, 1360 }, + { 132, 0, 802 }, { 8, 11, 222 }, { 8, 11, 476 }, { 9, 11, 238 }, + { 11, 11, 516 }, { 11, 11, 575 }, { 15, 11, 109 }, { 146, 11, 100 }, + { 6, 0, 308 }, { 9, 0, 673 }, { 7, 10, 138 }, { 7, 10, 517 }, + { 139, 10, 238 }, { 132, 0, 709 }, { 6, 0, 1876 }, { 6, 0, 1895 }, + { 9, 0, 994 }, { 9, 0, 1006 }, { 12, 0, 829 }, { 12, 0, 888 }, + { 12, 0, 891 }, { 146, 0, 185 }, { 148, 10, 94 }, { 4, 0, 228 }, + { 133, 0, 897 }, { 7, 0, 1840 }, { 5, 10, 495 }, { 7, 10, 834 }, + { 9, 10, 733 }, { 139, 10, 378 }, { 133, 10, 559 }, { 6, 10, 21 }, + { 6, 10, 1737 }, { 7, 10, 1444 }, { 136, 10, 224 }, { 4, 0, 608 }, + { 133, 0, 497 }, { 6, 11, 40 }, { 135, 11, 1781 }, { 134, 0, 1573 }, + { 135, 0, 2039 }, { 6, 0, 540 }, { 136, 0, 136 }, { 4, 0, 897 }, + { 5, 0, 786 }, { 133, 10, 519 }, { 6, 0, 1878 }, { 6, 0, 1884 }, + { 9, 0, 938 }, { 9, 0, 948 }, { 9, 0, 955 }, { 9, 0, 973 }, + { 9, 0, 1012 }, { 12, 0, 895 }, { 12, 0, 927 }, { 143, 0, 254 }, + { 134, 0, 1469 }, { 133, 0, 999 }, { 4, 0, 299 }, { 135, 0, 1004 }, + { 4, 0, 745 }, { 133, 0, 578 }, { 136, 11, 574 }, { 133, 0, 456 }, + { 134, 0, 1457 }, { 7, 0, 1679 }, { 132, 10, 402 }, { 7, 0, 693 }, + { 8, 0, 180 }, { 12, 0, 163 }, { 8, 10, 323 }, { 136, 10, 479 }, + { 11, 10, 580 }, { 142, 10, 201 }, { 5, 10, 59 }, { 135, 10, 672 }, + { 132, 11, 354 }, { 146, 10, 34 }, { 4, 0, 755 }, { 135, 11, 1558 }, + { 7, 0, 1740 }, { 146, 0, 48 }, { 4, 10, 85 }, { 135, 10, 549 }, + { 139, 0, 338 }, { 133, 10, 94 }, { 134, 0, 1091 }, { 135, 11, 469 }, + { 12, 0, 695 }, { 12, 0, 704 }, { 20, 0, 113 }, { 5, 11, 830 }, + { 14, 11, 338 }, { 148, 11, 81 }, { 135, 0, 1464 }, { 6, 10, 11 }, + { 135, 10, 187 }, { 135, 0, 975 }, { 13, 0, 335 }, { 132, 10, 522 }, + { 134, 0, 1979 }, { 5, 11, 496 }, { 135, 11, 203 }, { 4, 10, 52 }, + { 135, 10, 661 }, { 7, 0, 1566 }, { 8, 0, 269 }, { 9, 0, 212 }, + { 9, 0, 718 }, { 14, 0, 15 }, { 14, 0, 132 }, { 142, 0, 227 }, + { 4, 0, 890 }, { 5, 0, 805 }, { 5, 0, 819 }, { 5, 0, 961 }, + { 6, 0, 396 }, { 6, 0, 1631 }, { 6, 0, 1678 }, { 7, 0, 1967 }, + { 7, 0, 2041 }, { 9, 0, 630 }, { 11, 0, 8 }, { 11, 0, 1019 }, + { 12, 0, 176 }, { 13, 0, 225 }, { 14, 0, 292 }, { 21, 0, 24 }, + { 4, 10, 383 }, { 133, 10, 520 }, { 134, 11, 547 }, { 135, 11, 1748 }, + { 5, 11, 88 }, { 137, 11, 239 }, { 146, 11, 128 }, { 7, 11, 650 }, + { 135, 11, 1310 }, { 4, 10, 281 }, { 5, 10, 38 }, { 7, 10, 194 }, + { 7, 10, 668 }, { 7, 10, 1893 }, { 137, 10, 397 }, { 135, 0, 1815 }, + { 9, 10, 635 }, { 139, 10, 559 }, { 7, 0, 1505 }, { 10, 0, 190 }, + { 10, 0, 634 }, { 11, 0, 792 }, { 12, 0, 358 }, { 140, 0, 447 }, + { 5, 0, 0 }, { 6, 0, 536 }, { 7, 0, 604 }, { 13, 0, 445 }, + { 145, 0, 126 }, { 7, 11, 1076 }, { 9, 11, 80 }, { 11, 11, 78 }, + { 11, 11, 421 }, { 11, 11, 534 }, { 140, 11, 545 }, { 8, 0, 966 }, + { 10, 0, 1023 }, { 14, 11, 369 }, { 146, 11, 72 }, { 135, 11, 1641 }, + { 6, 0, 232 }, { 6, 0, 412 }, { 7, 0, 1074 }, { 8, 0, 9 }, + { 8, 0, 157 }, { 8, 0, 786 }, { 9, 0, 196 }, { 9, 0, 352 }, + { 9, 0, 457 }, { 10, 0, 337 }, { 11, 0, 232 }, { 11, 0, 877 }, + { 12, 0, 480 }, { 140, 0, 546 }, { 135, 0, 958 }, { 4, 0, 382 }, + { 136, 0, 579 }, { 4, 0, 212 }, { 135, 0, 1206 }, { 4, 11, 497 }, + { 5, 11, 657 }, { 135, 11, 1584 }, { 132, 0, 681 }, { 8, 0, 971 }, + { 138, 0, 965 }, { 5, 10, 448 }, { 136, 10, 535 }, { 14, 0, 16 }, + { 146, 0, 44 }, { 11, 0, 584 }, { 11, 0, 616 }, { 14, 0, 275 }, + { 11, 11, 584 }, { 11, 11, 616 }, { 142, 11, 275 }, { 136, 11, 13 }, + { 7, 10, 610 }, { 135, 10, 1501 }, { 7, 11, 642 }, { 8, 11, 250 }, + { 11, 11, 123 }, { 11, 11, 137 }, { 13, 11, 48 }, { 142, 11, 95 }, + { 133, 0, 655 }, { 17, 0, 67 }, { 147, 0, 74 }, { 134, 0, 751 }, + { 134, 0, 1967 }, { 6, 0, 231 }, { 136, 0, 423 }, { 5, 0, 300 }, + { 138, 0, 1016 }, { 4, 10, 319 }, { 5, 10, 699 }, { 138, 10, 673 }, + { 6, 0, 237 }, { 7, 0, 611 }, { 8, 0, 100 }, { 9, 0, 416 }, + { 11, 0, 335 }, { 12, 0, 173 }, { 18, 0, 101 }, { 6, 10, 336 }, + { 8, 10, 552 }, { 9, 10, 285 }, { 10, 10, 99 }, { 139, 10, 568 }, + { 134, 0, 1370 }, { 7, 10, 1406 }, { 9, 10, 218 }, { 141, 10, 222 }, + { 133, 10, 256 }, { 135, 0, 1208 }, { 14, 11, 213 }, { 148, 11, 38 }, + { 6, 0, 1219 }, { 135, 11, 1642 }, { 13, 0, 417 }, { 14, 0, 129 }, + { 143, 0, 15 }, { 10, 11, 545 }, { 140, 11, 301 }, { 17, 10, 39 }, + { 148, 10, 36 }, { 133, 0, 199 }, { 4, 11, 904 }, { 133, 11, 794 }, + { 12, 0, 427 }, { 146, 0, 38 }, { 134, 0, 949 }, { 8, 0, 665 }, + { 135, 10, 634 }, { 132, 10, 618 }, { 135, 10, 259 }, { 132, 10, 339 }, + { 133, 11, 761 }, { 141, 10, 169 }, { 132, 10, 759 }, { 5, 0, 688 }, + { 7, 0, 539 }, { 135, 0, 712 }, { 7, 11, 386 }, { 138, 11, 713 }, + { 134, 0, 1186 }, { 6, 11, 7 }, { 6, 11, 35 }, { 7, 11, 147 }, + { 7, 11, 1069 }, { 7, 11, 1568 }, { 7, 11, 1575 }, { 7, 11, 1917 }, + { 8, 11, 43 }, { 8, 11, 208 }, { 9, 11, 128 }, { 9, 11, 866 }, + { 10, 11, 20 }, { 11, 11, 981 }, { 147, 11, 33 }, { 7, 11, 893 }, + { 8, 10, 482 }, { 141, 11, 424 }, { 6, 0, 312 }, { 6, 0, 1715 }, + { 10, 0, 584 }, { 11, 0, 546 }, { 11, 0, 692 }, { 12, 0, 259 }, + { 12, 0, 295 }, { 13, 0, 46 }, { 141, 0, 154 }, { 5, 10, 336 }, + { 6, 10, 341 }, { 6, 10, 478 }, { 6, 10, 1763 }, { 136, 10, 386 }, + { 137, 0, 151 }, { 132, 0, 588 }, { 152, 0, 4 }, { 6, 11, 322 }, + { 9, 11, 552 }, { 11, 11, 274 }, { 13, 11, 209 }, { 13, 11, 499 }, + { 14, 11, 85 }, { 15, 11, 126 }, { 145, 11, 70 }, { 135, 10, 73 }, + { 4, 0, 231 }, { 5, 0, 61 }, { 6, 0, 104 }, { 7, 0, 729 }, + { 7, 0, 964 }, { 7, 0, 1658 }, { 140, 0, 414 }, { 6, 0, 263 }, + { 138, 0, 757 }, { 135, 10, 1971 }, { 4, 0, 612 }, { 133, 0, 561 }, + { 132, 0, 320 }, { 135, 10, 1344 }, { 8, 11, 83 }, { 8, 11, 817 }, + { 9, 11, 28 }, { 9, 11, 29 }, { 9, 11, 885 }, { 10, 11, 387 }, + { 11, 11, 633 }, { 11, 11, 740 }, { 13, 11, 235 }, { 13, 11, 254 }, + { 15, 11, 143 }, { 143, 11, 146 }, { 5, 10, 396 }, { 134, 10, 501 }, + { 140, 11, 49 }, { 132, 0, 225 }, { 4, 10, 929 }, { 5, 10, 799 }, + { 8, 10, 46 }, { 136, 10, 740 }, { 4, 0, 405 }, { 7, 0, 817 }, + { 14, 0, 58 }, { 17, 0, 37 }, { 146, 0, 124 }, { 133, 0, 974 }, + { 4, 11, 412 }, { 133, 11, 581 }, { 4, 10, 892 }, { 133, 10, 770 }, + { 4, 0, 996 }, { 134, 0, 2026 }, { 4, 0, 527 }, { 5, 0, 235 }, + { 7, 0, 1239 }, { 11, 0, 131 }, { 140, 0, 370 }, { 9, 0, 16 }, + { 13, 0, 386 }, { 135, 11, 421 }, { 7, 0, 956 }, { 7, 0, 1157 }, + { 7, 0, 1506 }, { 7, 0, 1606 }, { 7, 0, 1615 }, { 7, 0, 1619 }, + { 7, 0, 1736 }, { 7, 0, 1775 }, { 8, 0, 590 }, { 9, 0, 324 }, + { 9, 0, 736 }, { 9, 0, 774 }, { 9, 0, 776 }, { 9, 0, 784 }, + { 10, 0, 567 }, { 10, 0, 708 }, { 11, 0, 518 }, { 11, 0, 613 }, + { 11, 0, 695 }, { 11, 0, 716 }, { 11, 0, 739 }, { 11, 0, 770 }, + { 11, 0, 771 }, { 11, 0, 848 }, { 11, 0, 857 }, { 11, 0, 931 }, + { 11, 0, 947 }, { 12, 0, 326 }, { 12, 0, 387 }, { 12, 0, 484 }, + { 12, 0, 528 }, { 12, 0, 552 }, { 12, 0, 613 }, { 13, 0, 189 }, + { 13, 0, 256 }, { 13, 0, 340 }, { 13, 0, 432 }, { 13, 0, 436 }, + { 13, 0, 440 }, { 13, 0, 454 }, { 14, 0, 174 }, { 14, 0, 220 }, + { 14, 0, 284 }, { 14, 0, 390 }, { 145, 0, 121 }, { 135, 10, 158 }, + { 9, 0, 137 }, { 138, 0, 221 }, { 4, 11, 110 }, { 10, 11, 415 }, + { 10, 11, 597 }, { 142, 11, 206 }, { 141, 11, 496 }, { 135, 11, 205 }, + { 151, 10, 25 }, { 135, 11, 778 }, { 7, 11, 1656 }, { 7, 10, 2001 }, + { 9, 11, 369 }, { 10, 11, 338 }, { 10, 11, 490 }, { 11, 11, 154 }, + { 11, 11, 545 }, { 11, 11, 775 }, { 13, 11, 77 }, { 141, 11, 274 }, + { 4, 11, 444 }, { 10, 11, 146 }, { 140, 11, 9 }, { 7, 0, 390 }, + { 138, 0, 140 }, { 135, 0, 1144 }, { 134, 0, 464 }, { 7, 10, 1461 }, + { 140, 10, 91 }, { 132, 10, 602 }, { 4, 11, 283 }, { 135, 11, 1194 }, + { 5, 0, 407 }, { 11, 0, 204 }, { 11, 0, 243 }, { 11, 0, 489 }, + { 12, 0, 293 }, { 19, 0, 37 }, { 20, 0, 73 }, { 150, 0, 38 }, + { 7, 0, 1218 }, { 136, 0, 303 }, { 5, 0, 325 }, { 8, 0, 5 }, + { 8, 0, 227 }, { 9, 0, 105 }, { 10, 0, 585 }, { 12, 0, 614 }, + { 4, 10, 13 }, { 5, 10, 567 }, { 7, 10, 1498 }, { 9, 10, 124 }, + { 11, 10, 521 }, { 140, 10, 405 }, { 135, 10, 1006 }, { 7, 0, 800 }, + { 10, 0, 12 }, { 134, 11, 1720 }, { 135, 0, 1783 }, { 132, 10, 735 }, + { 138, 10, 812 }, { 4, 10, 170 }, { 135, 10, 323 }, { 6, 0, 621 }, + { 13, 0, 504 }, { 144, 0, 89 }, { 5, 10, 304 }, { 135, 10, 1403 }, + { 137, 11, 216 }, { 6, 0, 920 }, { 6, 0, 1104 }, { 9, 11, 183 }, + { 139, 11, 286 }, { 4, 0, 376 }, { 133, 10, 742 }, { 134, 0, 218 }, + { 8, 0, 641 }, { 11, 0, 388 }, { 140, 0, 580 }, { 7, 0, 454 }, + { 7, 0, 782 }, { 8, 0, 768 }, { 140, 0, 686 }, { 137, 11, 33 }, + { 133, 10, 111 }, { 144, 0, 0 }, { 10, 0, 676 }, { 140, 0, 462 }, + { 6, 0, 164 }, { 136, 11, 735 }, { 133, 10, 444 }, { 150, 0, 50 }, + { 7, 11, 1862 }, { 12, 11, 491 }, { 12, 11, 520 }, { 13, 11, 383 }, + { 14, 11, 244 }, { 146, 11, 12 }, { 5, 11, 132 }, { 9, 11, 486 }, + { 9, 11, 715 }, { 10, 11, 458 }, { 11, 11, 373 }, { 11, 11, 668 }, + { 11, 11, 795 }, { 11, 11, 897 }, { 12, 11, 272 }, { 12, 11, 424 }, + { 12, 11, 539 }, { 12, 11, 558 }, { 14, 11, 245 }, { 14, 11, 263 }, + { 14, 11, 264 }, { 14, 11, 393 }, { 142, 11, 403 }, { 8, 10, 123 }, + { 15, 10, 6 }, { 144, 10, 7 }, { 6, 0, 285 }, { 8, 0, 654 }, + { 11, 0, 749 }, { 12, 0, 190 }, { 12, 0, 327 }, { 13, 0, 120 }, + { 13, 0, 121 }, { 13, 0, 327 }, { 15, 0, 47 }, { 146, 0, 40 }, + { 5, 11, 8 }, { 6, 11, 89 }, { 6, 11, 400 }, { 7, 11, 1569 }, + { 7, 11, 1623 }, { 7, 11, 1850 }, { 8, 11, 218 }, { 8, 11, 422 }, + { 9, 11, 570 }, { 138, 11, 626 }, { 6, 11, 387 }, { 7, 11, 882 }, + { 141, 11, 111 }, { 6, 0, 343 }, { 7, 0, 195 }, { 9, 0, 226 }, + { 10, 0, 197 }, { 10, 0, 575 }, { 11, 0, 502 }, { 11, 0, 899 }, + { 6, 11, 224 }, { 7, 11, 877 }, { 137, 11, 647 }, { 5, 10, 937 }, + { 135, 10, 100 }, { 135, 11, 790 }, { 150, 0, 29 }, { 147, 0, 8 }, + { 134, 0, 1812 }, { 149, 0, 8 }, { 135, 11, 394 }, { 7, 0, 1125 }, + { 9, 0, 143 }, { 11, 0, 61 }, { 14, 0, 405 }, { 150, 0, 21 }, + { 10, 11, 755 }, { 147, 11, 29 }, { 9, 11, 378 }, { 141, 11, 162 }, + { 135, 10, 922 }, { 5, 10, 619 }, { 133, 10, 698 }, { 134, 0, 1327 }, + { 6, 0, 1598 }, { 137, 0, 575 }, { 9, 11, 569 }, { 12, 11, 12 }, + { 12, 11, 81 }, { 12, 11, 319 }, { 13, 11, 69 }, { 14, 11, 259 }, + { 16, 11, 87 }, { 17, 11, 1 }, { 17, 11, 21 }, { 17, 11, 24 }, + { 18, 11, 15 }, { 18, 11, 56 }, { 18, 11, 59 }, { 18, 11, 127 }, + { 18, 11, 154 }, { 19, 11, 19 }, { 148, 11, 31 }, { 6, 0, 895 }, + { 135, 11, 1231 }, { 5, 0, 959 }, { 7, 11, 124 }, { 136, 11, 38 }, + { 5, 11, 261 }, { 7, 11, 78 }, { 7, 11, 199 }, { 8, 11, 815 }, + { 9, 11, 126 }, { 138, 11, 342 }, { 5, 10, 917 }, { 134, 10, 1659 }, + { 7, 0, 1759 }, { 5, 11, 595 }, { 135, 11, 1863 }, { 136, 0, 173 }, + { 134, 0, 266 }, { 142, 0, 261 }, { 132, 11, 628 }, { 5, 10, 251 }, + { 5, 10, 956 }, { 8, 10, 268 }, { 9, 10, 214 }, { 146, 10, 142 }, + { 7, 11, 266 }, { 136, 11, 804 }, { 135, 11, 208 }, { 6, 11, 79 }, + { 7, 11, 1021 }, { 135, 11, 1519 }, { 11, 11, 704 }, { 141, 11, 396 }, + { 5, 10, 346 }, { 5, 10, 711 }, { 136, 10, 390 }, { 136, 11, 741 }, + { 134, 11, 376 }, { 134, 0, 1427 }, { 6, 0, 1033 }, { 6, 0, 1217 }, + { 136, 0, 300 }, { 133, 10, 624 }, { 6, 11, 100 }, { 7, 11, 244 }, + { 7, 11, 632 }, { 7, 11, 1609 }, { 8, 11, 178 }, { 8, 11, 638 }, + { 141, 11, 58 }, { 6, 0, 584 }, { 5, 10, 783 }, { 7, 10, 1998 }, + { 135, 10, 2047 }, { 5, 0, 427 }, { 5, 0, 734 }, { 7, 0, 478 }, + { 136, 0, 52 }, { 7, 0, 239 }, { 11, 0, 217 }, { 142, 0, 165 }, + { 134, 0, 1129 }, { 6, 0, 168 }, { 6, 0, 1734 }, { 7, 0, 20 }, + { 7, 0, 1056 }, { 8, 0, 732 }, { 9, 0, 406 }, { 9, 0, 911 }, + { 138, 0, 694 }, { 132, 10, 594 }, { 133, 11, 791 }, { 7, 11, 686 }, + { 8, 11, 33 }, { 8, 11, 238 }, { 10, 11, 616 }, { 11, 11, 467 }, + { 11, 11, 881 }, { 13, 11, 217 }, { 13, 11, 253 }, { 142, 11, 268 }, + { 137, 11, 476 }, { 134, 0, 418 }, { 133, 0, 613 }, { 132, 0, 632 }, + { 132, 11, 447 }, { 7, 0, 32 }, { 7, 0, 984 }, { 8, 0, 85 }, + { 8, 0, 709 }, { 9, 0, 579 }, { 9, 0, 847 }, { 9, 0, 856 }, + { 10, 0, 799 }, { 11, 0, 258 }, { 11, 0, 1007 }, { 12, 0, 331 }, + { 12, 0, 615 }, { 13, 0, 188 }, { 13, 0, 435 }, { 14, 0, 8 }, + { 15, 0, 165 }, { 16, 0, 27 }, { 20, 0, 40 }, { 144, 11, 35 }, + { 4, 11, 128 }, { 5, 11, 415 }, { 6, 11, 462 }, { 7, 11, 294 }, + { 7, 11, 578 }, { 10, 11, 710 }, { 139, 11, 86 }, { 5, 0, 694 }, + { 136, 0, 909 }, { 7, 0, 1109 }, { 11, 0, 7 }, { 5, 10, 37 }, + { 6, 10, 39 }, { 6, 10, 451 }, { 7, 10, 218 }, { 7, 10, 1166 }, + { 7, 10, 1687 }, { 8, 10, 662 }, { 144, 10, 2 }, { 136, 11, 587 }, + { 6, 11, 427 }, { 7, 11, 1018 }, { 138, 11, 692 }, { 4, 11, 195 }, + { 6, 10, 508 }, { 135, 11, 802 }, { 4, 0, 167 }, { 135, 0, 82 }, + { 5, 0, 62 }, { 6, 0, 24 }, { 6, 0, 534 }, { 7, 0, 74 }, + { 7, 0, 678 }, { 7, 0, 684 }, { 7, 0, 1043 }, { 7, 0, 1072 }, + { 8, 0, 280 }, { 8, 0, 541 }, { 8, 0, 686 }, { 9, 0, 258 }, + { 10, 0, 519 }, { 11, 0, 252 }, { 140, 0, 282 }, { 138, 0, 33 }, + { 4, 0, 359 }, { 133, 11, 738 }, { 7, 0, 980 }, { 9, 0, 328 }, + { 13, 0, 186 }, { 13, 0, 364 }, { 7, 10, 635 }, { 7, 10, 796 }, + { 8, 10, 331 }, { 9, 10, 330 }, { 9, 10, 865 }, { 10, 10, 119 }, + { 10, 10, 235 }, { 11, 10, 111 }, { 11, 10, 129 }, { 11, 10, 240 }, + { 12, 10, 31 }, { 12, 10, 66 }, { 12, 10, 222 }, { 12, 10, 269 }, + { 12, 10, 599 }, { 12, 10, 684 }, { 12, 10, 689 }, { 12, 10, 691 }, + { 142, 10, 345 }, { 137, 10, 527 }, { 6, 0, 596 }, { 7, 0, 585 }, + { 135, 10, 702 }, { 134, 11, 1683 }, { 133, 0, 211 }, { 6, 0, 145 }, + { 141, 0, 336 }, { 134, 0, 1130 }, { 7, 0, 873 }, { 6, 10, 37 }, + { 7, 10, 1666 }, { 8, 10, 195 }, { 8, 10, 316 }, { 9, 10, 178 }, + { 9, 10, 276 }, { 9, 10, 339 }, { 9, 10, 536 }, { 10, 10, 102 }, + { 10, 10, 362 }, { 10, 10, 785 }, { 11, 10, 55 }, { 11, 10, 149 }, + { 11, 10, 773 }, { 13, 10, 416 }, { 13, 10, 419 }, { 14, 10, 38 }, + { 14, 10, 41 }, { 142, 10, 210 }, { 8, 0, 840 }, { 136, 0, 841 }, + { 132, 0, 263 }, { 5, 11, 3 }, { 8, 11, 578 }, { 9, 11, 118 }, + { 10, 11, 705 }, { 12, 11, 383 }, { 141, 11, 279 }, { 132, 0, 916 }, + { 133, 11, 229 }, { 133, 10, 645 }, { 15, 0, 155 }, { 16, 0, 79 }, + { 8, 11, 102 }, { 10, 11, 578 }, { 10, 11, 672 }, { 12, 11, 496 }, + { 13, 11, 408 }, { 14, 11, 121 }, { 145, 11, 106 }, { 4, 0, 599 }, + { 5, 0, 592 }, { 6, 0, 1634 }, { 7, 0, 5 }, { 7, 0, 55 }, + { 7, 0, 67 }, { 7, 0, 97 }, { 7, 0, 691 }, { 7, 0, 979 }, + { 7, 0, 1600 }, { 7, 0, 1697 }, { 8, 0, 207 }, { 8, 0, 214 }, + { 8, 0, 231 }, { 8, 0, 294 }, { 8, 0, 336 }, { 8, 0, 428 }, + { 8, 0, 471 }, { 8, 0, 622 }, { 8, 0, 626 }, { 8, 0, 679 }, + { 8, 0, 759 }, { 8, 0, 829 }, { 9, 0, 11 }, { 9, 0, 246 }, + { 9, 0, 484 }, { 9, 0, 573 }, { 9, 0, 706 }, { 9, 0, 762 }, + { 9, 0, 798 }, { 9, 0, 855 }, { 9, 0, 870 }, { 9, 0, 912 }, + { 10, 0, 303 }, { 10, 0, 335 }, { 10, 0, 424 }, { 10, 0, 461 }, + { 10, 0, 543 }, { 10, 0, 759 }, { 10, 0, 814 }, { 11, 0, 59 }, + { 11, 0, 199 }, { 11, 0, 235 }, { 11, 0, 590 }, { 11, 0, 631 }, + { 11, 0, 929 }, { 11, 0, 963 }, { 11, 0, 987 }, { 12, 0, 114 }, + { 12, 0, 182 }, { 12, 0, 226 }, { 12, 0, 332 }, { 12, 0, 439 }, + { 12, 0, 575 }, { 12, 0, 598 }, { 12, 0, 675 }, { 13, 0, 8 }, + { 13, 0, 125 }, { 13, 0, 194 }, { 13, 0, 287 }, { 14, 0, 197 }, + { 14, 0, 383 }, { 15, 0, 53 }, { 17, 0, 63 }, { 19, 0, 46 }, + { 19, 0, 98 }, { 19, 0, 106 }, { 148, 0, 85 }, { 7, 0, 1356 }, + { 132, 10, 290 }, { 6, 10, 70 }, { 7, 10, 1292 }, { 10, 10, 762 }, + { 139, 10, 288 }, { 150, 11, 55 }, { 4, 0, 593 }, { 8, 11, 115 }, + { 8, 11, 350 }, { 9, 11, 489 }, { 10, 11, 128 }, { 11, 11, 306 }, + { 12, 11, 373 }, { 14, 11, 30 }, { 17, 11, 79 }, { 147, 11, 80 }, + { 135, 11, 1235 }, { 134, 0, 1392 }, { 4, 11, 230 }, { 133, 11, 702 }, + { 147, 0, 126 }, { 7, 10, 131 }, { 7, 10, 422 }, { 8, 10, 210 }, + { 140, 10, 573 }, { 134, 0, 1179 }, { 139, 11, 435 }, { 139, 10, 797 }, + { 134, 11, 1728 }, { 4, 0, 162 }, { 18, 11, 26 }, { 19, 11, 42 }, + { 20, 11, 43 }, { 21, 11, 0 }, { 23, 11, 27 }, { 152, 11, 14 }, + { 132, 10, 936 }, { 6, 0, 765 }, { 5, 10, 453 }, { 134, 10, 441 }, + { 133, 0, 187 }, { 135, 0, 1286 }, { 6, 0, 635 }, { 6, 0, 904 }, + { 6, 0, 1210 }, { 134, 0, 1489 }, { 4, 0, 215 }, { 8, 0, 890 }, + { 9, 0, 38 }, { 10, 0, 923 }, { 11, 0, 23 }, { 11, 0, 127 }, + { 139, 0, 796 }, { 6, 0, 1165 }, { 134, 0, 1306 }, { 7, 0, 716 }, + { 13, 0, 97 }, { 141, 0, 251 }, { 132, 10, 653 }, { 136, 0, 657 }, + { 146, 10, 80 }, { 5, 11, 622 }, { 7, 11, 1032 }, { 11, 11, 26 }, + { 11, 11, 213 }, { 11, 11, 707 }, { 12, 11, 380 }, { 13, 11, 226 }, + { 141, 11, 355 }, { 6, 0, 299 }, { 5, 11, 70 }, { 6, 11, 334 }, + { 9, 11, 171 }, { 11, 11, 637 }, { 12, 11, 202 }, { 14, 11, 222 }, + { 145, 11, 42 }, { 142, 0, 134 }, { 4, 11, 23 }, { 5, 11, 313 }, + { 5, 11, 1014 }, { 6, 11, 50 }, { 6, 11, 51 }, { 7, 11, 142 }, + { 7, 11, 384 }, { 9, 11, 783 }, { 139, 11, 741 }, { 4, 11, 141 }, + { 7, 11, 559 }, { 8, 11, 640 }, { 9, 11, 460 }, { 12, 11, 183 }, + { 141, 11, 488 }, { 136, 11, 614 }, { 7, 10, 1368 }, { 8, 10, 232 }, + { 8, 10, 361 }, { 10, 10, 682 }, { 138, 10, 742 }, { 137, 10, 534 }, + { 6, 0, 1082 }, { 140, 0, 658 }, { 137, 10, 27 }, { 135, 0, 2002 }, + { 142, 10, 12 }, { 4, 0, 28 }, { 5, 0, 440 }, { 7, 0, 248 }, + { 11, 0, 833 }, { 140, 0, 344 }, { 7, 10, 736 }, { 139, 10, 264 }, + { 134, 10, 1657 }, { 134, 0, 1654 }, { 138, 0, 531 }, { 5, 11, 222 }, + { 9, 11, 140 }, { 138, 11, 534 }, { 6, 0, 634 }, { 6, 0, 798 }, + { 134, 0, 840 }, { 138, 11, 503 }, { 135, 10, 127 }, { 133, 0, 853 }, + { 5, 11, 154 }, { 7, 11, 1491 }, { 10, 11, 379 }, { 138, 11, 485 }, + { 6, 0, 249 }, { 7, 0, 1234 }, { 139, 0, 573 }, { 133, 11, 716 }, + { 7, 11, 1570 }, { 140, 11, 542 }, { 136, 10, 364 }, { 138, 0, 527 }, + { 4, 11, 91 }, { 5, 11, 388 }, { 5, 11, 845 }, { 6, 11, 206 }, + { 6, 11, 252 }, { 6, 11, 365 }, { 7, 11, 136 }, { 7, 11, 531 }, + { 8, 11, 264 }, { 136, 11, 621 }, { 134, 0, 1419 }, { 135, 11, 1441 }, + { 7, 0, 49 }, { 7, 0, 392 }, { 8, 0, 20 }, { 8, 0, 172 }, + { 8, 0, 690 }, { 9, 0, 383 }, { 9, 0, 845 }, { 10, 0, 48 }, + { 11, 0, 293 }, { 11, 0, 832 }, { 11, 0, 920 }, { 11, 0, 984 }, + { 141, 0, 221 }, { 5, 0, 858 }, { 133, 0, 992 }, { 5, 0, 728 }, + { 137, 10, 792 }, { 5, 10, 909 }, { 9, 10, 849 }, { 138, 10, 805 }, + { 7, 0, 525 }, { 7, 0, 1579 }, { 8, 0, 497 }, { 136, 0, 573 }, + { 6, 0, 268 }, { 137, 0, 62 }, { 135, 11, 576 }, { 134, 0, 1201 }, + { 5, 11, 771 }, { 5, 11, 863 }, { 5, 11, 898 }, { 6, 11, 1632 }, + { 6, 11, 1644 }, { 134, 11, 1780 }, { 133, 11, 331 }, { 7, 0, 193 }, + { 7, 0, 1105 }, { 10, 0, 495 }, { 7, 10, 397 }, { 8, 10, 124 }, + { 8, 10, 619 }, { 9, 10, 305 }, { 11, 10, 40 }, { 12, 10, 349 }, + { 13, 10, 134 }, { 13, 10, 295 }, { 14, 10, 155 }, { 15, 10, 120 }, + { 146, 10, 105 }, { 138, 0, 106 }, { 6, 0, 859 }, { 5, 11, 107 }, + { 7, 11, 201 }, { 136, 11, 518 }, { 6, 11, 446 }, { 135, 11, 1817 }, + { 13, 0, 23 }, { 4, 10, 262 }, { 135, 10, 342 }, { 133, 10, 641 }, + { 137, 11, 851 }, { 6, 0, 925 }, { 137, 0, 813 }, { 132, 11, 504 }, + { 6, 0, 613 }, { 136, 0, 223 }, { 4, 10, 99 }, { 6, 10, 250 }, + { 6, 10, 346 }, { 8, 10, 127 }, { 138, 10, 81 }, { 136, 0, 953 }, + { 132, 10, 915 }, { 139, 11, 892 }, { 5, 10, 75 }, { 9, 10, 517 }, + { 10, 10, 470 }, { 12, 10, 155 }, { 141, 10, 224 }, { 4, 0, 666 }, + { 7, 0, 1017 }, { 7, 11, 996 }, { 138, 11, 390 }, { 5, 11, 883 }, + { 133, 11, 975 }, { 14, 10, 83 }, { 142, 11, 83 }, { 4, 0, 670 }, + { 5, 11, 922 }, { 134, 11, 1707 }, { 135, 0, 216 }, { 9, 0, 40 }, + { 11, 0, 136 }, { 135, 11, 787 }, { 5, 10, 954 }, { 5, 11, 993 }, + { 7, 11, 515 }, { 137, 11, 91 }, { 139, 0, 259 }, { 7, 0, 1114 }, + { 9, 0, 310 }, { 9, 0, 682 }, { 10, 0, 440 }, { 13, 0, 40 }, + { 6, 10, 304 }, { 8, 10, 418 }, { 11, 10, 341 }, { 139, 10, 675 }, + { 14, 0, 296 }, { 9, 10, 410 }, { 139, 10, 425 }, { 10, 11, 377 }, + { 12, 11, 363 }, { 13, 11, 68 }, { 13, 11, 94 }, { 14, 11, 108 }, + { 142, 11, 306 }, { 7, 0, 1401 }, { 135, 0, 1476 }, { 4, 0, 296 }, + { 6, 0, 475 }, { 7, 0, 401 }, { 7, 0, 1410 }, { 7, 0, 1594 }, + { 7, 0, 1674 }, { 8, 0, 63 }, { 8, 0, 660 }, { 137, 0, 74 }, + { 4, 0, 139 }, { 4, 0, 388 }, { 140, 0, 188 }, { 132, 0, 797 }, + { 132, 11, 766 }, { 5, 11, 103 }, { 7, 11, 921 }, { 8, 11, 580 }, + { 8, 11, 593 }, { 8, 11, 630 }, { 138, 11, 28 }, { 4, 11, 911 }, + { 5, 11, 867 }, { 133, 11, 1013 }, { 134, 10, 14 }, { 134, 0, 1572 }, + { 134, 10, 1708 }, { 21, 0, 39 }, { 5, 10, 113 }, { 6, 10, 243 }, + { 7, 10, 1865 }, { 11, 10, 161 }, { 16, 10, 37 }, { 145, 10, 99 }, + { 7, 11, 1563 }, { 141, 11, 182 }, { 5, 11, 135 }, { 6, 11, 519 }, + { 7, 11, 1722 }, { 10, 11, 271 }, { 11, 11, 261 }, { 145, 11, 54 }, + { 132, 10, 274 }, { 134, 0, 1594 }, { 4, 11, 300 }, { 5, 11, 436 }, + { 135, 11, 484 }, { 4, 0, 747 }, { 6, 0, 290 }, { 7, 0, 649 }, + { 7, 0, 1479 }, { 135, 0, 1583 }, { 133, 11, 535 }, { 147, 11, 82 }, + { 133, 0, 232 }, { 137, 0, 887 }, { 135, 10, 166 }, { 136, 0, 521 }, + { 4, 0, 14 }, { 7, 0, 472 }, { 7, 0, 1801 }, { 10, 0, 748 }, + { 141, 0, 458 }, { 134, 0, 741 }, { 134, 0, 992 }, { 16, 0, 111 }, + { 137, 10, 304 }, { 4, 0, 425 }, { 5, 11, 387 }, { 7, 11, 557 }, + { 12, 11, 547 }, { 142, 11, 86 }, { 135, 11, 1747 }, { 5, 10, 654 }, + { 135, 11, 1489 }, { 7, 0, 789 }, { 4, 11, 6 }, { 5, 11, 708 }, + { 136, 11, 75 }, { 6, 10, 273 }, { 10, 10, 188 }, { 13, 10, 377 }, + { 146, 10, 77 }, { 6, 0, 1593 }, { 4, 11, 303 }, { 7, 11, 619 }, + { 10, 11, 547 }, { 10, 11, 687 }, { 11, 11, 122 }, { 140, 11, 601 }, + { 134, 0, 1768 }, { 135, 10, 410 }, { 138, 11, 772 }, { 11, 0, 233 }, + { 139, 10, 524 }, { 5, 0, 943 }, { 134, 0, 1779 }, { 134, 10, 1785 }, + { 136, 11, 529 }, { 132, 0, 955 }, { 5, 0, 245 }, { 6, 0, 576 }, + { 7, 0, 582 }, { 136, 0, 225 }, { 132, 10, 780 }, { 142, 0, 241 }, + { 134, 0, 1943 }, { 4, 11, 106 }, { 7, 11, 310 }, { 7, 11, 1785 }, + { 10, 11, 690 }, { 139, 11, 717 }, { 134, 0, 1284 }, { 5, 11, 890 }, + { 133, 11, 988 }, { 6, 11, 626 }, { 142, 11, 431 }, { 10, 11, 706 }, + { 145, 11, 32 }, { 137, 11, 332 }, { 132, 11, 698 }, { 135, 0, 709 }, + { 5, 10, 948 }, { 138, 11, 17 }, { 136, 0, 554 }, { 134, 0, 1564 }, + { 139, 10, 941 }, { 132, 0, 443 }, { 134, 0, 909 }, { 134, 11, 84 }, + { 142, 0, 280 }, { 4, 10, 532 }, { 5, 10, 706 }, { 135, 10, 662 }, + { 132, 0, 729 }, { 5, 10, 837 }, { 6, 10, 1651 }, { 139, 10, 985 }, + { 135, 10, 1861 }, { 4, 0, 348 }, { 152, 11, 3 }, { 5, 11, 986 }, + { 6, 11, 130 }, { 7, 11, 1582 }, { 8, 11, 458 }, { 10, 11, 101 }, + { 10, 11, 318 }, { 138, 11, 823 }, { 134, 0, 758 }, { 4, 0, 298 }, + { 137, 0, 848 }, { 4, 10, 330 }, { 7, 10, 933 }, { 7, 10, 2012 }, + { 136, 10, 292 }, { 7, 11, 1644 }, { 137, 11, 129 }, { 6, 0, 1422 }, + { 9, 0, 829 }, { 135, 10, 767 }, { 5, 0, 164 }, { 7, 0, 121 }, + { 142, 0, 189 }, { 7, 0, 812 }, { 7, 0, 1261 }, { 7, 0, 1360 }, + { 9, 0, 632 }, { 140, 0, 352 }, { 135, 11, 1788 }, { 139, 0, 556 }, + { 135, 11, 997 }, { 145, 10, 114 }, { 4, 0, 172 }, { 9, 0, 611 }, + { 10, 0, 436 }, { 12, 0, 673 }, { 13, 0, 255 }, { 137, 10, 883 }, + { 11, 0, 530 }, { 138, 10, 274 }, { 133, 0, 844 }, { 134, 0, 984 }, + { 13, 0, 232 }, { 18, 0, 35 }, { 4, 10, 703 }, { 135, 10, 207 }, + { 132, 10, 571 }, { 9, 0, 263 }, { 10, 0, 147 }, { 138, 0, 492 }, + { 7, 11, 1756 }, { 137, 11, 98 }, { 5, 10, 873 }, { 5, 10, 960 }, + { 8, 10, 823 }, { 137, 10, 881 }, { 133, 0, 537 }, { 132, 0, 859 }, + { 7, 11, 1046 }, { 139, 11, 160 }, { 137, 0, 842 }, { 139, 10, 283 }, + { 5, 10, 33 }, { 6, 10, 470 }, { 139, 10, 424 }, { 6, 11, 45 }, + { 7, 11, 433 }, { 8, 11, 129 }, { 9, 11, 21 }, { 10, 11, 392 }, + { 11, 11, 79 }, { 12, 11, 499 }, { 13, 11, 199 }, { 141, 11, 451 }, + { 135, 0, 1291 }, { 135, 10, 1882 }, { 7, 11, 558 }, { 136, 11, 353 }, + { 134, 0, 1482 }, { 5, 0, 230 }, { 5, 0, 392 }, { 6, 0, 420 }, + { 9, 0, 568 }, { 140, 0, 612 }, { 6, 0, 262 }, { 7, 10, 90 }, + { 7, 10, 664 }, { 7, 10, 830 }, { 7, 10, 1380 }, { 7, 10, 2025 }, + { 8, 11, 81 }, { 8, 10, 448 }, { 8, 10, 828 }, { 9, 11, 189 }, + { 9, 11, 201 }, { 11, 11, 478 }, { 11, 11, 712 }, { 141, 11, 338 }, + { 142, 0, 31 }, { 5, 11, 353 }, { 151, 11, 26 }, { 132, 0, 753 }, + { 4, 0, 0 }, { 5, 0, 41 }, { 7, 0, 1459 }, { 7, 0, 1469 }, + { 7, 0, 1859 }, { 9, 0, 549 }, { 139, 0, 905 }, { 9, 10, 417 }, + { 137, 10, 493 }, { 135, 11, 1113 }, { 133, 0, 696 }, { 141, 11, 448 }, + { 134, 10, 295 }, { 132, 0, 834 }, { 4, 0, 771 }, { 5, 10, 1019 }, + { 6, 11, 25 }, { 7, 11, 855 }, { 7, 11, 1258 }, { 144, 11, 32 }, + { 134, 0, 1076 }, { 133, 0, 921 }, { 133, 0, 674 }, { 4, 11, 4 }, + { 7, 11, 1118 }, { 7, 11, 1320 }, { 7, 11, 1706 }, { 8, 11, 277 }, + { 9, 11, 622 }, { 10, 11, 9 }, { 11, 11, 724 }, { 12, 11, 350 }, + { 12, 11, 397 }, { 13, 11, 28 }, { 13, 11, 159 }, { 15, 11, 89 }, + { 18, 11, 5 }, { 19, 11, 9 }, { 20, 11, 34 }, { 150, 11, 47 }, + { 134, 10, 208 }, { 6, 0, 444 }, { 136, 0, 308 }, { 6, 0, 180 }, + { 7, 0, 1137 }, { 8, 0, 751 }, { 139, 0, 805 }, { 4, 0, 183 }, + { 7, 0, 271 }, { 11, 0, 824 }, { 11, 0, 952 }, { 13, 0, 278 }, + { 13, 0, 339 }, { 13, 0, 482 }, { 14, 0, 424 }, { 148, 0, 99 }, + { 7, 11, 317 }, { 135, 11, 569 }, { 4, 0, 19 }, { 5, 0, 477 }, + { 5, 0, 596 }, { 6, 0, 505 }, { 7, 0, 1221 }, { 11, 0, 907 }, + { 12, 0, 209 }, { 141, 0, 214 }, { 135, 0, 1215 }, { 6, 0, 271 }, + { 7, 0, 398 }, { 8, 0, 387 }, { 10, 0, 344 }, { 7, 10, 448 }, + { 7, 10, 1629 }, { 7, 10, 1813 }, { 8, 10, 442 }, { 9, 10, 710 }, + { 10, 10, 282 }, { 138, 10, 722 }, { 11, 10, 844 }, { 12, 10, 104 }, + { 140, 10, 625 }, { 134, 11, 255 }, { 133, 10, 787 }, { 134, 0, 1645 }, + { 11, 11, 956 }, { 151, 11, 3 }, { 6, 0, 92 }, { 6, 0, 188 }, + { 7, 0, 209 }, { 7, 0, 1269 }, { 7, 0, 1524 }, { 7, 0, 1876 }, + { 8, 0, 661 }, { 10, 0, 42 }, { 10, 0, 228 }, { 11, 0, 58 }, + { 11, 0, 1020 }, { 12, 0, 58 }, { 12, 0, 118 }, { 141, 0, 32 }, + { 4, 0, 459 }, { 133, 0, 966 }, { 4, 11, 536 }, { 7, 11, 1141 }, + { 10, 11, 723 }, { 139, 11, 371 }, { 140, 0, 330 }, { 134, 0, 1557 }, + { 7, 11, 285 }, { 135, 11, 876 }, { 136, 10, 491 }, { 135, 11, 560 }, + { 6, 0, 18 }, { 7, 0, 179 }, { 7, 0, 932 }, { 8, 0, 548 }, + { 8, 0, 757 }, { 9, 0, 54 }, { 9, 0, 65 }, { 9, 0, 532 }, + { 9, 0, 844 }, { 10, 0, 113 }, { 10, 0, 117 }, { 10, 0, 315 }, + { 10, 0, 560 }, { 10, 0, 622 }, { 10, 0, 798 }, { 11, 0, 153 }, + { 11, 0, 351 }, { 11, 0, 375 }, { 12, 0, 78 }, { 12, 0, 151 }, + { 12, 0, 392 }, { 12, 0, 666 }, { 14, 0, 248 }, { 143, 0, 23 }, + { 6, 0, 1742 }, { 132, 11, 690 }, { 4, 10, 403 }, { 5, 10, 441 }, + { 7, 10, 450 }, { 10, 10, 840 }, { 11, 10, 101 }, { 12, 10, 193 }, + { 141, 10, 430 }, { 133, 0, 965 }, { 134, 0, 182 }, { 10, 0, 65 }, + { 10, 0, 488 }, { 138, 0, 497 }, { 135, 11, 1346 }, { 6, 0, 973 }, + { 6, 0, 1158 }, { 10, 11, 200 }, { 19, 11, 2 }, { 151, 11, 22 }, + { 4, 11, 190 }, { 133, 11, 554 }, { 133, 10, 679 }, { 7, 0, 328 }, + { 137, 10, 326 }, { 133, 11, 1001 }, { 9, 0, 588 }, { 138, 0, 260 }, + { 133, 11, 446 }, { 135, 10, 1128 }, { 135, 10, 1796 }, { 147, 11, 119 }, + { 134, 0, 1786 }, { 6, 0, 1328 }, { 6, 0, 1985 }, { 8, 0, 962 }, + { 138, 0, 1017 }, { 135, 0, 308 }, { 11, 0, 508 }, { 4, 10, 574 }, + { 7, 10, 350 }, { 7, 10, 1024 }, { 8, 10, 338 }, { 9, 10, 677 }, + { 138, 10, 808 }, { 138, 11, 752 }, { 135, 10, 1081 }, { 137, 11, 96 }, + { 7, 10, 1676 }, { 135, 10, 2037 }, { 136, 0, 588 }, { 132, 11, 304 }, + { 133, 0, 614 }, { 140, 0, 793 }, { 136, 0, 287 }, { 137, 10, 297 }, + { 141, 10, 37 }, { 6, 11, 53 }, { 6, 11, 199 }, { 7, 11, 1408 }, + { 8, 11, 32 }, { 8, 11, 93 }, { 9, 11, 437 }, { 10, 11, 397 }, + { 10, 11, 629 }, { 11, 11, 593 }, { 11, 11, 763 }, { 13, 11, 326 }, + { 145, 11, 35 }, { 134, 11, 105 }, { 9, 11, 320 }, { 10, 11, 506 }, + { 138, 11, 794 }, { 5, 11, 114 }, { 5, 11, 255 }, { 141, 11, 285 }, + { 140, 0, 290 }, { 7, 11, 2035 }, { 8, 11, 19 }, { 9, 11, 89 }, + { 138, 11, 831 }, { 134, 0, 1136 }, { 7, 0, 719 }, { 8, 0, 796 }, + { 8, 0, 809 }, { 8, 0, 834 }, { 6, 10, 306 }, { 7, 10, 1140 }, + { 7, 10, 1340 }, { 8, 10, 133 }, { 138, 10, 449 }, { 139, 10, 1011 }, + { 5, 0, 210 }, { 6, 0, 213 }, { 7, 0, 60 }, { 10, 0, 364 }, + { 139, 0, 135 }, { 5, 0, 607 }, { 8, 0, 326 }, { 136, 0, 490 }, + { 138, 11, 176 }, { 132, 0, 701 }, { 5, 0, 472 }, { 7, 0, 380 }, + { 137, 0, 758 }, { 135, 0, 1947 }, { 6, 0, 1079 }, { 138, 0, 278 }, + { 138, 11, 391 }, { 5, 10, 329 }, { 8, 10, 260 }, { 139, 11, 156 }, + { 4, 0, 386 }, { 7, 0, 41 }, { 8, 0, 405 }, { 8, 0, 728 }, + { 9, 0, 497 }, { 11, 0, 110 }, { 11, 0, 360 }, { 15, 0, 37 }, + { 144, 0, 84 }, { 5, 0, 46 }, { 7, 0, 1452 }, { 7, 0, 1480 }, + { 8, 0, 634 }, { 140, 0, 472 }, { 136, 0, 961 }, { 4, 0, 524 }, + { 136, 0, 810 }, { 10, 0, 238 }, { 141, 0, 33 }, { 132, 10, 657 }, + { 152, 10, 7 }, { 133, 0, 532 }, { 5, 0, 997 }, { 135, 10, 1665 }, + { 7, 11, 594 }, { 7, 11, 851 }, { 7, 11, 1858 }, { 9, 11, 411 }, + { 9, 11, 574 }, { 9, 11, 666 }, { 9, 11, 737 }, { 10, 11, 346 }, + { 10, 11, 712 }, { 11, 11, 246 }, { 11, 11, 432 }, { 11, 11, 517 }, + { 11, 11, 647 }, { 11, 11, 679 }, { 11, 11, 727 }, { 12, 11, 304 }, + { 12, 11, 305 }, { 12, 11, 323 }, { 12, 11, 483 }, { 12, 11, 572 }, + { 12, 11, 593 }, { 12, 11, 602 }, { 13, 11, 95 }, { 13, 11, 101 }, + { 13, 11, 171 }, { 13, 11, 315 }, { 13, 11, 378 }, { 13, 11, 425 }, + { 13, 11, 475 }, { 14, 11, 63 }, { 14, 11, 380 }, { 14, 11, 384 }, + { 15, 11, 133 }, { 18, 11, 112 }, { 148, 11, 72 }, { 5, 11, 955 }, + { 136, 11, 814 }, { 134, 0, 1301 }, { 5, 10, 66 }, { 7, 10, 1896 }, + { 136, 10, 288 }, { 133, 11, 56 }, { 134, 10, 1643 }, { 6, 0, 1298 }, + { 148, 11, 100 }, { 5, 0, 782 }, { 5, 0, 829 }, { 6, 0, 671 }, + { 6, 0, 1156 }, { 6, 0, 1738 }, { 137, 11, 621 }, { 4, 0, 306 }, + { 5, 0, 570 }, { 7, 0, 1347 }, { 5, 10, 91 }, { 5, 10, 648 }, + { 5, 10, 750 }, { 5, 10, 781 }, { 6, 10, 54 }, { 6, 10, 112 }, + { 6, 10, 402 }, { 6, 10, 1732 }, { 7, 10, 315 }, { 7, 10, 749 }, + { 7, 10, 1900 }, { 9, 10, 78 }, { 9, 10, 508 }, { 10, 10, 611 }, + { 10, 10, 811 }, { 11, 10, 510 }, { 11, 10, 728 }, { 13, 10, 36 }, + { 14, 10, 39 }, { 16, 10, 83 }, { 17, 10, 124 }, { 148, 10, 30 }, + { 8, 10, 570 }, { 9, 11, 477 }, { 141, 11, 78 }, { 4, 11, 639 }, + { 10, 11, 4 }, { 10, 10, 322 }, { 10, 10, 719 }, { 11, 10, 407 }, + { 11, 11, 638 }, { 12, 11, 177 }, { 148, 11, 57 }, { 7, 0, 1823 }, + { 139, 0, 693 }, { 7, 0, 759 }, { 5, 11, 758 }, { 8, 10, 125 }, + { 8, 10, 369 }, { 8, 10, 524 }, { 10, 10, 486 }, { 11, 10, 13 }, + { 11, 10, 381 }, { 11, 10, 736 }, { 11, 10, 766 }, { 11, 10, 845 }, + { 13, 10, 114 }, { 13, 10, 292 }, { 142, 10, 47 }, { 7, 0, 1932 }, + { 6, 10, 1684 }, { 6, 10, 1731 }, { 7, 10, 356 }, { 8, 10, 54 }, + { 8, 10, 221 }, { 9, 10, 225 }, { 9, 10, 356 }, { 10, 10, 77 }, + { 10, 10, 446 }, { 10, 10, 731 }, { 12, 10, 404 }, { 141, 10, 491 }, + { 135, 11, 552 }, { 135, 11, 1112 }, { 4, 0, 78 }, { 5, 0, 96 }, + { 5, 0, 182 }, { 6, 0, 1257 }, { 7, 0, 1724 }, { 7, 0, 1825 }, + { 10, 0, 394 }, { 10, 0, 471 }, { 11, 0, 532 }, { 14, 0, 340 }, + { 145, 0, 88 }, { 139, 11, 328 }, { 135, 0, 1964 }, { 132, 10, 411 }, + { 4, 10, 80 }, { 5, 10, 44 }, { 137, 11, 133 }, { 5, 11, 110 }, + { 6, 11, 169 }, { 6, 11, 1702 }, { 7, 11, 400 }, { 8, 11, 538 }, + { 9, 11, 184 }, { 9, 11, 524 }, { 140, 11, 218 }, { 4, 0, 521 }, + { 5, 10, 299 }, { 7, 10, 1083 }, { 140, 11, 554 }, { 6, 11, 133 }, + { 9, 11, 353 }, { 12, 11, 628 }, { 146, 11, 79 }, { 6, 0, 215 }, + { 7, 0, 584 }, { 7, 0, 1028 }, { 7, 0, 1473 }, { 7, 0, 1721 }, + { 9, 0, 424 }, { 138, 0, 779 }, { 7, 0, 857 }, { 7, 0, 1209 }, + { 7, 10, 1713 }, { 9, 10, 537 }, { 10, 10, 165 }, { 12, 10, 219 }, + { 140, 10, 561 }, { 4, 10, 219 }, { 6, 11, 93 }, { 7, 11, 1422 }, + { 7, 10, 1761 }, { 7, 11, 1851 }, { 8, 11, 673 }, { 9, 10, 86 }, + { 9, 11, 529 }, { 140, 11, 43 }, { 137, 11, 371 }, { 136, 0, 671 }, + { 5, 0, 328 }, { 135, 0, 918 }, { 132, 0, 529 }, { 9, 11, 25 }, + { 10, 11, 467 }, { 138, 11, 559 }, { 4, 11, 335 }, { 135, 11, 942 }, + { 134, 0, 716 }, { 134, 0, 1509 }, { 6, 0, 67 }, { 7, 0, 258 }, + { 7, 0, 1630 }, { 9, 0, 354 }, { 9, 0, 675 }, { 10, 0, 830 }, + { 14, 0, 80 }, { 17, 0, 80 }, { 140, 10, 428 }, { 134, 0, 1112 }, + { 6, 0, 141 }, { 7, 0, 225 }, { 9, 0, 59 }, { 9, 0, 607 }, + { 10, 0, 312 }, { 11, 0, 687 }, { 12, 0, 555 }, { 13, 0, 373 }, + { 13, 0, 494 }, { 148, 0, 58 }, { 133, 10, 514 }, { 8, 11, 39 }, + { 10, 11, 773 }, { 11, 11, 84 }, { 12, 11, 205 }, { 142, 11, 1 }, + { 8, 0, 783 }, { 5, 11, 601 }, { 133, 11, 870 }, { 136, 11, 594 }, + { 4, 10, 55 }, { 5, 10, 301 }, { 6, 10, 571 }, { 14, 10, 49 }, + { 146, 10, 102 }, { 132, 11, 181 }, { 134, 11, 1652 }, { 133, 10, 364 }, + { 4, 11, 97 }, { 5, 11, 147 }, { 6, 11, 286 }, { 7, 11, 1362 }, + { 141, 11, 176 }, { 4, 10, 76 }, { 7, 10, 1550 }, { 9, 10, 306 }, + { 9, 10, 430 }, { 9, 10, 663 }, { 10, 10, 683 }, { 11, 10, 427 }, + { 11, 10, 753 }, { 12, 10, 334 }, { 12, 10, 442 }, { 14, 10, 258 }, + { 14, 10, 366 }, { 143, 10, 131 }, { 137, 10, 52 }, { 6, 0, 955 }, + { 134, 0, 1498 }, { 6, 11, 375 }, { 7, 11, 169 }, { 7, 11, 254 }, + { 136, 11, 780 }, { 7, 0, 430 }, { 11, 0, 46 }, { 14, 0, 343 }, + { 142, 11, 343 }, { 135, 0, 1183 }, { 5, 0, 602 }, { 7, 0, 2018 }, + { 9, 0, 418 }, { 9, 0, 803 }, { 135, 11, 1447 }, { 8, 0, 677 }, + { 135, 11, 1044 }, { 139, 11, 285 }, { 4, 10, 656 }, { 135, 10, 779 }, + { 135, 10, 144 }, { 5, 11, 629 }, { 135, 11, 1549 }, { 135, 10, 1373 }, + { 138, 11, 209 }, { 7, 10, 554 }, { 7, 10, 605 }, { 141, 10, 10 }, + { 5, 10, 838 }, { 5, 10, 841 }, { 134, 10, 1649 }, { 133, 10, 1012 }, + { 6, 0, 1357 }, { 134, 0, 1380 }, { 144, 0, 53 }, { 6, 0, 590 }, + { 7, 10, 365 }, { 7, 10, 1357 }, { 7, 10, 1497 }, { 8, 10, 154 }, + { 141, 10, 281 }, { 133, 10, 340 }, { 132, 11, 420 }, { 135, 0, 329 }, + { 147, 11, 32 }, { 4, 0, 469 }, { 10, 11, 429 }, { 139, 10, 495 }, + { 8, 10, 261 }, { 9, 10, 144 }, { 9, 10, 466 }, { 10, 10, 370 }, + { 12, 10, 470 }, { 13, 10, 144 }, { 142, 10, 348 }, { 142, 0, 460 }, + { 4, 11, 325 }, { 9, 10, 897 }, { 138, 11, 125 }, { 6, 0, 1743 }, + { 6, 10, 248 }, { 9, 10, 546 }, { 10, 10, 535 }, { 11, 10, 681 }, + { 141, 10, 135 }, { 4, 0, 990 }, { 5, 0, 929 }, { 6, 0, 340 }, + { 8, 0, 376 }, { 8, 0, 807 }, { 8, 0, 963 }, { 8, 0, 980 }, + { 138, 0, 1007 }, { 134, 0, 1603 }, { 140, 0, 250 }, { 4, 11, 714 }, + { 133, 11, 469 }, { 134, 10, 567 }, { 136, 10, 445 }, { 5, 0, 218 }, + { 7, 0, 1610 }, { 8, 0, 646 }, { 10, 0, 83 }, { 11, 11, 138 }, + { 140, 11, 40 }, { 7, 0, 1512 }, { 135, 0, 1794 }, { 135, 11, 1216 }, + { 11, 0, 0 }, { 16, 0, 78 }, { 132, 11, 718 }, { 133, 0, 571 }, + { 132, 0, 455 }, { 134, 0, 1012 }, { 5, 11, 124 }, { 5, 11, 144 }, + { 6, 11, 548 }, { 7, 11, 15 }, { 7, 11, 153 }, { 137, 11, 629 }, + { 142, 11, 10 }, { 6, 11, 75 }, { 7, 11, 1531 }, { 8, 11, 416 }, + { 9, 11, 240 }, { 9, 11, 275 }, { 10, 11, 100 }, { 11, 11, 658 }, + { 11, 11, 979 }, { 12, 11, 86 }, { 13, 11, 468 }, { 14, 11, 66 }, + { 14, 11, 207 }, { 15, 11, 20 }, { 15, 11, 25 }, { 144, 11, 58 }, + { 132, 10, 577 }, { 5, 11, 141 }, { 5, 11, 915 }, { 6, 11, 1783 }, + { 7, 11, 211 }, { 7, 11, 698 }, { 7, 11, 1353 }, { 9, 11, 83 }, + { 9, 11, 281 }, { 10, 11, 376 }, { 10, 11, 431 }, { 11, 11, 543 }, + { 12, 11, 664 }, { 13, 11, 280 }, { 13, 11, 428 }, { 14, 11, 61 }, + { 14, 11, 128 }, { 17, 11, 52 }, { 145, 11, 81 }, { 6, 0, 161 }, + { 7, 0, 372 }, { 137, 0, 597 }, { 132, 0, 349 }, { 10, 11, 702 }, + { 139, 11, 245 }, { 134, 0, 524 }, { 134, 10, 174 }, { 6, 0, 432 }, + { 9, 0, 751 }, { 139, 0, 322 }, { 147, 11, 94 }, { 4, 11, 338 }, + { 133, 11, 400 }, { 5, 0, 468 }, { 10, 0, 325 }, { 11, 0, 856 }, + { 12, 0, 345 }, { 143, 0, 104 }, { 133, 0, 223 }, { 132, 0, 566 }, + { 4, 11, 221 }, { 5, 11, 659 }, { 5, 11, 989 }, { 7, 11, 697 }, + { 7, 11, 1211 }, { 138, 11, 284 }, { 135, 11, 1070 }, { 4, 0, 59 }, + { 135, 0, 1394 }, { 6, 0, 436 }, { 11, 0, 481 }, { 5, 10, 878 }, + { 133, 10, 972 }, { 4, 0, 48 }, { 5, 0, 271 }, { 135, 0, 953 }, + { 5, 0, 610 }, { 136, 0, 457 }, { 4, 0, 773 }, { 5, 0, 618 }, + { 137, 0, 756 }, { 133, 0, 755 }, { 135, 0, 1217 }, { 138, 11, 507 }, + { 132, 10, 351 }, { 132, 0, 197 }, { 143, 11, 78 }, { 4, 11, 188 }, + { 7, 11, 805 }, { 11, 11, 276 }, { 142, 11, 293 }, { 5, 11, 884 }, + { 139, 11, 991 }, { 132, 10, 286 }, { 10, 0, 259 }, { 10, 0, 428 }, + { 7, 10, 438 }, { 7, 10, 627 }, { 7, 10, 1516 }, { 8, 10, 40 }, + { 9, 10, 56 }, { 9, 10, 294 }, { 11, 10, 969 }, { 11, 10, 995 }, + { 146, 10, 148 }, { 4, 0, 356 }, { 5, 0, 217 }, { 5, 0, 492 }, + { 5, 0, 656 }, { 8, 0, 544 }, { 136, 11, 544 }, { 5, 0, 259 }, + { 6, 0, 1230 }, { 7, 0, 414 }, { 7, 0, 854 }, { 142, 0, 107 }, + { 132, 0, 1007 }, { 15, 0, 14 }, { 144, 0, 5 }, { 6, 0, 1580 }, + { 132, 10, 738 }, { 132, 11, 596 }, { 132, 0, 673 }, { 133, 10, 866 }, + { 6, 0, 1843 }, { 135, 11, 1847 }, { 4, 0, 165 }, { 7, 0, 1398 }, + { 135, 0, 1829 }, { 135, 11, 1634 }, { 147, 11, 65 }, { 6, 0, 885 }, + { 6, 0, 1009 }, { 137, 0, 809 }, { 133, 10, 116 }, { 132, 10, 457 }, + { 136, 11, 770 }, { 9, 0, 498 }, { 12, 0, 181 }, { 10, 11, 361 }, + { 142, 11, 316 }, { 134, 11, 595 }, { 5, 0, 9 }, { 7, 0, 297 }, + { 7, 0, 966 }, { 140, 0, 306 }, { 4, 11, 89 }, { 5, 11, 489 }, + { 6, 11, 315 }, { 7, 11, 553 }, { 7, 11, 1745 }, { 138, 11, 243 }, + { 134, 0, 1487 }, { 132, 0, 437 }, { 5, 0, 146 }, { 6, 0, 411 }, + { 138, 0, 721 }, { 5, 10, 527 }, { 6, 10, 189 }, { 135, 10, 859 }, + { 11, 10, 104 }, { 11, 10, 554 }, { 15, 10, 60 }, { 143, 10, 125 }, + { 6, 11, 1658 }, { 9, 11, 3 }, { 10, 11, 154 }, { 11, 11, 641 }, + { 13, 11, 85 }, { 13, 11, 201 }, { 141, 11, 346 }, { 6, 0, 177 }, + { 135, 0, 467 }, { 134, 0, 1377 }, { 134, 10, 116 }, { 136, 11, 645 }, + { 4, 11, 166 }, { 5, 11, 505 }, { 6, 11, 1670 }, { 137, 11, 110 }, + { 133, 10, 487 }, { 4, 10, 86 }, { 5, 10, 667 }, { 5, 10, 753 }, + { 6, 10, 316 }, { 6, 10, 455 }, { 135, 10, 946 }, { 133, 0, 200 }, + { 132, 0, 959 }, { 6, 0, 1928 }, { 134, 0, 1957 }, { 139, 11, 203 }, + { 150, 10, 45 }, { 4, 10, 79 }, { 7, 10, 1773 }, { 10, 10, 450 }, + { 11, 10, 589 }, { 13, 10, 332 }, { 13, 10, 493 }, { 14, 10, 183 }, + { 14, 10, 334 }, { 14, 10, 362 }, { 14, 10, 368 }, { 14, 10, 376 }, + { 14, 10, 379 }, { 19, 10, 90 }, { 19, 10, 103 }, { 19, 10, 127 }, + { 148, 10, 90 }, { 6, 0, 1435 }, { 135, 11, 1275 }, { 134, 0, 481 }, + { 7, 11, 445 }, { 8, 11, 307 }, { 8, 11, 704 }, { 10, 11, 41 }, + { 10, 11, 439 }, { 11, 11, 237 }, { 11, 11, 622 }, { 140, 11, 201 }, + { 135, 11, 869 }, { 4, 0, 84 }, { 7, 0, 1482 }, { 10, 0, 76 }, + { 138, 0, 142 }, { 11, 11, 277 }, { 144, 11, 14 }, { 135, 11, 1977 }, + { 4, 11, 189 }, { 5, 11, 713 }, { 136, 11, 57 }, { 133, 0, 1015 }, + { 138, 11, 371 }, { 4, 0, 315 }, { 5, 0, 507 }, { 135, 0, 1370 }, + { 4, 11, 552 }, { 142, 10, 381 }, { 9, 0, 759 }, { 16, 0, 31 }, + { 16, 0, 39 }, { 16, 0, 75 }, { 18, 0, 24 }, { 20, 0, 42 }, + { 152, 0, 1 }, { 134, 0, 712 }, { 134, 0, 1722 }, { 133, 10, 663 }, + { 133, 10, 846 }, { 8, 0, 222 }, { 8, 0, 476 }, { 9, 0, 238 }, + { 11, 0, 516 }, { 11, 0, 575 }, { 15, 0, 109 }, { 146, 0, 100 }, + { 7, 0, 1402 }, { 7, 0, 1414 }, { 12, 0, 456 }, { 5, 10, 378 }, + { 8, 10, 465 }, { 9, 10, 286 }, { 10, 10, 185 }, { 10, 10, 562 }, + { 10, 10, 635 }, { 11, 10, 31 }, { 11, 10, 393 }, { 13, 10, 312 }, + { 18, 10, 65 }, { 18, 10, 96 }, { 147, 10, 89 }, { 4, 0, 986 }, + { 6, 0, 1958 }, { 6, 0, 2032 }, { 8, 0, 934 }, { 138, 0, 985 }, + { 7, 10, 1880 }, { 9, 10, 680 }, { 139, 10, 798 }, { 134, 10, 1770 }, + { 145, 11, 49 }, { 132, 11, 614 }, { 132, 10, 648 }, { 5, 10, 945 }, + { 6, 10, 1656 }, { 6, 10, 1787 }, { 7, 10, 167 }, { 8, 10, 824 }, + { 9, 10, 391 }, { 10, 10, 375 }, { 139, 10, 185 }, { 138, 11, 661 }, + { 7, 0, 1273 }, { 135, 11, 1945 }, { 7, 0, 706 }, { 7, 0, 1058 }, + { 138, 0, 538 }, { 7, 10, 1645 }, { 8, 10, 352 }, { 137, 10, 249 }, + { 132, 10, 152 }, { 11, 0, 92 }, { 11, 0, 196 }, { 11, 0, 409 }, + { 11, 0, 450 }, { 11, 0, 666 }, { 11, 0, 777 }, { 12, 0, 262 }, + { 13, 0, 385 }, { 13, 0, 393 }, { 15, 0, 115 }, { 16, 0, 45 }, + { 145, 0, 82 }, { 133, 10, 1006 }, { 6, 0, 40 }, { 135, 0, 1781 }, + { 9, 11, 614 }, { 139, 11, 327 }, { 5, 10, 420 }, { 135, 10, 1449 }, + { 135, 0, 431 }, { 10, 0, 97 }, { 135, 10, 832 }, { 6, 0, 423 }, + { 7, 0, 665 }, { 135, 0, 1210 }, { 7, 0, 237 }, { 8, 0, 664 }, + { 9, 0, 42 }, { 9, 0, 266 }, { 9, 0, 380 }, { 9, 0, 645 }, + { 10, 0, 177 }, { 138, 0, 276 }, { 7, 0, 264 }, { 133, 10, 351 }, + { 8, 0, 213 }, { 5, 10, 40 }, { 7, 10, 598 }, { 7, 10, 1638 }, + { 9, 10, 166 }, { 9, 10, 640 }, { 9, 10, 685 }, { 9, 10, 773 }, + { 11, 10, 215 }, { 13, 10, 65 }, { 14, 10, 172 }, { 14, 10, 317 }, + { 145, 10, 6 }, { 5, 11, 84 }, { 134, 11, 163 }, { 8, 10, 60 }, + { 9, 10, 343 }, { 139, 10, 769 }, { 137, 0, 455 }, { 133, 11, 410 }, + { 8, 0, 906 }, { 12, 0, 700 }, { 12, 0, 706 }, { 140, 0, 729 }, + { 21, 11, 33 }, { 150, 11, 40 }, { 7, 10, 1951 }, { 8, 10, 765 }, + { 8, 10, 772 }, { 140, 10, 671 }, { 7, 10, 108 }, { 8, 10, 219 }, + { 8, 10, 388 }, { 9, 10, 639 }, { 9, 10, 775 }, { 11, 10, 275 }, + { 140, 10, 464 }, { 5, 11, 322 }, { 7, 11, 1941 }, { 8, 11, 186 }, + { 9, 11, 262 }, { 10, 11, 187 }, { 14, 11, 208 }, { 146, 11, 130 }, + { 139, 0, 624 }, { 8, 0, 574 }, { 5, 11, 227 }, { 140, 11, 29 }, + { 7, 11, 1546 }, { 11, 11, 299 }, { 142, 11, 407 }, { 5, 10, 15 }, + { 6, 10, 56 }, { 7, 10, 1758 }, { 8, 10, 500 }, { 9, 10, 730 }, + { 11, 10, 331 }, { 13, 10, 150 }, { 142, 10, 282 }, { 7, 11, 1395 }, + { 8, 11, 486 }, { 9, 11, 236 }, { 9, 11, 878 }, { 10, 11, 218 }, + { 11, 11, 95 }, { 19, 11, 17 }, { 147, 11, 31 }, { 135, 11, 2043 }, + { 4, 0, 354 }, { 146, 11, 4 }, { 140, 11, 80 }, { 135, 0, 1558 }, + { 134, 10, 1886 }, { 5, 10, 205 }, { 6, 10, 438 }, { 137, 10, 711 }, + { 133, 11, 522 }, { 133, 10, 534 }, { 7, 0, 235 }, { 7, 0, 1475 }, + { 15, 0, 68 }, { 146, 0, 120 }, { 137, 10, 691 }, { 4, 0, 942 }, + { 6, 0, 1813 }, { 8, 0, 917 }, { 10, 0, 884 }, { 12, 0, 696 }, + { 12, 0, 717 }, { 12, 0, 723 }, { 12, 0, 738 }, { 12, 0, 749 }, + { 12, 0, 780 }, { 16, 0, 97 }, { 146, 0, 169 }, { 6, 10, 443 }, + { 8, 11, 562 }, { 9, 10, 237 }, { 9, 10, 571 }, { 9, 10, 695 }, + { 10, 10, 139 }, { 11, 10, 715 }, { 12, 10, 417 }, { 141, 10, 421 }, + { 135, 0, 957 }, { 133, 0, 830 }, { 134, 11, 1771 }, { 146, 0, 23 }, + { 5, 0, 496 }, { 6, 0, 694 }, { 7, 0, 203 }, { 7, 11, 1190 }, + { 137, 11, 620 }, { 137, 11, 132 }, { 6, 0, 547 }, { 134, 0, 1549 }, + { 8, 11, 258 }, { 9, 11, 208 }, { 137, 11, 359 }, { 4, 0, 864 }, + { 5, 0, 88 }, { 137, 0, 239 }, { 135, 11, 493 }, { 4, 11, 317 }, + { 135, 11, 1279 }, { 132, 11, 477 }, { 4, 10, 578 }, { 5, 11, 63 }, + { 133, 11, 509 }, { 7, 0, 650 }, { 135, 0, 1310 }, { 7, 0, 1076 }, + { 9, 0, 80 }, { 11, 0, 78 }, { 11, 0, 421 }, { 11, 0, 534 }, + { 140, 0, 545 }, { 132, 11, 288 }, { 12, 0, 553 }, { 14, 0, 118 }, + { 133, 10, 923 }, { 7, 0, 274 }, { 11, 0, 479 }, { 139, 0, 507 }, + { 8, 11, 89 }, { 8, 11, 620 }, { 9, 11, 49 }, { 10, 11, 774 }, + { 11, 11, 628 }, { 12, 11, 322 }, { 143, 11, 124 }, { 4, 0, 497 }, + { 135, 0, 1584 }, { 7, 0, 261 }, { 7, 0, 1115 }, { 7, 0, 1354 }, + { 7, 0, 1404 }, { 7, 0, 1588 }, { 7, 0, 1705 }, { 7, 0, 1902 }, + { 9, 0, 465 }, { 10, 0, 248 }, { 10, 0, 349 }, { 10, 0, 647 }, + { 11, 0, 527 }, { 11, 0, 660 }, { 11, 0, 669 }, { 12, 0, 529 }, + { 13, 0, 305 }, { 132, 10, 924 }, { 133, 10, 665 }, { 136, 0, 13 }, + { 6, 0, 791 }, { 138, 11, 120 }, { 7, 0, 642 }, { 8, 0, 250 }, + { 11, 0, 123 }, { 11, 0, 137 }, { 13, 0, 48 }, { 142, 0, 95 }, + { 4, 10, 265 }, { 7, 10, 807 }, { 135, 10, 950 }, { 5, 10, 93 }, + { 140, 10, 267 }, { 135, 0, 1429 }, { 4, 0, 949 }, { 10, 0, 885 }, + { 10, 0, 891 }, { 10, 0, 900 }, { 10, 0, 939 }, { 12, 0, 760 }, + { 142, 0, 449 }, { 139, 11, 366 }, { 132, 0, 818 }, { 134, 11, 85 }, + { 135, 10, 994 }, { 7, 0, 330 }, { 5, 10, 233 }, { 5, 10, 320 }, + { 6, 10, 140 }, { 136, 10, 295 }, { 4, 0, 1004 }, { 8, 0, 982 }, + { 136, 0, 993 }, { 133, 10, 978 }, { 4, 10, 905 }, { 6, 10, 1701 }, + { 137, 10, 843 }, { 10, 0, 545 }, { 140, 0, 301 }, { 6, 0, 947 }, + { 134, 0, 1062 }, { 134, 0, 1188 }, { 4, 0, 904 }, { 5, 0, 794 }, + { 152, 10, 6 }, { 134, 0, 1372 }, { 135, 11, 608 }, { 5, 11, 279 }, + { 6, 11, 235 }, { 7, 11, 468 }, { 8, 11, 446 }, { 9, 11, 637 }, + { 10, 11, 717 }, { 11, 11, 738 }, { 140, 11, 514 }, { 132, 10, 509 }, + { 5, 11, 17 }, { 6, 11, 371 }, { 137, 11, 528 }, { 132, 0, 693 }, + { 4, 11, 115 }, { 5, 11, 669 }, { 6, 11, 407 }, { 8, 11, 311 }, + { 11, 11, 10 }, { 141, 11, 5 }, { 11, 0, 377 }, { 7, 10, 273 }, + { 137, 11, 381 }, { 135, 0, 695 }, { 7, 0, 386 }, { 138, 0, 713 }, + { 135, 10, 1041 }, { 134, 0, 1291 }, { 6, 0, 7 }, { 6, 0, 35 }, + { 7, 0, 147 }, { 7, 0, 1069 }, { 7, 0, 1568 }, { 7, 0, 1575 }, + { 7, 0, 1917 }, { 8, 0, 43 }, { 8, 0, 208 }, { 9, 0, 128 }, + { 9, 0, 866 }, { 10, 0, 20 }, { 11, 0, 981 }, { 147, 0, 33 }, + { 7, 0, 893 }, { 141, 0, 424 }, { 139, 10, 234 }, { 150, 11, 56 }, + { 5, 11, 779 }, { 5, 11, 807 }, { 6, 11, 1655 }, { 134, 11, 1676 }, + { 5, 10, 802 }, { 7, 10, 2021 }, { 136, 10, 805 }, { 4, 11, 196 }, + { 5, 10, 167 }, { 5, 11, 558 }, { 5, 10, 899 }, { 5, 11, 949 }, + { 6, 10, 410 }, { 137, 10, 777 }, { 137, 10, 789 }, { 134, 10, 1705 }, + { 8, 0, 904 }, { 140, 0, 787 }, { 6, 0, 322 }, { 9, 0, 552 }, + { 11, 0, 274 }, { 13, 0, 209 }, { 13, 0, 499 }, { 14, 0, 85 }, + { 15, 0, 126 }, { 145, 0, 70 }, { 135, 10, 10 }, { 5, 10, 11 }, + { 6, 10, 117 }, { 6, 10, 485 }, { 7, 10, 1133 }, { 9, 10, 582 }, + { 9, 10, 594 }, { 11, 10, 21 }, { 11, 10, 818 }, { 12, 10, 535 }, + { 141, 10, 86 }, { 4, 10, 264 }, { 7, 10, 1067 }, { 8, 10, 204 }, + { 8, 10, 385 }, { 139, 10, 953 }, { 132, 11, 752 }, { 138, 10, 56 }, + { 133, 10, 470 }, { 6, 0, 1808 }, { 8, 0, 83 }, { 8, 0, 742 }, + { 8, 0, 817 }, { 9, 0, 28 }, { 9, 0, 29 }, { 9, 0, 885 }, + { 10, 0, 387 }, { 11, 0, 633 }, { 11, 0, 740 }, { 13, 0, 235 }, + { 13, 0, 254 }, { 15, 0, 143 }, { 143, 0, 146 }, { 140, 0, 49 }, + { 134, 0, 1832 }, { 4, 11, 227 }, { 5, 11, 159 }, { 5, 11, 409 }, + { 7, 11, 80 }, { 10, 11, 294 }, { 10, 11, 479 }, { 12, 11, 418 }, + { 14, 11, 50 }, { 14, 11, 249 }, { 142, 11, 295 }, { 7, 11, 1470 }, + { 8, 11, 66 }, { 8, 11, 137 }, { 8, 11, 761 }, { 9, 11, 638 }, + { 11, 11, 80 }, { 11, 11, 212 }, { 11, 11, 368 }, { 11, 11, 418 }, + { 12, 11, 8 }, { 13, 11, 15 }, { 16, 11, 61 }, { 17, 11, 59 }, + { 19, 11, 28 }, { 148, 11, 84 }, { 139, 10, 1015 }, { 138, 11, 468 }, + { 135, 0, 421 }, { 6, 0, 415 }, { 7, 0, 1049 }, { 137, 0, 442 }, + { 6, 11, 38 }, { 7, 11, 1220 }, { 8, 11, 185 }, { 8, 11, 256 }, + { 9, 11, 22 }, { 9, 11, 331 }, { 10, 11, 738 }, { 11, 11, 205 }, + { 11, 11, 540 }, { 11, 11, 746 }, { 13, 11, 399 }, { 13, 11, 465 }, + { 14, 11, 88 }, { 142, 11, 194 }, { 139, 0, 289 }, { 133, 10, 715 }, + { 4, 0, 110 }, { 10, 0, 415 }, { 10, 0, 597 }, { 142, 0, 206 }, + { 4, 11, 159 }, { 6, 11, 115 }, { 7, 11, 252 }, { 7, 11, 257 }, + { 7, 11, 1928 }, { 8, 11, 69 }, { 9, 11, 384 }, { 10, 11, 91 }, + { 10, 11, 615 }, { 12, 11, 375 }, { 14, 11, 235 }, { 18, 11, 117 }, + { 147, 11, 123 }, { 5, 11, 911 }, { 136, 11, 278 }, { 7, 0, 205 }, + { 7, 0, 2000 }, { 8, 10, 794 }, { 9, 10, 400 }, { 10, 10, 298 }, + { 142, 10, 228 }, { 135, 11, 1774 }, { 4, 11, 151 }, { 7, 11, 1567 }, + { 8, 11, 351 }, { 137, 11, 322 }, { 136, 10, 724 }, { 133, 11, 990 }, + { 7, 0, 1539 }, { 11, 0, 512 }, { 13, 0, 205 }, { 19, 0, 30 }, + { 22, 0, 36 }, { 23, 0, 19 }, { 135, 11, 1539 }, { 5, 11, 194 }, + { 7, 11, 1662 }, { 9, 11, 90 }, { 140, 11, 180 }, { 6, 10, 190 }, + { 7, 10, 768 }, { 135, 10, 1170 }, { 134, 0, 1340 }, { 4, 0, 283 }, + { 135, 0, 1194 }, { 133, 11, 425 }, { 133, 11, 971 }, { 12, 0, 549 }, + { 14, 10, 67 }, { 147, 10, 60 }, { 135, 10, 1023 }, { 134, 0, 1720 }, + { 138, 11, 587 }, { 5, 11, 72 }, { 6, 11, 264 }, { 7, 11, 21 }, + { 7, 11, 46 }, { 7, 11, 2013 }, { 8, 11, 215 }, { 8, 11, 513 }, + { 10, 11, 266 }, { 139, 11, 22 }, { 5, 0, 319 }, { 135, 0, 534 }, + { 6, 10, 137 }, { 9, 10, 75 }, { 9, 10, 253 }, { 10, 10, 194 }, + { 138, 10, 444 }, { 7, 0, 1180 }, { 20, 0, 112 }, { 6, 11, 239 }, + { 7, 11, 118 }, { 10, 11, 95 }, { 11, 11, 603 }, { 13, 11, 443 }, + { 14, 11, 160 }, { 143, 11, 4 }, { 134, 11, 431 }, { 5, 11, 874 }, + { 6, 11, 1677 }, { 11, 10, 643 }, { 12, 10, 115 }, { 143, 11, 0 }, + { 134, 0, 967 }, { 6, 11, 65 }, { 7, 11, 939 }, { 7, 11, 1172 }, + { 7, 11, 1671 }, { 9, 11, 540 }, { 10, 11, 696 }, { 11, 11, 265 }, + { 11, 11, 732 }, { 11, 11, 928 }, { 11, 11, 937 }, { 12, 11, 399 }, + { 13, 11, 438 }, { 149, 11, 19 }, { 137, 11, 200 }, { 135, 0, 1940 }, + { 5, 10, 760 }, { 7, 10, 542 }, { 8, 10, 135 }, { 136, 10, 496 }, + { 140, 11, 44 }, { 7, 11, 1655 }, { 136, 11, 305 }, { 7, 10, 319 }, + { 7, 10, 355 }, { 7, 10, 763 }, { 10, 10, 389 }, { 145, 10, 43 }, + { 136, 0, 735 }, { 138, 10, 786 }, { 137, 11, 19 }, { 132, 11, 696 }, + { 5, 0, 132 }, { 9, 0, 486 }, { 9, 0, 715 }, { 10, 0, 458 }, + { 11, 0, 373 }, { 11, 0, 668 }, { 11, 0, 795 }, { 11, 0, 897 }, + { 12, 0, 272 }, { 12, 0, 424 }, { 12, 0, 539 }, { 12, 0, 558 }, + { 14, 0, 245 }, { 14, 0, 263 }, { 14, 0, 264 }, { 14, 0, 393 }, + { 142, 0, 403 }, { 10, 0, 38 }, { 139, 0, 784 }, { 132, 0, 838 }, + { 4, 11, 302 }, { 135, 11, 1766 }, { 133, 0, 379 }, { 5, 0, 8 }, + { 6, 0, 89 }, { 6, 0, 400 }, { 7, 0, 1569 }, { 7, 0, 1623 }, + { 7, 0, 1850 }, { 8, 0, 218 }, { 8, 0, 422 }, { 9, 0, 570 }, + { 10, 0, 626 }, { 4, 11, 726 }, { 133, 11, 630 }, { 4, 0, 1017 }, + { 138, 0, 660 }, { 6, 0, 387 }, { 7, 0, 882 }, { 141, 0, 111 }, + { 6, 0, 224 }, { 7, 0, 877 }, { 137, 0, 647 }, { 4, 10, 58 }, + { 5, 10, 286 }, { 6, 10, 319 }, { 7, 10, 402 }, { 7, 10, 1254 }, + { 7, 10, 1903 }, { 8, 10, 356 }, { 140, 10, 408 }, { 135, 0, 790 }, + { 9, 0, 510 }, { 10, 0, 53 }, { 4, 10, 389 }, { 9, 10, 181 }, + { 10, 10, 29 }, { 10, 10, 816 }, { 11, 10, 311 }, { 11, 10, 561 }, + { 12, 10, 67 }, { 141, 10, 181 }, { 142, 0, 458 }, { 6, 11, 118 }, + { 7, 11, 215 }, { 7, 11, 1521 }, { 140, 11, 11 }, { 134, 0, 954 }, + { 135, 0, 394 }, { 134, 0, 1367 }, { 5, 11, 225 }, { 133, 10, 373 }, + { 132, 0, 882 }, { 7, 0, 1409 }, { 135, 10, 1972 }, { 135, 10, 1793 }, + { 4, 11, 370 }, { 5, 11, 756 }, { 135, 11, 1326 }, { 150, 11, 13 }, + { 7, 11, 354 }, { 10, 11, 410 }, { 139, 11, 815 }, { 6, 11, 1662 }, + { 7, 11, 48 }, { 8, 11, 771 }, { 10, 11, 116 }, { 13, 11, 104 }, + { 14, 11, 105 }, { 14, 11, 184 }, { 15, 11, 168 }, { 19, 11, 92 }, + { 148, 11, 68 }, { 7, 0, 124 }, { 136, 0, 38 }, { 5, 0, 261 }, + { 7, 0, 78 }, { 7, 0, 199 }, { 8, 0, 815 }, { 9, 0, 126 }, + { 10, 0, 342 }, { 140, 0, 647 }, { 4, 0, 628 }, { 140, 0, 724 }, + { 7, 0, 266 }, { 8, 0, 804 }, { 7, 10, 1651 }, { 145, 10, 89 }, + { 135, 0, 208 }, { 134, 0, 1178 }, { 6, 0, 79 }, { 135, 0, 1519 }, + { 132, 10, 672 }, { 133, 10, 737 }, { 136, 0, 741 }, { 132, 11, 120 }, + { 4, 0, 710 }, { 6, 0, 376 }, { 134, 0, 606 }, { 134, 0, 1347 }, + { 134, 0, 1494 }, { 6, 0, 850 }, { 6, 0, 1553 }, { 137, 0, 821 }, + { 5, 10, 145 }, { 134, 11, 593 }, { 7, 0, 1311 }, { 140, 0, 135 }, + { 4, 0, 467 }, { 5, 0, 405 }, { 134, 0, 544 }, { 5, 11, 820 }, + { 135, 11, 931 }, { 6, 0, 100 }, { 7, 0, 244 }, { 7, 0, 632 }, + { 7, 0, 1609 }, { 8, 0, 178 }, { 8, 0, 638 }, { 141, 0, 58 }, + { 4, 10, 387 }, { 135, 10, 1288 }, { 6, 11, 151 }, { 6, 11, 1675 }, + { 7, 11, 383 }, { 151, 11, 10 }, { 132, 0, 481 }, { 135, 10, 550 }, + { 134, 0, 1378 }, { 6, 11, 1624 }, { 11, 11, 11 }, { 12, 11, 422 }, + { 13, 11, 262 }, { 142, 11, 360 }, { 133, 0, 791 }, { 4, 11, 43 }, + { 5, 11, 344 }, { 133, 11, 357 }, { 7, 0, 1227 }, { 140, 0, 978 }, + { 7, 0, 686 }, { 8, 0, 33 }, { 8, 0, 238 }, { 10, 0, 616 }, + { 11, 0, 467 }, { 11, 0, 881 }, { 13, 0, 217 }, { 13, 0, 253 }, + { 142, 0, 268 }, { 137, 0, 857 }, { 8, 0, 467 }, { 8, 0, 1006 }, + { 7, 11, 148 }, { 8, 11, 284 }, { 141, 11, 63 }, { 4, 10, 576 }, + { 135, 10, 1263 }, { 133, 11, 888 }, { 5, 10, 919 }, { 134, 10, 1673 }, + { 20, 10, 37 }, { 148, 11, 37 }, { 132, 0, 447 }, { 132, 11, 711 }, + { 4, 0, 128 }, { 5, 0, 415 }, { 6, 0, 462 }, { 7, 0, 294 }, + { 7, 0, 578 }, { 10, 0, 710 }, { 139, 0, 86 }, { 4, 10, 82 }, + { 5, 10, 333 }, { 5, 10, 904 }, { 6, 10, 207 }, { 7, 10, 325 }, + { 7, 10, 1726 }, { 8, 10, 101 }, { 10, 10, 778 }, { 139, 10, 220 }, + { 136, 0, 587 }, { 137, 11, 440 }, { 133, 10, 903 }, { 6, 0, 427 }, + { 7, 0, 1018 }, { 138, 0, 692 }, { 4, 0, 195 }, { 135, 0, 802 }, + { 140, 10, 147 }, { 134, 0, 1546 }, { 134, 0, 684 }, { 132, 10, 705 }, + { 136, 0, 345 }, { 11, 11, 678 }, { 140, 11, 307 }, { 133, 0, 365 }, + { 134, 0, 1683 }, { 4, 11, 65 }, { 5, 11, 479 }, { 5, 11, 1004 }, + { 7, 11, 1913 }, { 8, 11, 317 }, { 9, 11, 302 }, { 10, 11, 612 }, + { 141, 11, 22 }, { 138, 0, 472 }, { 4, 11, 261 }, { 135, 11, 510 }, + { 134, 10, 90 }, { 142, 0, 433 }, { 151, 0, 28 }, { 4, 11, 291 }, + { 7, 11, 101 }, { 9, 11, 515 }, { 12, 11, 152 }, { 12, 11, 443 }, + { 13, 11, 392 }, { 142, 11, 357 }, { 140, 0, 997 }, { 5, 0, 3 }, + { 8, 0, 578 }, { 9, 0, 118 }, { 10, 0, 705 }, { 141, 0, 279 }, + { 135, 11, 1266 }, { 7, 10, 813 }, { 12, 10, 497 }, { 141, 10, 56 }, + { 133, 0, 229 }, { 6, 10, 125 }, { 135, 10, 1277 }, { 8, 0, 102 }, + { 10, 0, 578 }, { 10, 0, 672 }, { 12, 0, 496 }, { 13, 0, 408 }, + { 14, 0, 121 }, { 17, 0, 106 }, { 151, 10, 12 }, { 6, 0, 866 }, + { 134, 0, 1080 }, { 136, 0, 1022 }, { 4, 11, 130 }, { 135, 11, 843 }, + { 5, 11, 42 }, { 5, 11, 879 }, { 7, 11, 245 }, { 7, 11, 324 }, + { 7, 11, 1532 }, { 11, 11, 463 }, { 11, 11, 472 }, { 13, 11, 363 }, + { 144, 11, 52 }, { 150, 0, 55 }, { 8, 0, 115 }, { 8, 0, 350 }, + { 9, 0, 489 }, { 10, 0, 128 }, { 11, 0, 306 }, { 12, 0, 373 }, + { 14, 0, 30 }, { 17, 0, 79 }, { 19, 0, 80 }, { 4, 11, 134 }, + { 133, 11, 372 }, { 134, 0, 657 }, { 134, 0, 933 }, { 135, 11, 1147 }, + { 4, 0, 230 }, { 133, 0, 702 }, { 134, 0, 1728 }, { 4, 0, 484 }, + { 18, 0, 26 }, { 19, 0, 42 }, { 20, 0, 43 }, { 21, 0, 0 }, + { 23, 0, 27 }, { 152, 0, 14 }, { 7, 0, 185 }, { 135, 0, 703 }, + { 6, 0, 417 }, { 10, 0, 618 }, { 7, 10, 1106 }, { 9, 10, 770 }, + { 11, 10, 112 }, { 140, 10, 413 }, { 134, 0, 803 }, { 132, 11, 644 }, + { 134, 0, 1262 }, { 7, 11, 540 }, { 12, 10, 271 }, { 145, 10, 109 }, + { 135, 11, 123 }, { 132, 0, 633 }, { 134, 11, 623 }, { 4, 11, 908 }, + { 5, 11, 359 }, { 5, 11, 508 }, { 6, 11, 1723 }, { 7, 11, 343 }, + { 7, 11, 1996 }, { 135, 11, 2026 }, { 135, 0, 479 }, { 10, 0, 262 }, + { 7, 10, 304 }, { 9, 10, 646 }, { 9, 10, 862 }, { 11, 10, 696 }, + { 12, 10, 208 }, { 15, 10, 79 }, { 147, 10, 108 }, { 4, 11, 341 }, + { 135, 11, 480 }, { 134, 0, 830 }, { 5, 0, 70 }, { 5, 0, 622 }, + { 6, 0, 334 }, { 7, 0, 1032 }, { 9, 0, 171 }, { 11, 0, 26 }, + { 11, 0, 213 }, { 11, 0, 637 }, { 11, 0, 707 }, { 12, 0, 202 }, + { 12, 0, 380 }, { 13, 0, 226 }, { 13, 0, 355 }, { 14, 0, 222 }, + { 145, 0, 42 }, { 135, 10, 981 }, { 143, 0, 217 }, { 137, 11, 114 }, + { 4, 0, 23 }, { 4, 0, 141 }, { 5, 0, 313 }, { 5, 0, 1014 }, + { 6, 0, 50 }, { 6, 0, 51 }, { 7, 0, 142 }, { 7, 0, 384 }, + { 7, 0, 559 }, { 8, 0, 640 }, { 9, 0, 460 }, { 9, 0, 783 }, + { 11, 0, 741 }, { 12, 0, 183 }, { 141, 0, 488 }, { 141, 0, 360 }, + { 7, 0, 1586 }, { 7, 11, 1995 }, { 8, 11, 299 }, { 11, 11, 890 }, + { 140, 11, 674 }, { 132, 10, 434 }, { 7, 0, 652 }, { 134, 10, 550 }, + { 7, 0, 766 }, { 5, 10, 553 }, { 138, 10, 824 }, { 7, 0, 737 }, + { 8, 0, 298 }, { 136, 10, 452 }, { 4, 11, 238 }, { 5, 11, 503 }, + { 6, 11, 179 }, { 7, 11, 2003 }, { 8, 11, 381 }, { 8, 11, 473 }, + { 9, 11, 149 }, { 10, 11, 183 }, { 15, 11, 45 }, { 143, 11, 86 }, + { 133, 10, 292 }, { 5, 0, 222 }, { 9, 0, 655 }, { 138, 0, 534 }, + { 138, 10, 135 }, { 4, 11, 121 }, { 5, 11, 156 }, { 5, 11, 349 }, + { 9, 11, 136 }, { 10, 11, 605 }, { 14, 11, 342 }, { 147, 11, 107 }, + { 137, 0, 906 }, { 6, 0, 1013 }, { 134, 0, 1250 }, { 6, 0, 1956 }, + { 6, 0, 2009 }, { 8, 0, 991 }, { 144, 0, 120 }, { 135, 11, 1192 }, + { 138, 0, 503 }, { 5, 0, 154 }, { 7, 0, 1491 }, { 10, 0, 379 }, + { 138, 0, 485 }, { 6, 0, 1867 }, { 6, 0, 1914 }, { 6, 0, 1925 }, + { 9, 0, 917 }, { 9, 0, 925 }, { 9, 0, 932 }, { 9, 0, 951 }, + { 9, 0, 1007 }, { 9, 0, 1013 }, { 12, 0, 806 }, { 12, 0, 810 }, + { 12, 0, 814 }, { 12, 0, 816 }, { 12, 0, 824 }, { 12, 0, 832 }, + { 12, 0, 837 }, { 12, 0, 863 }, { 12, 0, 868 }, { 12, 0, 870 }, + { 12, 0, 889 }, { 12, 0, 892 }, { 12, 0, 900 }, { 12, 0, 902 }, + { 12, 0, 908 }, { 12, 0, 933 }, { 12, 0, 942 }, { 12, 0, 949 }, + { 12, 0, 954 }, { 15, 0, 175 }, { 15, 0, 203 }, { 15, 0, 213 }, + { 15, 0, 218 }, { 15, 0, 225 }, { 15, 0, 231 }, { 15, 0, 239 }, + { 15, 0, 248 }, { 15, 0, 252 }, { 18, 0, 190 }, { 18, 0, 204 }, + { 18, 0, 215 }, { 18, 0, 216 }, { 18, 0, 222 }, { 18, 0, 225 }, + { 18, 0, 230 }, { 18, 0, 239 }, { 18, 0, 241 }, { 21, 0, 42 }, + { 21, 0, 43 }, { 21, 0, 44 }, { 21, 0, 45 }, { 21, 0, 46 }, + { 21, 0, 53 }, { 24, 0, 27 }, { 152, 0, 31 }, { 133, 0, 716 }, + { 135, 0, 844 }, { 4, 0, 91 }, { 5, 0, 388 }, { 5, 0, 845 }, + { 6, 0, 206 }, { 6, 0, 252 }, { 6, 0, 365 }, { 7, 0, 136 }, + { 7, 0, 531 }, { 136, 0, 621 }, { 7, 10, 393 }, { 10, 10, 603 }, + { 139, 10, 206 }, { 6, 11, 80 }, { 6, 11, 1694 }, { 7, 11, 173 }, + { 7, 11, 1974 }, { 9, 11, 547 }, { 10, 11, 730 }, { 14, 11, 18 }, + { 150, 11, 39 }, { 137, 0, 748 }, { 4, 11, 923 }, { 134, 11, 1711 }, + { 4, 10, 912 }, { 137, 10, 232 }, { 7, 10, 98 }, { 7, 10, 1973 }, + { 136, 10, 716 }, { 14, 0, 103 }, { 133, 10, 733 }, { 132, 11, 595 }, + { 12, 0, 158 }, { 18, 0, 8 }, { 19, 0, 62 }, { 20, 0, 6 }, + { 22, 0, 4 }, { 23, 0, 2 }, { 23, 0, 9 }, { 5, 11, 240 }, + { 6, 11, 459 }, { 7, 11, 12 }, { 7, 11, 114 }, { 7, 11, 502 }, + { 7, 11, 1751 }, { 7, 11, 1753 }, { 7, 11, 1805 }, { 8, 11, 658 }, + { 9, 11, 1 }, { 11, 11, 959 }, { 13, 11, 446 }, { 142, 11, 211 }, + { 135, 0, 576 }, { 5, 0, 771 }, { 5, 0, 863 }, { 5, 0, 898 }, + { 6, 0, 648 }, { 6, 0, 1632 }, { 6, 0, 1644 }, { 134, 0, 1780 }, + { 133, 0, 331 }, { 7, 11, 633 }, { 7, 11, 905 }, { 7, 11, 909 }, + { 7, 11, 1538 }, { 9, 11, 767 }, { 140, 11, 636 }, { 140, 0, 632 }, + { 5, 0, 107 }, { 7, 0, 201 }, { 136, 0, 518 }, { 6, 0, 446 }, + { 7, 0, 1817 }, { 134, 11, 490 }, { 9, 0, 851 }, { 141, 0, 510 }, + { 7, 11, 250 }, { 8, 11, 506 }, { 136, 11, 507 }, { 4, 0, 504 }, + { 137, 10, 72 }, { 132, 11, 158 }, { 4, 11, 140 }, { 7, 11, 362 }, + { 8, 11, 209 }, { 9, 11, 10 }, { 9, 11, 160 }, { 9, 11, 503 }, + { 10, 11, 689 }, { 11, 11, 350 }, { 11, 11, 553 }, { 11, 11, 725 }, + { 12, 11, 252 }, { 12, 11, 583 }, { 13, 11, 192 }, { 13, 11, 352 }, + { 14, 11, 269 }, { 14, 11, 356 }, { 148, 11, 50 }, { 6, 11, 597 }, + { 135, 11, 1318 }, { 135, 10, 1454 }, { 5, 0, 883 }, { 5, 0, 975 }, + { 8, 0, 392 }, { 148, 0, 7 }, { 6, 11, 228 }, { 7, 11, 1341 }, + { 9, 11, 408 }, { 138, 11, 343 }, { 11, 11, 348 }, { 11, 10, 600 }, + { 12, 11, 99 }, { 13, 10, 245 }, { 18, 11, 1 }, { 18, 11, 11 }, + { 147, 11, 4 }, { 134, 11, 296 }, { 5, 0, 922 }, { 134, 0, 1707 }, + { 132, 11, 557 }, { 4, 11, 548 }, { 7, 10, 164 }, { 7, 10, 1571 }, + { 9, 10, 107 }, { 140, 10, 225 }, { 7, 11, 197 }, { 8, 11, 142 }, + { 8, 11, 325 }, { 9, 11, 150 }, { 9, 11, 596 }, { 10, 11, 350 }, + { 10, 11, 353 }, { 11, 11, 74 }, { 11, 11, 315 }, { 14, 11, 423 }, + { 143, 11, 141 }, { 5, 0, 993 }, { 7, 0, 515 }, { 137, 0, 91 }, + { 4, 0, 131 }, { 8, 0, 200 }, { 5, 10, 484 }, { 5, 10, 510 }, + { 6, 10, 434 }, { 7, 10, 1000 }, { 7, 10, 1098 }, { 136, 10, 2 }, + { 152, 0, 10 }, { 4, 11, 62 }, { 5, 11, 83 }, { 6, 11, 399 }, + { 6, 11, 579 }, { 7, 11, 692 }, { 7, 11, 846 }, { 7, 11, 1015 }, + { 7, 11, 1799 }, { 8, 11, 403 }, { 9, 11, 394 }, { 10, 11, 133 }, + { 12, 11, 4 }, { 12, 11, 297 }, { 12, 11, 452 }, { 16, 11, 81 }, + { 18, 11, 19 }, { 18, 11, 25 }, { 21, 11, 14 }, { 22, 11, 12 }, + { 151, 11, 18 }, { 140, 11, 459 }, { 132, 11, 177 }, { 7, 0, 1433 }, + { 9, 0, 365 }, { 137, 11, 365 }, { 132, 10, 460 }, { 5, 0, 103 }, + { 6, 0, 2004 }, { 7, 0, 921 }, { 8, 0, 580 }, { 8, 0, 593 }, + { 8, 0, 630 }, { 10, 0, 28 }, { 5, 11, 411 }, { 135, 11, 653 }, + { 4, 10, 932 }, { 133, 10, 891 }, { 4, 0, 911 }, { 5, 0, 867 }, + { 5, 0, 1013 }, { 7, 0, 2034 }, { 8, 0, 798 }, { 136, 0, 813 }, + { 7, 11, 439 }, { 10, 11, 727 }, { 11, 11, 260 }, { 139, 11, 684 }, + { 136, 10, 625 }, { 5, 11, 208 }, { 7, 11, 753 }, { 135, 11, 1528 }, + { 5, 0, 461 }, { 7, 0, 1925 }, { 12, 0, 39 }, { 13, 0, 265 }, + { 13, 0, 439 }, { 134, 10, 76 }, { 6, 0, 853 }, { 8, 10, 92 }, + { 137, 10, 221 }, { 5, 0, 135 }, { 6, 0, 519 }, { 7, 0, 1722 }, + { 10, 0, 271 }, { 11, 0, 261 }, { 145, 0, 54 }, { 139, 11, 814 }, + { 14, 0, 338 }, { 148, 0, 81 }, { 4, 0, 300 }, { 133, 0, 436 }, + { 5, 0, 419 }, { 5, 0, 687 }, { 7, 0, 864 }, { 9, 0, 470 }, + { 135, 11, 864 }, { 9, 0, 836 }, { 133, 11, 242 }, { 134, 0, 1937 }, + { 4, 10, 763 }, { 133, 11, 953 }, { 132, 10, 622 }, { 132, 0, 393 }, + { 133, 10, 253 }, { 8, 0, 357 }, { 10, 0, 745 }, { 14, 0, 426 }, + { 17, 0, 94 }, { 19, 0, 57 }, { 135, 10, 546 }, { 5, 11, 615 }, + { 146, 11, 37 }, { 9, 10, 73 }, { 10, 10, 110 }, { 14, 10, 185 }, + { 145, 10, 119 }, { 11, 0, 703 }, { 7, 10, 624 }, { 7, 10, 916 }, + { 10, 10, 256 }, { 139, 10, 87 }, { 133, 11, 290 }, { 5, 10, 212 }, + { 12, 10, 35 }, { 141, 10, 382 }, { 132, 11, 380 }, { 5, 11, 52 }, + { 7, 11, 277 }, { 9, 11, 368 }, { 139, 11, 791 }, { 133, 0, 387 }, + { 10, 11, 138 }, { 139, 11, 476 }, { 4, 0, 6 }, { 5, 0, 708 }, + { 136, 0, 75 }, { 7, 0, 1351 }, { 9, 0, 581 }, { 10, 0, 639 }, + { 11, 0, 453 }, { 140, 0, 584 }, { 132, 0, 303 }, { 138, 0, 772 }, + { 135, 10, 1175 }, { 4, 0, 749 }, { 5, 10, 816 }, { 6, 11, 256 }, + { 7, 11, 307 }, { 7, 11, 999 }, { 7, 11, 1481 }, { 7, 11, 1732 }, + { 7, 11, 1738 }, { 8, 11, 265 }, { 9, 11, 414 }, { 11, 11, 316 }, + { 12, 11, 52 }, { 13, 11, 420 }, { 147, 11, 100 }, { 135, 11, 1296 }, + { 6, 0, 1065 }, { 5, 10, 869 }, { 5, 10, 968 }, { 6, 10, 1626 }, + { 8, 10, 734 }, { 136, 10, 784 }, { 4, 10, 542 }, { 6, 10, 1716 }, + { 6, 10, 1727 }, { 7, 10, 1082 }, { 7, 10, 1545 }, { 8, 10, 56 }, + { 8, 10, 118 }, { 8, 10, 412 }, { 8, 10, 564 }, { 9, 10, 888 }, + { 9, 10, 908 }, { 10, 10, 50 }, { 10, 10, 423 }, { 11, 10, 685 }, + { 11, 10, 697 }, { 11, 10, 933 }, { 12, 10, 299 }, { 13, 10, 126 }, + { 13, 10, 136 }, { 13, 10, 170 }, { 141, 10, 190 }, { 134, 0, 226 }, + { 4, 0, 106 }, { 7, 0, 310 }, { 11, 0, 717 }, { 133, 11, 723 }, + { 5, 0, 890 }, { 5, 0, 988 }, { 4, 10, 232 }, { 9, 10, 202 }, + { 10, 10, 474 }, { 140, 10, 433 }, { 6, 0, 626 }, { 142, 0, 431 }, + { 10, 0, 706 }, { 150, 0, 44 }, { 13, 0, 51 }, { 6, 10, 108 }, + { 7, 10, 1003 }, { 7, 10, 1181 }, { 8, 10, 111 }, { 136, 10, 343 }, + { 132, 0, 698 }, { 5, 11, 109 }, { 6, 11, 1784 }, { 7, 11, 1895 }, + { 12, 11, 296 }, { 140, 11, 302 }, { 134, 0, 828 }, { 134, 10, 1712 }, + { 138, 0, 17 }, { 7, 0, 1929 }, { 4, 10, 133 }, { 5, 11, 216 }, + { 7, 10, 711 }, { 7, 10, 1298 }, { 7, 10, 1585 }, { 7, 11, 1879 }, + { 9, 11, 141 }, { 9, 11, 270 }, { 9, 11, 679 }, { 10, 11, 159 }, + { 10, 11, 553 }, { 11, 11, 197 }, { 11, 11, 438 }, { 12, 11, 538 }, + { 12, 11, 559 }, { 13, 11, 193 }, { 13, 11, 423 }, { 14, 11, 144 }, + { 14, 11, 166 }, { 14, 11, 167 }, { 15, 11, 67 }, { 147, 11, 84 }, + { 141, 11, 127 }, { 7, 11, 1872 }, { 137, 11, 81 }, { 6, 10, 99 }, + { 7, 10, 1808 }, { 145, 10, 57 }, { 134, 11, 391 }, { 5, 0, 689 }, + { 6, 0, 84 }, { 7, 0, 1250 }, { 6, 10, 574 }, { 7, 10, 428 }, + { 10, 10, 669 }, { 11, 10, 485 }, { 11, 10, 840 }, { 12, 10, 300 }, + { 142, 10, 250 }, { 7, 11, 322 }, { 136, 11, 249 }, { 7, 11, 432 }, + { 135, 11, 1649 }, { 135, 10, 1871 }, { 137, 10, 252 }, { 6, 11, 155 }, + { 140, 11, 234 }, { 7, 0, 871 }, { 19, 0, 27 }, { 147, 11, 27 }, + { 140, 0, 498 }, { 5, 0, 986 }, { 6, 0, 130 }, { 138, 0, 823 }, + { 6, 0, 1793 }, { 7, 0, 1582 }, { 8, 0, 458 }, { 10, 0, 101 }, + { 10, 0, 318 }, { 10, 0, 945 }, { 12, 0, 734 }, { 16, 0, 104 }, + { 18, 0, 177 }, { 6, 10, 323 }, { 135, 10, 1564 }, { 5, 11, 632 }, + { 138, 11, 526 }, { 10, 0, 435 }, { 7, 10, 461 }, { 136, 10, 775 }, + { 6, 11, 144 }, { 7, 11, 948 }, { 7, 11, 1042 }, { 7, 11, 1857 }, + { 8, 11, 235 }, { 8, 11, 461 }, { 9, 11, 453 }, { 9, 11, 530 }, + { 10, 11, 354 }, { 17, 11, 77 }, { 19, 11, 99 }, { 148, 11, 79 }, + { 138, 0, 966 }, { 7, 0, 1644 }, { 137, 0, 129 }, { 135, 0, 997 }, + { 136, 0, 502 }, { 5, 11, 196 }, { 6, 11, 486 }, { 7, 11, 212 }, + { 8, 11, 309 }, { 136, 11, 346 }, { 7, 10, 727 }, { 146, 10, 73 }, + { 132, 0, 823 }, { 132, 11, 686 }, { 135, 0, 1927 }, { 4, 0, 762 }, + { 7, 0, 1756 }, { 137, 0, 98 }, { 136, 10, 577 }, { 24, 0, 8 }, + { 4, 11, 30 }, { 5, 11, 43 }, { 152, 11, 8 }, { 7, 0, 1046 }, + { 139, 0, 160 }, { 7, 0, 492 }, { 4, 10, 413 }, { 5, 10, 677 }, + { 7, 11, 492 }, { 8, 10, 432 }, { 140, 10, 280 }, { 6, 0, 45 }, + { 7, 0, 433 }, { 8, 0, 129 }, { 9, 0, 21 }, { 10, 0, 392 }, + { 11, 0, 79 }, { 12, 0, 499 }, { 13, 0, 199 }, { 141, 0, 451 }, + { 7, 0, 558 }, { 136, 0, 353 }, { 4, 11, 220 }, { 7, 11, 1535 }, + { 9, 11, 93 }, { 139, 11, 474 }, { 7, 10, 646 }, { 7, 10, 1730 }, + { 11, 10, 446 }, { 141, 10, 178 }, { 133, 0, 785 }, { 134, 0, 1145 }, + { 8, 0, 81 }, { 9, 0, 189 }, { 9, 0, 201 }, { 11, 0, 478 }, + { 11, 0, 712 }, { 141, 0, 338 }, { 5, 0, 353 }, { 151, 0, 26 }, + { 11, 0, 762 }, { 132, 10, 395 }, { 134, 0, 2024 }, { 4, 0, 611 }, + { 133, 0, 606 }, { 9, 10, 174 }, { 10, 10, 164 }, { 11, 10, 440 }, + { 11, 10, 841 }, { 143, 10, 98 }, { 134, 10, 426 }, { 10, 10, 608 }, + { 139, 10, 1002 }, { 138, 10, 250 }, { 6, 0, 25 }, { 7, 0, 855 }, + { 7, 0, 1258 }, { 144, 0, 32 }, { 7, 11, 1725 }, { 138, 11, 393 }, + { 5, 11, 263 }, { 134, 11, 414 }, { 6, 0, 2011 }, { 133, 10, 476 }, + { 4, 0, 4 }, { 7, 0, 1118 }, { 7, 0, 1320 }, { 7, 0, 1706 }, + { 8, 0, 277 }, { 9, 0, 622 }, { 10, 0, 9 }, { 11, 0, 724 }, + { 12, 0, 350 }, { 12, 0, 397 }, { 13, 0, 28 }, { 13, 0, 159 }, + { 15, 0, 89 }, { 18, 0, 5 }, { 19, 0, 9 }, { 20, 0, 34 }, + { 22, 0, 47 }, { 6, 11, 178 }, { 6, 11, 1750 }, { 8, 11, 251 }, + { 9, 11, 690 }, { 10, 11, 155 }, { 10, 11, 196 }, { 10, 11, 373 }, + { 11, 11, 698 }, { 13, 11, 155 }, { 148, 11, 93 }, { 5, 11, 97 }, + { 137, 11, 393 }, { 7, 0, 764 }, { 11, 0, 461 }, { 12, 0, 172 }, + { 5, 10, 76 }, { 6, 10, 458 }, { 6, 10, 497 }, { 7, 10, 868 }, + { 9, 10, 658 }, { 10, 10, 594 }, { 11, 10, 566 }, { 12, 10, 338 }, + { 141, 10, 200 }, { 134, 0, 1449 }, { 138, 11, 40 }, { 134, 11, 1639 }, + { 134, 0, 1445 }, { 6, 0, 1168 }, { 4, 10, 526 }, { 7, 10, 1029 }, + { 135, 10, 1054 }, { 4, 11, 191 }, { 7, 11, 934 }, { 8, 11, 647 }, + { 145, 11, 97 }, { 132, 10, 636 }, { 6, 0, 233 }, { 7, 10, 660 }, + { 7, 10, 1124 }, { 17, 10, 31 }, { 19, 10, 22 }, { 151, 10, 14 }, + { 6, 10, 1699 }, { 136, 11, 110 }, { 12, 11, 246 }, { 15, 11, 162 }, + { 19, 11, 64 }, { 20, 11, 8 }, { 20, 11, 95 }, { 22, 11, 24 }, + { 152, 11, 17 }, { 5, 11, 165 }, { 9, 11, 346 }, { 138, 11, 655 }, + { 5, 11, 319 }, { 135, 11, 534 }, { 134, 0, 255 }, { 9, 0, 216 }, + { 8, 11, 128 }, { 139, 11, 179 }, { 9, 0, 183 }, { 139, 0, 286 }, + { 11, 0, 956 }, { 151, 0, 3 }, { 4, 0, 536 }, { 7, 0, 1141 }, + { 10, 0, 723 }, { 139, 0, 371 }, { 4, 10, 279 }, { 7, 10, 301 }, + { 137, 10, 362 }, { 7, 0, 285 }, { 5, 11, 57 }, { 6, 11, 101 }, + { 6, 11, 1663 }, { 7, 11, 132 }, { 7, 11, 1048 }, { 7, 11, 1154 }, + { 7, 11, 1415 }, { 7, 11, 1507 }, { 12, 11, 493 }, { 15, 11, 105 }, + { 151, 11, 15 }, { 5, 11, 459 }, { 7, 11, 1073 }, { 7, 10, 1743 }, + { 8, 11, 241 }, { 136, 11, 334 }, { 4, 10, 178 }, { 133, 10, 399 }, + { 135, 0, 560 }, { 132, 0, 690 }, { 135, 0, 1246 }, { 18, 0, 157 }, + { 147, 0, 63 }, { 10, 0, 599 }, { 11, 0, 33 }, { 12, 0, 571 }, + { 149, 0, 1 }, { 6, 11, 324 }, { 6, 11, 520 }, { 7, 11, 338 }, + { 7, 11, 1616 }, { 7, 11, 1729 }, { 8, 11, 228 }, { 9, 11, 69 }, + { 139, 11, 750 }, { 7, 0, 1862 }, { 12, 0, 491 }, { 12, 0, 520 }, + { 13, 0, 383 }, { 142, 0, 244 }, { 135, 11, 734 }, { 134, 10, 1692 }, + { 10, 0, 448 }, { 11, 0, 630 }, { 17, 0, 117 }, { 6, 10, 202 }, + { 7, 11, 705 }, { 12, 10, 360 }, { 17, 10, 118 }, { 18, 10, 27 }, + { 148, 10, 67 }, { 4, 11, 73 }, { 6, 11, 612 }, { 7, 11, 927 }, + { 7, 11, 1822 }, { 8, 11, 217 }, { 9, 11, 472 }, { 9, 11, 765 }, + { 9, 11, 766 }, { 10, 11, 408 }, { 11, 11, 51 }, { 11, 11, 793 }, + { 12, 11, 266 }, { 15, 11, 158 }, { 20, 11, 89 }, { 150, 11, 32 }, + { 4, 0, 190 }, { 133, 0, 554 }, { 133, 0, 1001 }, { 5, 11, 389 }, + { 8, 11, 636 }, { 137, 11, 229 }, { 5, 0, 446 }, { 7, 10, 872 }, + { 10, 10, 516 }, { 139, 10, 167 }, { 137, 10, 313 }, { 132, 10, 224 }, + { 134, 0, 1313 }, { 5, 10, 546 }, { 7, 10, 35 }, { 8, 10, 11 }, + { 8, 10, 12 }, { 9, 10, 315 }, { 9, 10, 533 }, { 10, 10, 802 }, + { 11, 10, 166 }, { 12, 10, 525 }, { 142, 10, 243 }, { 6, 0, 636 }, + { 137, 0, 837 }, { 5, 10, 241 }, { 8, 10, 242 }, { 9, 10, 451 }, + { 10, 10, 667 }, { 11, 10, 598 }, { 140, 10, 429 }, { 22, 10, 46 }, + { 150, 11, 46 }, { 136, 11, 472 }, { 11, 0, 278 }, { 142, 0, 73 }, + { 141, 11, 185 }, { 132, 0, 868 }, { 134, 0, 972 }, { 4, 10, 366 }, + { 137, 10, 516 }, { 138, 0, 1010 }, { 5, 11, 189 }, { 6, 10, 1736 }, + { 7, 11, 442 }, { 7, 11, 443 }, { 8, 11, 281 }, { 12, 11, 174 }, + { 13, 11, 83 }, { 141, 11, 261 }, { 139, 11, 384 }, { 6, 11, 2 }, + { 7, 11, 191 }, { 7, 11, 446 }, { 7, 11, 758 }, { 7, 11, 1262 }, + { 7, 11, 1737 }, { 8, 11, 22 }, { 8, 11, 270 }, { 8, 11, 612 }, + { 9, 11, 4 }, { 9, 11, 167 }, { 9, 11, 312 }, { 9, 11, 436 }, + { 10, 11, 156 }, { 10, 11, 216 }, { 10, 11, 311 }, { 10, 11, 623 }, + { 11, 11, 72 }, { 11, 11, 330 }, { 11, 11, 455 }, { 12, 11, 101 }, + { 12, 11, 321 }, { 12, 11, 504 }, { 12, 11, 530 }, { 12, 11, 543 }, + { 13, 11, 17 }, { 13, 11, 156 }, { 13, 11, 334 }, { 14, 11, 48 }, + { 15, 11, 70 }, { 17, 11, 60 }, { 148, 11, 64 }, { 6, 10, 331 }, + { 136, 10, 623 }, { 135, 0, 1231 }, { 132, 0, 304 }, { 6, 11, 60 }, + { 7, 11, 670 }, { 7, 11, 1327 }, { 8, 11, 411 }, { 8, 11, 435 }, + { 9, 11, 653 }, { 9, 11, 740 }, { 10, 11, 385 }, { 11, 11, 222 }, + { 11, 11, 324 }, { 11, 11, 829 }, { 140, 11, 611 }, { 7, 0, 506 }, + { 6, 11, 166 }, { 7, 11, 374 }, { 135, 11, 1174 }, { 14, 11, 43 }, + { 146, 11, 21 }, { 135, 11, 1694 }, { 135, 10, 1888 }, { 5, 11, 206 }, + { 134, 11, 398 }, { 135, 11, 50 }, { 150, 0, 26 }, { 6, 0, 53 }, + { 6, 0, 199 }, { 7, 0, 1408 }, { 8, 0, 32 }, { 8, 0, 93 }, + { 10, 0, 397 }, { 10, 0, 629 }, { 11, 0, 593 }, { 11, 0, 763 }, + { 13, 0, 326 }, { 145, 0, 35 }, { 134, 0, 105 }, { 132, 10, 394 }, + { 4, 0, 843 }, { 138, 0, 794 }, { 11, 0, 704 }, { 141, 0, 396 }, + { 5, 0, 114 }, { 5, 0, 255 }, { 141, 0, 285 }, { 6, 0, 619 }, + { 7, 0, 898 }, { 7, 0, 1092 }, { 8, 0, 485 }, { 18, 0, 28 }, + { 19, 0, 116 }, { 135, 10, 1931 }, { 9, 0, 145 }, { 7, 10, 574 }, + { 135, 10, 1719 }, { 7, 0, 2035 }, { 8, 0, 19 }, { 9, 0, 89 }, + { 138, 0, 831 }, { 132, 10, 658 }, { 6, 11, 517 }, { 7, 11, 1159 }, + { 10, 11, 621 }, { 139, 11, 192 }, { 7, 0, 1933 }, { 7, 11, 1933 }, + { 9, 10, 781 }, { 10, 10, 144 }, { 11, 10, 385 }, { 13, 10, 161 }, + { 13, 10, 228 }, { 13, 10, 268 }, { 148, 10, 107 }, { 136, 10, 374 }, + { 10, 11, 223 }, { 139, 11, 645 }, { 135, 0, 1728 }, { 7, 11, 64 }, + { 7, 11, 289 }, { 136, 11, 245 }, { 4, 10, 344 }, { 6, 10, 498 }, + { 139, 10, 323 }, { 136, 0, 746 }, { 135, 10, 1063 }, { 137, 10, 155 }, + { 4, 0, 987 }, { 6, 0, 1964 }, { 6, 0, 1974 }, { 6, 0, 1990 }, + { 136, 0, 995 }, { 133, 11, 609 }, { 133, 10, 906 }, { 134, 0, 1550 }, + { 134, 0, 874 }, { 5, 11, 129 }, { 6, 11, 61 }, { 135, 11, 947 }, + { 4, 0, 1018 }, { 6, 0, 1938 }, { 6, 0, 2021 }, { 134, 0, 2039 }, + { 132, 0, 814 }, { 11, 0, 126 }, { 139, 0, 287 }, { 134, 0, 1264 }, + { 5, 0, 955 }, { 136, 0, 814 }, { 141, 11, 506 }, { 132, 11, 314 }, + { 6, 0, 981 }, { 139, 11, 1000 }, { 5, 0, 56 }, { 8, 0, 892 }, + { 8, 0, 915 }, { 140, 0, 776 }, { 148, 0, 100 }, { 10, 0, 4 }, + { 10, 0, 13 }, { 11, 0, 638 }, { 148, 0, 57 }, { 148, 11, 74 }, + { 5, 0, 738 }, { 132, 10, 616 }, { 133, 11, 637 }, { 136, 10, 692 }, + { 133, 0, 758 }, { 132, 10, 305 }, { 137, 11, 590 }, { 5, 11, 280 }, + { 135, 11, 1226 }, { 134, 11, 494 }, { 135, 0, 1112 }, { 133, 11, 281 }, + { 13, 0, 44 }, { 14, 0, 214 }, { 5, 10, 214 }, { 7, 10, 603 }, + { 8, 10, 611 }, { 9, 10, 686 }, { 10, 10, 88 }, { 11, 10, 459 }, + { 11, 10, 496 }, { 12, 10, 463 }, { 140, 10, 590 }, { 139, 0, 328 }, + { 135, 11, 1064 }, { 137, 0, 133 }, { 7, 0, 168 }, { 13, 0, 196 }, + { 141, 0, 237 }, { 134, 10, 1703 }, { 134, 0, 1152 }, { 135, 0, 1245 }, + { 5, 0, 110 }, { 6, 0, 169 }, { 6, 0, 1702 }, { 7, 0, 400 }, + { 8, 0, 538 }, { 9, 0, 184 }, { 9, 0, 524 }, { 140, 0, 218 }, + { 6, 0, 1816 }, { 10, 0, 871 }, { 12, 0, 769 }, { 140, 0, 785 }, + { 132, 11, 630 }, { 7, 11, 33 }, { 7, 11, 120 }, { 8, 11, 489 }, + { 9, 11, 319 }, { 10, 11, 820 }, { 11, 11, 1004 }, { 12, 11, 379 }, + { 13, 11, 117 }, { 13, 11, 412 }, { 14, 11, 25 }, { 15, 11, 52 }, + { 15, 11, 161 }, { 16, 11, 47 }, { 149, 11, 2 }, { 6, 0, 133 }, + { 8, 0, 413 }, { 9, 0, 353 }, { 139, 0, 993 }, { 145, 10, 19 }, + { 4, 11, 937 }, { 133, 11, 801 }, { 134, 0, 978 }, { 6, 0, 93 }, + { 6, 0, 1508 }, { 7, 0, 1422 }, { 7, 0, 1851 }, { 8, 0, 673 }, + { 9, 0, 529 }, { 140, 0, 43 }, { 6, 0, 317 }, { 10, 0, 512 }, + { 4, 10, 737 }, { 11, 10, 294 }, { 12, 10, 60 }, { 12, 10, 437 }, + { 13, 10, 64 }, { 13, 10, 380 }, { 142, 10, 430 }, { 9, 0, 371 }, + { 7, 11, 1591 }, { 144, 11, 43 }, { 6, 10, 1758 }, { 8, 10, 520 }, + { 9, 10, 345 }, { 9, 10, 403 }, { 142, 10, 350 }, { 5, 0, 526 }, + { 10, 10, 242 }, { 138, 10, 579 }, { 9, 0, 25 }, { 10, 0, 467 }, + { 138, 0, 559 }, { 5, 10, 139 }, { 7, 10, 1168 }, { 138, 10, 539 }, + { 4, 0, 335 }, { 135, 0, 942 }, { 140, 0, 754 }, { 132, 11, 365 }, + { 11, 0, 182 }, { 142, 0, 195 }, { 142, 11, 29 }, { 5, 11, 7 }, + { 139, 11, 774 }, { 4, 11, 746 }, { 135, 11, 1090 }, { 8, 0, 39 }, + { 10, 0, 773 }, { 11, 0, 84 }, { 12, 0, 205 }, { 142, 0, 1 }, + { 5, 0, 601 }, { 5, 0, 870 }, { 5, 11, 360 }, { 136, 11, 237 }, + { 132, 0, 181 }, { 136, 0, 370 }, { 134, 0, 1652 }, { 8, 0, 358 }, + { 4, 10, 107 }, { 7, 10, 613 }, { 8, 10, 439 }, { 8, 10, 504 }, + { 9, 10, 501 }, { 10, 10, 383 }, { 139, 10, 477 }, { 132, 10, 229 }, + { 137, 11, 785 }, { 4, 0, 97 }, { 5, 0, 147 }, { 6, 0, 286 }, + { 7, 0, 1362 }, { 141, 0, 176 }, { 6, 0, 537 }, { 7, 0, 788 }, + { 7, 0, 1816 }, { 132, 10, 903 }, { 140, 10, 71 }, { 6, 0, 743 }, + { 134, 0, 1223 }, { 6, 0, 375 }, { 7, 0, 169 }, { 7, 0, 254 }, + { 8, 0, 780 }, { 135, 11, 1493 }, { 7, 0, 1714 }, { 4, 10, 47 }, + { 6, 10, 373 }, { 7, 10, 452 }, { 7, 10, 543 }, { 7, 10, 1856 }, + { 9, 10, 6 }, { 11, 10, 257 }, { 139, 10, 391 }, { 6, 0, 896 }, + { 136, 0, 1003 }, { 135, 0, 1447 }, { 137, 11, 341 }, { 5, 10, 980 }, + { 134, 10, 1754 }, { 145, 11, 22 }, { 4, 11, 277 }, { 5, 11, 608 }, + { 6, 11, 493 }, { 7, 11, 457 }, { 140, 11, 384 }, { 7, 10, 536 }, + { 7, 10, 1331 }, { 136, 10, 143 }, { 140, 0, 744 }, { 7, 11, 27 }, + { 135, 11, 316 }, { 18, 0, 126 }, { 5, 10, 19 }, { 134, 10, 533 }, + { 4, 0, 788 }, { 11, 0, 41 }, { 5, 11, 552 }, { 5, 11, 586 }, + { 5, 11, 676 }, { 6, 11, 448 }, { 8, 11, 244 }, { 11, 11, 1 }, + { 11, 11, 41 }, { 13, 11, 3 }, { 16, 11, 54 }, { 17, 11, 4 }, + { 146, 11, 13 }, { 4, 0, 985 }, { 6, 0, 1801 }, { 4, 11, 401 }, + { 137, 11, 264 }, { 5, 10, 395 }, { 5, 10, 951 }, { 134, 10, 1776 }, + { 5, 0, 629 }, { 135, 0, 1549 }, { 11, 10, 663 }, { 12, 10, 210 }, + { 13, 10, 166 }, { 13, 10, 310 }, { 14, 10, 373 }, { 147, 10, 43 }, + { 9, 11, 543 }, { 10, 11, 524 }, { 11, 11, 30 }, { 12, 11, 524 }, + { 14, 11, 315 }, { 16, 11, 18 }, { 20, 11, 26 }, { 148, 11, 65 }, + { 4, 11, 205 }, { 5, 11, 623 }, { 7, 11, 104 }, { 136, 11, 519 }, + { 5, 0, 293 }, { 134, 0, 601 }, { 7, 11, 579 }, { 9, 11, 41 }, + { 9, 11, 244 }, { 9, 11, 669 }, { 10, 11, 5 }, { 11, 11, 861 }, + { 11, 11, 951 }, { 139, 11, 980 }, { 132, 11, 717 }, { 132, 10, 695 }, + { 7, 10, 497 }, { 9, 10, 387 }, { 147, 10, 81 }, { 132, 0, 420 }, + { 142, 0, 37 }, { 6, 0, 1134 }, { 6, 0, 1900 }, { 12, 0, 830 }, + { 12, 0, 878 }, { 12, 0, 894 }, { 15, 0, 221 }, { 143, 0, 245 }, + { 132, 11, 489 }, { 7, 0, 1570 }, { 140, 0, 542 }, { 8, 0, 933 }, + { 136, 0, 957 }, { 6, 0, 1371 }, { 7, 0, 31 }, { 8, 0, 373 }, + { 5, 10, 284 }, { 6, 10, 49 }, { 6, 10, 350 }, { 7, 10, 377 }, + { 7, 10, 1693 }, { 8, 10, 678 }, { 9, 10, 161 }, { 9, 10, 585 }, + { 9, 10, 671 }, { 9, 10, 839 }, { 11, 10, 912 }, { 141, 10, 427 }, + { 135, 11, 892 }, { 4, 0, 325 }, { 138, 0, 125 }, { 139, 11, 47 }, + { 132, 10, 597 }, { 138, 0, 323 }, { 6, 0, 1547 }, { 7, 11, 1605 }, + { 9, 11, 473 }, { 11, 11, 962 }, { 146, 11, 139 }, { 139, 10, 908 }, + { 7, 11, 819 }, { 9, 11, 26 }, { 9, 11, 392 }, { 10, 11, 152 }, + { 10, 11, 226 }, { 11, 11, 19 }, { 12, 11, 276 }, { 12, 11, 426 }, + { 12, 11, 589 }, { 13, 11, 460 }, { 15, 11, 97 }, { 19, 11, 48 }, + { 148, 11, 104 }, { 135, 11, 51 }, { 4, 0, 718 }, { 135, 0, 1216 }, + { 6, 0, 1896 }, { 6, 0, 1905 }, { 6, 0, 1912 }, { 9, 0, 947 }, + { 9, 0, 974 }, { 12, 0, 809 }, { 12, 0, 850 }, { 12, 0, 858 }, + { 12, 0, 874 }, { 12, 0, 887 }, { 12, 0, 904 }, { 12, 0, 929 }, + { 12, 0, 948 }, { 12, 0, 952 }, { 15, 0, 198 }, { 15, 0, 206 }, + { 15, 0, 220 }, { 15, 0, 227 }, { 15, 0, 247 }, { 18, 0, 188 }, + { 21, 0, 48 }, { 21, 0, 50 }, { 24, 0, 25 }, { 24, 0, 29 }, + { 7, 11, 761 }, { 7, 11, 1051 }, { 137, 11, 545 }, { 5, 0, 124 }, + { 5, 0, 144 }, { 6, 0, 548 }, { 7, 0, 15 }, { 7, 0, 153 }, + { 137, 0, 629 }, { 135, 11, 606 }, { 135, 10, 2014 }, { 7, 10, 2007 }, + { 9, 11, 46 }, { 9, 10, 101 }, { 9, 10, 450 }, { 10, 10, 66 }, + { 10, 10, 842 }, { 11, 10, 536 }, { 140, 10, 587 }, { 6, 0, 75 }, + { 7, 0, 1531 }, { 8, 0, 416 }, { 9, 0, 240 }, { 9, 0, 275 }, + { 10, 0, 100 }, { 11, 0, 658 }, { 11, 0, 979 }, { 12, 0, 86 }, + { 14, 0, 207 }, { 15, 0, 20 }, { 143, 0, 25 }, { 5, 0, 141 }, + { 5, 0, 915 }, { 6, 0, 1783 }, { 7, 0, 211 }, { 7, 0, 698 }, + { 7, 0, 1353 }, { 9, 0, 83 }, { 9, 0, 281 }, { 10, 0, 376 }, + { 10, 0, 431 }, { 11, 0, 543 }, { 12, 0, 664 }, { 13, 0, 280 }, + { 13, 0, 428 }, { 14, 0, 61 }, { 14, 0, 128 }, { 17, 0, 52 }, + { 145, 0, 81 }, { 132, 11, 674 }, { 135, 0, 533 }, { 149, 0, 6 }, + { 132, 11, 770 }, { 133, 0, 538 }, { 5, 11, 79 }, { 7, 11, 1027 }, + { 7, 11, 1477 }, { 139, 11, 52 }, { 139, 10, 62 }, { 4, 0, 338 }, + { 133, 0, 400 }, { 5, 11, 789 }, { 134, 11, 195 }, { 4, 11, 251 }, + { 4, 11, 688 }, { 7, 11, 513 }, { 7, 11, 1284 }, { 9, 11, 87 }, + { 138, 11, 365 }, { 134, 10, 1766 }, { 6, 0, 0 }, { 7, 0, 84 }, + { 11, 0, 895 }, { 145, 0, 11 }, { 139, 0, 892 }, { 4, 0, 221 }, + { 5, 0, 659 }, { 7, 0, 697 }, { 7, 0, 1211 }, { 138, 0, 284 }, + { 133, 0, 989 }, { 133, 11, 889 }, { 4, 11, 160 }, { 5, 11, 330 }, + { 7, 11, 1434 }, { 136, 11, 174 }, { 6, 10, 1665 }, { 7, 10, 256 }, + { 7, 10, 1388 }, { 10, 10, 499 }, { 139, 10, 670 }, { 7, 0, 848 }, + { 4, 10, 22 }, { 5, 10, 10 }, { 136, 10, 97 }, { 138, 0, 507 }, + { 133, 10, 481 }, { 4, 0, 188 }, { 135, 0, 805 }, { 5, 0, 884 }, + { 6, 0, 732 }, { 139, 0, 991 }, { 135, 11, 968 }, { 11, 11, 636 }, + { 15, 11, 145 }, { 17, 11, 34 }, { 19, 11, 50 }, { 151, 11, 20 }, + { 7, 0, 959 }, { 16, 0, 60 }, { 6, 10, 134 }, { 7, 10, 437 }, + { 9, 10, 37 }, { 14, 10, 285 }, { 142, 10, 371 }, { 7, 10, 486 }, + { 8, 10, 155 }, { 11, 10, 93 }, { 140, 10, 164 }, { 134, 0, 1653 }, + { 7, 0, 337 }, { 133, 10, 591 }, { 6, 0, 1989 }, { 8, 0, 922 }, + { 8, 0, 978 }, { 133, 11, 374 }, { 132, 0, 638 }, { 138, 0, 500 }, + { 133, 11, 731 }, { 5, 10, 380 }, { 5, 10, 650 }, { 136, 10, 310 }, + { 138, 11, 381 }, { 4, 10, 364 }, { 7, 10, 1156 }, { 7, 10, 1187 }, + { 137, 10, 409 }, { 137, 11, 224 }, { 140, 0, 166 }, { 134, 10, 482 }, + { 4, 11, 626 }, { 5, 11, 642 }, { 6, 11, 425 }, { 10, 11, 202 }, + { 139, 11, 141 }, { 4, 10, 781 }, { 6, 10, 487 }, { 7, 10, 926 }, + { 8, 10, 263 }, { 139, 10, 500 }, { 135, 0, 418 }, { 4, 10, 94 }, + { 135, 10, 1265 }, { 136, 0, 760 }, { 132, 10, 417 }, { 136, 11, 835 }, + { 5, 10, 348 }, { 134, 10, 522 }, { 6, 0, 1277 }, { 134, 0, 1538 }, + { 139, 11, 541 }, { 135, 11, 1597 }, { 5, 11, 384 }, { 8, 11, 455 }, + { 140, 11, 48 }, { 136, 0, 770 }, { 5, 11, 264 }, { 134, 11, 184 }, + { 4, 0, 89 }, { 5, 0, 489 }, { 6, 0, 315 }, { 7, 0, 553 }, + { 7, 0, 1745 }, { 138, 0, 243 }, { 4, 10, 408 }, { 4, 10, 741 }, + { 135, 10, 500 }, { 134, 0, 1396 }, { 133, 0, 560 }, { 6, 0, 1658 }, + { 9, 0, 3 }, { 10, 0, 154 }, { 11, 0, 641 }, { 13, 0, 85 }, + { 13, 0, 201 }, { 141, 0, 346 }, { 135, 11, 1595 }, { 5, 11, 633 }, + { 6, 11, 28 }, { 7, 11, 219 }, { 135, 11, 1323 }, { 9, 11, 769 }, + { 140, 11, 185 }, { 135, 11, 785 }, { 7, 11, 359 }, { 8, 11, 243 }, + { 140, 11, 175 }, { 138, 0, 586 }, { 7, 0, 1271 }, { 134, 10, 73 }, + { 132, 11, 105 }, { 4, 0, 166 }, { 5, 0, 505 }, { 134, 0, 1670 }, + { 133, 10, 576 }, { 4, 11, 324 }, { 138, 11, 104 }, { 142, 10, 231 }, + { 6, 0, 637 }, { 7, 10, 1264 }, { 7, 10, 1678 }, { 11, 10, 945 }, + { 12, 10, 341 }, { 12, 10, 471 }, { 12, 10, 569 }, { 23, 11, 21 }, + { 151, 11, 23 }, { 8, 11, 559 }, { 141, 11, 109 }, { 134, 0, 1947 }, + { 7, 0, 445 }, { 8, 0, 307 }, { 8, 0, 704 }, { 10, 0, 41 }, + { 10, 0, 439 }, { 11, 0, 237 }, { 11, 0, 622 }, { 140, 0, 201 }, + { 135, 11, 963 }, { 135, 0, 1977 }, { 4, 0, 189 }, { 5, 0, 713 }, + { 136, 0, 57 }, { 138, 0, 371 }, { 135, 10, 538 }, { 132, 0, 552 }, + { 6, 0, 883 }, { 133, 10, 413 }, { 6, 0, 923 }, { 132, 11, 758 }, + { 138, 11, 215 }, { 136, 10, 495 }, { 7, 10, 54 }, { 8, 10, 312 }, + { 10, 10, 191 }, { 10, 10, 614 }, { 140, 10, 567 }, { 7, 11, 351 }, + { 139, 11, 128 }, { 7, 0, 875 }, { 6, 10, 468 }, { 7, 10, 1478 }, + { 8, 10, 530 }, { 142, 10, 290 }, { 135, 0, 1788 }, { 17, 0, 49 }, + { 133, 11, 918 }, { 12, 11, 398 }, { 20, 11, 39 }, { 21, 11, 11 }, + { 150, 11, 41 }, { 10, 0, 661 }, { 6, 10, 484 }, { 135, 10, 822 }, + { 135, 0, 1945 }, { 134, 0, 794 }, { 137, 10, 900 }, { 135, 10, 1335 }, + { 6, 10, 1724 }, { 135, 10, 2022 }, { 132, 11, 340 }, { 134, 0, 1135 }, + { 4, 0, 784 }, { 133, 0, 745 }, { 5, 0, 84 }, { 134, 0, 163 }, + { 133, 0, 410 }, { 4, 0, 976 }, { 5, 11, 985 }, { 7, 11, 509 }, + { 7, 11, 529 }, { 145, 11, 96 }, { 132, 10, 474 }, { 134, 0, 703 }, + { 135, 11, 1919 }, { 5, 0, 322 }, { 8, 0, 186 }, { 9, 0, 262 }, + { 10, 0, 187 }, { 142, 0, 208 }, { 135, 10, 1504 }, { 133, 0, 227 }, + { 9, 0, 560 }, { 13, 0, 208 }, { 133, 10, 305 }, { 132, 11, 247 }, + { 7, 0, 1395 }, { 8, 0, 486 }, { 9, 0, 236 }, { 9, 0, 878 }, + { 10, 0, 218 }, { 11, 0, 95 }, { 19, 0, 17 }, { 147, 0, 31 }, + { 7, 0, 2043 }, { 8, 0, 672 }, { 141, 0, 448 }, { 4, 11, 184 }, + { 5, 11, 390 }, { 6, 11, 337 }, { 7, 11, 23 }, { 7, 11, 494 }, + { 7, 11, 618 }, { 7, 11, 1456 }, { 8, 11, 27 }, { 8, 11, 599 }, + { 10, 11, 153 }, { 139, 11, 710 }, { 135, 0, 466 }, { 135, 10, 1236 }, + { 6, 0, 167 }, { 7, 0, 186 }, { 7, 0, 656 }, { 10, 0, 643 }, + { 4, 10, 480 }, { 6, 10, 302 }, { 6, 10, 1642 }, { 7, 10, 837 }, + { 7, 10, 1547 }, { 7, 10, 1657 }, { 8, 10, 429 }, { 9, 10, 228 }, + { 13, 10, 289 }, { 13, 10, 343 }, { 147, 10, 101 }, { 134, 0, 1428 }, + { 134, 0, 1440 }, { 5, 0, 412 }, { 7, 10, 278 }, { 10, 10, 739 }, + { 11, 10, 708 }, { 141, 10, 348 }, { 134, 0, 1118 }, { 136, 0, 562 }, + { 148, 11, 46 }, { 9, 0, 316 }, { 139, 0, 256 }, { 134, 0, 1771 }, + { 135, 0, 1190 }, { 137, 0, 132 }, { 10, 11, 227 }, { 11, 11, 497 }, + { 11, 11, 709 }, { 140, 11, 415 }, { 143, 0, 66 }, { 6, 11, 360 }, + { 7, 11, 1664 }, { 136, 11, 478 }, { 144, 10, 28 }, { 4, 0, 317 }, + { 135, 0, 1279 }, { 5, 0, 63 }, { 133, 0, 509 }, { 136, 11, 699 }, + { 145, 10, 36 }, { 134, 0, 1475 }, { 11, 11, 343 }, { 142, 11, 127 }, + { 132, 11, 739 }, { 132, 0, 288 }, { 135, 11, 1757 }, { 8, 0, 89 }, + { 8, 0, 620 }, { 9, 0, 608 }, { 11, 0, 628 }, { 12, 0, 322 }, + { 143, 0, 124 }, { 134, 0, 1225 }, { 7, 0, 1189 }, { 4, 11, 67 }, + { 5, 11, 422 }, { 6, 10, 363 }, { 7, 11, 1037 }, { 7, 11, 1289 }, + { 7, 11, 1555 }, { 7, 10, 1955 }, { 8, 10, 725 }, { 9, 11, 741 }, + { 145, 11, 108 }, { 134, 0, 1468 }, { 6, 0, 689 }, { 134, 0, 1451 }, + { 138, 0, 120 }, { 151, 0, 1 }, { 137, 10, 805 }, { 142, 0, 329 }, + { 5, 10, 813 }, { 135, 10, 2046 }, { 135, 0, 226 }, { 138, 11, 96 }, + { 7, 0, 1855 }, { 5, 10, 712 }, { 11, 10, 17 }, { 13, 10, 321 }, + { 144, 10, 67 }, { 9, 0, 461 }, { 6, 10, 320 }, { 7, 10, 781 }, + { 7, 10, 1921 }, { 9, 10, 55 }, { 10, 10, 186 }, { 10, 10, 273 }, + { 10, 10, 664 }, { 10, 10, 801 }, { 11, 10, 996 }, { 11, 10, 997 }, + { 13, 10, 157 }, { 142, 10, 170 }, { 8, 11, 203 }, { 8, 10, 271 }, + { 11, 11, 823 }, { 11, 11, 846 }, { 12, 11, 482 }, { 13, 11, 133 }, + { 13, 11, 277 }, { 13, 11, 302 }, { 13, 11, 464 }, { 14, 11, 205 }, + { 142, 11, 221 }, { 135, 0, 1346 }, { 4, 11, 449 }, { 133, 11, 718 }, + { 134, 0, 85 }, { 14, 0, 299 }, { 7, 10, 103 }, { 7, 10, 863 }, + { 11, 10, 184 }, { 145, 10, 62 }, { 4, 11, 355 }, { 6, 11, 311 }, + { 9, 11, 256 }, { 138, 11, 404 }, { 137, 10, 659 }, { 138, 11, 758 }, + { 133, 11, 827 }, { 5, 11, 64 }, { 140, 11, 581 }, { 134, 0, 1171 }, + { 4, 11, 442 }, { 7, 11, 1047 }, { 7, 11, 1352 }, { 135, 11, 1643 }, + { 132, 0, 980 }, { 5, 11, 977 }, { 6, 11, 288 }, { 7, 11, 528 }, + { 135, 11, 1065 }, { 5, 0, 279 }, { 6, 0, 235 }, { 7, 0, 468 }, + { 8, 0, 446 }, { 9, 0, 637 }, { 10, 0, 717 }, { 11, 0, 738 }, + { 140, 0, 514 }, { 132, 0, 293 }, { 11, 10, 337 }, { 142, 10, 303 }, + { 136, 11, 285 }, { 5, 0, 17 }, { 6, 0, 371 }, { 9, 0, 528 }, + { 12, 0, 364 }, { 132, 11, 254 }, { 5, 10, 77 }, { 7, 10, 1455 }, + { 10, 10, 843 }, { 147, 10, 73 }, { 150, 0, 5 }, { 132, 10, 458 }, + { 6, 11, 12 }, { 7, 11, 1219 }, { 145, 11, 73 }, { 135, 10, 1420 }, + { 6, 10, 109 }, { 138, 10, 382 }, { 135, 11, 125 }, { 6, 10, 330 }, + { 7, 10, 1084 }, { 139, 10, 142 }, { 6, 11, 369 }, { 6, 11, 502 }, + { 7, 11, 1036 }, { 8, 11, 348 }, { 9, 11, 452 }, { 10, 11, 26 }, + { 11, 11, 224 }, { 11, 11, 387 }, { 11, 11, 772 }, { 12, 11, 95 }, + { 12, 11, 629 }, { 13, 11, 195 }, { 13, 11, 207 }, { 13, 11, 241 }, + { 14, 11, 260 }, { 14, 11, 270 }, { 143, 11, 140 }, { 132, 11, 269 }, + { 5, 11, 480 }, { 7, 11, 532 }, { 7, 11, 1197 }, { 7, 11, 1358 }, + { 8, 11, 291 }, { 11, 11, 349 }, { 142, 11, 396 }, { 150, 0, 48 }, + { 10, 0, 601 }, { 13, 0, 353 }, { 141, 0, 376 }, { 5, 0, 779 }, + { 5, 0, 807 }, { 6, 0, 1655 }, { 134, 0, 1676 }, { 142, 11, 223 }, + { 4, 0, 196 }, { 5, 0, 558 }, { 133, 0, 949 }, { 148, 11, 15 }, + { 135, 11, 1764 }, { 134, 0, 1322 }, { 132, 0, 752 }, { 139, 0, 737 }, + { 135, 11, 657 }, { 136, 11, 533 }, { 135, 0, 412 }, { 4, 0, 227 }, + { 5, 0, 159 }, { 5, 0, 409 }, { 7, 0, 80 }, { 8, 0, 556 }, + { 10, 0, 479 }, { 12, 0, 418 }, { 14, 0, 50 }, { 14, 0, 123 }, + { 14, 0, 192 }, { 14, 0, 249 }, { 14, 0, 295 }, { 143, 0, 27 }, + { 7, 0, 1470 }, { 8, 0, 66 }, { 8, 0, 137 }, { 8, 0, 761 }, + { 9, 0, 638 }, { 11, 0, 80 }, { 11, 0, 212 }, { 11, 0, 368 }, + { 11, 0, 418 }, { 12, 0, 8 }, { 13, 0, 15 }, { 16, 0, 61 }, + { 17, 0, 59 }, { 19, 0, 28 }, { 148, 0, 84 }, { 135, 10, 1985 }, + { 4, 11, 211 }, { 4, 11, 332 }, { 5, 11, 335 }, { 6, 11, 238 }, + { 7, 11, 269 }, { 7, 11, 811 }, { 7, 11, 1797 }, { 8, 10, 122 }, + { 8, 11, 836 }, { 9, 11, 507 }, { 141, 11, 242 }, { 6, 0, 683 }, + { 134, 0, 1252 }, { 4, 0, 873 }, { 132, 10, 234 }, { 134, 0, 835 }, + { 6, 0, 38 }, { 7, 0, 1220 }, { 8, 0, 185 }, { 8, 0, 256 }, + { 9, 0, 22 }, { 9, 0, 331 }, { 10, 0, 738 }, { 11, 0, 205 }, + { 11, 0, 540 }, { 11, 0, 746 }, { 13, 0, 465 }, { 14, 0, 88 }, + { 142, 0, 194 }, { 138, 0, 986 }, { 5, 11, 1009 }, { 12, 11, 582 }, + { 146, 11, 131 }, { 4, 0, 159 }, { 6, 0, 115 }, { 7, 0, 252 }, + { 7, 0, 257 }, { 7, 0, 1928 }, { 8, 0, 69 }, { 9, 0, 384 }, + { 10, 0, 91 }, { 10, 0, 615 }, { 12, 0, 375 }, { 14, 0, 235 }, + { 18, 0, 117 }, { 147, 0, 123 }, { 133, 0, 911 }, { 136, 0, 278 }, + { 5, 10, 430 }, { 5, 10, 932 }, { 6, 10, 131 }, { 7, 10, 417 }, + { 9, 10, 522 }, { 11, 10, 314 }, { 141, 10, 390 }, { 14, 10, 149 }, + { 14, 10, 399 }, { 143, 10, 57 }, { 4, 0, 151 }, { 7, 0, 1567 }, + { 136, 0, 749 }, { 5, 11, 228 }, { 6, 11, 203 }, { 7, 11, 156 }, + { 8, 11, 347 }, { 137, 11, 265 }, { 132, 10, 507 }, { 10, 0, 989 }, + { 140, 0, 956 }, { 133, 0, 990 }, { 5, 0, 194 }, { 6, 0, 927 }, + { 7, 0, 1662 }, { 9, 0, 90 }, { 140, 0, 564 }, { 4, 10, 343 }, + { 133, 10, 511 }, { 133, 0, 425 }, { 7, 10, 455 }, { 138, 10, 591 }, + { 4, 0, 774 }, { 7, 11, 476 }, { 7, 11, 1592 }, { 138, 11, 87 }, + { 5, 0, 971 }, { 135, 10, 1381 }, { 5, 11, 318 }, { 147, 11, 121 }, + { 5, 11, 291 }, { 7, 11, 765 }, { 9, 11, 389 }, { 140, 11, 548 }, + { 134, 10, 575 }, { 4, 0, 827 }, { 12, 0, 646 }, { 12, 0, 705 }, + { 12, 0, 712 }, { 140, 0, 714 }, { 139, 0, 752 }, { 137, 0, 662 }, + { 5, 0, 72 }, { 6, 0, 264 }, { 7, 0, 21 }, { 7, 0, 46 }, + { 7, 0, 2013 }, { 8, 0, 215 }, { 8, 0, 513 }, { 10, 0, 266 }, + { 139, 0, 22 }, { 139, 11, 522 }, { 6, 0, 239 }, { 7, 0, 118 }, + { 10, 0, 95 }, { 11, 0, 603 }, { 13, 0, 443 }, { 14, 0, 160 }, + { 143, 0, 4 }, { 6, 0, 431 }, { 134, 0, 669 }, { 7, 10, 1127 }, + { 7, 10, 1572 }, { 10, 10, 297 }, { 10, 10, 422 }, { 11, 10, 764 }, + { 11, 10, 810 }, { 12, 10, 264 }, { 13, 10, 102 }, { 13, 10, 300 }, + { 13, 10, 484 }, { 14, 10, 147 }, { 14, 10, 229 }, { 17, 10, 71 }, + { 18, 10, 118 }, { 147, 10, 120 }, { 5, 0, 874 }, { 6, 0, 1677 }, + { 15, 0, 0 }, { 10, 11, 525 }, { 139, 11, 82 }, { 6, 0, 65 }, + { 7, 0, 939 }, { 7, 0, 1172 }, { 7, 0, 1671 }, { 9, 0, 540 }, + { 10, 0, 696 }, { 11, 0, 265 }, { 11, 0, 732 }, { 11, 0, 928 }, + { 11, 0, 937 }, { 141, 0, 438 }, { 134, 0, 1350 }, { 136, 11, 547 }, + { 132, 11, 422 }, { 5, 11, 355 }, { 145, 11, 0 }, { 137, 11, 905 }, + { 5, 0, 682 }, { 135, 0, 1887 }, { 132, 0, 809 }, { 4, 0, 696 }, + { 133, 11, 865 }, { 6, 0, 1074 }, { 6, 0, 1472 }, { 14, 10, 35 }, + { 142, 10, 191 }, { 5, 11, 914 }, { 134, 11, 1625 }, { 133, 11, 234 }, + { 135, 11, 1383 }, { 137, 11, 780 }, { 132, 10, 125 }, { 4, 0, 726 }, + { 133, 0, 630 }, { 8, 0, 802 }, { 136, 0, 838 }, { 132, 10, 721 }, + { 6, 0, 1337 }, { 7, 0, 776 }, { 19, 0, 56 }, { 136, 10, 145 }, + { 132, 0, 970 }, { 7, 10, 792 }, { 8, 10, 147 }, { 10, 10, 821 }, + { 139, 10, 1021 }, { 139, 10, 970 }, { 8, 0, 940 }, { 137, 0, 797 }, + { 135, 11, 1312 }, { 9, 0, 248 }, { 10, 0, 400 }, { 7, 11, 816 }, + { 7, 11, 1241 }, { 7, 10, 1999 }, { 9, 11, 283 }, { 9, 11, 520 }, + { 10, 11, 213 }, { 10, 11, 307 }, { 10, 11, 463 }, { 10, 11, 671 }, + { 10, 11, 746 }, { 11, 11, 401 }, { 11, 11, 794 }, { 12, 11, 517 }, + { 18, 11, 107 }, { 147, 11, 115 }, { 6, 0, 1951 }, { 134, 0, 2040 }, + { 135, 11, 339 }, { 13, 0, 41 }, { 15, 0, 93 }, { 5, 10, 168 }, + { 5, 10, 930 }, { 8, 10, 74 }, { 9, 10, 623 }, { 12, 10, 500 }, + { 140, 10, 579 }, { 6, 0, 118 }, { 7, 0, 215 }, { 7, 0, 1521 }, + { 140, 0, 11 }, { 6, 10, 220 }, { 7, 10, 1101 }, { 141, 10, 105 }, + { 6, 11, 421 }, { 7, 11, 61 }, { 7, 11, 1540 }, { 10, 11, 11 }, + { 138, 11, 501 }, { 7, 0, 615 }, { 138, 0, 251 }, { 140, 11, 631 }, + { 135, 0, 1044 }, { 6, 10, 19 }, { 7, 10, 1413 }, { 139, 10, 428 }, + { 133, 0, 225 }, { 7, 10, 96 }, { 8, 10, 401 }, { 8, 10, 703 }, + { 137, 10, 896 }, { 145, 10, 116 }, { 6, 11, 102 }, { 7, 11, 72 }, + { 15, 11, 142 }, { 147, 11, 67 }, { 7, 10, 1961 }, { 7, 10, 1965 }, + { 8, 10, 702 }, { 136, 10, 750 }, { 7, 10, 2030 }, { 8, 10, 150 }, + { 8, 10, 737 }, { 12, 10, 366 }, { 151, 11, 30 }, { 4, 0, 370 }, + { 5, 0, 756 }, { 7, 0, 1326 }, { 135, 11, 823 }, { 8, 10, 800 }, + { 9, 10, 148 }, { 9, 10, 872 }, { 9, 10, 890 }, { 11, 10, 309 }, + { 11, 10, 1001 }, { 13, 10, 267 }, { 141, 10, 323 }, { 6, 0, 1662 }, + { 7, 0, 48 }, { 8, 0, 771 }, { 10, 0, 116 }, { 13, 0, 104 }, + { 14, 0, 105 }, { 14, 0, 184 }, { 15, 0, 168 }, { 19, 0, 92 }, + { 148, 0, 68 }, { 10, 0, 209 }, { 135, 11, 1870 }, { 7, 11, 68 }, + { 8, 11, 48 }, { 8, 11, 88 }, { 8, 11, 582 }, { 8, 11, 681 }, + { 9, 11, 373 }, { 9, 11, 864 }, { 11, 11, 157 }, { 11, 11, 336 }, + { 11, 11, 843 }, { 148, 11, 27 }, { 134, 0, 930 }, { 4, 11, 88 }, + { 5, 11, 137 }, { 5, 11, 174 }, { 5, 11, 777 }, { 6, 11, 1664 }, + { 6, 11, 1725 }, { 7, 11, 77 }, { 7, 11, 426 }, { 7, 11, 1317 }, + { 7, 11, 1355 }, { 8, 11, 126 }, { 8, 11, 563 }, { 9, 11, 523 }, + { 9, 11, 750 }, { 10, 11, 310 }, { 10, 11, 836 }, { 11, 11, 42 }, + { 11, 11, 318 }, { 11, 11, 731 }, { 12, 11, 68 }, { 12, 11, 92 }, + { 12, 11, 507 }, { 12, 11, 692 }, { 13, 11, 81 }, { 13, 11, 238 }, + { 13, 11, 374 }, { 18, 11, 138 }, { 19, 11, 78 }, { 19, 11, 111 }, + { 20, 11, 55 }, { 20, 11, 77 }, { 148, 11, 92 }, { 4, 11, 938 }, + { 135, 11, 1831 }, { 5, 10, 547 }, { 7, 10, 424 }, { 8, 11, 617 }, + { 138, 11, 351 }, { 6, 0, 1286 }, { 6, 11, 1668 }, { 7, 11, 1499 }, + { 8, 11, 117 }, { 9, 11, 314 }, { 138, 11, 174 }, { 6, 0, 759 }, + { 6, 0, 894 }, { 7, 11, 707 }, { 139, 11, 563 }, { 4, 0, 120 }, + { 135, 0, 1894 }, { 9, 0, 385 }, { 149, 0, 17 }, { 138, 0, 429 }, + { 133, 11, 403 }, { 5, 0, 820 }, { 135, 0, 931 }, { 10, 0, 199 }, + { 133, 10, 133 }, { 6, 0, 151 }, { 6, 0, 1675 }, { 7, 0, 383 }, + { 151, 0, 10 }, { 6, 0, 761 }, { 136, 10, 187 }, { 8, 0, 365 }, + { 10, 10, 0 }, { 10, 10, 818 }, { 139, 10, 988 }, { 4, 11, 44 }, + { 5, 11, 311 }, { 6, 11, 156 }, { 7, 11, 639 }, { 7, 11, 762 }, + { 7, 11, 1827 }, { 9, 11, 8 }, { 9, 11, 462 }, { 148, 11, 83 }, + { 4, 11, 346 }, { 7, 11, 115 }, { 9, 11, 180 }, { 9, 11, 456 }, + { 138, 11, 363 }, { 136, 10, 685 }, { 7, 0, 1086 }, { 145, 0, 46 }, + { 6, 0, 1624 }, { 11, 0, 11 }, { 12, 0, 422 }, { 13, 0, 444 }, + { 142, 0, 360 }, { 6, 0, 1020 }, { 6, 0, 1260 }, { 134, 0, 1589 }, + { 4, 0, 43 }, { 5, 0, 344 }, { 5, 0, 357 }, { 14, 0, 472 }, + { 150, 0, 58 }, { 6, 0, 1864 }, { 6, 0, 1866 }, { 6, 0, 1868 }, + { 6, 0, 1869 }, { 6, 0, 1874 }, { 6, 0, 1877 }, { 6, 0, 1903 }, + { 6, 0, 1911 }, { 9, 0, 920 }, { 9, 0, 921 }, { 9, 0, 924 }, + { 9, 0, 946 }, { 9, 0, 959 }, { 9, 0, 963 }, { 9, 0, 970 }, + { 9, 0, 997 }, { 9, 0, 1008 }, { 9, 0, 1017 }, { 12, 0, 795 }, + { 12, 0, 797 }, { 12, 0, 798 }, { 12, 0, 800 }, { 12, 0, 803 }, + { 12, 0, 811 }, { 12, 0, 820 }, { 12, 0, 821 }, { 12, 0, 839 }, + { 12, 0, 841 }, { 12, 0, 848 }, { 12, 0, 911 }, { 12, 0, 921 }, + { 12, 0, 922 }, { 12, 0, 925 }, { 12, 0, 937 }, { 12, 0, 944 }, + { 12, 0, 945 }, { 12, 0, 953 }, { 15, 0, 184 }, { 15, 0, 191 }, + { 15, 0, 199 }, { 15, 0, 237 }, { 15, 0, 240 }, { 15, 0, 243 }, + { 15, 0, 246 }, { 18, 0, 203 }, { 21, 0, 40 }, { 21, 0, 52 }, + { 21, 0, 57 }, { 24, 0, 23 }, { 24, 0, 28 }, { 152, 0, 30 }, + { 134, 0, 725 }, { 145, 11, 58 }, { 133, 0, 888 }, { 137, 10, 874 }, + { 4, 0, 711 }, { 8, 10, 774 }, { 10, 10, 670 }, { 140, 10, 51 }, + { 144, 11, 40 }, { 6, 11, 185 }, { 7, 11, 1899 }, { 139, 11, 673 }, + { 137, 10, 701 }, { 137, 0, 440 }, { 4, 11, 327 }, { 5, 11, 478 }, + { 7, 11, 1332 }, { 8, 11, 753 }, { 140, 11, 227 }, { 4, 10, 127 }, + { 5, 10, 350 }, { 6, 10, 356 }, { 8, 10, 426 }, { 9, 10, 572 }, + { 10, 10, 247 }, { 139, 10, 312 }, { 5, 11, 1020 }, { 133, 11, 1022 }, + { 4, 11, 103 }, { 133, 11, 401 }, { 6, 0, 1913 }, { 6, 0, 1926 }, + { 6, 0, 1959 }, { 9, 0, 914 }, { 9, 0, 939 }, { 9, 0, 952 }, + { 9, 0, 979 }, { 9, 0, 990 }, { 9, 0, 998 }, { 9, 0, 1003 }, + { 9, 0, 1023 }, { 12, 0, 827 }, { 12, 0, 834 }, { 12, 0, 845 }, + { 12, 0, 912 }, { 12, 0, 935 }, { 12, 0, 951 }, { 15, 0, 172 }, + { 15, 0, 174 }, { 18, 0, 198 }, { 149, 0, 63 }, { 5, 0, 958 }, + { 5, 0, 987 }, { 4, 11, 499 }, { 135, 11, 1421 }, { 7, 0, 885 }, + { 6, 10, 59 }, { 6, 10, 1762 }, { 9, 10, 603 }, { 141, 10, 397 }, + { 10, 11, 62 }, { 141, 11, 164 }, { 4, 0, 847 }, { 135, 0, 326 }, + { 11, 0, 276 }, { 142, 0, 293 }, { 4, 0, 65 }, { 5, 0, 479 }, + { 5, 0, 1004 }, { 7, 0, 1913 }, { 8, 0, 317 }, { 9, 0, 302 }, + { 10, 0, 612 }, { 13, 0, 22 }, { 132, 11, 96 }, { 4, 0, 261 }, + { 135, 0, 510 }, { 135, 0, 1514 }, { 6, 10, 111 }, { 7, 10, 4 }, + { 8, 10, 163 }, { 8, 10, 776 }, { 138, 10, 566 }, { 4, 0, 291 }, + { 9, 0, 515 }, { 12, 0, 152 }, { 12, 0, 443 }, { 13, 0, 392 }, + { 142, 0, 357 }, { 7, 11, 399 }, { 135, 11, 1492 }, { 4, 0, 589 }, + { 139, 0, 282 }, { 6, 11, 563 }, { 135, 10, 1994 }, { 5, 10, 297 }, + { 135, 10, 1038 }, { 4, 0, 130 }, { 7, 0, 843 }, { 135, 0, 1562 }, + { 5, 0, 42 }, { 5, 0, 879 }, { 7, 0, 245 }, { 7, 0, 324 }, + { 7, 0, 1532 }, { 11, 0, 463 }, { 11, 0, 472 }, { 13, 0, 363 }, + { 144, 0, 52 }, { 4, 0, 134 }, { 133, 0, 372 }, { 133, 0, 680 }, + { 136, 10, 363 }, { 6, 0, 1997 }, { 8, 0, 935 }, { 136, 0, 977 }, + { 4, 0, 810 }, { 135, 0, 1634 }, { 135, 10, 1675 }, { 7, 0, 1390 }, + { 4, 11, 910 }, { 133, 11, 832 }, { 7, 10, 808 }, { 8, 11, 266 }, + { 139, 11, 578 }, { 132, 0, 644 }, { 4, 0, 982 }, { 138, 0, 867 }, + { 132, 10, 280 }, { 135, 0, 540 }, { 140, 10, 54 }, { 135, 0, 123 }, + { 134, 0, 1978 }, { 4, 10, 421 }, { 133, 10, 548 }, { 6, 0, 623 }, + { 136, 0, 789 }, { 4, 0, 908 }, { 5, 0, 359 }, { 5, 0, 508 }, + { 6, 0, 1723 }, { 7, 0, 343 }, { 7, 0, 1996 }, { 135, 0, 2026 }, + { 134, 0, 1220 }, { 4, 0, 341 }, { 135, 0, 480 }, { 6, 10, 254 }, + { 9, 10, 109 }, { 138, 10, 103 }, { 134, 0, 888 }, { 8, 11, 528 }, + { 137, 11, 348 }, { 7, 0, 1995 }, { 8, 0, 299 }, { 11, 0, 890 }, + { 12, 0, 674 }, { 4, 11, 20 }, { 133, 11, 616 }, { 135, 11, 1094 }, + { 134, 10, 1630 }, { 4, 0, 238 }, { 5, 0, 503 }, { 6, 0, 179 }, + { 7, 0, 2003 }, { 8, 0, 381 }, { 8, 0, 473 }, { 9, 0, 149 }, + { 10, 0, 788 }, { 15, 0, 45 }, { 15, 0, 86 }, { 20, 0, 110 }, + { 150, 0, 57 }, { 133, 10, 671 }, { 4, 11, 26 }, { 5, 11, 429 }, + { 6, 11, 245 }, { 7, 11, 704 }, { 7, 11, 1379 }, { 135, 11, 1474 }, + { 4, 0, 121 }, { 5, 0, 156 }, { 5, 0, 349 }, { 9, 0, 431 }, + { 10, 0, 605 }, { 142, 0, 342 }, { 7, 11, 943 }, { 139, 11, 614 }, + { 132, 10, 889 }, { 132, 11, 621 }, { 7, 10, 1382 }, { 7, 11, 1382 }, + { 135, 10, 1910 }, { 132, 10, 627 }, { 133, 10, 775 }, { 133, 11, 542 }, + { 133, 11, 868 }, { 136, 11, 433 }, { 6, 0, 1373 }, { 7, 0, 1011 }, + { 11, 10, 362 }, { 11, 10, 948 }, { 140, 10, 388 }, { 6, 0, 80 }, + { 7, 0, 173 }, { 9, 0, 547 }, { 10, 0, 730 }, { 14, 0, 18 }, + { 22, 0, 39 }, { 135, 11, 1495 }, { 6, 0, 1694 }, { 135, 0, 1974 }, + { 140, 0, 196 }, { 4, 0, 923 }, { 6, 0, 507 }, { 6, 0, 1711 }, + { 7, 10, 451 }, { 8, 10, 389 }, { 12, 10, 490 }, { 13, 10, 16 }, + { 13, 10, 215 }, { 13, 10, 351 }, { 18, 10, 132 }, { 147, 10, 125 }, + { 6, 0, 646 }, { 134, 0, 1047 }, { 135, 10, 841 }, { 136, 10, 566 }, + { 6, 0, 1611 }, { 135, 0, 1214 }, { 139, 0, 926 }, { 132, 11, 525 }, + { 132, 0, 595 }, { 5, 0, 240 }, { 6, 0, 459 }, { 7, 0, 12 }, + { 7, 0, 114 }, { 7, 0, 949 }, { 7, 0, 1753 }, { 7, 0, 1805 }, + { 8, 0, 658 }, { 9, 0, 1 }, { 11, 0, 959 }, { 141, 0, 446 }, + { 5, 10, 912 }, { 134, 10, 1695 }, { 132, 0, 446 }, { 7, 11, 62 }, + { 12, 11, 45 }, { 147, 11, 112 }, { 5, 10, 236 }, { 6, 10, 572 }, + { 8, 10, 492 }, { 11, 10, 618 }, { 144, 10, 56 }, { 5, 10, 190 }, + { 136, 10, 318 }, { 135, 10, 1376 }, { 4, 11, 223 }, { 6, 11, 359 }, + { 11, 11, 3 }, { 13, 11, 108 }, { 14, 11, 89 }, { 144, 11, 22 }, + { 132, 11, 647 }, { 134, 0, 490 }, { 134, 0, 491 }, { 134, 0, 1584 }, + { 135, 11, 685 }, { 138, 11, 220 }, { 7, 0, 250 }, { 136, 0, 507 }, + { 132, 0, 158 }, { 4, 0, 140 }, { 7, 0, 362 }, { 8, 0, 209 }, + { 9, 0, 10 }, { 9, 0, 160 }, { 9, 0, 503 }, { 9, 0, 614 }, + { 10, 0, 689 }, { 11, 0, 327 }, { 11, 0, 553 }, { 11, 0, 725 }, + { 11, 0, 767 }, { 12, 0, 252 }, { 12, 0, 583 }, { 13, 0, 192 }, + { 14, 0, 269 }, { 14, 0, 356 }, { 148, 0, 50 }, { 19, 0, 1 }, + { 19, 0, 26 }, { 150, 0, 9 }, { 132, 11, 109 }, { 6, 0, 228 }, + { 7, 0, 1341 }, { 9, 0, 408 }, { 138, 0, 343 }, { 4, 0, 373 }, + { 5, 0, 283 }, { 6, 0, 480 }, { 7, 0, 609 }, { 10, 0, 860 }, + { 138, 0, 878 }, { 6, 0, 779 }, { 134, 0, 1209 }, { 4, 0, 557 }, + { 7, 11, 263 }, { 7, 11, 628 }, { 136, 11, 349 }, { 132, 0, 548 }, + { 7, 0, 197 }, { 8, 0, 142 }, { 8, 0, 325 }, { 9, 0, 150 }, + { 9, 0, 596 }, { 10, 0, 350 }, { 10, 0, 353 }, { 11, 0, 74 }, + { 11, 0, 315 }, { 12, 0, 662 }, { 12, 0, 681 }, { 14, 0, 423 }, + { 143, 0, 141 }, { 4, 11, 40 }, { 10, 11, 67 }, { 11, 11, 117 }, + { 11, 11, 768 }, { 139, 11, 935 }, { 7, 11, 992 }, { 8, 11, 301 }, + { 9, 11, 722 }, { 12, 11, 63 }, { 13, 11, 29 }, { 14, 11, 161 }, + { 143, 11, 18 }, { 6, 0, 1490 }, { 138, 11, 532 }, { 5, 0, 580 }, + { 7, 0, 378 }, { 7, 0, 674 }, { 7, 0, 1424 }, { 15, 0, 83 }, + { 16, 0, 11 }, { 15, 11, 83 }, { 144, 11, 11 }, { 6, 0, 1057 }, + { 6, 0, 1335 }, { 10, 0, 316 }, { 7, 10, 85 }, { 7, 10, 247 }, + { 8, 10, 585 }, { 138, 10, 163 }, { 4, 0, 169 }, { 5, 0, 83 }, + { 6, 0, 399 }, { 6, 0, 579 }, { 6, 0, 1513 }, { 7, 0, 692 }, + { 7, 0, 846 }, { 7, 0, 1015 }, { 7, 0, 1799 }, { 8, 0, 403 }, + { 9, 0, 394 }, { 10, 0, 133 }, { 12, 0, 4 }, { 12, 0, 297 }, + { 12, 0, 452 }, { 16, 0, 81 }, { 18, 0, 25 }, { 21, 0, 14 }, + { 22, 0, 12 }, { 151, 0, 18 }, { 134, 0, 1106 }, { 7, 0, 1546 }, + { 11, 0, 299 }, { 142, 0, 407 }, { 134, 0, 1192 }, { 132, 0, 177 }, + { 5, 0, 411 }, { 135, 0, 653 }, { 7, 0, 439 }, { 10, 0, 727 }, + { 11, 0, 260 }, { 139, 0, 684 }, { 138, 10, 145 }, { 147, 10, 83 }, + { 5, 0, 208 }, { 7, 0, 753 }, { 135, 0, 1528 }, { 137, 11, 617 }, + { 135, 10, 1922 }, { 135, 11, 825 }, { 11, 0, 422 }, { 13, 0, 389 }, + { 4, 10, 124 }, { 10, 10, 457 }, { 11, 10, 121 }, { 11, 10, 169 }, + { 11, 10, 870 }, { 12, 10, 214 }, { 14, 10, 187 }, { 143, 10, 77 }, + { 11, 0, 615 }, { 15, 0, 58 }, { 11, 11, 615 }, { 143, 11, 58 }, + { 9, 0, 618 }, { 138, 0, 482 }, { 6, 0, 1952 }, { 6, 0, 1970 }, + { 142, 0, 505 }, { 7, 10, 1193 }, { 135, 11, 1838 }, { 133, 0, 242 }, + { 135, 10, 1333 }, { 6, 10, 107 }, { 7, 10, 638 }, { 7, 10, 1632 }, + { 137, 10, 396 }, { 133, 0, 953 }, { 5, 10, 370 }, { 134, 10, 1756 }, + { 5, 11, 28 }, { 6, 11, 204 }, { 10, 11, 320 }, { 10, 11, 583 }, + { 13, 11, 502 }, { 14, 11, 72 }, { 14, 11, 274 }, { 14, 11, 312 }, + { 14, 11, 344 }, { 15, 11, 159 }, { 16, 11, 62 }, { 16, 11, 69 }, + { 17, 11, 30 }, { 18, 11, 42 }, { 18, 11, 53 }, { 18, 11, 84 }, + { 18, 11, 140 }, { 19, 11, 68 }, { 19, 11, 85 }, { 20, 11, 5 }, + { 20, 11, 45 }, { 20, 11, 101 }, { 22, 11, 7 }, { 150, 11, 20 }, + { 4, 11, 558 }, { 6, 11, 390 }, { 7, 11, 162 }, { 7, 11, 689 }, + { 9, 11, 360 }, { 138, 11, 653 }, { 11, 0, 802 }, { 141, 0, 67 }, + { 133, 10, 204 }, { 133, 0, 290 }, { 5, 10, 970 }, { 134, 10, 1706 }, + { 132, 0, 380 }, { 5, 0, 52 }, { 7, 0, 277 }, { 9, 0, 368 }, + { 139, 0, 791 }, { 5, 11, 856 }, { 6, 11, 1672 }, { 6, 11, 1757 }, + { 6, 11, 1781 }, { 7, 11, 1150 }, { 7, 11, 1425 }, { 7, 11, 1453 }, + { 140, 11, 513 }, { 5, 11, 92 }, { 7, 10, 3 }, { 10, 11, 736 }, + { 140, 11, 102 }, { 4, 0, 112 }, { 5, 0, 653 }, { 5, 10, 483 }, + { 5, 10, 685 }, { 6, 10, 489 }, { 7, 10, 1204 }, { 136, 10, 394 }, + { 132, 10, 921 }, { 6, 0, 1028 }, { 133, 10, 1007 }, { 5, 11, 590 }, + { 9, 11, 213 }, { 145, 11, 91 }, { 135, 10, 1696 }, { 10, 0, 138 }, + { 139, 0, 476 }, { 5, 0, 725 }, { 5, 0, 727 }, { 135, 0, 1811 }, + { 4, 0, 979 }, { 6, 0, 1821 }, { 6, 0, 1838 }, { 8, 0, 876 }, + { 8, 0, 883 }, { 8, 0, 889 }, { 8, 0, 893 }, { 8, 0, 895 }, + { 10, 0, 934 }, { 12, 0, 720 }, { 14, 0, 459 }, { 148, 0, 123 }, + { 135, 11, 551 }, { 4, 0, 38 }, { 6, 0, 435 }, { 7, 0, 307 }, + { 7, 0, 999 }, { 7, 0, 1481 }, { 7, 0, 1732 }, { 7, 0, 1738 }, + { 8, 0, 371 }, { 9, 0, 414 }, { 11, 0, 316 }, { 12, 0, 52 }, + { 13, 0, 420 }, { 147, 0, 100 }, { 135, 0, 1296 }, { 132, 10, 712 }, + { 134, 10, 1629 }, { 133, 0, 723 }, { 134, 0, 651 }, { 136, 11, 191 }, + { 9, 11, 791 }, { 10, 11, 93 }, { 11, 11, 301 }, { 16, 11, 13 }, + { 17, 11, 23 }, { 18, 11, 135 }, { 19, 11, 12 }, { 20, 11, 1 }, + { 20, 11, 12 }, { 148, 11, 14 }, { 136, 11, 503 }, { 6, 11, 466 }, + { 135, 11, 671 }, { 6, 0, 1200 }, { 134, 0, 1330 }, { 135, 0, 1255 }, + { 134, 0, 986 }, { 5, 0, 109 }, { 6, 0, 1784 }, { 7, 0, 1895 }, + { 12, 0, 296 }, { 140, 0, 302 }, { 135, 11, 983 }, { 133, 10, 485 }, + { 134, 0, 660 }, { 134, 0, 800 }, { 5, 0, 216 }, { 5, 0, 294 }, + { 6, 0, 591 }, { 7, 0, 1879 }, { 9, 0, 141 }, { 9, 0, 270 }, + { 9, 0, 679 }, { 10, 0, 159 }, { 11, 0, 197 }, { 11, 0, 438 }, + { 12, 0, 538 }, { 12, 0, 559 }, { 14, 0, 144 }, { 14, 0, 167 }, + { 15, 0, 67 }, { 4, 10, 285 }, { 5, 10, 317 }, { 6, 10, 301 }, + { 7, 10, 7 }, { 8, 10, 153 }, { 10, 10, 766 }, { 11, 10, 468 }, + { 12, 10, 467 }, { 141, 10, 143 }, { 136, 0, 945 }, { 134, 0, 1090 }, + { 137, 0, 81 }, { 12, 11, 468 }, { 19, 11, 96 }, { 148, 11, 24 }, + { 134, 0, 391 }, { 138, 11, 241 }, { 7, 0, 322 }, { 136, 0, 249 }, + { 134, 0, 1412 }, { 135, 11, 795 }, { 5, 0, 632 }, { 138, 0, 526 }, + { 136, 10, 819 }, { 6, 0, 144 }, { 7, 0, 948 }, { 7, 0, 1042 }, + { 8, 0, 235 }, { 8, 0, 461 }, { 9, 0, 453 }, { 9, 0, 796 }, + { 10, 0, 354 }, { 17, 0, 77 }, { 135, 11, 954 }, { 139, 10, 917 }, + { 6, 0, 940 }, { 134, 0, 1228 }, { 4, 0, 362 }, { 7, 0, 52 }, + { 135, 0, 303 }, { 6, 11, 549 }, { 8, 11, 34 }, { 8, 11, 283 }, + { 9, 11, 165 }, { 138, 11, 475 }, { 7, 11, 370 }, { 7, 11, 1007 }, + { 7, 11, 1177 }, { 135, 11, 1565 }, { 5, 11, 652 }, { 5, 11, 701 }, + { 135, 11, 449 }, { 5, 0, 196 }, { 6, 0, 486 }, { 7, 0, 212 }, + { 8, 0, 309 }, { 136, 0, 346 }, { 6, 10, 1719 }, { 6, 10, 1735 }, + { 7, 10, 2016 }, { 7, 10, 2020 }, { 8, 10, 837 }, { 137, 10, 852 }, + { 6, 11, 159 }, { 6, 11, 364 }, { 7, 11, 516 }, { 7, 11, 1439 }, + { 137, 11, 518 }, { 135, 0, 1912 }, { 135, 0, 1290 }, { 132, 0, 686 }, + { 141, 11, 151 }, { 138, 0, 625 }, { 136, 0, 706 }, { 138, 10, 568 }, + { 139, 0, 412 }, { 4, 0, 30 }, { 133, 0, 43 }, { 8, 10, 67 }, + { 138, 10, 419 }, { 7, 0, 967 }, { 141, 0, 11 }, { 12, 0, 758 }, + { 14, 0, 441 }, { 142, 0, 462 }, { 10, 10, 657 }, { 14, 10, 297 }, + { 142, 10, 361 }, { 139, 10, 729 }, { 4, 0, 220 }, { 135, 0, 1535 }, + { 7, 11, 501 }, { 9, 11, 111 }, { 10, 11, 141 }, { 11, 11, 332 }, + { 13, 11, 43 }, { 13, 11, 429 }, { 14, 11, 130 }, { 14, 11, 415 }, + { 145, 11, 102 }, { 4, 0, 950 }, { 6, 0, 1859 }, { 7, 0, 11 }, + { 8, 0, 873 }, { 12, 0, 710 }, { 12, 0, 718 }, { 12, 0, 748 }, + { 12, 0, 765 }, { 148, 0, 124 }, { 5, 11, 149 }, { 5, 11, 935 }, + { 136, 11, 233 }, { 142, 11, 291 }, { 134, 0, 1579 }, { 7, 0, 890 }, + { 8, 10, 51 }, { 9, 10, 868 }, { 10, 10, 833 }, { 12, 10, 481 }, + { 12, 10, 570 }, { 148, 10, 106 }, { 141, 0, 2 }, { 132, 10, 445 }, + { 136, 11, 801 }, { 135, 0, 1774 }, { 7, 0, 1725 }, { 138, 0, 393 }, + { 5, 0, 263 }, { 134, 0, 414 }, { 132, 11, 322 }, { 133, 10, 239 }, + { 7, 0, 456 }, { 7, 10, 1990 }, { 8, 10, 130 }, { 139, 10, 720 }, + { 137, 0, 818 }, { 5, 10, 123 }, { 6, 10, 530 }, { 7, 10, 348 }, + { 135, 10, 1419 }, { 135, 10, 2024 }, { 6, 0, 178 }, { 6, 0, 1750 }, + { 8, 0, 251 }, { 9, 0, 690 }, { 10, 0, 155 }, { 10, 0, 196 }, + { 10, 0, 373 }, { 11, 0, 698 }, { 13, 0, 155 }, { 148, 0, 93 }, + { 5, 0, 97 }, { 137, 0, 393 }, { 134, 0, 674 }, { 11, 0, 223 }, + { 140, 0, 168 }, { 132, 10, 210 }, { 139, 11, 464 }, { 6, 0, 1639 }, + { 146, 0, 159 }, { 139, 11, 2 }, { 7, 0, 934 }, { 8, 0, 647 }, + { 17, 0, 97 }, { 19, 0, 59 }, { 150, 0, 2 }, { 132, 0, 191 }, + { 5, 0, 165 }, { 9, 0, 346 }, { 10, 0, 655 }, { 11, 0, 885 }, + { 4, 10, 430 }, { 135, 11, 357 }, { 133, 0, 877 }, { 5, 10, 213 }, + { 133, 11, 406 }, { 8, 0, 128 }, { 139, 0, 179 }, { 6, 11, 69 }, + { 135, 11, 117 }, { 135, 0, 1297 }, { 11, 11, 43 }, { 13, 11, 72 }, + { 141, 11, 142 }, { 135, 11, 1830 }, { 142, 0, 164 }, { 5, 0, 57 }, + { 6, 0, 101 }, { 6, 0, 586 }, { 6, 0, 1663 }, { 7, 0, 132 }, + { 7, 0, 1154 }, { 7, 0, 1415 }, { 7, 0, 1507 }, { 12, 0, 493 }, + { 15, 0, 105 }, { 151, 0, 15 }, { 5, 0, 459 }, { 7, 0, 1073 }, + { 8, 0, 241 }, { 136, 0, 334 }, { 133, 11, 826 }, { 133, 10, 108 }, + { 5, 10, 219 }, { 10, 11, 132 }, { 11, 11, 191 }, { 11, 11, 358 }, + { 139, 11, 460 }, { 6, 0, 324 }, { 6, 0, 520 }, { 7, 0, 338 }, + { 7, 0, 1729 }, { 8, 0, 228 }, { 139, 0, 750 }, { 21, 0, 30 }, + { 22, 0, 53 }, { 4, 10, 193 }, { 5, 10, 916 }, { 7, 10, 364 }, + { 10, 10, 398 }, { 10, 10, 726 }, { 11, 10, 317 }, { 11, 10, 626 }, + { 12, 10, 142 }, { 12, 10, 288 }, { 12, 10, 678 }, { 13, 10, 313 }, + { 15, 10, 113 }, { 146, 10, 114 }, { 6, 11, 110 }, { 135, 11, 1681 }, + { 135, 0, 910 }, { 6, 10, 241 }, { 7, 10, 907 }, { 8, 10, 832 }, + { 9, 10, 342 }, { 10, 10, 729 }, { 11, 10, 284 }, { 11, 10, 445 }, + { 11, 10, 651 }, { 11, 10, 863 }, { 13, 10, 398 }, { 146, 10, 99 }, + { 7, 0, 705 }, { 9, 0, 734 }, { 5, 11, 1000 }, { 7, 11, 733 }, + { 137, 11, 583 }, { 4, 0, 73 }, { 6, 0, 612 }, { 7, 0, 927 }, + { 7, 0, 1822 }, { 8, 0, 217 }, { 9, 0, 765 }, { 9, 0, 766 }, + { 10, 0, 408 }, { 11, 0, 51 }, { 11, 0, 793 }, { 12, 0, 266 }, + { 15, 0, 158 }, { 20, 0, 89 }, { 150, 0, 32 }, { 7, 0, 1330 }, + { 4, 11, 297 }, { 6, 11, 529 }, { 7, 11, 152 }, { 7, 11, 713 }, + { 7, 11, 1845 }, { 8, 11, 710 }, { 8, 11, 717 }, { 140, 11, 639 }, + { 5, 0, 389 }, { 136, 0, 636 }, { 134, 0, 1409 }, { 4, 10, 562 }, + { 9, 10, 254 }, { 139, 10, 879 }, { 134, 0, 893 }, { 132, 10, 786 }, + { 4, 11, 520 }, { 135, 11, 575 }, { 136, 0, 21 }, { 140, 0, 721 }, + { 136, 0, 959 }, { 7, 11, 1428 }, { 7, 11, 1640 }, { 9, 11, 169 }, + { 9, 11, 182 }, { 9, 11, 367 }, { 9, 11, 478 }, { 9, 11, 506 }, + { 9, 11, 551 }, { 9, 11, 648 }, { 9, 11, 651 }, { 9, 11, 697 }, + { 9, 11, 705 }, { 9, 11, 725 }, { 9, 11, 787 }, { 9, 11, 794 }, + { 10, 11, 198 }, { 10, 11, 214 }, { 10, 11, 267 }, { 10, 11, 275 }, + { 10, 11, 456 }, { 10, 11, 551 }, { 10, 11, 561 }, { 10, 11, 613 }, + { 10, 11, 627 }, { 10, 11, 668 }, { 10, 11, 675 }, { 10, 11, 691 }, + { 10, 11, 695 }, { 10, 11, 707 }, { 10, 11, 715 }, { 11, 11, 183 }, + { 11, 11, 201 }, { 11, 11, 244 }, { 11, 11, 262 }, { 11, 11, 352 }, + { 11, 11, 439 }, { 11, 11, 493 }, { 11, 11, 572 }, { 11, 11, 591 }, + { 11, 11, 608 }, { 11, 11, 611 }, { 11, 11, 646 }, { 11, 11, 674 }, + { 11, 11, 711 }, { 11, 11, 751 }, { 11, 11, 761 }, { 11, 11, 776 }, + { 11, 11, 785 }, { 11, 11, 850 }, { 11, 11, 853 }, { 11, 11, 862 }, + { 11, 11, 865 }, { 11, 11, 868 }, { 11, 11, 898 }, { 11, 11, 902 }, + { 11, 11, 903 }, { 11, 11, 910 }, { 11, 11, 932 }, { 11, 11, 942 }, + { 11, 11, 957 }, { 11, 11, 967 }, { 11, 11, 972 }, { 12, 11, 148 }, + { 12, 11, 195 }, { 12, 11, 220 }, { 12, 11, 237 }, { 12, 11, 318 }, + { 12, 11, 339 }, { 12, 11, 393 }, { 12, 11, 445 }, { 12, 11, 450 }, + { 12, 11, 474 }, { 12, 11, 509 }, { 12, 11, 533 }, { 12, 11, 591 }, + { 12, 11, 594 }, { 12, 11, 597 }, { 12, 11, 621 }, { 12, 11, 633 }, + { 12, 11, 642 }, { 13, 11, 59 }, { 13, 11, 60 }, { 13, 11, 145 }, + { 13, 11, 239 }, { 13, 11, 250 }, { 13, 11, 273 }, { 13, 11, 329 }, + { 13, 11, 344 }, { 13, 11, 365 }, { 13, 11, 372 }, { 13, 11, 387 }, + { 13, 11, 403 }, { 13, 11, 414 }, { 13, 11, 456 }, { 13, 11, 478 }, + { 13, 11, 483 }, { 13, 11, 489 }, { 14, 11, 55 }, { 14, 11, 57 }, + { 14, 11, 81 }, { 14, 11, 90 }, { 14, 11, 148 }, { 14, 11, 239 }, + { 14, 11, 266 }, { 14, 11, 321 }, { 14, 11, 326 }, { 14, 11, 327 }, + { 14, 11, 330 }, { 14, 11, 347 }, { 14, 11, 355 }, { 14, 11, 401 }, + { 14, 11, 411 }, { 14, 11, 414 }, { 14, 11, 416 }, { 14, 11, 420 }, + { 15, 11, 61 }, { 15, 11, 74 }, { 15, 11, 87 }, { 15, 11, 88 }, + { 15, 11, 94 }, { 15, 11, 96 }, { 15, 11, 116 }, { 15, 11, 149 }, + { 15, 11, 154 }, { 16, 11, 50 }, { 16, 11, 63 }, { 16, 11, 73 }, + { 17, 11, 2 }, { 17, 11, 66 }, { 17, 11, 92 }, { 17, 11, 103 }, + { 17, 11, 112 }, { 18, 11, 50 }, { 18, 11, 54 }, { 18, 11, 82 }, + { 18, 11, 86 }, { 18, 11, 90 }, { 18, 11, 111 }, { 18, 11, 115 }, + { 18, 11, 156 }, { 19, 11, 40 }, { 19, 11, 79 }, { 20, 11, 78 }, + { 149, 11, 22 }, { 137, 11, 170 }, { 134, 0, 1433 }, { 135, 11, 1307 }, + { 139, 11, 411 }, { 5, 0, 189 }, { 7, 0, 442 }, { 7, 0, 443 }, + { 8, 0, 281 }, { 12, 0, 174 }, { 141, 0, 261 }, { 6, 10, 216 }, + { 7, 10, 901 }, { 7, 10, 1343 }, { 136, 10, 493 }, { 5, 11, 397 }, + { 6, 11, 154 }, { 7, 10, 341 }, { 7, 11, 676 }, { 8, 11, 443 }, + { 8, 11, 609 }, { 9, 11, 24 }, { 9, 11, 325 }, { 10, 11, 35 }, + { 11, 10, 219 }, { 11, 11, 535 }, { 11, 11, 672 }, { 11, 11, 1018 }, + { 12, 11, 637 }, { 144, 11, 30 }, { 6, 0, 2 }, { 7, 0, 191 }, + { 7, 0, 446 }, { 7, 0, 1262 }, { 7, 0, 1737 }, { 8, 0, 22 }, + { 8, 0, 270 }, { 8, 0, 612 }, { 9, 0, 4 }, { 9, 0, 312 }, + { 9, 0, 436 }, { 9, 0, 626 }, { 10, 0, 216 }, { 10, 0, 311 }, + { 10, 0, 521 }, { 10, 0, 623 }, { 11, 0, 72 }, { 11, 0, 330 }, + { 11, 0, 455 }, { 12, 0, 321 }, { 12, 0, 504 }, { 12, 0, 530 }, + { 12, 0, 543 }, { 13, 0, 17 }, { 13, 0, 156 }, { 13, 0, 334 }, + { 14, 0, 131 }, { 17, 0, 60 }, { 148, 0, 64 }, { 7, 0, 354 }, + { 10, 0, 410 }, { 139, 0, 815 }, { 139, 10, 130 }, { 7, 10, 1734 }, + { 137, 11, 631 }, { 12, 0, 425 }, { 15, 0, 112 }, { 10, 10, 115 }, + { 11, 10, 420 }, { 13, 10, 404 }, { 14, 10, 346 }, { 143, 10, 54 }, + { 6, 0, 60 }, { 6, 0, 166 }, { 7, 0, 374 }, { 7, 0, 670 }, + { 7, 0, 1327 }, { 8, 0, 411 }, { 8, 0, 435 }, { 9, 0, 653 }, + { 9, 0, 740 }, { 10, 0, 385 }, { 11, 0, 222 }, { 11, 0, 324 }, + { 11, 0, 829 }, { 140, 0, 611 }, { 7, 0, 1611 }, { 13, 0, 14 }, + { 15, 0, 44 }, { 19, 0, 13 }, { 148, 0, 76 }, { 133, 11, 981 }, + { 4, 11, 56 }, { 7, 11, 1791 }, { 8, 11, 607 }, { 8, 11, 651 }, + { 11, 11, 465 }, { 11, 11, 835 }, { 12, 11, 337 }, { 141, 11, 480 }, + { 6, 0, 1478 }, { 5, 10, 1011 }, { 136, 10, 701 }, { 139, 0, 596 }, + { 5, 0, 206 }, { 134, 0, 398 }, { 4, 10, 54 }, { 5, 10, 666 }, + { 7, 10, 1039 }, { 7, 10, 1130 }, { 9, 10, 195 }, { 138, 10, 302 }, + { 7, 0, 50 }, { 9, 11, 158 }, { 138, 11, 411 }, { 135, 11, 1120 }, + { 6, 0, 517 }, { 7, 0, 1159 }, { 10, 0, 621 }, { 11, 0, 192 }, + { 134, 10, 1669 }, { 4, 0, 592 }, { 6, 0, 600 }, { 135, 0, 1653 }, + { 10, 0, 223 }, { 139, 0, 645 }, { 136, 11, 139 }, { 7, 0, 64 }, + { 136, 0, 245 }, { 142, 0, 278 }, { 6, 11, 622 }, { 135, 11, 1030 }, + { 136, 0, 604 }, { 134, 0, 1502 }, { 138, 0, 265 }, { 141, 11, 168 }, + { 7, 0, 1763 }, { 140, 0, 310 }, { 7, 10, 798 }, { 139, 11, 719 }, + { 7, 11, 160 }, { 10, 11, 624 }, { 142, 11, 279 }, { 132, 11, 363 }, + { 7, 10, 122 }, { 9, 10, 259 }, { 10, 10, 84 }, { 11, 10, 470 }, + { 12, 10, 541 }, { 141, 10, 379 }, { 5, 0, 129 }, { 6, 0, 61 }, + { 135, 0, 947 }, { 134, 0, 1356 }, { 135, 11, 1191 }, { 13, 0, 505 }, + { 141, 0, 506 }, { 11, 0, 1000 }, { 5, 10, 82 }, { 5, 10, 131 }, + { 7, 10, 1755 }, { 8, 10, 31 }, { 9, 10, 168 }, { 9, 10, 764 }, + { 139, 10, 869 }, { 134, 0, 966 }, { 134, 10, 605 }, { 134, 11, 292 }, + { 5, 11, 177 }, { 6, 11, 616 }, { 7, 11, 827 }, { 9, 11, 525 }, + { 138, 11, 656 }, { 135, 11, 1486 }, { 138, 11, 31 }, { 5, 10, 278 }, + { 137, 10, 68 }, { 4, 10, 163 }, { 5, 10, 201 }, { 5, 10, 307 }, + { 5, 10, 310 }, { 6, 10, 335 }, { 7, 10, 284 }, { 136, 10, 165 }, + { 6, 0, 839 }, { 135, 10, 1660 }, { 136, 10, 781 }, { 6, 10, 33 }, + { 135, 10, 1244 }, { 133, 0, 637 }, { 4, 11, 161 }, { 133, 11, 631 }, + { 137, 0, 590 }, { 7, 10, 1953 }, { 136, 10, 720 }, { 5, 0, 280 }, + { 7, 0, 1226 }, { 138, 10, 203 }, { 134, 0, 1386 }, { 5, 0, 281 }, + { 6, 0, 1026 }, { 6, 10, 326 }, { 7, 10, 677 }, { 137, 10, 425 }, + { 7, 11, 1557 }, { 135, 11, 1684 }, { 135, 0, 1064 }, { 9, 11, 469 }, + { 9, 11, 709 }, { 12, 11, 512 }, { 14, 11, 65 }, { 145, 11, 12 }, + { 134, 0, 917 }, { 10, 11, 229 }, { 11, 11, 73 }, { 11, 11, 376 }, + { 139, 11, 433 }, { 7, 0, 555 }, { 9, 0, 192 }, { 13, 0, 30 }, + { 13, 0, 49 }, { 15, 0, 150 }, { 16, 0, 76 }, { 20, 0, 52 }, + { 7, 10, 1316 }, { 7, 10, 1412 }, { 7, 10, 1839 }, { 9, 10, 589 }, + { 11, 10, 241 }, { 11, 10, 676 }, { 11, 10, 811 }, { 11, 10, 891 }, + { 12, 10, 140 }, { 12, 10, 346 }, { 12, 10, 479 }, { 13, 10, 381 }, + { 14, 10, 188 }, { 146, 10, 30 }, { 149, 0, 15 }, { 6, 0, 1882 }, + { 6, 0, 1883 }, { 6, 0, 1897 }, { 9, 0, 945 }, { 9, 0, 1014 }, + { 9, 0, 1020 }, { 12, 0, 823 }, { 12, 0, 842 }, { 12, 0, 866 }, + { 12, 0, 934 }, { 15, 0, 242 }, { 146, 0, 208 }, { 6, 0, 965 }, + { 134, 0, 1499 }, { 7, 0, 33 }, { 7, 0, 120 }, { 8, 0, 489 }, + { 9, 0, 319 }, { 10, 0, 820 }, { 11, 0, 1004 }, { 12, 0, 379 }, + { 12, 0, 679 }, { 13, 0, 117 }, { 13, 0, 412 }, { 14, 0, 25 }, + { 15, 0, 52 }, { 15, 0, 161 }, { 16, 0, 47 }, { 149, 0, 2 }, + { 6, 11, 558 }, { 7, 11, 651 }, { 8, 11, 421 }, { 9, 11, 0 }, + { 138, 11, 34 }, { 4, 0, 937 }, { 5, 0, 801 }, { 7, 0, 473 }, + { 5, 10, 358 }, { 7, 10, 1184 }, { 10, 10, 662 }, { 13, 10, 212 }, + { 13, 10, 304 }, { 13, 10, 333 }, { 145, 10, 98 }, { 132, 0, 877 }, + { 6, 0, 693 }, { 134, 0, 824 }, { 132, 0, 365 }, { 7, 11, 1832 }, + { 138, 11, 374 }, { 5, 0, 7 }, { 139, 0, 774 }, { 4, 0, 734 }, + { 5, 0, 662 }, { 134, 0, 430 }, { 4, 0, 746 }, { 135, 0, 1090 }, + { 5, 0, 360 }, { 8, 0, 237 }, { 10, 0, 231 }, { 147, 0, 124 }, + { 138, 11, 348 }, { 6, 11, 6 }, { 7, 11, 81 }, { 7, 11, 771 }, + { 7, 11, 1731 }, { 9, 11, 405 }, { 138, 11, 421 }, { 6, 0, 740 }, + { 137, 0, 822 }, { 133, 10, 946 }, { 7, 0, 1485 }, { 136, 0, 929 }, + { 7, 10, 411 }, { 8, 10, 631 }, { 9, 10, 323 }, { 10, 10, 355 }, + { 11, 10, 491 }, { 12, 10, 143 }, { 12, 10, 402 }, { 13, 10, 73 }, + { 14, 10, 408 }, { 15, 10, 107 }, { 146, 10, 71 }, { 135, 10, 590 }, + { 5, 11, 881 }, { 133, 11, 885 }, { 150, 11, 25 }, { 4, 0, 852 }, + { 5, 11, 142 }, { 134, 11, 546 }, { 7, 10, 1467 }, { 8, 10, 328 }, + { 10, 10, 544 }, { 11, 10, 955 }, { 13, 10, 320 }, { 145, 10, 83 }, + { 9, 0, 17 }, { 10, 0, 291 }, { 11, 10, 511 }, { 13, 10, 394 }, + { 14, 10, 298 }, { 14, 10, 318 }, { 146, 10, 103 }, { 5, 11, 466 }, + { 11, 11, 571 }, { 12, 11, 198 }, { 13, 11, 283 }, { 14, 11, 186 }, + { 15, 11, 21 }, { 143, 11, 103 }, { 134, 0, 1001 }, { 4, 11, 185 }, + { 5, 11, 257 }, { 5, 11, 839 }, { 5, 11, 936 }, { 7, 11, 171 }, + { 9, 11, 399 }, { 10, 11, 258 }, { 10, 11, 395 }, { 10, 11, 734 }, + { 11, 11, 1014 }, { 12, 11, 23 }, { 13, 11, 350 }, { 14, 11, 150 }, + { 147, 11, 6 }, { 143, 0, 35 }, { 132, 0, 831 }, { 5, 10, 835 }, + { 134, 10, 483 }, { 4, 0, 277 }, { 5, 0, 608 }, { 6, 0, 493 }, + { 7, 0, 457 }, { 12, 0, 384 }, { 7, 11, 404 }, { 7, 11, 1377 }, + { 7, 11, 1430 }, { 7, 11, 2017 }, { 8, 11, 149 }, { 8, 11, 239 }, + { 8, 11, 512 }, { 8, 11, 793 }, { 8, 11, 818 }, { 9, 11, 474 }, + { 9, 11, 595 }, { 10, 11, 122 }, { 10, 11, 565 }, { 10, 11, 649 }, + { 10, 11, 783 }, { 11, 11, 239 }, { 11, 11, 295 }, { 11, 11, 447 }, + { 11, 11, 528 }, { 11, 11, 639 }, { 11, 11, 800 }, { 11, 11, 936 }, + { 12, 11, 25 }, { 12, 11, 73 }, { 12, 11, 77 }, { 12, 11, 157 }, + { 12, 11, 316 }, { 12, 11, 390 }, { 12, 11, 391 }, { 12, 11, 394 }, + { 12, 11, 395 }, { 12, 11, 478 }, { 12, 11, 503 }, { 12, 11, 592 }, + { 12, 11, 680 }, { 13, 11, 50 }, { 13, 11, 53 }, { 13, 11, 132 }, + { 13, 11, 198 }, { 13, 11, 275 }, { 13, 11, 322 }, { 13, 11, 415 }, + { 14, 11, 71 }, { 14, 11, 257 }, { 14, 11, 395 }, { 15, 11, 71 }, + { 15, 11, 136 }, { 17, 11, 123 }, { 18, 11, 93 }, { 147, 11, 58 }, + { 134, 0, 1351 }, { 7, 0, 27 }, { 135, 0, 316 }, { 136, 11, 712 }, + { 136, 0, 984 }, { 133, 0, 552 }, { 137, 0, 264 }, { 132, 0, 401 }, + { 6, 0, 710 }, { 6, 0, 1111 }, { 134, 0, 1343 }, { 134, 0, 1211 }, + { 9, 0, 543 }, { 10, 0, 524 }, { 11, 0, 108 }, { 11, 0, 653 }, + { 12, 0, 524 }, { 13, 0, 123 }, { 14, 0, 252 }, { 16, 0, 18 }, + { 19, 0, 38 }, { 20, 0, 26 }, { 20, 0, 65 }, { 21, 0, 3 }, + { 151, 0, 11 }, { 4, 0, 205 }, { 5, 0, 623 }, { 7, 0, 104 }, + { 8, 0, 519 }, { 137, 0, 716 }, { 132, 10, 677 }, { 4, 11, 377 }, + { 152, 11, 13 }, { 135, 11, 1673 }, { 7, 0, 579 }, { 9, 0, 41 }, + { 9, 0, 244 }, { 9, 0, 669 }, { 10, 0, 5 }, { 11, 0, 861 }, + { 11, 0, 951 }, { 139, 0, 980 }, { 132, 0, 717 }, { 136, 0, 1011 }, + { 132, 0, 805 }, { 4, 11, 180 }, { 135, 11, 1906 }, { 132, 10, 777 }, + { 132, 10, 331 }, { 132, 0, 489 }, { 6, 0, 1024 }, { 4, 11, 491 }, + { 133, 10, 747 }, { 135, 11, 1182 }, { 4, 11, 171 }, { 138, 11, 234 }, + { 4, 11, 586 }, { 7, 11, 1186 }, { 138, 11, 631 }, { 135, 0, 892 }, + { 135, 11, 336 }, { 9, 11, 931 }, { 10, 11, 334 }, { 148, 11, 71 }, + { 137, 0, 473 }, { 6, 0, 864 }, { 12, 0, 659 }, { 139, 11, 926 }, + { 7, 0, 819 }, { 9, 0, 26 }, { 9, 0, 392 }, { 10, 0, 152 }, + { 10, 0, 226 }, { 11, 0, 19 }, { 12, 0, 276 }, { 12, 0, 426 }, + { 12, 0, 589 }, { 13, 0, 460 }, { 15, 0, 97 }, { 19, 0, 48 }, + { 148, 0, 104 }, { 135, 0, 51 }, { 133, 10, 326 }, { 4, 10, 691 }, + { 146, 10, 16 }, { 9, 0, 130 }, { 11, 0, 765 }, { 10, 10, 680 }, + { 10, 10, 793 }, { 141, 10, 357 }, { 133, 11, 765 }, { 8, 0, 229 }, + { 6, 10, 32 }, { 7, 10, 385 }, { 7, 10, 757 }, { 7, 10, 1916 }, + { 8, 10, 94 }, { 8, 10, 711 }, { 9, 10, 541 }, { 10, 10, 162 }, + { 10, 10, 795 }, { 11, 10, 989 }, { 11, 10, 1010 }, { 12, 10, 14 }, + { 142, 10, 308 }, { 7, 11, 474 }, { 137, 11, 578 }, { 132, 0, 674 }, + { 132, 0, 770 }, { 5, 0, 79 }, { 7, 0, 1027 }, { 7, 0, 1477 }, + { 139, 0, 52 }, { 133, 11, 424 }, { 134, 0, 1666 }, { 6, 0, 409 }, + { 6, 10, 349 }, { 6, 10, 1682 }, { 7, 10, 1252 }, { 8, 10, 112 }, + { 8, 11, 714 }, { 9, 10, 435 }, { 9, 10, 668 }, { 10, 10, 290 }, + { 10, 10, 319 }, { 10, 10, 815 }, { 11, 10, 180 }, { 11, 10, 837 }, + { 12, 10, 240 }, { 13, 10, 152 }, { 13, 10, 219 }, { 142, 10, 158 }, + { 5, 0, 789 }, { 134, 0, 195 }, { 4, 0, 251 }, { 4, 0, 688 }, + { 7, 0, 513 }, { 135, 0, 1284 }, { 132, 10, 581 }, { 9, 11, 420 }, + { 10, 11, 269 }, { 10, 11, 285 }, { 10, 11, 576 }, { 11, 11, 397 }, + { 13, 11, 175 }, { 145, 11, 90 }, { 6, 10, 126 }, { 7, 10, 573 }, + { 8, 10, 397 }, { 142, 10, 44 }, { 132, 11, 429 }, { 133, 0, 889 }, + { 4, 0, 160 }, { 5, 0, 330 }, { 7, 0, 1434 }, { 136, 0, 174 }, + { 7, 11, 18 }, { 7, 11, 699 }, { 7, 11, 1966 }, { 8, 11, 752 }, + { 9, 11, 273 }, { 9, 11, 412 }, { 9, 11, 703 }, { 10, 11, 71 }, + { 10, 11, 427 }, { 10, 11, 508 }, { 146, 11, 97 }, { 6, 0, 872 }, + { 134, 0, 899 }, { 133, 10, 926 }, { 134, 0, 1126 }, { 134, 0, 918 }, + { 4, 11, 53 }, { 5, 11, 186 }, { 135, 11, 752 }, { 7, 0, 268 }, + { 136, 0, 569 }, { 134, 0, 1224 }, { 6, 0, 1361 }, { 7, 10, 1232 }, + { 137, 10, 531 }, { 8, 11, 575 }, { 10, 11, 289 }, { 139, 11, 319 }, + { 133, 10, 670 }, { 132, 11, 675 }, { 133, 0, 374 }, { 135, 10, 1957 }, + { 133, 0, 731 }, { 11, 0, 190 }, { 15, 0, 49 }, { 11, 11, 190 }, + { 143, 11, 49 }, { 4, 0, 626 }, { 5, 0, 506 }, { 5, 0, 642 }, + { 6, 0, 425 }, { 10, 0, 202 }, { 139, 0, 141 }, { 137, 0, 444 }, + { 7, 10, 242 }, { 135, 10, 1942 }, { 6, 11, 209 }, { 8, 11, 468 }, + { 9, 11, 210 }, { 11, 11, 36 }, { 12, 11, 28 }, { 12, 11, 630 }, + { 13, 11, 21 }, { 13, 11, 349 }, { 14, 11, 7 }, { 145, 11, 13 }, + { 4, 11, 342 }, { 135, 11, 1179 }, { 5, 10, 834 }, { 7, 10, 1202 }, + { 8, 10, 14 }, { 9, 10, 481 }, { 137, 10, 880 }, { 4, 11, 928 }, + { 133, 11, 910 }, { 4, 11, 318 }, { 4, 11, 496 }, { 7, 11, 856 }, + { 139, 11, 654 }, { 136, 0, 835 }, { 7, 0, 1526 }, { 138, 10, 465 }, + { 151, 0, 17 }, { 135, 0, 477 }, { 4, 10, 357 }, { 6, 10, 172 }, + { 7, 10, 143 }, { 137, 10, 413 }, { 6, 0, 1374 }, { 138, 0, 994 }, + { 18, 0, 76 }, { 132, 10, 590 }, { 7, 0, 287 }, { 8, 0, 355 }, + { 9, 0, 293 }, { 137, 0, 743 }, { 134, 0, 1389 }, { 7, 11, 915 }, + { 8, 11, 247 }, { 147, 11, 0 }, { 4, 11, 202 }, { 5, 11, 382 }, + { 6, 11, 454 }, { 7, 11, 936 }, { 7, 11, 1803 }, { 8, 11, 758 }, + { 9, 11, 375 }, { 9, 11, 895 }, { 10, 11, 743 }, { 10, 11, 792 }, + { 11, 11, 978 }, { 11, 11, 1012 }, { 142, 11, 109 }, { 5, 0, 384 }, + { 8, 0, 455 }, { 140, 0, 48 }, { 132, 11, 390 }, { 5, 10, 169 }, + { 7, 10, 333 }, { 136, 10, 45 }, { 5, 0, 264 }, { 134, 0, 184 }, + { 138, 11, 791 }, { 133, 11, 717 }, { 132, 10, 198 }, { 6, 11, 445 }, + { 7, 11, 332 }, { 137, 11, 909 }, { 136, 0, 1001 }, { 4, 10, 24 }, + { 5, 10, 140 }, { 5, 10, 185 }, { 7, 10, 1500 }, { 11, 10, 565 }, + { 139, 10, 838 }, { 134, 11, 578 }, { 5, 0, 633 }, { 6, 0, 28 }, + { 135, 0, 1323 }, { 132, 0, 851 }, { 136, 11, 267 }, { 7, 0, 359 }, + { 8, 0, 243 }, { 140, 0, 175 }, { 4, 10, 334 }, { 133, 10, 593 }, + { 141, 11, 87 }, { 136, 11, 766 }, { 10, 0, 287 }, { 12, 0, 138 }, + { 10, 11, 287 }, { 140, 11, 138 }, { 4, 0, 105 }, { 132, 0, 740 }, + { 140, 10, 116 }, { 134, 0, 857 }, { 135, 11, 1841 }, { 6, 0, 1402 }, + { 137, 0, 819 }, { 132, 11, 584 }, { 132, 10, 709 }, { 133, 10, 897 }, + { 5, 0, 224 }, { 13, 0, 174 }, { 146, 0, 52 }, { 135, 10, 1840 }, + { 4, 10, 608 }, { 133, 10, 497 }, { 139, 11, 60 }, { 4, 0, 758 }, + { 135, 0, 1649 }, { 4, 11, 226 }, { 4, 11, 326 }, { 135, 11, 1770 }, + { 5, 11, 426 }, { 8, 11, 30 }, { 9, 11, 2 }, { 11, 11, 549 }, + { 147, 11, 122 }, { 135, 10, 2039 }, { 6, 10, 540 }, { 136, 10, 136 }, + { 4, 0, 573 }, { 8, 0, 655 }, { 4, 10, 897 }, { 133, 10, 786 }, + { 7, 0, 351 }, { 139, 0, 128 }, { 133, 10, 999 }, { 4, 10, 299 }, + { 135, 10, 1004 }, { 133, 0, 918 }, { 132, 11, 345 }, { 4, 11, 385 }, + { 7, 11, 265 }, { 135, 11, 587 }, { 133, 10, 456 }, { 136, 10, 180 }, + { 6, 0, 687 }, { 134, 0, 1537 }, { 4, 11, 347 }, { 5, 11, 423 }, + { 5, 11, 996 }, { 135, 11, 1329 }, { 132, 10, 755 }, { 7, 11, 1259 }, + { 9, 11, 125 }, { 11, 11, 65 }, { 140, 11, 285 }, { 5, 11, 136 }, + { 6, 11, 136 }, { 136, 11, 644 }, { 134, 0, 1525 }, { 4, 0, 1009 }, + { 135, 0, 1139 }, { 139, 10, 338 }, { 132, 0, 340 }, { 135, 10, 1464 }, + { 8, 0, 847 }, { 10, 0, 861 }, { 10, 0, 876 }, { 10, 0, 889 }, + { 10, 0, 922 }, { 10, 0, 929 }, { 10, 0, 933 }, { 12, 0, 784 }, + { 140, 0, 791 }, { 139, 0, 176 }, { 9, 11, 134 }, { 10, 11, 2 }, + { 10, 11, 27 }, { 10, 11, 333 }, { 11, 11, 722 }, { 143, 11, 1 }, + { 4, 11, 433 }, { 133, 11, 719 }, { 5, 0, 985 }, { 7, 0, 509 }, + { 7, 0, 529 }, { 145, 0, 96 }, { 132, 0, 615 }, { 4, 10, 890 }, + { 5, 10, 805 }, { 5, 10, 819 }, { 5, 10, 961 }, { 6, 10, 396 }, + { 6, 10, 1631 }, { 6, 10, 1678 }, { 7, 10, 1967 }, { 7, 10, 2041 }, + { 9, 10, 630 }, { 11, 10, 8 }, { 11, 10, 1019 }, { 12, 10, 176 }, + { 13, 10, 225 }, { 14, 10, 292 }, { 149, 10, 24 }, { 135, 0, 1919 }, + { 134, 0, 1131 }, { 144, 11, 21 }, { 144, 11, 51 }, { 135, 10, 1815 }, + { 4, 0, 247 }, { 7, 10, 1505 }, { 10, 10, 190 }, { 10, 10, 634 }, + { 11, 10, 792 }, { 12, 10, 358 }, { 140, 10, 447 }, { 5, 10, 0 }, + { 6, 10, 536 }, { 7, 10, 604 }, { 13, 10, 445 }, { 145, 10, 126 }, + { 4, 0, 184 }, { 5, 0, 390 }, { 6, 0, 337 }, { 7, 0, 23 }, + { 7, 0, 494 }, { 7, 0, 618 }, { 7, 0, 1456 }, { 8, 0, 27 }, + { 8, 0, 599 }, { 10, 0, 153 }, { 139, 0, 710 }, { 6, 10, 232 }, + { 6, 10, 412 }, { 7, 10, 1074 }, { 8, 10, 9 }, { 8, 10, 157 }, + { 8, 10, 786 }, { 9, 10, 196 }, { 9, 10, 352 }, { 9, 10, 457 }, + { 10, 10, 337 }, { 11, 10, 232 }, { 11, 10, 877 }, { 12, 10, 480 }, + { 140, 10, 546 }, { 13, 0, 38 }, { 135, 10, 958 }, { 4, 10, 382 }, + { 136, 10, 579 }, { 4, 10, 212 }, { 135, 10, 1206 }, { 4, 11, 555 }, + { 8, 11, 536 }, { 138, 11, 288 }, { 11, 11, 139 }, { 139, 11, 171 }, + { 9, 11, 370 }, { 138, 11, 90 }, { 132, 0, 1015 }, { 134, 0, 1088 }, + { 5, 10, 655 }, { 135, 11, 977 }, { 134, 0, 1585 }, { 17, 10, 67 }, + { 147, 10, 74 }, { 10, 0, 227 }, { 11, 0, 497 }, { 11, 0, 709 }, + { 140, 0, 415 }, { 6, 0, 360 }, { 7, 0, 1664 }, { 136, 0, 478 }, + { 7, 0, 95 }, { 6, 10, 231 }, { 136, 10, 423 }, { 140, 11, 65 }, + { 4, 11, 257 }, { 135, 11, 2031 }, { 135, 11, 1768 }, { 133, 10, 300 }, + { 139, 11, 211 }, { 136, 0, 699 }, { 6, 10, 237 }, { 7, 10, 611 }, + { 8, 10, 100 }, { 9, 10, 416 }, { 11, 10, 335 }, { 12, 10, 173 }, + { 146, 10, 101 }, { 14, 0, 26 }, { 146, 0, 150 }, { 6, 0, 581 }, + { 135, 0, 1119 }, { 135, 10, 1208 }, { 132, 0, 739 }, { 6, 11, 83 }, + { 6, 11, 1733 }, { 135, 11, 1389 }, { 137, 0, 869 }, { 4, 0, 67 }, + { 5, 0, 422 }, { 7, 0, 1037 }, { 7, 0, 1289 }, { 7, 0, 1555 }, + { 9, 0, 741 }, { 145, 0, 108 }, { 133, 10, 199 }, { 12, 10, 427 }, + { 146, 10, 38 }, { 136, 0, 464 }, { 142, 0, 42 }, { 10, 0, 96 }, + { 8, 11, 501 }, { 137, 11, 696 }, { 134, 11, 592 }, { 4, 0, 512 }, + { 4, 0, 966 }, { 5, 0, 342 }, { 6, 0, 1855 }, { 8, 0, 869 }, + { 8, 0, 875 }, { 8, 0, 901 }, { 144, 0, 26 }, { 8, 0, 203 }, + { 11, 0, 823 }, { 11, 0, 846 }, { 12, 0, 482 }, { 13, 0, 277 }, + { 13, 0, 302 }, { 13, 0, 464 }, { 14, 0, 205 }, { 142, 0, 221 }, + { 4, 0, 449 }, { 133, 0, 718 }, { 7, 11, 1718 }, { 9, 11, 95 }, + { 9, 11, 274 }, { 10, 11, 279 }, { 10, 11, 317 }, { 10, 11, 420 }, + { 11, 11, 303 }, { 11, 11, 808 }, { 12, 11, 134 }, { 12, 11, 367 }, + { 13, 11, 149 }, { 13, 11, 347 }, { 14, 11, 349 }, { 14, 11, 406 }, + { 18, 11, 22 }, { 18, 11, 89 }, { 18, 11, 122 }, { 147, 11, 47 }, + { 133, 11, 26 }, { 4, 0, 355 }, { 6, 0, 311 }, { 9, 0, 256 }, + { 138, 0, 404 }, { 132, 11, 550 }, { 10, 0, 758 }, { 6, 10, 312 }, + { 6, 10, 1715 }, { 10, 10, 584 }, { 11, 10, 546 }, { 11, 10, 692 }, + { 12, 10, 259 }, { 12, 10, 295 }, { 13, 10, 46 }, { 141, 10, 154 }, + { 136, 11, 822 }, { 5, 0, 827 }, { 4, 11, 902 }, { 5, 11, 809 }, + { 6, 11, 122 }, { 135, 11, 896 }, { 5, 0, 64 }, { 140, 0, 581 }, + { 4, 0, 442 }, { 6, 0, 739 }, { 7, 0, 1047 }, { 7, 0, 1352 }, + { 7, 0, 1643 }, { 7, 11, 1911 }, { 9, 11, 449 }, { 10, 11, 192 }, + { 138, 11, 740 }, { 135, 11, 262 }, { 132, 10, 588 }, { 133, 11, 620 }, + { 5, 0, 977 }, { 6, 0, 288 }, { 7, 0, 528 }, { 4, 11, 34 }, + { 5, 11, 574 }, { 7, 11, 279 }, { 7, 11, 1624 }, { 136, 11, 601 }, + { 6, 0, 1375 }, { 4, 10, 231 }, { 5, 10, 61 }, { 6, 10, 104 }, + { 7, 10, 729 }, { 7, 10, 964 }, { 7, 10, 1658 }, { 140, 10, 414 }, + { 6, 10, 263 }, { 138, 10, 757 }, { 132, 10, 320 }, { 4, 0, 254 }, + { 7, 0, 1309 }, { 5, 11, 332 }, { 135, 11, 1309 }, { 6, 11, 261 }, + { 8, 11, 182 }, { 139, 11, 943 }, { 132, 10, 225 }, { 6, 0, 12 }, + { 135, 0, 1219 }, { 4, 0, 275 }, { 12, 0, 376 }, { 6, 11, 1721 }, + { 141, 11, 490 }, { 4, 11, 933 }, { 133, 11, 880 }, { 6, 0, 951 }, + { 6, 0, 1109 }, { 6, 0, 1181 }, { 7, 0, 154 }, { 4, 10, 405 }, + { 7, 10, 817 }, { 14, 10, 58 }, { 17, 10, 37 }, { 146, 10, 124 }, + { 6, 0, 1520 }, { 133, 10, 974 }, { 134, 0, 1753 }, { 6, 0, 369 }, + { 6, 0, 502 }, { 7, 0, 1036 }, { 8, 0, 348 }, { 9, 0, 452 }, + { 10, 0, 26 }, { 11, 0, 224 }, { 11, 0, 387 }, { 11, 0, 772 }, + { 12, 0, 95 }, { 12, 0, 629 }, { 13, 0, 195 }, { 13, 0, 207 }, + { 13, 0, 241 }, { 14, 0, 260 }, { 14, 0, 270 }, { 143, 0, 140 }, + { 132, 0, 269 }, { 5, 0, 480 }, { 7, 0, 532 }, { 7, 0, 1197 }, + { 7, 0, 1358 }, { 8, 0, 291 }, { 11, 0, 349 }, { 142, 0, 396 }, + { 5, 10, 235 }, { 7, 10, 1239 }, { 11, 10, 131 }, { 140, 10, 370 }, + { 7, 10, 956 }, { 7, 10, 1157 }, { 7, 10, 1506 }, { 7, 10, 1606 }, + { 7, 10, 1615 }, { 7, 10, 1619 }, { 7, 10, 1736 }, { 7, 10, 1775 }, + { 8, 10, 590 }, { 9, 10, 324 }, { 9, 10, 736 }, { 9, 10, 774 }, + { 9, 10, 776 }, { 9, 10, 784 }, { 10, 10, 567 }, { 10, 10, 708 }, + { 11, 10, 518 }, { 11, 10, 613 }, { 11, 10, 695 }, { 11, 10, 716 }, + { 11, 10, 739 }, { 11, 10, 770 }, { 11, 10, 771 }, { 11, 10, 848 }, + { 11, 10, 857 }, { 11, 10, 931 }, { 11, 10, 947 }, { 12, 10, 326 }, + { 12, 10, 387 }, { 12, 10, 484 }, { 12, 10, 528 }, { 12, 10, 552 }, + { 12, 10, 613 }, { 13, 10, 189 }, { 13, 10, 256 }, { 13, 10, 340 }, + { 13, 10, 432 }, { 13, 10, 436 }, { 13, 10, 440 }, { 13, 10, 454 }, + { 14, 10, 174 }, { 14, 10, 220 }, { 14, 10, 284 }, { 14, 10, 390 }, + { 145, 10, 121 }, { 8, 11, 598 }, { 9, 11, 664 }, { 138, 11, 441 }, + { 9, 10, 137 }, { 138, 10, 221 }, { 133, 11, 812 }, { 148, 0, 15 }, + { 134, 0, 1341 }, { 6, 0, 1017 }, { 4, 11, 137 }, { 7, 11, 1178 }, + { 135, 11, 1520 }, { 7, 10, 390 }, { 138, 10, 140 }, { 7, 11, 1260 }, + { 135, 11, 1790 }, { 137, 11, 191 }, { 135, 10, 1144 }, { 6, 0, 1810 }, + { 7, 0, 657 }, { 8, 0, 886 }, { 10, 0, 857 }, { 14, 0, 440 }, + { 144, 0, 96 }, { 8, 0, 533 }, { 6, 11, 1661 }, { 7, 11, 1975 }, + { 7, 11, 2009 }, { 135, 11, 2011 }, { 6, 0, 1453 }, { 134, 10, 464 }, + { 132, 11, 715 }, { 5, 10, 407 }, { 11, 10, 204 }, { 11, 10, 243 }, + { 11, 10, 489 }, { 12, 10, 293 }, { 19, 10, 37 }, { 20, 10, 73 }, + { 150, 10, 38 }, { 133, 11, 703 }, { 4, 0, 211 }, { 7, 0, 1483 }, + { 5, 10, 325 }, { 8, 10, 5 }, { 8, 10, 227 }, { 9, 10, 105 }, + { 10, 10, 585 }, { 140, 10, 614 }, { 4, 0, 332 }, { 5, 0, 335 }, + { 6, 0, 238 }, { 7, 0, 269 }, { 7, 0, 811 }, { 7, 0, 1797 }, + { 8, 0, 836 }, { 9, 0, 507 }, { 141, 0, 242 }, { 5, 11, 89 }, + { 7, 11, 1915 }, { 9, 11, 185 }, { 9, 11, 235 }, { 9, 11, 496 }, + { 10, 11, 64 }, { 10, 11, 270 }, { 10, 11, 403 }, { 10, 11, 469 }, + { 10, 11, 529 }, { 10, 11, 590 }, { 11, 11, 140 }, { 11, 11, 860 }, + { 13, 11, 1 }, { 13, 11, 422 }, { 14, 11, 341 }, { 14, 11, 364 }, + { 17, 11, 93 }, { 18, 11, 113 }, { 19, 11, 97 }, { 147, 11, 113 }, + { 133, 11, 695 }, { 16, 0, 19 }, { 5, 11, 6 }, { 6, 11, 183 }, + { 6, 10, 621 }, { 7, 11, 680 }, { 7, 11, 978 }, { 7, 11, 1013 }, + { 7, 11, 1055 }, { 12, 11, 230 }, { 13, 11, 172 }, { 13, 10, 504 }, + { 146, 11, 29 }, { 136, 0, 156 }, { 133, 0, 1009 }, { 6, 11, 29 }, + { 139, 11, 63 }, { 134, 0, 820 }, { 134, 10, 218 }, { 7, 10, 454 }, + { 7, 10, 782 }, { 8, 10, 768 }, { 140, 10, 686 }, { 5, 0, 228 }, + { 6, 0, 203 }, { 7, 0, 156 }, { 8, 0, 347 }, { 9, 0, 265 }, + { 18, 0, 39 }, { 20, 0, 54 }, { 21, 0, 31 }, { 22, 0, 3 }, + { 23, 0, 0 }, { 15, 11, 8 }, { 18, 11, 39 }, { 20, 11, 54 }, + { 21, 11, 31 }, { 22, 11, 3 }, { 151, 11, 0 }, { 7, 0, 1131 }, + { 135, 0, 1468 }, { 144, 10, 0 }, { 134, 0, 1276 }, { 10, 10, 676 }, + { 140, 10, 462 }, { 132, 11, 311 }, { 134, 11, 1740 }, { 7, 11, 170 }, + { 8, 11, 90 }, { 8, 11, 177 }, { 8, 11, 415 }, { 11, 11, 714 }, + { 142, 11, 281 }, { 134, 10, 164 }, { 6, 0, 1792 }, { 138, 0, 849 }, + { 150, 10, 50 }, { 5, 0, 291 }, { 5, 0, 318 }, { 7, 0, 765 }, + { 9, 0, 389 }, { 12, 0, 548 }, { 8, 11, 522 }, { 142, 11, 328 }, + { 11, 11, 91 }, { 13, 11, 129 }, { 15, 11, 101 }, { 145, 11, 125 }, + { 4, 11, 494 }, { 6, 11, 74 }, { 7, 11, 44 }, { 7, 11, 407 }, + { 8, 11, 551 }, { 12, 11, 17 }, { 15, 11, 5 }, { 148, 11, 11 }, + { 4, 11, 276 }, { 133, 11, 296 }, { 6, 10, 343 }, { 7, 10, 195 }, + { 7, 11, 1777 }, { 9, 10, 226 }, { 10, 10, 197 }, { 10, 10, 575 }, + { 11, 10, 502 }, { 139, 10, 899 }, { 10, 0, 525 }, { 139, 0, 82 }, + { 14, 0, 453 }, { 4, 11, 7 }, { 5, 11, 90 }, { 5, 11, 158 }, + { 6, 11, 542 }, { 7, 11, 221 }, { 7, 11, 1574 }, { 9, 11, 490 }, + { 10, 11, 540 }, { 11, 11, 443 }, { 139, 11, 757 }, { 135, 0, 666 }, + { 22, 10, 29 }, { 150, 11, 29 }, { 4, 0, 422 }, { 147, 10, 8 }, + { 5, 0, 355 }, { 145, 0, 0 }, { 6, 0, 1873 }, { 9, 0, 918 }, + { 7, 11, 588 }, { 9, 11, 175 }, { 138, 11, 530 }, { 143, 11, 31 }, + { 11, 0, 165 }, { 7, 10, 1125 }, { 9, 10, 143 }, { 14, 10, 405 }, + { 150, 10, 21 }, { 9, 0, 260 }, { 137, 0, 905 }, { 5, 11, 872 }, + { 6, 11, 57 }, { 6, 11, 479 }, { 6, 11, 562 }, { 7, 11, 471 }, + { 7, 11, 1060 }, { 9, 11, 447 }, { 9, 11, 454 }, { 141, 11, 6 }, + { 138, 11, 704 }, { 133, 0, 865 }, { 5, 0, 914 }, { 134, 0, 1625 }, + { 133, 0, 234 }, { 7, 0, 1383 }, { 5, 11, 31 }, { 6, 11, 614 }, + { 145, 11, 61 }, { 7, 11, 1200 }, { 138, 11, 460 }, { 6, 11, 424 }, + { 135, 11, 1866 }, { 136, 0, 306 }, { 5, 10, 959 }, { 12, 11, 30 }, + { 13, 11, 148 }, { 14, 11, 87 }, { 14, 11, 182 }, { 16, 11, 42 }, + { 18, 11, 92 }, { 148, 11, 70 }, { 6, 0, 1919 }, { 6, 0, 1921 }, + { 9, 0, 923 }, { 9, 0, 930 }, { 9, 0, 941 }, { 9, 0, 949 }, + { 9, 0, 987 }, { 9, 0, 988 }, { 9, 0, 992 }, { 12, 0, 802 }, + { 12, 0, 815 }, { 12, 0, 856 }, { 12, 0, 885 }, { 12, 0, 893 }, + { 12, 0, 898 }, { 12, 0, 919 }, { 12, 0, 920 }, { 12, 0, 941 }, + { 12, 0, 947 }, { 15, 0, 183 }, { 15, 0, 185 }, { 15, 0, 189 }, + { 15, 0, 197 }, { 15, 0, 202 }, { 15, 0, 233 }, { 18, 0, 218 }, + { 18, 0, 219 }, { 18, 0, 233 }, { 143, 11, 156 }, { 135, 10, 1759 }, + { 136, 10, 173 }, { 13, 0, 163 }, { 13, 0, 180 }, { 18, 0, 78 }, + { 20, 0, 35 }, { 5, 11, 13 }, { 134, 11, 142 }, { 134, 10, 266 }, + { 6, 11, 97 }, { 7, 11, 116 }, { 8, 11, 322 }, { 8, 11, 755 }, + { 9, 11, 548 }, { 10, 11, 714 }, { 11, 11, 884 }, { 141, 11, 324 }, + { 135, 0, 1312 }, { 9, 0, 814 }, { 137, 11, 676 }, { 133, 0, 707 }, + { 135, 0, 1493 }, { 6, 0, 421 }, { 7, 0, 61 }, { 7, 0, 1540 }, + { 10, 0, 11 }, { 138, 0, 501 }, { 12, 0, 733 }, { 12, 0, 766 }, + { 7, 11, 866 }, { 135, 11, 1163 }, { 137, 0, 341 }, { 142, 0, 98 }, + { 145, 11, 115 }, { 135, 11, 1111 }, { 136, 10, 300 }, { 136, 0, 1014 }, + { 8, 11, 1 }, { 9, 11, 112 }, { 138, 11, 326 }, { 132, 11, 730 }, + { 5, 11, 488 }, { 6, 11, 527 }, { 7, 11, 489 }, { 7, 11, 1636 }, + { 8, 11, 121 }, { 8, 11, 144 }, { 8, 11, 359 }, { 9, 11, 193 }, + { 9, 11, 241 }, { 9, 11, 336 }, { 9, 11, 882 }, { 11, 11, 266 }, + { 11, 11, 372 }, { 11, 11, 944 }, { 12, 11, 401 }, { 140, 11, 641 }, + { 6, 0, 971 }, { 134, 0, 1121 }, { 6, 0, 102 }, { 7, 0, 72 }, + { 15, 0, 142 }, { 147, 0, 67 }, { 151, 0, 30 }, { 135, 0, 823 }, + { 134, 0, 1045 }, { 5, 10, 427 }, { 5, 10, 734 }, { 7, 10, 478 }, + { 136, 10, 52 }, { 7, 0, 1930 }, { 11, 10, 217 }, { 142, 10, 165 }, + { 6, 0, 1512 }, { 135, 0, 1870 }, { 9, 11, 31 }, { 10, 11, 244 }, + { 10, 11, 699 }, { 12, 11, 149 }, { 141, 11, 497 }, { 133, 11, 377 }, + { 145, 11, 101 }, { 10, 11, 158 }, { 13, 11, 13 }, { 13, 11, 137 }, + { 13, 11, 258 }, { 14, 11, 111 }, { 14, 11, 225 }, { 14, 11, 253 }, + { 14, 11, 304 }, { 14, 11, 339 }, { 14, 11, 417 }, { 146, 11, 33 }, + { 6, 0, 87 }, { 6, 10, 1734 }, { 7, 10, 20 }, { 7, 10, 1056 }, + { 8, 10, 732 }, { 9, 10, 406 }, { 9, 10, 911 }, { 138, 10, 694 }, + { 134, 0, 1243 }, { 137, 0, 245 }, { 7, 0, 68 }, { 8, 0, 48 }, + { 8, 0, 88 }, { 8, 0, 582 }, { 8, 0, 681 }, { 9, 0, 373 }, + { 9, 0, 864 }, { 11, 0, 157 }, { 11, 0, 336 }, { 11, 0, 843 }, + { 148, 0, 27 }, { 8, 11, 663 }, { 144, 11, 8 }, { 133, 10, 613 }, + { 4, 0, 88 }, { 5, 0, 137 }, { 5, 0, 174 }, { 5, 0, 777 }, + { 6, 0, 1664 }, { 6, 0, 1725 }, { 7, 0, 77 }, { 7, 0, 426 }, + { 7, 0, 1317 }, { 7, 0, 1355 }, { 8, 0, 126 }, { 8, 0, 563 }, + { 9, 0, 523 }, { 9, 0, 750 }, { 10, 0, 310 }, { 10, 0, 836 }, + { 11, 0, 42 }, { 11, 0, 318 }, { 11, 0, 731 }, { 12, 0, 68 }, + { 12, 0, 92 }, { 12, 0, 507 }, { 12, 0, 692 }, { 13, 0, 81 }, + { 13, 0, 238 }, { 13, 0, 374 }, { 14, 0, 436 }, { 18, 0, 138 }, + { 19, 0, 78 }, { 19, 0, 111 }, { 20, 0, 55 }, { 20, 0, 77 }, + { 148, 0, 92 }, { 141, 0, 418 }, { 4, 0, 938 }, { 137, 0, 625 }, + { 138, 0, 351 }, { 5, 11, 843 }, { 7, 10, 32 }, { 7, 10, 984 }, + { 8, 10, 85 }, { 8, 10, 709 }, { 9, 10, 579 }, { 9, 10, 847 }, + { 9, 10, 856 }, { 10, 10, 799 }, { 11, 10, 258 }, { 11, 10, 1007 }, + { 12, 10, 331 }, { 12, 10, 615 }, { 13, 10, 188 }, { 13, 10, 435 }, + { 14, 10, 8 }, { 15, 10, 165 }, { 16, 10, 27 }, { 148, 10, 40 }, + { 6, 0, 1668 }, { 7, 0, 1499 }, { 8, 0, 117 }, { 9, 0, 314 }, + { 138, 0, 174 }, { 135, 0, 707 }, { 132, 11, 554 }, { 133, 11, 536 }, + { 5, 0, 403 }, { 5, 11, 207 }, { 9, 11, 79 }, { 11, 11, 625 }, + { 145, 11, 7 }, { 132, 11, 424 }, { 136, 11, 785 }, { 4, 10, 167 }, + { 135, 10, 82 }, { 9, 0, 7 }, { 23, 0, 6 }, { 9, 11, 7 }, + { 151, 11, 6 }, { 6, 0, 282 }, { 5, 10, 62 }, { 6, 10, 534 }, + { 7, 10, 74 }, { 7, 10, 678 }, { 7, 10, 684 }, { 7, 10, 1043 }, + { 7, 10, 1072 }, { 8, 10, 280 }, { 8, 10, 541 }, { 8, 10, 686 }, + { 9, 10, 258 }, { 10, 10, 519 }, { 11, 10, 252 }, { 140, 10, 282 }, + { 138, 10, 33 }, { 132, 10, 359 }, { 4, 0, 44 }, { 5, 0, 311 }, + { 6, 0, 156 }, { 7, 0, 639 }, { 7, 0, 762 }, { 7, 0, 1827 }, + { 9, 0, 8 }, { 9, 0, 462 }, { 148, 0, 83 }, { 7, 11, 769 }, + { 9, 11, 18 }, { 138, 11, 358 }, { 4, 0, 346 }, { 7, 0, 115 }, + { 9, 0, 180 }, { 9, 0, 456 }, { 10, 0, 363 }, { 4, 11, 896 }, + { 134, 11, 1777 }, { 133, 10, 211 }, { 7, 0, 761 }, { 7, 0, 1051 }, + { 137, 0, 545 }, { 6, 10, 145 }, { 141, 10, 336 }, { 7, 11, 750 }, + { 9, 11, 223 }, { 11, 11, 27 }, { 11, 11, 466 }, { 12, 11, 624 }, + { 14, 11, 265 }, { 146, 11, 61 }, { 6, 0, 752 }, { 6, 0, 768 }, + { 6, 0, 1195 }, { 6, 0, 1254 }, { 6, 0, 1619 }, { 137, 0, 835 }, + { 6, 0, 1936 }, { 8, 0, 930 }, { 136, 0, 960 }, { 132, 10, 263 }, + { 132, 11, 249 }, { 12, 0, 653 }, { 132, 10, 916 }, { 4, 11, 603 }, + { 133, 11, 661 }, { 8, 0, 344 }, { 4, 11, 11 }, { 6, 11, 128 }, + { 7, 11, 231 }, { 7, 11, 1533 }, { 138, 11, 725 }, { 134, 0, 1483 }, + { 134, 0, 875 }, { 6, 0, 185 }, { 7, 0, 1899 }, { 9, 0, 875 }, + { 139, 0, 673 }, { 15, 10, 155 }, { 144, 10, 79 }, { 7, 0, 93 }, + { 7, 0, 210 }, { 7, 0, 1223 }, { 8, 0, 451 }, { 8, 0, 460 }, + { 11, 0, 353 }, { 11, 0, 475 }, { 4, 10, 599 }, { 6, 10, 1634 }, + { 7, 10, 67 }, { 7, 10, 691 }, { 7, 10, 979 }, { 7, 10, 1697 }, + { 8, 10, 207 }, { 8, 10, 214 }, { 8, 10, 231 }, { 8, 10, 294 }, + { 8, 10, 336 }, { 8, 10, 428 }, { 8, 10, 471 }, { 8, 10, 622 }, + { 8, 10, 626 }, { 8, 10, 679 }, { 8, 10, 759 }, { 8, 10, 829 }, + { 9, 10, 11 }, { 9, 10, 246 }, { 9, 10, 484 }, { 9, 10, 573 }, + { 9, 10, 706 }, { 9, 10, 762 }, { 9, 10, 798 }, { 9, 10, 855 }, + { 9, 10, 870 }, { 9, 10, 912 }, { 10, 10, 303 }, { 10, 10, 335 }, + { 10, 10, 424 }, { 10, 10, 461 }, { 10, 10, 543 }, { 10, 10, 759 }, + { 10, 10, 814 }, { 11, 10, 59 }, { 11, 10, 235 }, { 11, 10, 590 }, + { 11, 10, 929 }, { 11, 10, 963 }, { 11, 10, 987 }, { 12, 10, 114 }, + { 12, 10, 182 }, { 12, 10, 226 }, { 12, 10, 332 }, { 12, 10, 439 }, + { 12, 10, 575 }, { 12, 10, 598 }, { 12, 10, 675 }, { 13, 10, 8 }, + { 13, 10, 125 }, { 13, 10, 194 }, { 13, 10, 287 }, { 14, 10, 197 }, + { 14, 10, 383 }, { 15, 10, 53 }, { 17, 10, 63 }, { 19, 10, 46 }, + { 19, 10, 98 }, { 19, 10, 106 }, { 148, 10, 85 }, { 132, 11, 476 }, + { 4, 0, 327 }, { 5, 0, 478 }, { 7, 0, 1332 }, { 136, 0, 753 }, + { 5, 0, 1020 }, { 133, 0, 1022 }, { 135, 11, 1807 }, { 4, 0, 103 }, + { 133, 0, 401 }, { 4, 0, 499 }, { 135, 0, 1421 }, { 10, 0, 207 }, + { 13, 0, 164 }, { 147, 10, 126 }, { 9, 11, 20 }, { 10, 11, 324 }, + { 139, 11, 488 }, { 132, 0, 96 }, { 9, 11, 280 }, { 138, 11, 134 }, + { 135, 0, 968 }, { 133, 10, 187 }, { 135, 10, 1286 }, { 5, 11, 112 }, + { 6, 11, 103 }, { 134, 11, 150 }, { 8, 0, 914 }, { 10, 0, 3 }, + { 4, 10, 215 }, { 9, 10, 38 }, { 11, 10, 23 }, { 11, 10, 127 }, + { 139, 10, 796 }, { 135, 0, 399 }, { 6, 0, 563 }, { 137, 0, 224 }, + { 6, 0, 704 }, { 134, 0, 1214 }, { 4, 11, 708 }, { 8, 11, 15 }, + { 9, 11, 50 }, { 9, 11, 386 }, { 11, 11, 18 }, { 11, 11, 529 }, + { 140, 11, 228 }, { 4, 11, 563 }, { 7, 11, 109 }, { 7, 11, 592 }, + { 7, 11, 637 }, { 7, 11, 770 }, { 7, 11, 1701 }, { 8, 11, 436 }, + { 8, 11, 463 }, { 9, 11, 60 }, { 9, 11, 335 }, { 9, 11, 904 }, + { 10, 11, 73 }, { 11, 11, 434 }, { 12, 11, 585 }, { 13, 11, 331 }, + { 18, 11, 110 }, { 148, 11, 60 }, { 134, 0, 1559 }, { 132, 11, 502 }, + { 6, 11, 347 }, { 138, 11, 161 }, { 4, 11, 33 }, { 5, 11, 102 }, + { 5, 11, 500 }, { 6, 11, 284 }, { 7, 11, 1079 }, { 7, 11, 1423 }, + { 7, 11, 1702 }, { 8, 11, 470 }, { 9, 11, 554 }, { 9, 11, 723 }, + { 139, 11, 333 }, { 7, 11, 246 }, { 135, 11, 840 }, { 6, 11, 10 }, + { 8, 11, 571 }, { 9, 11, 739 }, { 143, 11, 91 }, { 8, 0, 861 }, + { 10, 0, 905 }, { 12, 0, 730 }, { 12, 0, 789 }, { 133, 11, 626 }, + { 134, 0, 946 }, { 5, 0, 746 }, { 12, 0, 333 }, { 14, 0, 332 }, + { 12, 11, 333 }, { 142, 11, 332 }, { 5, 11, 18 }, { 6, 11, 526 }, + { 13, 11, 24 }, { 13, 11, 110 }, { 19, 11, 5 }, { 147, 11, 44 }, + { 4, 0, 910 }, { 5, 0, 832 }, { 135, 10, 2002 }, { 10, 11, 768 }, + { 139, 11, 787 }, { 4, 11, 309 }, { 5, 11, 462 }, { 7, 11, 970 }, + { 135, 11, 1097 }, { 4, 10, 28 }, { 5, 10, 440 }, { 7, 10, 248 }, + { 11, 10, 833 }, { 140, 10, 344 }, { 134, 10, 1654 }, { 6, 0, 632 }, + { 6, 0, 652 }, { 6, 0, 1272 }, { 6, 0, 1384 }, { 134, 0, 1560 }, + { 134, 11, 1704 }, { 6, 0, 1393 }, { 133, 10, 853 }, { 6, 10, 249 }, + { 7, 10, 1234 }, { 139, 10, 573 }, { 5, 11, 86 }, { 7, 11, 743 }, + { 9, 11, 85 }, { 10, 11, 281 }, { 10, 11, 432 }, { 11, 11, 490 }, + { 12, 11, 251 }, { 13, 11, 118 }, { 14, 11, 378 }, { 146, 11, 143 }, + { 5, 11, 524 }, { 133, 11, 744 }, { 134, 0, 1514 }, { 10, 0, 201 }, + { 142, 0, 319 }, { 7, 0, 717 }, { 10, 0, 510 }, { 7, 10, 392 }, + { 8, 10, 20 }, { 8, 10, 172 }, { 8, 10, 690 }, { 9, 10, 383 }, + { 9, 10, 845 }, { 11, 10, 293 }, { 11, 10, 832 }, { 11, 10, 920 }, + { 11, 10, 984 }, { 141, 10, 221 }, { 134, 0, 1381 }, { 5, 10, 858 }, + { 133, 10, 992 }, { 8, 0, 528 }, { 137, 0, 348 }, { 10, 11, 107 }, + { 140, 11, 436 }, { 4, 0, 20 }, { 133, 0, 616 }, { 134, 0, 1251 }, + { 132, 11, 927 }, { 10, 11, 123 }, { 12, 11, 670 }, { 13, 11, 371 }, + { 14, 11, 142 }, { 146, 11, 94 }, { 134, 0, 1163 }, { 7, 11, 1149 }, + { 137, 11, 156 }, { 134, 0, 307 }, { 133, 11, 778 }, { 7, 0, 1091 }, + { 135, 0, 1765 }, { 5, 11, 502 }, { 6, 10, 268 }, { 137, 10, 62 }, + { 8, 11, 196 }, { 10, 11, 283 }, { 139, 11, 406 }, { 4, 0, 26 }, + { 5, 0, 429 }, { 6, 0, 245 }, { 7, 0, 704 }, { 7, 0, 1379 }, + { 135, 0, 1474 }, { 133, 11, 855 }, { 132, 0, 881 }, { 4, 0, 621 }, + { 135, 11, 1596 }, { 7, 11, 1400 }, { 9, 11, 446 }, { 138, 11, 45 }, + { 6, 0, 736 }, { 138, 10, 106 }, { 133, 0, 542 }, { 134, 0, 348 }, + { 133, 0, 868 }, { 136, 0, 433 }, { 135, 0, 1495 }, { 138, 0, 771 }, + { 6, 10, 613 }, { 136, 10, 223 }, { 138, 0, 215 }, { 141, 0, 124 }, + { 136, 11, 391 }, { 135, 11, 172 }, { 132, 10, 670 }, { 140, 0, 55 }, + { 9, 10, 40 }, { 139, 10, 136 }, { 7, 0, 62 }, { 147, 0, 112 }, + { 132, 0, 856 }, { 132, 11, 568 }, { 12, 0, 270 }, { 139, 10, 259 }, + { 8, 0, 572 }, { 137, 0, 698 }, { 4, 11, 732 }, { 9, 10, 310 }, + { 137, 10, 682 }, { 142, 10, 296 }, { 134, 0, 939 }, { 136, 11, 733 }, + { 135, 11, 1435 }, { 7, 10, 1401 }, { 135, 10, 1476 }, { 6, 0, 352 }, + { 4, 10, 296 }, { 7, 10, 401 }, { 7, 10, 1410 }, { 7, 10, 1594 }, + { 7, 10, 1674 }, { 8, 10, 63 }, { 8, 10, 660 }, { 137, 10, 74 }, + { 4, 11, 428 }, { 133, 11, 668 }, { 4, 10, 139 }, { 4, 10, 388 }, + { 140, 10, 188 }, { 7, 11, 2015 }, { 140, 11, 665 }, { 132, 0, 647 }, + { 146, 0, 10 }, { 138, 0, 220 }, { 142, 0, 464 }, { 132, 0, 109 }, + { 134, 0, 1746 }, { 6, 0, 515 }, { 4, 10, 747 }, { 6, 11, 1623 }, + { 6, 11, 1681 }, { 7, 10, 649 }, { 7, 10, 1479 }, { 135, 10, 1583 }, + { 133, 10, 232 }, { 135, 0, 566 }, { 137, 10, 887 }, { 4, 0, 40 }, + { 10, 0, 67 }, { 11, 0, 117 }, { 11, 0, 768 }, { 139, 0, 935 }, + { 132, 0, 801 }, { 7, 0, 992 }, { 8, 0, 301 }, { 9, 0, 722 }, + { 12, 0, 63 }, { 13, 0, 29 }, { 14, 0, 161 }, { 143, 0, 18 }, + { 139, 0, 923 }, { 6, 11, 1748 }, { 8, 11, 715 }, { 9, 11, 802 }, + { 10, 11, 46 }, { 10, 11, 819 }, { 13, 11, 308 }, { 14, 11, 351 }, + { 14, 11, 363 }, { 146, 11, 67 }, { 137, 11, 745 }, { 7, 0, 1145 }, + { 4, 10, 14 }, { 7, 10, 1801 }, { 10, 10, 748 }, { 141, 10, 458 }, + { 4, 11, 63 }, { 5, 11, 347 }, { 134, 11, 474 }, { 135, 0, 568 }, + { 4, 10, 425 }, { 7, 11, 577 }, { 7, 11, 1432 }, { 9, 11, 475 }, + { 9, 11, 505 }, { 9, 11, 526 }, { 9, 11, 609 }, { 9, 11, 689 }, + { 9, 11, 726 }, { 9, 11, 735 }, { 9, 11, 738 }, { 10, 11, 556 }, + { 10, 11, 674 }, { 10, 11, 684 }, { 11, 11, 89 }, { 11, 11, 202 }, + { 11, 11, 272 }, { 11, 11, 380 }, { 11, 11, 415 }, { 11, 11, 505 }, + { 11, 11, 537 }, { 11, 11, 550 }, { 11, 11, 562 }, { 11, 11, 640 }, + { 11, 11, 667 }, { 11, 11, 688 }, { 11, 11, 847 }, { 11, 11, 927 }, + { 11, 11, 930 }, { 11, 11, 940 }, { 12, 11, 144 }, { 12, 11, 325 }, + { 12, 11, 329 }, { 12, 11, 389 }, { 12, 11, 403 }, { 12, 11, 451 }, + { 12, 11, 515 }, { 12, 11, 604 }, { 12, 11, 616 }, { 12, 11, 626 }, + { 13, 11, 66 }, { 13, 11, 131 }, { 13, 11, 167 }, { 13, 11, 236 }, + { 13, 11, 368 }, { 13, 11, 411 }, { 13, 11, 434 }, { 13, 11, 453 }, + { 13, 11, 461 }, { 13, 11, 474 }, { 14, 11, 59 }, { 14, 11, 60 }, + { 14, 11, 139 }, { 14, 11, 152 }, { 14, 11, 276 }, { 14, 11, 353 }, + { 14, 11, 402 }, { 15, 11, 28 }, { 15, 11, 81 }, { 15, 11, 123 }, + { 15, 11, 152 }, { 18, 11, 136 }, { 148, 11, 88 }, { 137, 0, 247 }, + { 135, 11, 1622 }, { 9, 11, 544 }, { 11, 11, 413 }, { 144, 11, 25 }, + { 4, 0, 645 }, { 7, 0, 825 }, { 6, 10, 1768 }, { 135, 11, 89 }, + { 140, 0, 328 }, { 5, 10, 943 }, { 134, 10, 1779 }, { 134, 0, 1363 }, + { 5, 10, 245 }, { 6, 10, 576 }, { 7, 10, 582 }, { 136, 10, 225 }, + { 134, 0, 1280 }, { 5, 11, 824 }, { 133, 11, 941 }, { 7, 11, 440 }, + { 8, 11, 230 }, { 139, 11, 106 }, { 5, 0, 28 }, { 6, 0, 204 }, + { 10, 0, 320 }, { 10, 0, 583 }, { 13, 0, 502 }, { 14, 0, 72 }, + { 14, 0, 274 }, { 14, 0, 312 }, { 14, 0, 344 }, { 15, 0, 159 }, + { 16, 0, 62 }, { 16, 0, 69 }, { 17, 0, 30 }, { 18, 0, 42 }, + { 18, 0, 53 }, { 18, 0, 84 }, { 18, 0, 140 }, { 19, 0, 68 }, + { 19, 0, 85 }, { 20, 0, 5 }, { 20, 0, 45 }, { 20, 0, 101 }, + { 22, 0, 7 }, { 150, 0, 20 }, { 4, 0, 558 }, { 6, 0, 390 }, + { 7, 0, 162 }, { 7, 0, 689 }, { 9, 0, 360 }, { 138, 0, 653 }, + { 134, 0, 764 }, { 6, 0, 862 }, { 137, 0, 833 }, { 5, 0, 856 }, + { 6, 0, 1672 }, { 6, 0, 1757 }, { 134, 0, 1781 }, { 5, 0, 92 }, + { 10, 0, 736 }, { 140, 0, 102 }, { 6, 0, 1927 }, { 6, 0, 1944 }, + { 8, 0, 924 }, { 8, 0, 948 }, { 10, 0, 967 }, { 138, 0, 978 }, + { 134, 0, 1479 }, { 5, 0, 590 }, { 8, 0, 360 }, { 9, 0, 213 }, + { 138, 0, 63 }, { 134, 0, 1521 }, { 6, 0, 709 }, { 134, 0, 891 }, + { 132, 10, 443 }, { 13, 0, 477 }, { 14, 0, 120 }, { 148, 0, 61 }, + { 4, 11, 914 }, { 5, 11, 800 }, { 133, 11, 852 }, { 10, 11, 54 }, + { 141, 11, 115 }, { 4, 11, 918 }, { 133, 11, 876 }, { 139, 11, 152 }, + { 4, 11, 92 }, { 133, 11, 274 }, { 135, 11, 1901 }, { 9, 11, 800 }, + { 10, 11, 693 }, { 11, 11, 482 }, { 11, 11, 734 }, { 139, 11, 789 }, + { 9, 0, 483 }, { 132, 10, 298 }, { 6, 0, 1213 }, { 141, 11, 498 }, + { 135, 11, 1451 }, { 133, 11, 743 }, { 4, 0, 1022 }, { 10, 0, 1000 }, + { 12, 0, 957 }, { 12, 0, 980 }, { 12, 0, 1013 }, { 14, 0, 481 }, + { 144, 0, 116 }, { 8, 0, 503 }, { 17, 0, 29 }, { 4, 11, 49 }, + { 7, 11, 280 }, { 135, 11, 1633 }, { 135, 0, 1712 }, { 134, 0, 466 }, + { 136, 11, 47 }, { 5, 10, 164 }, { 7, 10, 121 }, { 142, 10, 189 }, + { 7, 10, 812 }, { 7, 10, 1261 }, { 7, 10, 1360 }, { 9, 10, 632 }, + { 140, 10, 352 }, { 139, 10, 556 }, { 132, 0, 731 }, { 5, 11, 272 }, + { 5, 11, 908 }, { 5, 11, 942 }, { 7, 11, 1008 }, { 7, 11, 1560 }, + { 8, 11, 197 }, { 9, 11, 47 }, { 11, 11, 538 }, { 139, 11, 742 }, + { 4, 10, 172 }, { 9, 10, 611 }, { 10, 10, 436 }, { 12, 10, 673 }, + { 141, 10, 255 }, { 133, 10, 844 }, { 10, 0, 484 }, { 11, 0, 754 }, + { 12, 0, 457 }, { 14, 0, 171 }, { 14, 0, 389 }, { 146, 0, 153 }, + { 9, 10, 263 }, { 10, 10, 147 }, { 138, 10, 492 }, { 137, 11, 891 }, + { 138, 0, 241 }, { 133, 10, 537 }, { 6, 0, 2005 }, { 136, 0, 964 }, + { 137, 10, 842 }, { 151, 11, 8 }, { 4, 11, 407 }, { 132, 11, 560 }, + { 135, 11, 1884 }, { 6, 0, 1100 }, { 134, 0, 1242 }, { 135, 0, 954 }, + { 5, 10, 230 }, { 5, 10, 392 }, { 6, 10, 420 }, { 9, 10, 568 }, + { 140, 10, 612 }, { 4, 11, 475 }, { 11, 11, 35 }, { 11, 11, 90 }, + { 13, 11, 7 }, { 13, 11, 71 }, { 13, 11, 177 }, { 142, 11, 422 }, + { 136, 11, 332 }, { 135, 0, 1958 }, { 6, 0, 549 }, { 8, 0, 34 }, + { 8, 0, 283 }, { 9, 0, 165 }, { 138, 0, 475 }, { 10, 0, 952 }, + { 12, 0, 966 }, { 140, 0, 994 }, { 5, 0, 652 }, { 5, 0, 701 }, + { 135, 0, 449 }, { 4, 0, 655 }, { 7, 0, 850 }, { 17, 0, 75 }, + { 146, 0, 137 }, { 4, 0, 146 }, { 7, 0, 1618 }, { 8, 0, 670 }, + { 5, 10, 41 }, { 7, 10, 1459 }, { 7, 10, 1469 }, { 7, 10, 1859 }, + { 9, 10, 549 }, { 139, 10, 905 }, { 133, 10, 696 }, { 6, 0, 159 }, + { 6, 0, 364 }, { 7, 0, 516 }, { 137, 0, 518 }, { 135, 0, 1439 }, + { 6, 11, 222 }, { 7, 11, 636 }, { 7, 11, 1620 }, { 8, 11, 409 }, + { 9, 11, 693 }, { 139, 11, 77 }, { 13, 0, 151 }, { 141, 11, 45 }, + { 6, 0, 1027 }, { 4, 11, 336 }, { 132, 10, 771 }, { 139, 11, 392 }, + { 10, 11, 121 }, { 11, 11, 175 }, { 149, 11, 16 }, { 8, 0, 950 }, + { 138, 0, 983 }, { 133, 10, 921 }, { 135, 0, 993 }, { 6, 10, 180 }, + { 7, 10, 1137 }, { 8, 10, 751 }, { 139, 10, 805 }, { 7, 0, 501 }, + { 9, 0, 111 }, { 10, 0, 141 }, { 11, 0, 332 }, { 13, 0, 43 }, + { 13, 0, 429 }, { 14, 0, 130 }, { 14, 0, 415 }, { 145, 0, 102 }, + { 4, 10, 183 }, { 5, 11, 882 }, { 7, 10, 271 }, { 11, 10, 824 }, + { 11, 10, 952 }, { 13, 10, 278 }, { 13, 10, 339 }, { 13, 10, 482 }, + { 14, 10, 424 }, { 148, 10, 99 }, { 4, 10, 19 }, { 5, 10, 477 }, + { 5, 10, 596 }, { 6, 10, 505 }, { 7, 10, 1221 }, { 11, 10, 907 }, + { 12, 10, 209 }, { 141, 10, 214 }, { 135, 10, 1215 }, { 133, 0, 452 }, + { 132, 11, 426 }, { 5, 0, 149 }, { 136, 0, 233 }, { 133, 0, 935 }, + { 6, 11, 58 }, { 7, 11, 654 }, { 7, 11, 745 }, { 7, 11, 1969 }, + { 8, 11, 240 }, { 8, 11, 675 }, { 9, 11, 479 }, { 9, 11, 731 }, + { 10, 11, 330 }, { 10, 11, 593 }, { 10, 11, 817 }, { 11, 11, 32 }, + { 11, 11, 133 }, { 11, 11, 221 }, { 145, 11, 68 }, { 12, 0, 582 }, + { 18, 0, 131 }, { 7, 11, 102 }, { 137, 11, 538 }, { 136, 0, 801 }, + { 134, 10, 1645 }, { 132, 0, 70 }, { 6, 10, 92 }, { 6, 10, 188 }, + { 7, 10, 1269 }, { 7, 10, 1524 }, { 7, 10, 1876 }, { 10, 10, 228 }, + { 139, 10, 1020 }, { 4, 10, 459 }, { 133, 10, 966 }, { 138, 0, 369 }, + { 16, 0, 36 }, { 140, 10, 330 }, { 141, 11, 366 }, { 7, 0, 721 }, + { 10, 0, 236 }, { 12, 0, 204 }, { 6, 10, 18 }, { 7, 10, 932 }, + { 8, 10, 757 }, { 9, 10, 54 }, { 9, 10, 65 }, { 9, 10, 844 }, + { 10, 10, 113 }, { 10, 10, 315 }, { 10, 10, 798 }, { 11, 10, 153 }, + { 12, 10, 151 }, { 12, 10, 392 }, { 12, 10, 666 }, { 142, 10, 248 }, + { 7, 0, 241 }, { 10, 0, 430 }, { 8, 10, 548 }, { 9, 10, 532 }, + { 10, 10, 117 }, { 11, 10, 351 }, { 11, 10, 375 }, { 143, 10, 23 }, + { 134, 10, 1742 }, { 133, 10, 965 }, { 133, 11, 566 }, { 6, 11, 48 }, + { 135, 11, 63 }, { 134, 10, 182 }, { 10, 10, 65 }, { 10, 10, 488 }, + { 138, 10, 497 }, { 6, 11, 114 }, { 7, 11, 1224 }, { 7, 11, 1556 }, + { 136, 11, 3 }, { 134, 0, 1817 }, { 8, 11, 576 }, { 137, 11, 267 }, + { 6, 0, 1078 }, { 144, 0, 16 }, { 9, 10, 588 }, { 138, 10, 260 }, + { 138, 0, 1021 }, { 5, 0, 406 }, { 134, 0, 2022 }, { 133, 11, 933 }, + { 6, 0, 69 }, { 135, 0, 117 }, { 7, 0, 1830 }, { 136, 11, 427 }, + { 4, 0, 432 }, { 135, 0, 824 }, { 134, 10, 1786 }, { 133, 0, 826 }, + { 139, 11, 67 }, { 133, 11, 759 }, { 135, 10, 308 }, { 137, 0, 816 }, + { 133, 0, 1000 }, { 4, 0, 297 }, { 6, 0, 529 }, { 7, 0, 152 }, + { 7, 0, 713 }, { 7, 0, 1845 }, { 8, 0, 710 }, { 8, 0, 717 }, + { 12, 0, 639 }, { 140, 0, 685 }, { 7, 0, 423 }, { 136, 10, 588 }, + { 136, 10, 287 }, { 136, 0, 510 }, { 134, 0, 1048 }, { 6, 0, 618 }, + { 7, 11, 56 }, { 7, 11, 1989 }, { 8, 11, 337 }, { 8, 11, 738 }, + { 9, 11, 600 }, { 10, 11, 483 }, { 12, 11, 37 }, { 13, 11, 447 }, + { 142, 11, 92 }, { 4, 0, 520 }, { 135, 0, 575 }, { 8, 0, 990 }, + { 138, 0, 977 }, { 135, 11, 774 }, { 9, 11, 347 }, { 11, 11, 24 }, + { 140, 11, 170 }, { 136, 11, 379 }, { 140, 10, 290 }, { 132, 11, 328 }, + { 4, 0, 321 }, { 134, 0, 569 }, { 4, 11, 101 }, { 135, 11, 1171 }, + { 7, 0, 723 }, { 7, 0, 1135 }, { 5, 11, 833 }, { 136, 11, 744 }, + { 7, 10, 719 }, { 8, 10, 809 }, { 136, 10, 834 }, { 8, 0, 921 }, + { 136, 10, 796 }, { 5, 10, 210 }, { 6, 10, 213 }, { 7, 10, 60 }, + { 10, 10, 364 }, { 139, 10, 135 }, { 5, 0, 397 }, { 6, 0, 154 }, + { 7, 0, 676 }, { 8, 0, 443 }, { 8, 0, 609 }, { 9, 0, 24 }, + { 9, 0, 325 }, { 10, 0, 35 }, { 11, 0, 535 }, { 11, 0, 672 }, + { 11, 0, 1018 }, { 12, 0, 637 }, { 16, 0, 30 }, { 5, 10, 607 }, + { 8, 10, 326 }, { 136, 10, 490 }, { 4, 10, 701 }, { 5, 10, 472 }, + { 6, 11, 9 }, { 6, 11, 397 }, { 7, 11, 53 }, { 7, 11, 1742 }, + { 9, 10, 758 }, { 10, 11, 632 }, { 11, 11, 828 }, { 140, 11, 146 }, + { 135, 10, 380 }, { 135, 10, 1947 }, { 148, 11, 109 }, { 10, 10, 278 }, + { 138, 11, 278 }, { 134, 0, 856 }, { 7, 0, 139 }, { 4, 10, 386 }, + { 8, 10, 405 }, { 8, 10, 728 }, { 9, 10, 497 }, { 11, 10, 110 }, + { 11, 10, 360 }, { 15, 10, 37 }, { 144, 10, 84 }, { 141, 0, 282 }, + { 133, 0, 981 }, { 5, 0, 288 }, { 7, 10, 1452 }, { 7, 10, 1480 }, + { 8, 10, 634 }, { 140, 10, 472 }, { 7, 0, 1890 }, { 8, 11, 367 }, + { 10, 11, 760 }, { 14, 11, 79 }, { 20, 11, 17 }, { 152, 11, 0 }, + { 4, 10, 524 }, { 136, 10, 810 }, { 4, 0, 56 }, { 7, 0, 1791 }, + { 8, 0, 607 }, { 8, 0, 651 }, { 11, 0, 465 }, { 11, 0, 835 }, + { 12, 0, 337 }, { 141, 0, 480 }, { 10, 10, 238 }, { 141, 10, 33 }, + { 11, 11, 417 }, { 12, 11, 223 }, { 140, 11, 265 }, { 9, 0, 158 }, + { 10, 0, 411 }, { 140, 0, 261 }, { 133, 10, 532 }, { 133, 10, 997 }, + { 12, 11, 186 }, { 12, 11, 292 }, { 14, 11, 100 }, { 146, 11, 70 }, + { 6, 0, 1403 }, { 136, 0, 617 }, { 134, 0, 1205 }, { 139, 0, 563 }, + { 4, 0, 242 }, { 134, 0, 333 }, { 4, 11, 186 }, { 5, 11, 157 }, + { 8, 11, 168 }, { 138, 11, 6 }, { 132, 0, 369 }, { 133, 11, 875 }, + { 5, 10, 782 }, { 5, 10, 829 }, { 134, 10, 1738 }, { 134, 0, 622 }, + { 135, 11, 1272 }, { 6, 0, 1407 }, { 7, 11, 111 }, { 136, 11, 581 }, + { 7, 10, 1823 }, { 139, 10, 693 }, { 7, 0, 160 }, { 10, 0, 624 }, + { 142, 0, 279 }, { 132, 0, 363 }, { 10, 11, 589 }, { 12, 11, 111 }, + { 13, 11, 260 }, { 14, 11, 82 }, { 18, 11, 63 }, { 147, 11, 45 }, + { 7, 11, 1364 }, { 7, 11, 1907 }, { 141, 11, 158 }, { 4, 11, 404 }, + { 4, 11, 659 }, { 135, 11, 675 }, { 13, 11, 211 }, { 14, 11, 133 }, + { 14, 11, 204 }, { 15, 11, 64 }, { 15, 11, 69 }, { 15, 11, 114 }, + { 16, 11, 10 }, { 19, 11, 23 }, { 19, 11, 35 }, { 19, 11, 39 }, + { 19, 11, 51 }, { 19, 11, 71 }, { 19, 11, 75 }, { 152, 11, 15 }, + { 4, 10, 78 }, { 5, 10, 96 }, { 5, 10, 182 }, { 7, 10, 1724 }, + { 7, 10, 1825 }, { 10, 10, 394 }, { 10, 10, 471 }, { 11, 10, 532 }, + { 14, 10, 340 }, { 145, 10, 88 }, { 135, 10, 1964 }, { 133, 11, 391 }, + { 11, 11, 887 }, { 14, 11, 365 }, { 142, 11, 375 }, { 5, 11, 540 }, + { 6, 11, 1697 }, { 7, 11, 222 }, { 136, 11, 341 }, { 134, 11, 78 }, + { 9, 0, 601 }, { 9, 0, 619 }, { 10, 0, 505 }, { 10, 0, 732 }, + { 11, 0, 355 }, { 140, 0, 139 }, { 134, 0, 292 }, { 139, 0, 174 }, + { 5, 0, 177 }, { 6, 0, 616 }, { 7, 0, 827 }, { 9, 0, 525 }, + { 138, 0, 656 }, { 10, 0, 31 }, { 6, 10, 215 }, { 7, 10, 1028 }, + { 7, 10, 1473 }, { 7, 10, 1721 }, { 9, 10, 424 }, { 138, 10, 779 }, + { 135, 10, 584 }, { 136, 11, 293 }, { 134, 0, 685 }, { 135, 11, 1868 }, + { 133, 11, 460 }, { 7, 0, 647 }, { 6, 10, 67 }, { 7, 10, 1630 }, + { 9, 10, 354 }, { 9, 10, 675 }, { 10, 10, 830 }, { 14, 10, 80 }, + { 145, 10, 80 }, { 4, 0, 161 }, { 133, 0, 631 }, { 6, 10, 141 }, + { 7, 10, 225 }, { 9, 10, 59 }, { 9, 10, 607 }, { 10, 10, 312 }, + { 11, 10, 687 }, { 12, 10, 555 }, { 13, 10, 373 }, { 13, 10, 494 }, + { 148, 10, 58 }, { 7, 11, 965 }, { 7, 11, 1460 }, { 135, 11, 1604 }, + { 136, 10, 783 }, { 134, 11, 388 }, { 6, 0, 722 }, { 6, 0, 1267 }, + { 4, 11, 511 }, { 9, 11, 333 }, { 9, 11, 379 }, { 10, 11, 602 }, + { 11, 11, 441 }, { 11, 11, 723 }, { 11, 11, 976 }, { 140, 11, 357 }, + { 134, 0, 1797 }, { 135, 0, 1684 }, { 9, 0, 469 }, { 9, 0, 709 }, + { 12, 0, 512 }, { 14, 0, 65 }, { 17, 0, 12 }, { 5, 11, 938 }, + { 136, 11, 707 }, { 7, 0, 1230 }, { 136, 0, 531 }, { 10, 0, 229 }, + { 11, 0, 73 }, { 11, 0, 376 }, { 139, 0, 433 }, { 12, 0, 268 }, + { 12, 0, 640 }, { 142, 0, 119 }, { 7, 10, 430 }, { 139, 10, 46 }, + { 6, 0, 558 }, { 7, 0, 651 }, { 8, 0, 421 }, { 9, 0, 0 }, + { 10, 0, 34 }, { 139, 0, 1008 }, { 6, 0, 106 }, { 7, 0, 1786 }, + { 7, 0, 1821 }, { 9, 0, 102 }, { 9, 0, 763 }, { 5, 10, 602 }, + { 7, 10, 2018 }, { 137, 10, 418 }, { 5, 0, 65 }, { 6, 0, 416 }, + { 7, 0, 1720 }, { 7, 0, 1924 }, { 10, 0, 109 }, { 11, 0, 14 }, + { 11, 0, 70 }, { 11, 0, 569 }, { 11, 0, 735 }, { 15, 0, 153 }, + { 20, 0, 80 }, { 136, 10, 677 }, { 135, 11, 1625 }, { 137, 11, 772 }, + { 136, 0, 595 }, { 6, 11, 469 }, { 7, 11, 1709 }, { 138, 11, 515 }, + { 7, 0, 1832 }, { 138, 0, 374 }, { 9, 0, 106 }, { 9, 0, 163 }, + { 9, 0, 296 }, { 10, 0, 167 }, { 10, 0, 172 }, { 10, 0, 777 }, + { 139, 0, 16 }, { 6, 0, 6 }, { 7, 0, 81 }, { 7, 0, 771 }, + { 7, 0, 1731 }, { 9, 0, 405 }, { 138, 0, 421 }, { 4, 11, 500 }, + { 135, 11, 938 }, { 5, 11, 68 }, { 134, 11, 383 }, { 5, 0, 881 }, + { 133, 0, 885 }, { 6, 0, 854 }, { 6, 0, 1132 }, { 6, 0, 1495 }, + { 6, 0, 1526 }, { 6, 0, 1533 }, { 134, 0, 1577 }, { 4, 11, 337 }, + { 6, 11, 353 }, { 7, 11, 1934 }, { 8, 11, 488 }, { 137, 11, 429 }, + { 7, 11, 236 }, { 7, 11, 1795 }, { 8, 11, 259 }, { 9, 11, 135 }, + { 9, 11, 177 }, { 10, 11, 825 }, { 11, 11, 115 }, { 11, 11, 370 }, + { 11, 11, 405 }, { 11, 11, 604 }, { 12, 11, 10 }, { 12, 11, 667 }, + { 12, 11, 669 }, { 13, 11, 76 }, { 14, 11, 310 }, { 15, 11, 76 }, + { 15, 11, 147 }, { 148, 11, 23 }, { 5, 0, 142 }, { 134, 0, 546 }, + { 4, 11, 15 }, { 5, 11, 22 }, { 6, 11, 244 }, { 7, 11, 40 }, + { 7, 11, 200 }, { 7, 11, 906 }, { 7, 11, 1199 }, { 9, 11, 616 }, + { 10, 11, 716 }, { 11, 11, 635 }, { 11, 11, 801 }, { 140, 11, 458 }, + { 5, 0, 466 }, { 11, 0, 571 }, { 12, 0, 198 }, { 13, 0, 283 }, + { 14, 0, 186 }, { 15, 0, 21 }, { 15, 0, 103 }, { 135, 10, 329 }, + { 4, 0, 185 }, { 5, 0, 257 }, { 5, 0, 839 }, { 5, 0, 936 }, + { 9, 0, 399 }, { 10, 0, 258 }, { 10, 0, 395 }, { 10, 0, 734 }, + { 11, 0, 1014 }, { 12, 0, 23 }, { 13, 0, 350 }, { 14, 0, 150 }, + { 19, 0, 6 }, { 135, 11, 1735 }, { 12, 11, 36 }, { 141, 11, 337 }, + { 5, 11, 598 }, { 7, 11, 791 }, { 8, 11, 108 }, { 137, 11, 123 }, + { 132, 10, 469 }, { 7, 0, 404 }, { 7, 0, 1377 }, { 7, 0, 1430 }, + { 7, 0, 2017 }, { 8, 0, 149 }, { 8, 0, 239 }, { 8, 0, 512 }, + { 8, 0, 793 }, { 8, 0, 818 }, { 9, 0, 474 }, { 9, 0, 595 }, + { 10, 0, 122 }, { 10, 0, 565 }, { 10, 0, 649 }, { 10, 0, 783 }, + { 11, 0, 239 }, { 11, 0, 295 }, { 11, 0, 447 }, { 11, 0, 528 }, + { 11, 0, 639 }, { 11, 0, 800 }, { 12, 0, 25 }, { 12, 0, 77 }, + { 12, 0, 157 }, { 12, 0, 256 }, { 12, 0, 316 }, { 12, 0, 390 }, + { 12, 0, 391 }, { 12, 0, 395 }, { 12, 0, 478 }, { 12, 0, 503 }, + { 12, 0, 592 }, { 12, 0, 680 }, { 13, 0, 50 }, { 13, 0, 53 }, + { 13, 0, 132 }, { 13, 0, 198 }, { 13, 0, 322 }, { 13, 0, 415 }, + { 13, 0, 511 }, { 14, 0, 71 }, { 14, 0, 395 }, { 15, 0, 71 }, + { 15, 0, 136 }, { 17, 0, 123 }, { 18, 0, 93 }, { 147, 0, 58 }, + { 136, 0, 712 }, { 134, 10, 1743 }, { 5, 10, 929 }, { 6, 10, 340 }, + { 8, 10, 376 }, { 136, 10, 807 }, { 6, 0, 1848 }, { 8, 0, 860 }, + { 10, 0, 856 }, { 10, 0, 859 }, { 10, 0, 925 }, { 10, 0, 941 }, + { 140, 0, 762 }, { 6, 0, 629 }, { 6, 0, 906 }, { 9, 0, 810 }, + { 140, 0, 652 }, { 5, 10, 218 }, { 7, 10, 1610 }, { 138, 10, 83 }, + { 7, 10, 1512 }, { 135, 10, 1794 }, { 4, 0, 377 }, { 24, 0, 13 }, + { 4, 11, 155 }, { 7, 11, 1689 }, { 11, 10, 0 }, { 144, 10, 78 }, + { 4, 11, 164 }, { 5, 11, 151 }, { 5, 11, 730 }, { 5, 11, 741 }, + { 7, 11, 498 }, { 7, 11, 870 }, { 7, 11, 1542 }, { 12, 11, 213 }, + { 14, 11, 36 }, { 14, 11, 391 }, { 17, 11, 111 }, { 18, 11, 6 }, + { 18, 11, 46 }, { 18, 11, 151 }, { 19, 11, 36 }, { 20, 11, 32 }, + { 20, 11, 56 }, { 20, 11, 69 }, { 20, 11, 102 }, { 21, 11, 4 }, + { 22, 11, 8 }, { 22, 11, 10 }, { 22, 11, 14 }, { 150, 11, 31 }, + { 7, 0, 1842 }, { 133, 10, 571 }, { 4, 10, 455 }, { 4, 11, 624 }, + { 135, 11, 1752 }, { 134, 0, 1501 }, { 4, 11, 492 }, { 5, 11, 451 }, + { 6, 10, 161 }, { 7, 10, 372 }, { 137, 10, 597 }, { 132, 10, 349 }, + { 4, 0, 180 }, { 135, 0, 1906 }, { 135, 11, 835 }, { 141, 11, 70 }, + { 132, 0, 491 }, { 137, 10, 751 }, { 6, 10, 432 }, { 139, 10, 322 }, + { 4, 0, 171 }, { 138, 0, 234 }, { 6, 11, 113 }, { 135, 11, 436 }, + { 4, 0, 586 }, { 7, 0, 1186 }, { 138, 0, 631 }, { 5, 10, 468 }, + { 10, 10, 325 }, { 11, 10, 856 }, { 12, 10, 345 }, { 143, 10, 104 }, + { 5, 10, 223 }, { 10, 11, 592 }, { 10, 11, 753 }, { 12, 11, 317 }, + { 12, 11, 355 }, { 12, 11, 465 }, { 12, 11, 469 }, { 12, 11, 560 }, + { 12, 11, 578 }, { 141, 11, 243 }, { 132, 10, 566 }, { 135, 11, 520 }, + { 4, 10, 59 }, { 135, 10, 1394 }, { 6, 10, 436 }, { 139, 10, 481 }, + { 9, 0, 931 }, { 10, 0, 334 }, { 20, 0, 71 }, { 4, 10, 48 }, + { 5, 10, 271 }, { 7, 10, 953 }, { 135, 11, 1878 }, { 11, 0, 170 }, + { 5, 10, 610 }, { 136, 10, 457 }, { 133, 10, 755 }, { 6, 0, 1587 }, + { 135, 10, 1217 }, { 4, 10, 197 }, { 149, 11, 26 }, { 133, 11, 585 }, + { 137, 11, 521 }, { 133, 0, 765 }, { 133, 10, 217 }, { 139, 11, 586 }, + { 133, 0, 424 }, { 9, 11, 752 }, { 12, 11, 610 }, { 13, 11, 431 }, + { 16, 11, 59 }, { 146, 11, 109 }, { 136, 0, 714 }, { 7, 0, 685 }, + { 132, 11, 307 }, { 9, 0, 420 }, { 10, 0, 269 }, { 10, 0, 285 }, + { 10, 0, 576 }, { 11, 0, 397 }, { 13, 0, 175 }, { 145, 0, 90 }, + { 132, 0, 429 }, { 133, 11, 964 }, { 9, 11, 463 }, { 138, 11, 595 }, + { 7, 0, 18 }, { 7, 0, 699 }, { 7, 0, 1966 }, { 8, 0, 752 }, + { 9, 0, 273 }, { 9, 0, 412 }, { 9, 0, 703 }, { 10, 0, 71 }, + { 10, 0, 427 }, { 138, 0, 508 }, { 4, 10, 165 }, { 7, 10, 1398 }, + { 135, 10, 1829 }, { 4, 0, 53 }, { 5, 0, 186 }, { 7, 0, 752 }, + { 7, 0, 828 }, { 142, 0, 116 }, { 8, 0, 575 }, { 10, 0, 289 }, + { 139, 0, 319 }, { 132, 0, 675 }, { 134, 0, 1424 }, { 4, 11, 75 }, + { 5, 11, 180 }, { 6, 11, 500 }, { 7, 11, 58 }, { 7, 11, 710 }, + { 138, 11, 645 }, { 133, 11, 649 }, { 6, 11, 276 }, { 7, 11, 282 }, + { 7, 11, 879 }, { 7, 11, 924 }, { 8, 11, 459 }, { 9, 11, 599 }, + { 9, 11, 754 }, { 11, 11, 574 }, { 12, 11, 128 }, { 12, 11, 494 }, + { 13, 11, 52 }, { 13, 11, 301 }, { 15, 11, 30 }, { 143, 11, 132 }, + { 6, 0, 647 }, { 134, 0, 1095 }, { 5, 10, 9 }, { 7, 10, 297 }, + { 7, 10, 966 }, { 140, 10, 306 }, { 132, 11, 200 }, { 134, 0, 1334 }, + { 5, 10, 146 }, { 6, 10, 411 }, { 138, 10, 721 }, { 6, 0, 209 }, + { 6, 0, 1141 }, { 6, 0, 1288 }, { 8, 0, 468 }, { 9, 0, 210 }, + { 11, 0, 36 }, { 12, 0, 28 }, { 12, 0, 630 }, { 13, 0, 21 }, + { 13, 0, 349 }, { 14, 0, 7 }, { 145, 0, 13 }, { 6, 10, 177 }, + { 135, 10, 467 }, { 4, 0, 342 }, { 135, 0, 1179 }, { 10, 11, 454 }, + { 140, 11, 324 }, { 4, 0, 928 }, { 133, 0, 910 }, { 7, 0, 1838 }, + { 6, 11, 225 }, { 137, 11, 211 }, { 16, 0, 101 }, { 20, 0, 115 }, + { 20, 0, 118 }, { 148, 0, 122 }, { 4, 0, 496 }, { 135, 0, 856 }, + { 4, 0, 318 }, { 11, 0, 654 }, { 7, 11, 718 }, { 139, 11, 102 }, + { 8, 11, 58 }, { 9, 11, 724 }, { 11, 11, 809 }, { 13, 11, 113 }, + { 145, 11, 72 }, { 5, 10, 200 }, { 6, 11, 345 }, { 135, 11, 1247 }, + { 8, 11, 767 }, { 8, 11, 803 }, { 9, 11, 301 }, { 137, 11, 903 }, + { 7, 0, 915 }, { 8, 0, 247 }, { 19, 0, 0 }, { 7, 11, 1949 }, + { 136, 11, 674 }, { 4, 0, 202 }, { 5, 0, 382 }, { 6, 0, 454 }, + { 7, 0, 936 }, { 7, 0, 1803 }, { 8, 0, 758 }, { 9, 0, 375 }, + { 9, 0, 895 }, { 10, 0, 743 }, { 10, 0, 792 }, { 11, 0, 978 }, + { 11, 0, 1012 }, { 142, 0, 109 }, { 7, 0, 1150 }, { 7, 0, 1425 }, + { 7, 0, 1453 }, { 140, 0, 513 }, { 134, 11, 259 }, { 138, 0, 791 }, + { 11, 0, 821 }, { 12, 0, 110 }, { 12, 0, 153 }, { 18, 0, 41 }, + { 150, 0, 19 }, { 134, 10, 481 }, { 132, 0, 796 }, { 6, 0, 445 }, + { 9, 0, 909 }, { 136, 11, 254 }, { 10, 0, 776 }, { 13, 0, 345 }, + { 142, 0, 425 }, { 4, 10, 84 }, { 7, 10, 1482 }, { 10, 10, 76 }, + { 138, 10, 142 }, { 135, 11, 742 }, { 6, 0, 578 }, { 133, 10, 1015 }, + { 6, 0, 1387 }, { 4, 10, 315 }, { 5, 10, 507 }, { 135, 10, 1370 }, + { 4, 0, 438 }, { 133, 0, 555 }, { 136, 0, 766 }, { 133, 11, 248 }, + { 134, 10, 1722 }, { 4, 11, 116 }, { 5, 11, 95 }, { 5, 11, 445 }, + { 7, 11, 1688 }, { 8, 11, 29 }, { 9, 11, 272 }, { 11, 11, 509 }, + { 139, 11, 915 }, { 135, 0, 541 }, { 133, 11, 543 }, { 8, 10, 222 }, + { 8, 10, 476 }, { 9, 10, 238 }, { 11, 10, 516 }, { 11, 10, 575 }, + { 15, 10, 109 }, { 146, 10, 100 }, { 6, 0, 880 }, { 134, 0, 1191 }, + { 5, 11, 181 }, { 136, 11, 41 }, { 134, 0, 1506 }, { 132, 11, 681 }, + { 7, 11, 25 }, { 8, 11, 202 }, { 138, 11, 536 }, { 139, 0, 983 }, + { 137, 0, 768 }, { 132, 0, 584 }, { 9, 11, 423 }, { 140, 11, 89 }, + { 8, 11, 113 }, { 9, 11, 877 }, { 10, 11, 554 }, { 11, 11, 83 }, + { 12, 11, 136 }, { 147, 11, 109 }, { 7, 10, 706 }, { 7, 10, 1058 }, + { 138, 10, 538 }, { 133, 11, 976 }, { 4, 11, 206 }, { 135, 11, 746 }, + { 136, 11, 526 }, { 140, 0, 737 }, { 11, 10, 92 }, { 11, 10, 196 }, + { 11, 10, 409 }, { 11, 10, 450 }, { 11, 10, 666 }, { 11, 10, 777 }, + { 12, 10, 262 }, { 13, 10, 385 }, { 13, 10, 393 }, { 15, 10, 115 }, + { 16, 10, 45 }, { 145, 10, 82 }, { 4, 0, 226 }, { 4, 0, 326 }, + { 7, 0, 1770 }, { 4, 11, 319 }, { 5, 11, 699 }, { 138, 11, 673 }, + { 6, 10, 40 }, { 135, 10, 1781 }, { 5, 0, 426 }, { 8, 0, 30 }, + { 9, 0, 2 }, { 11, 0, 549 }, { 147, 0, 122 }, { 6, 0, 1161 }, + { 134, 0, 1329 }, { 138, 10, 97 }, { 6, 10, 423 }, { 7, 10, 665 }, + { 135, 10, 1210 }, { 7, 11, 13 }, { 8, 11, 226 }, { 10, 11, 537 }, + { 11, 11, 570 }, { 11, 11, 605 }, { 11, 11, 799 }, { 11, 11, 804 }, + { 12, 11, 85 }, { 12, 11, 516 }, { 12, 11, 623 }, { 13, 11, 112 }, + { 13, 11, 361 }, { 14, 11, 77 }, { 14, 11, 78 }, { 17, 11, 28 }, + { 147, 11, 110 }, { 132, 11, 769 }, { 132, 11, 551 }, { 132, 11, 728 }, + { 147, 0, 117 }, { 9, 11, 57 }, { 9, 11, 459 }, { 10, 11, 425 }, + { 11, 11, 119 }, { 12, 11, 184 }, { 12, 11, 371 }, { 13, 11, 358 }, + { 145, 11, 51 }, { 5, 11, 188 }, { 5, 11, 814 }, { 8, 11, 10 }, + { 9, 11, 421 }, { 9, 11, 729 }, { 10, 11, 609 }, { 139, 11, 689 }, + { 134, 11, 624 }, { 135, 11, 298 }, { 135, 0, 462 }, { 4, 0, 345 }, + { 139, 10, 624 }, { 136, 10, 574 }, { 4, 0, 385 }, { 7, 0, 265 }, + { 135, 0, 587 }, { 6, 0, 808 }, { 132, 11, 528 }, { 133, 0, 398 }, + { 132, 10, 354 }, { 4, 0, 347 }, { 5, 0, 423 }, { 5, 0, 996 }, + { 135, 0, 1329 }, { 135, 10, 1558 }, { 7, 0, 1259 }, { 9, 0, 125 }, + { 139, 0, 65 }, { 5, 0, 136 }, { 6, 0, 136 }, { 136, 0, 644 }, + { 5, 11, 104 }, { 6, 11, 173 }, { 135, 11, 1631 }, { 135, 0, 469 }, + { 133, 10, 830 }, { 4, 0, 278 }, { 5, 0, 465 }, { 135, 0, 1367 }, + { 7, 11, 810 }, { 8, 11, 138 }, { 8, 11, 342 }, { 9, 11, 84 }, + { 10, 11, 193 }, { 11, 11, 883 }, { 140, 11, 359 }, { 5, 10, 496 }, + { 135, 10, 203 }, { 4, 0, 433 }, { 133, 0, 719 }, { 6, 11, 95 }, + { 134, 10, 547 }, { 5, 10, 88 }, { 137, 10, 239 }, { 6, 11, 406 }, + { 10, 11, 409 }, { 10, 11, 447 }, { 11, 11, 44 }, { 140, 11, 100 }, + { 134, 0, 1423 }, { 7, 10, 650 }, { 135, 10, 1310 }, { 134, 0, 749 }, + { 135, 11, 1243 }, { 135, 0, 1363 }, { 6, 0, 381 }, { 7, 0, 645 }, + { 7, 0, 694 }, { 8, 0, 546 }, { 7, 10, 1076 }, { 9, 10, 80 }, + { 11, 10, 78 }, { 11, 10, 421 }, { 11, 10, 534 }, { 140, 10, 545 }, + { 134, 11, 1636 }, { 135, 11, 1344 }, { 12, 0, 277 }, { 7, 10, 274 }, + { 11, 10, 479 }, { 139, 10, 507 }, { 6, 0, 705 }, { 6, 0, 783 }, + { 6, 0, 1275 }, { 6, 0, 1481 }, { 4, 11, 282 }, { 7, 11, 1034 }, + { 11, 11, 398 }, { 11, 11, 634 }, { 12, 11, 1 }, { 12, 11, 79 }, + { 12, 11, 544 }, { 14, 11, 237 }, { 17, 11, 10 }, { 146, 11, 20 }, + { 134, 0, 453 }, { 4, 0, 555 }, { 8, 0, 536 }, { 10, 0, 288 }, + { 11, 0, 1005 }, { 4, 10, 497 }, { 135, 10, 1584 }, { 5, 11, 118 }, + { 5, 11, 499 }, { 6, 11, 476 }, { 7, 11, 600 }, { 7, 11, 888 }, + { 135, 11, 1096 }, { 138, 0, 987 }, { 7, 0, 1107 }, { 7, 10, 261 }, + { 7, 10, 1115 }, { 7, 10, 1354 }, { 7, 10, 1588 }, { 7, 10, 1705 }, + { 7, 10, 1902 }, { 9, 10, 465 }, { 10, 10, 248 }, { 10, 10, 349 }, + { 10, 10, 647 }, { 11, 10, 527 }, { 11, 10, 660 }, { 11, 10, 669 }, + { 12, 10, 529 }, { 141, 10, 305 }, { 7, 11, 296 }, { 7, 11, 596 }, + { 8, 11, 560 }, { 8, 11, 586 }, { 9, 11, 612 }, { 11, 11, 100 }, + { 11, 11, 304 }, { 12, 11, 46 }, { 13, 11, 89 }, { 14, 11, 112 }, + { 145, 11, 122 }, { 9, 0, 370 }, { 138, 0, 90 }, { 136, 10, 13 }, + { 132, 0, 860 }, { 7, 10, 642 }, { 8, 10, 250 }, { 11, 10, 123 }, + { 11, 10, 137 }, { 13, 10, 48 }, { 142, 10, 95 }, { 135, 10, 1429 }, + { 137, 11, 321 }, { 132, 0, 257 }, { 135, 0, 2031 }, { 7, 0, 1768 }, + { 7, 11, 1599 }, { 7, 11, 1723 }, { 8, 11, 79 }, { 8, 11, 106 }, + { 8, 11, 190 }, { 8, 11, 302 }, { 8, 11, 383 }, { 9, 11, 119 }, + { 9, 11, 233 }, { 9, 11, 298 }, { 9, 11, 419 }, { 9, 11, 471 }, + { 10, 11, 181 }, { 10, 11, 406 }, { 11, 11, 57 }, { 11, 11, 85 }, + { 11, 11, 120 }, { 11, 11, 177 }, { 11, 11, 296 }, { 11, 11, 382 }, + { 11, 11, 454 }, { 11, 11, 758 }, { 11, 11, 999 }, { 12, 11, 27 }, + { 12, 11, 98 }, { 12, 11, 131 }, { 12, 11, 245 }, { 12, 11, 312 }, + { 12, 11, 446 }, { 12, 11, 454 }, { 13, 11, 25 }, { 13, 11, 98 }, + { 13, 11, 426 }, { 13, 11, 508 }, { 14, 11, 6 }, { 14, 11, 163 }, + { 14, 11, 272 }, { 14, 11, 277 }, { 14, 11, 370 }, { 15, 11, 95 }, + { 15, 11, 138 }, { 15, 11, 167 }, { 17, 11, 18 }, { 17, 11, 38 }, + { 20, 11, 96 }, { 149, 11, 32 }, { 5, 11, 722 }, { 134, 11, 1759 }, + { 145, 11, 16 }, { 6, 0, 1071 }, { 134, 0, 1561 }, { 10, 10, 545 }, + { 140, 10, 301 }, { 6, 0, 83 }, { 6, 0, 1733 }, { 135, 0, 1389 }, + { 4, 0, 835 }, { 135, 0, 1818 }, { 133, 11, 258 }, { 4, 10, 904 }, + { 133, 10, 794 }, { 134, 0, 2006 }, { 5, 11, 30 }, { 7, 11, 495 }, + { 8, 11, 134 }, { 9, 11, 788 }, { 140, 11, 438 }, { 135, 11, 2004 }, + { 137, 0, 696 }, { 5, 11, 50 }, { 6, 11, 439 }, { 7, 11, 780 }, + { 135, 11, 1040 }, { 7, 11, 772 }, { 7, 11, 1104 }, { 7, 11, 1647 }, + { 11, 11, 269 }, { 11, 11, 539 }, { 11, 11, 607 }, { 11, 11, 627 }, + { 11, 11, 706 }, { 11, 11, 975 }, { 12, 11, 248 }, { 12, 11, 311 }, + { 12, 11, 434 }, { 12, 11, 600 }, { 12, 11, 622 }, { 13, 11, 297 }, + { 13, 11, 367 }, { 13, 11, 485 }, { 14, 11, 69 }, { 14, 11, 409 }, + { 143, 11, 108 }, { 5, 11, 1 }, { 6, 11, 81 }, { 138, 11, 520 }, + { 7, 0, 1718 }, { 9, 0, 95 }, { 9, 0, 274 }, { 10, 0, 279 }, + { 10, 0, 317 }, { 10, 0, 420 }, { 11, 0, 303 }, { 11, 0, 808 }, + { 12, 0, 134 }, { 12, 0, 367 }, { 13, 0, 149 }, { 13, 0, 347 }, + { 14, 0, 349 }, { 14, 0, 406 }, { 18, 0, 22 }, { 18, 0, 89 }, + { 18, 0, 122 }, { 147, 0, 47 }, { 5, 11, 482 }, { 8, 11, 98 }, + { 9, 11, 172 }, { 10, 11, 222 }, { 10, 11, 700 }, { 10, 11, 822 }, + { 11, 11, 302 }, { 11, 11, 778 }, { 12, 11, 50 }, { 12, 11, 127 }, + { 12, 11, 396 }, { 13, 11, 62 }, { 13, 11, 328 }, { 14, 11, 122 }, + { 147, 11, 72 }, { 7, 10, 386 }, { 138, 10, 713 }, { 6, 10, 7 }, + { 6, 10, 35 }, { 7, 10, 147 }, { 7, 10, 1069 }, { 7, 10, 1568 }, + { 7, 10, 1575 }, { 7, 10, 1917 }, { 8, 10, 43 }, { 8, 10, 208 }, + { 9, 10, 128 }, { 9, 10, 866 }, { 10, 10, 20 }, { 11, 10, 981 }, + { 147, 10, 33 }, { 133, 0, 26 }, { 132, 0, 550 }, { 5, 11, 2 }, + { 7, 11, 1494 }, { 136, 11, 589 }, { 6, 11, 512 }, { 7, 11, 797 }, + { 8, 11, 253 }, { 9, 11, 77 }, { 10, 11, 1 }, { 10, 11, 129 }, + { 10, 11, 225 }, { 11, 11, 118 }, { 11, 11, 226 }, { 11, 11, 251 }, + { 11, 11, 430 }, { 11, 11, 701 }, { 11, 11, 974 }, { 11, 11, 982 }, + { 12, 11, 64 }, { 12, 11, 260 }, { 12, 11, 488 }, { 140, 11, 690 }, + { 7, 10, 893 }, { 141, 10, 424 }, { 134, 0, 901 }, { 136, 0, 822 }, + { 4, 0, 902 }, { 5, 0, 809 }, { 134, 0, 122 }, { 6, 0, 807 }, + { 134, 0, 1366 }, { 7, 0, 262 }, { 5, 11, 748 }, { 134, 11, 553 }, + { 133, 0, 620 }, { 4, 0, 34 }, { 5, 0, 574 }, { 7, 0, 279 }, + { 7, 0, 1624 }, { 136, 0, 601 }, { 9, 0, 170 }, { 6, 10, 322 }, + { 9, 10, 552 }, { 11, 10, 274 }, { 13, 10, 209 }, { 13, 10, 499 }, + { 14, 10, 85 }, { 15, 10, 126 }, { 145, 10, 70 }, { 132, 0, 537 }, + { 4, 11, 12 }, { 7, 11, 420 }, { 7, 11, 522 }, { 7, 11, 809 }, + { 8, 11, 797 }, { 141, 11, 88 }, { 133, 0, 332 }, { 8, 10, 83 }, + { 8, 10, 742 }, { 8, 10, 817 }, { 9, 10, 28 }, { 9, 10, 29 }, + { 9, 10, 885 }, { 10, 10, 387 }, { 11, 10, 633 }, { 11, 10, 740 }, + { 13, 10, 235 }, { 13, 10, 254 }, { 15, 10, 143 }, { 143, 10, 146 }, + { 6, 0, 1909 }, { 9, 0, 964 }, { 12, 0, 822 }, { 12, 0, 854 }, + { 12, 0, 865 }, { 12, 0, 910 }, { 12, 0, 938 }, { 15, 0, 169 }, + { 15, 0, 208 }, { 15, 0, 211 }, { 18, 0, 205 }, { 18, 0, 206 }, + { 18, 0, 220 }, { 18, 0, 223 }, { 152, 0, 24 }, { 140, 10, 49 }, + { 5, 11, 528 }, { 135, 11, 1580 }, { 6, 0, 261 }, { 8, 0, 182 }, + { 139, 0, 943 }, { 134, 0, 1721 }, { 4, 0, 933 }, { 133, 0, 880 }, + { 136, 11, 321 }, { 5, 11, 266 }, { 9, 11, 290 }, { 9, 11, 364 }, + { 10, 11, 293 }, { 11, 11, 606 }, { 142, 11, 45 }, { 6, 0, 1609 }, + { 4, 11, 50 }, { 6, 11, 510 }, { 6, 11, 594 }, { 9, 11, 121 }, + { 10, 11, 49 }, { 10, 11, 412 }, { 139, 11, 834 }, { 7, 0, 895 }, + { 136, 11, 748 }, { 132, 11, 466 }, { 4, 10, 110 }, { 10, 10, 415 }, + { 10, 10, 597 }, { 142, 10, 206 }, { 133, 0, 812 }, { 135, 11, 281 }, + { 6, 0, 1890 }, { 6, 0, 1902 }, { 6, 0, 1916 }, { 9, 0, 929 }, + { 9, 0, 942 }, { 9, 0, 975 }, { 9, 0, 984 }, { 9, 0, 986 }, + { 9, 0, 1011 }, { 9, 0, 1019 }, { 12, 0, 804 }, { 12, 0, 851 }, + { 12, 0, 867 }, { 12, 0, 916 }, { 12, 0, 923 }, { 15, 0, 194 }, + { 15, 0, 204 }, { 15, 0, 210 }, { 15, 0, 222 }, { 15, 0, 223 }, + { 15, 0, 229 }, { 15, 0, 250 }, { 18, 0, 179 }, { 18, 0, 186 }, + { 18, 0, 192 }, { 7, 10, 205 }, { 135, 10, 2000 }, { 132, 11, 667 }, + { 135, 0, 778 }, { 4, 0, 137 }, { 7, 0, 1178 }, { 135, 0, 1520 }, + { 134, 0, 1314 }, { 4, 11, 242 }, { 134, 11, 333 }, { 6, 0, 1661 }, + { 7, 0, 1975 }, { 7, 0, 2009 }, { 135, 0, 2011 }, { 134, 0, 1591 }, + { 4, 10, 283 }, { 135, 10, 1194 }, { 11, 0, 820 }, { 150, 0, 51 }, + { 4, 11, 39 }, { 5, 11, 36 }, { 7, 11, 1843 }, { 8, 11, 407 }, + { 11, 11, 144 }, { 140, 11, 523 }, { 134, 10, 1720 }, { 4, 11, 510 }, + { 7, 11, 29 }, { 7, 11, 66 }, { 7, 11, 1980 }, { 10, 11, 487 }, + { 10, 11, 809 }, { 146, 11, 9 }, { 5, 0, 89 }, { 7, 0, 1915 }, + { 9, 0, 185 }, { 9, 0, 235 }, { 10, 0, 64 }, { 10, 0, 270 }, + { 10, 0, 403 }, { 10, 0, 469 }, { 10, 0, 529 }, { 10, 0, 590 }, + { 11, 0, 140 }, { 11, 0, 860 }, { 13, 0, 1 }, { 13, 0, 422 }, + { 14, 0, 341 }, { 14, 0, 364 }, { 17, 0, 93 }, { 18, 0, 113 }, + { 19, 0, 97 }, { 147, 0, 113 }, { 133, 0, 695 }, { 6, 0, 987 }, + { 134, 0, 1160 }, { 5, 0, 6 }, { 6, 0, 183 }, { 7, 0, 680 }, + { 7, 0, 978 }, { 7, 0, 1013 }, { 7, 0, 1055 }, { 12, 0, 230 }, + { 13, 0, 172 }, { 146, 0, 29 }, { 134, 11, 570 }, { 132, 11, 787 }, + { 134, 11, 518 }, { 6, 0, 29 }, { 139, 0, 63 }, { 132, 11, 516 }, + { 136, 11, 821 }, { 132, 0, 311 }, { 134, 0, 1740 }, { 7, 0, 170 }, + { 8, 0, 90 }, { 8, 0, 177 }, { 8, 0, 415 }, { 11, 0, 714 }, + { 14, 0, 281 }, { 136, 10, 735 }, { 134, 0, 1961 }, { 135, 11, 1405 }, + { 4, 11, 10 }, { 7, 11, 917 }, { 139, 11, 786 }, { 5, 10, 132 }, + { 9, 10, 486 }, { 9, 10, 715 }, { 10, 10, 458 }, { 11, 10, 373 }, + { 11, 10, 668 }, { 11, 10, 795 }, { 11, 10, 897 }, { 12, 10, 272 }, + { 12, 10, 424 }, { 12, 10, 539 }, { 12, 10, 558 }, { 14, 10, 245 }, + { 14, 10, 263 }, { 14, 10, 264 }, { 14, 10, 393 }, { 142, 10, 403 }, + { 11, 0, 91 }, { 13, 0, 129 }, { 15, 0, 101 }, { 145, 0, 125 }, + { 135, 0, 1132 }, { 4, 0, 494 }, { 6, 0, 74 }, { 7, 0, 44 }, + { 7, 0, 407 }, { 12, 0, 17 }, { 15, 0, 5 }, { 148, 0, 11 }, + { 133, 10, 379 }, { 5, 0, 270 }, { 5, 11, 684 }, { 6, 10, 89 }, + { 6, 10, 400 }, { 7, 10, 1569 }, { 7, 10, 1623 }, { 7, 10, 1850 }, + { 8, 10, 218 }, { 8, 10, 422 }, { 9, 10, 570 }, { 138, 10, 626 }, + { 4, 0, 276 }, { 133, 0, 296 }, { 6, 0, 1523 }, { 134, 11, 27 }, + { 6, 10, 387 }, { 7, 10, 882 }, { 141, 10, 111 }, { 6, 10, 224 }, + { 7, 10, 877 }, { 137, 10, 647 }, { 135, 10, 790 }, { 4, 0, 7 }, + { 5, 0, 90 }, { 5, 0, 158 }, { 6, 0, 542 }, { 7, 0, 221 }, + { 7, 0, 1574 }, { 9, 0, 490 }, { 10, 0, 540 }, { 11, 0, 443 }, + { 139, 0, 757 }, { 7, 0, 588 }, { 9, 0, 175 }, { 138, 0, 530 }, + { 135, 10, 394 }, { 142, 11, 23 }, { 134, 0, 786 }, { 135, 0, 580 }, + { 7, 0, 88 }, { 136, 0, 627 }, { 5, 0, 872 }, { 6, 0, 57 }, + { 7, 0, 471 }, { 9, 0, 447 }, { 137, 0, 454 }, { 6, 11, 342 }, + { 6, 11, 496 }, { 8, 11, 275 }, { 137, 11, 206 }, { 4, 11, 909 }, + { 133, 11, 940 }, { 6, 0, 735 }, { 132, 11, 891 }, { 8, 0, 845 }, + { 8, 0, 916 }, { 135, 10, 1409 }, { 5, 0, 31 }, { 134, 0, 614 }, + { 11, 0, 458 }, { 12, 0, 15 }, { 140, 0, 432 }, { 8, 0, 330 }, + { 140, 0, 477 }, { 4, 0, 530 }, { 5, 0, 521 }, { 7, 0, 1200 }, + { 10, 0, 460 }, { 132, 11, 687 }, { 6, 0, 424 }, { 135, 0, 1866 }, + { 9, 0, 569 }, { 12, 0, 12 }, { 12, 0, 81 }, { 12, 0, 319 }, + { 13, 0, 69 }, { 14, 0, 259 }, { 16, 0, 87 }, { 17, 0, 1 }, + { 17, 0, 21 }, { 17, 0, 24 }, { 18, 0, 15 }, { 18, 0, 56 }, + { 18, 0, 59 }, { 18, 0, 127 }, { 18, 0, 154 }, { 19, 0, 19 }, + { 148, 0, 31 }, { 7, 0, 1302 }, { 136, 10, 38 }, { 134, 11, 253 }, + { 5, 10, 261 }, { 7, 10, 78 }, { 7, 10, 199 }, { 8, 10, 815 }, + { 9, 10, 126 }, { 138, 10, 342 }, { 5, 0, 595 }, { 135, 0, 1863 }, + { 6, 11, 41 }, { 141, 11, 160 }, { 5, 0, 13 }, { 134, 0, 142 }, + { 6, 0, 97 }, { 7, 0, 116 }, { 8, 0, 322 }, { 8, 0, 755 }, + { 9, 0, 548 }, { 10, 0, 714 }, { 11, 0, 884 }, { 13, 0, 324 }, + { 7, 11, 1304 }, { 138, 11, 477 }, { 132, 10, 628 }, { 134, 11, 1718 }, + { 7, 10, 266 }, { 136, 10, 804 }, { 135, 10, 208 }, { 7, 0, 1021 }, + { 6, 10, 79 }, { 135, 10, 1519 }, { 7, 0, 1472 }, { 135, 0, 1554 }, + { 6, 11, 362 }, { 146, 11, 51 }, { 7, 0, 1071 }, { 7, 0, 1541 }, + { 7, 0, 1767 }, { 7, 0, 1806 }, { 11, 0, 162 }, { 11, 0, 242 }, + { 11, 0, 452 }, { 12, 0, 605 }, { 15, 0, 26 }, { 144, 0, 44 }, + { 136, 10, 741 }, { 133, 11, 115 }, { 145, 0, 115 }, { 134, 10, 376 }, + { 6, 0, 1406 }, { 134, 0, 1543 }, { 5, 11, 193 }, { 12, 11, 178 }, + { 13, 11, 130 }, { 145, 11, 84 }, { 135, 0, 1111 }, { 8, 0, 1 }, + { 9, 0, 650 }, { 10, 0, 326 }, { 5, 11, 705 }, { 137, 11, 606 }, + { 5, 0, 488 }, { 6, 0, 527 }, { 7, 0, 489 }, { 7, 0, 1636 }, + { 8, 0, 121 }, { 8, 0, 144 }, { 8, 0, 359 }, { 9, 0, 193 }, + { 9, 0, 241 }, { 9, 0, 336 }, { 9, 0, 882 }, { 11, 0, 266 }, + { 11, 0, 372 }, { 11, 0, 944 }, { 12, 0, 401 }, { 140, 0, 641 }, + { 135, 11, 174 }, { 6, 0, 267 }, { 7, 10, 244 }, { 7, 10, 632 }, + { 7, 10, 1609 }, { 8, 10, 178 }, { 8, 10, 638 }, { 141, 10, 58 }, + { 134, 0, 1983 }, { 134, 0, 1155 }, { 134, 0, 1575 }, { 134, 0, 1438 }, + { 9, 0, 31 }, { 10, 0, 244 }, { 10, 0, 699 }, { 12, 0, 149 }, + { 141, 0, 497 }, { 133, 0, 377 }, { 4, 11, 122 }, { 5, 11, 796 }, + { 5, 11, 952 }, { 6, 11, 1660 }, { 6, 11, 1671 }, { 8, 11, 567 }, + { 9, 11, 687 }, { 9, 11, 742 }, { 10, 11, 686 }, { 11, 11, 356 }, + { 11, 11, 682 }, { 140, 11, 281 }, { 145, 0, 101 }, { 11, 11, 0 }, + { 144, 11, 78 }, { 5, 11, 179 }, { 5, 10, 791 }, { 7, 11, 1095 }, + { 135, 11, 1213 }, { 8, 11, 372 }, { 9, 11, 122 }, { 138, 11, 175 }, + { 7, 10, 686 }, { 8, 10, 33 }, { 8, 10, 238 }, { 10, 10, 616 }, + { 11, 10, 467 }, { 11, 10, 881 }, { 13, 10, 217 }, { 13, 10, 253 }, + { 142, 10, 268 }, { 9, 0, 476 }, { 4, 11, 66 }, { 7, 11, 722 }, + { 135, 11, 904 }, { 7, 11, 352 }, { 137, 11, 684 }, { 135, 0, 2023 }, + { 135, 0, 1836 }, { 132, 10, 447 }, { 5, 0, 843 }, { 144, 0, 35 }, + { 137, 11, 779 }, { 141, 11, 35 }, { 4, 10, 128 }, { 5, 10, 415 }, + { 6, 10, 462 }, { 7, 10, 294 }, { 7, 10, 578 }, { 10, 10, 710 }, + { 139, 10, 86 }, { 132, 0, 554 }, { 133, 0, 536 }, { 136, 10, 587 }, + { 5, 0, 207 }, { 9, 0, 79 }, { 11, 0, 625 }, { 145, 0, 7 }, + { 7, 0, 1371 }, { 6, 10, 427 }, { 138, 10, 692 }, { 4, 0, 424 }, + { 4, 10, 195 }, { 135, 10, 802 }, { 8, 0, 785 }, { 133, 11, 564 }, + { 135, 0, 336 }, { 4, 0, 896 }, { 6, 0, 1777 }, { 134, 11, 556 }, + { 137, 11, 103 }, { 134, 10, 1683 }, { 7, 11, 544 }, { 8, 11, 719 }, + { 138, 11, 61 }, { 138, 10, 472 }, { 4, 11, 5 }, { 5, 11, 498 }, + { 136, 11, 637 }, { 7, 0, 750 }, { 9, 0, 223 }, { 11, 0, 27 }, + { 11, 0, 466 }, { 12, 0, 624 }, { 14, 0, 265 }, { 146, 0, 61 }, + { 12, 0, 238 }, { 18, 0, 155 }, { 12, 11, 238 }, { 146, 11, 155 }, + { 151, 10, 28 }, { 133, 11, 927 }, { 12, 0, 383 }, { 5, 10, 3 }, + { 8, 10, 578 }, { 9, 10, 118 }, { 10, 10, 705 }, { 141, 10, 279 }, + { 4, 11, 893 }, { 5, 11, 780 }, { 133, 11, 893 }, { 4, 0, 603 }, + { 133, 0, 661 }, { 4, 0, 11 }, { 6, 0, 128 }, { 7, 0, 231 }, + { 7, 0, 1533 }, { 10, 0, 725 }, { 5, 10, 229 }, { 5, 11, 238 }, + { 135, 11, 1350 }, { 8, 10, 102 }, { 10, 10, 578 }, { 10, 10, 672 }, + { 12, 10, 496 }, { 13, 10, 408 }, { 14, 10, 121 }, { 145, 10, 106 }, + { 132, 0, 476 }, { 134, 0, 1552 }, { 134, 11, 1729 }, { 8, 10, 115 }, + { 8, 10, 350 }, { 9, 10, 489 }, { 10, 10, 128 }, { 11, 10, 306 }, + { 12, 10, 373 }, { 14, 10, 30 }, { 17, 10, 79 }, { 19, 10, 80 }, + { 150, 10, 55 }, { 135, 0, 1807 }, { 4, 0, 680 }, { 4, 11, 60 }, + { 7, 11, 760 }, { 7, 11, 1800 }, { 8, 11, 314 }, { 9, 11, 700 }, + { 139, 11, 487 }, { 4, 10, 230 }, { 5, 10, 702 }, { 148, 11, 94 }, + { 132, 11, 228 }, { 139, 0, 435 }, { 9, 0, 20 }, { 10, 0, 324 }, + { 10, 0, 807 }, { 139, 0, 488 }, { 6, 10, 1728 }, { 136, 11, 419 }, + { 4, 10, 484 }, { 18, 10, 26 }, { 19, 10, 42 }, { 20, 10, 43 }, + { 21, 10, 0 }, { 23, 10, 27 }, { 152, 10, 14 }, { 135, 0, 1431 }, + { 133, 11, 828 }, { 5, 0, 112 }, { 6, 0, 103 }, { 6, 0, 150 }, + { 7, 0, 1303 }, { 9, 0, 292 }, { 10, 0, 481 }, { 20, 0, 13 }, + { 7, 11, 176 }, { 7, 11, 178 }, { 7, 11, 1110 }, { 10, 11, 481 }, + { 148, 11, 13 }, { 138, 0, 356 }, { 4, 11, 51 }, { 5, 11, 39 }, + { 6, 11, 4 }, { 7, 11, 591 }, { 7, 11, 849 }, { 7, 11, 951 }, + { 7, 11, 1129 }, { 7, 11, 1613 }, { 7, 11, 1760 }, { 7, 11, 1988 }, + { 9, 11, 434 }, { 10, 11, 754 }, { 11, 11, 25 }, { 11, 11, 37 }, + { 139, 11, 414 }, { 6, 0, 1963 }, { 134, 0, 2000 }, { 132, 10, 633 }, + { 6, 0, 1244 }, { 133, 11, 902 }, { 135, 11, 928 }, { 140, 0, 18 }, + { 138, 0, 204 }, { 135, 11, 1173 }, { 134, 0, 867 }, { 4, 0, 708 }, + { 8, 0, 15 }, { 9, 0, 50 }, { 9, 0, 386 }, { 11, 0, 18 }, + { 11, 0, 529 }, { 140, 0, 228 }, { 134, 11, 270 }, { 4, 0, 563 }, + { 7, 0, 109 }, { 7, 0, 592 }, { 7, 0, 637 }, { 7, 0, 770 }, + { 8, 0, 463 }, { 9, 0, 60 }, { 9, 0, 335 }, { 9, 0, 904 }, + { 10, 0, 73 }, { 11, 0, 434 }, { 12, 0, 585 }, { 13, 0, 331 }, + { 18, 0, 110 }, { 148, 0, 60 }, { 132, 0, 502 }, { 14, 11, 359 }, + { 19, 11, 52 }, { 148, 11, 47 }, { 6, 11, 377 }, { 7, 11, 1025 }, + { 9, 11, 613 }, { 145, 11, 104 }, { 6, 0, 347 }, { 10, 0, 161 }, + { 5, 10, 70 }, { 5, 10, 622 }, { 6, 10, 334 }, { 7, 10, 1032 }, + { 9, 10, 171 }, { 11, 10, 26 }, { 11, 10, 213 }, { 11, 10, 637 }, + { 11, 10, 707 }, { 12, 10, 202 }, { 12, 10, 380 }, { 13, 10, 226 }, + { 13, 10, 355 }, { 14, 10, 222 }, { 145, 10, 42 }, { 132, 11, 416 }, + { 4, 0, 33 }, { 5, 0, 102 }, { 6, 0, 284 }, { 7, 0, 1079 }, + { 7, 0, 1423 }, { 7, 0, 1702 }, { 8, 0, 470 }, { 9, 0, 554 }, + { 9, 0, 723 }, { 11, 0, 333 }, { 142, 11, 372 }, { 5, 11, 152 }, + { 5, 11, 197 }, { 7, 11, 340 }, { 7, 11, 867 }, { 10, 11, 548 }, + { 10, 11, 581 }, { 11, 11, 6 }, { 12, 11, 3 }, { 12, 11, 19 }, + { 14, 11, 110 }, { 142, 11, 289 }, { 7, 0, 246 }, { 135, 0, 840 }, + { 6, 0, 10 }, { 8, 0, 571 }, { 9, 0, 739 }, { 143, 0, 91 }, + { 6, 0, 465 }, { 7, 0, 1465 }, { 4, 10, 23 }, { 4, 10, 141 }, + { 5, 10, 313 }, { 5, 10, 1014 }, { 6, 10, 50 }, { 7, 10, 142 }, + { 7, 10, 559 }, { 8, 10, 640 }, { 9, 10, 460 }, { 9, 10, 783 }, + { 11, 10, 741 }, { 12, 10, 183 }, { 141, 10, 488 }, { 133, 0, 626 }, + { 136, 0, 614 }, { 138, 0, 237 }, { 7, 11, 34 }, { 7, 11, 190 }, + { 8, 11, 28 }, { 8, 11, 141 }, { 8, 11, 444 }, { 8, 11, 811 }, + { 9, 11, 468 }, { 11, 11, 334 }, { 12, 11, 24 }, { 12, 11, 386 }, + { 140, 11, 576 }, { 133, 11, 757 }, { 5, 0, 18 }, { 6, 0, 526 }, + { 13, 0, 24 }, { 13, 0, 110 }, { 19, 0, 5 }, { 147, 0, 44 }, + { 6, 0, 506 }, { 134, 11, 506 }, { 135, 11, 1553 }, { 4, 0, 309 }, + { 5, 0, 462 }, { 7, 0, 970 }, { 7, 0, 1097 }, { 22, 0, 30 }, + { 22, 0, 33 }, { 7, 11, 1385 }, { 11, 11, 582 }, { 11, 11, 650 }, + { 11, 11, 901 }, { 11, 11, 949 }, { 12, 11, 232 }, { 12, 11, 236 }, + { 13, 11, 413 }, { 13, 11, 501 }, { 146, 11, 116 }, { 9, 0, 140 }, + { 5, 10, 222 }, { 138, 10, 534 }, { 6, 0, 1056 }, { 137, 10, 906 }, + { 134, 0, 1704 }, { 138, 10, 503 }, { 134, 0, 1036 }, { 5, 10, 154 }, + { 7, 10, 1491 }, { 10, 10, 379 }, { 138, 10, 485 }, { 4, 11, 383 }, + { 133, 10, 716 }, { 134, 0, 1315 }, { 5, 0, 86 }, { 7, 0, 743 }, + { 9, 0, 85 }, { 10, 0, 281 }, { 10, 0, 432 }, { 11, 0, 825 }, + { 12, 0, 251 }, { 13, 0, 118 }, { 142, 0, 378 }, { 8, 0, 264 }, + { 4, 10, 91 }, { 5, 10, 388 }, { 5, 10, 845 }, { 6, 10, 206 }, + { 6, 10, 252 }, { 6, 10, 365 }, { 7, 10, 136 }, { 7, 10, 531 }, + { 136, 10, 621 }, { 5, 0, 524 }, { 133, 0, 744 }, { 5, 11, 277 }, + { 141, 11, 247 }, { 132, 11, 435 }, { 10, 0, 107 }, { 140, 0, 436 }, + { 132, 0, 927 }, { 10, 0, 123 }, { 12, 0, 670 }, { 146, 0, 94 }, + { 7, 0, 1149 }, { 9, 0, 156 }, { 138, 0, 957 }, { 5, 11, 265 }, + { 6, 11, 212 }, { 135, 11, 28 }, { 133, 0, 778 }, { 133, 0, 502 }, + { 8, 0, 196 }, { 10, 0, 283 }, { 139, 0, 406 }, { 135, 10, 576 }, + { 136, 11, 535 }, { 134, 0, 1312 }, { 5, 10, 771 }, { 5, 10, 863 }, + { 5, 10, 898 }, { 6, 10, 1632 }, { 6, 10, 1644 }, { 134, 10, 1780 }, + { 5, 0, 855 }, { 5, 10, 331 }, { 135, 11, 1487 }, { 132, 11, 702 }, + { 5, 11, 808 }, { 135, 11, 2045 }, { 7, 0, 1400 }, { 9, 0, 446 }, + { 138, 0, 45 }, { 140, 10, 632 }, { 132, 0, 1003 }, { 5, 11, 166 }, + { 8, 11, 739 }, { 140, 11, 511 }, { 5, 10, 107 }, { 7, 10, 201 }, + { 136, 10, 518 }, { 6, 10, 446 }, { 135, 10, 1817 }, { 134, 0, 1532 }, + { 134, 0, 1097 }, { 4, 11, 119 }, { 5, 11, 170 }, { 5, 11, 447 }, + { 7, 11, 1708 }, { 7, 11, 1889 }, { 9, 11, 357 }, { 9, 11, 719 }, + { 12, 11, 486 }, { 140, 11, 596 }, { 9, 10, 851 }, { 141, 10, 510 }, + { 7, 0, 612 }, { 8, 0, 545 }, { 8, 0, 568 }, { 8, 0, 642 }, + { 9, 0, 717 }, { 10, 0, 541 }, { 10, 0, 763 }, { 11, 0, 449 }, + { 12, 0, 489 }, { 13, 0, 153 }, { 13, 0, 296 }, { 14, 0, 138 }, + { 14, 0, 392 }, { 15, 0, 50 }, { 16, 0, 6 }, { 16, 0, 12 }, + { 20, 0, 9 }, { 132, 10, 504 }, { 4, 11, 450 }, { 135, 11, 1158 }, + { 11, 0, 54 }, { 13, 0, 173 }, { 13, 0, 294 }, { 5, 10, 883 }, + { 5, 10, 975 }, { 8, 10, 392 }, { 148, 10, 7 }, { 13, 0, 455 }, + { 15, 0, 99 }, { 15, 0, 129 }, { 144, 0, 68 }, { 135, 0, 172 }, + { 132, 11, 754 }, { 5, 10, 922 }, { 134, 10, 1707 }, { 134, 0, 1029 }, + { 17, 11, 39 }, { 148, 11, 36 }, { 4, 0, 568 }, { 5, 10, 993 }, + { 7, 10, 515 }, { 137, 10, 91 }, { 132, 0, 732 }, { 10, 0, 617 }, + { 138, 11, 617 }, { 134, 0, 974 }, { 7, 0, 989 }, { 10, 0, 377 }, + { 12, 0, 363 }, { 13, 0, 68 }, { 13, 0, 94 }, { 14, 0, 108 }, + { 142, 0, 306 }, { 136, 0, 733 }, { 132, 0, 428 }, { 7, 0, 1789 }, + { 135, 11, 1062 }, { 7, 0, 2015 }, { 140, 0, 665 }, { 135, 10, 1433 }, + { 5, 0, 287 }, { 7, 10, 921 }, { 8, 10, 580 }, { 8, 10, 593 }, + { 8, 10, 630 }, { 138, 10, 28 }, { 138, 0, 806 }, { 4, 10, 911 }, + { 5, 10, 867 }, { 5, 10, 1013 }, { 7, 10, 2034 }, { 8, 10, 798 }, + { 136, 10, 813 }, { 134, 0, 1539 }, { 8, 11, 523 }, { 150, 11, 34 }, + { 135, 11, 740 }, { 7, 11, 238 }, { 7, 11, 2033 }, { 8, 11, 120 }, + { 8, 11, 188 }, { 8, 11, 659 }, { 9, 11, 598 }, { 10, 11, 466 }, + { 12, 11, 342 }, { 12, 11, 588 }, { 13, 11, 503 }, { 14, 11, 246 }, + { 143, 11, 92 }, { 7, 0, 1563 }, { 141, 0, 182 }, { 5, 10, 135 }, + { 6, 10, 519 }, { 7, 10, 1722 }, { 10, 10, 271 }, { 11, 10, 261 }, + { 145, 10, 54 }, { 14, 10, 338 }, { 148, 10, 81 }, { 7, 0, 484 }, + { 4, 10, 300 }, { 133, 10, 436 }, { 145, 11, 114 }, { 6, 0, 1623 }, + { 134, 0, 1681 }, { 133, 11, 640 }, { 4, 11, 201 }, { 7, 11, 1744 }, + { 8, 11, 602 }, { 11, 11, 247 }, { 11, 11, 826 }, { 145, 11, 65 }, + { 8, 11, 164 }, { 146, 11, 62 }, { 6, 0, 1833 }, { 6, 0, 1861 }, + { 136, 0, 878 }, { 134, 0, 1569 }, { 8, 10, 357 }, { 10, 10, 745 }, + { 14, 10, 426 }, { 17, 10, 94 }, { 147, 10, 57 }, { 12, 0, 93 }, + { 12, 0, 501 }, { 13, 0, 362 }, { 14, 0, 151 }, { 15, 0, 40 }, + { 15, 0, 59 }, { 16, 0, 46 }, { 17, 0, 25 }, { 18, 0, 14 }, + { 18, 0, 134 }, { 19, 0, 25 }, { 19, 0, 69 }, { 20, 0, 16 }, + { 20, 0, 19 }, { 20, 0, 66 }, { 21, 0, 23 }, { 21, 0, 25 }, + { 150, 0, 42 }, { 6, 0, 1748 }, { 8, 0, 715 }, { 9, 0, 802 }, + { 10, 0, 46 }, { 10, 0, 819 }, { 13, 0, 308 }, { 14, 0, 351 }, + { 14, 0, 363 }, { 146, 0, 67 }, { 132, 0, 994 }, { 4, 0, 63 }, + { 133, 0, 347 }, { 132, 0, 591 }, { 133, 0, 749 }, { 7, 11, 1577 }, + { 10, 11, 304 }, { 10, 11, 549 }, { 11, 11, 424 }, { 12, 11, 365 }, + { 13, 11, 220 }, { 13, 11, 240 }, { 142, 11, 33 }, { 133, 0, 366 }, + { 7, 0, 557 }, { 12, 0, 547 }, { 14, 0, 86 }, { 133, 10, 387 }, + { 135, 0, 1747 }, { 132, 11, 907 }, { 5, 11, 100 }, { 10, 11, 329 }, + { 12, 11, 416 }, { 149, 11, 29 }, { 4, 10, 6 }, { 5, 10, 708 }, + { 136, 10, 75 }, { 7, 10, 1351 }, { 9, 10, 581 }, { 10, 10, 639 }, + { 11, 10, 453 }, { 140, 10, 584 }, { 7, 0, 89 }, { 132, 10, 303 }, + { 138, 10, 772 }, { 132, 11, 176 }, { 5, 11, 636 }, { 5, 11, 998 }, + { 8, 11, 26 }, { 137, 11, 358 }, { 7, 11, 9 }, { 7, 11, 1508 }, + { 9, 11, 317 }, { 10, 11, 210 }, { 10, 11, 292 }, { 10, 11, 533 }, + { 11, 11, 555 }, { 12, 11, 526 }, { 12, 11, 607 }, { 13, 11, 263 }, + { 13, 11, 459 }, { 142, 11, 271 }, { 134, 0, 1463 }, { 6, 0, 772 }, + { 6, 0, 1137 }, { 139, 11, 595 }, { 7, 0, 977 }, { 139, 11, 66 }, + { 138, 0, 893 }, { 20, 0, 48 }, { 148, 11, 48 }, { 5, 0, 824 }, + { 133, 0, 941 }, { 134, 11, 295 }, { 7, 0, 1543 }, { 7, 0, 1785 }, + { 10, 0, 690 }, { 4, 10, 106 }, { 139, 10, 717 }, { 7, 0, 440 }, + { 8, 0, 230 }, { 139, 0, 106 }, { 5, 10, 890 }, { 133, 10, 988 }, + { 6, 10, 626 }, { 142, 10, 431 }, { 10, 11, 127 }, { 141, 11, 27 }, + { 17, 0, 32 }, { 10, 10, 706 }, { 150, 10, 44 }, { 132, 0, 216 }, + { 137, 0, 332 }, { 4, 10, 698 }, { 136, 11, 119 }, { 139, 11, 267 }, + { 138, 10, 17 }, { 11, 11, 526 }, { 11, 11, 939 }, { 141, 11, 290 }, + { 7, 11, 1167 }, { 11, 11, 934 }, { 13, 11, 391 }, { 145, 11, 76 }, + { 139, 11, 39 }, { 134, 10, 84 }, { 4, 0, 914 }, { 5, 0, 800 }, + { 133, 0, 852 }, { 10, 0, 416 }, { 141, 0, 115 }, { 7, 0, 564 }, + { 142, 0, 168 }, { 4, 0, 918 }, { 133, 0, 876 }, { 134, 0, 1764 }, + { 152, 0, 3 }, { 4, 0, 92 }, { 5, 0, 274 }, { 7, 11, 126 }, + { 136, 11, 84 }, { 140, 10, 498 }, { 136, 11, 790 }, { 8, 0, 501 }, + { 5, 10, 986 }, { 6, 10, 130 }, { 7, 10, 1582 }, { 8, 10, 458 }, + { 10, 10, 101 }, { 10, 10, 318 }, { 138, 10, 823 }, { 6, 11, 64 }, + { 12, 11, 377 }, { 141, 11, 309 }, { 5, 0, 743 }, { 138, 0, 851 }, + { 4, 0, 49 }, { 7, 0, 280 }, { 135, 0, 1633 }, { 134, 0, 879 }, + { 136, 0, 47 }, { 7, 10, 1644 }, { 137, 10, 129 }, { 132, 0, 865 }, + { 134, 0, 1202 }, { 9, 11, 34 }, { 139, 11, 484 }, { 135, 10, 997 }, + { 5, 0, 272 }, { 5, 0, 908 }, { 5, 0, 942 }, { 8, 0, 197 }, + { 9, 0, 47 }, { 11, 0, 538 }, { 139, 0, 742 }, { 6, 11, 1700 }, + { 7, 11, 26 }, { 7, 11, 293 }, { 7, 11, 382 }, { 7, 11, 1026 }, + { 7, 11, 1087 }, { 7, 11, 2027 }, { 8, 11, 24 }, { 8, 11, 114 }, + { 8, 11, 252 }, { 8, 11, 727 }, { 8, 11, 729 }, { 9, 11, 30 }, + { 9, 11, 199 }, { 9, 11, 231 }, { 9, 11, 251 }, { 9, 11, 334 }, + { 9, 11, 361 }, { 9, 11, 488 }, { 9, 11, 712 }, { 10, 11, 55 }, + { 10, 11, 60 }, { 10, 11, 232 }, { 10, 11, 332 }, { 10, 11, 384 }, + { 10, 11, 396 }, { 10, 11, 504 }, { 10, 11, 542 }, { 10, 11, 652 }, + { 11, 11, 20 }, { 11, 11, 48 }, { 11, 11, 207 }, { 11, 11, 291 }, + { 11, 11, 298 }, { 11, 11, 342 }, { 11, 11, 365 }, { 11, 11, 394 }, + { 11, 11, 620 }, { 11, 11, 705 }, { 11, 11, 1017 }, { 12, 11, 123 }, + { 12, 11, 340 }, { 12, 11, 406 }, { 12, 11, 643 }, { 13, 11, 61 }, + { 13, 11, 269 }, { 13, 11, 311 }, { 13, 11, 319 }, { 13, 11, 486 }, + { 14, 11, 234 }, { 15, 11, 62 }, { 15, 11, 85 }, { 16, 11, 71 }, + { 18, 11, 119 }, { 148, 11, 105 }, { 6, 0, 1455 }, { 150, 11, 37 }, + { 135, 10, 1927 }, { 135, 0, 1911 }, { 137, 0, 891 }, { 7, 10, 1756 }, + { 137, 10, 98 }, { 7, 10, 1046 }, { 139, 10, 160 }, { 132, 0, 761 }, + { 6, 11, 379 }, { 7, 11, 270 }, { 7, 11, 1116 }, { 8, 11, 176 }, + { 8, 11, 183 }, { 9, 11, 432 }, { 9, 11, 661 }, { 12, 11, 247 }, + { 12, 11, 617 }, { 146, 11, 125 }, { 6, 10, 45 }, { 7, 10, 433 }, + { 8, 10, 129 }, { 9, 10, 21 }, { 10, 10, 392 }, { 11, 10, 79 }, + { 12, 10, 499 }, { 13, 10, 199 }, { 141, 10, 451 }, { 4, 0, 407 }, + { 5, 11, 792 }, { 133, 11, 900 }, { 132, 0, 560 }, { 135, 0, 183 }, + { 13, 0, 490 }, { 7, 10, 558 }, { 136, 10, 353 }, { 4, 0, 475 }, + { 6, 0, 731 }, { 11, 0, 35 }, { 13, 0, 71 }, { 13, 0, 177 }, + { 14, 0, 422 }, { 133, 10, 785 }, { 8, 10, 81 }, { 9, 10, 189 }, + { 9, 10, 201 }, { 11, 10, 478 }, { 11, 10, 712 }, { 141, 10, 338 }, + { 4, 0, 418 }, { 4, 0, 819 }, { 133, 10, 353 }, { 151, 10, 26 }, + { 4, 11, 901 }, { 133, 11, 776 }, { 132, 0, 575 }, { 7, 0, 818 }, + { 16, 0, 92 }, { 17, 0, 14 }, { 17, 0, 45 }, { 18, 0, 75 }, + { 148, 0, 18 }, { 6, 0, 222 }, { 7, 0, 636 }, { 7, 0, 1620 }, + { 8, 0, 409 }, { 9, 0, 693 }, { 139, 0, 77 }, { 6, 10, 25 }, + { 7, 10, 855 }, { 7, 10, 1258 }, { 144, 10, 32 }, { 6, 0, 1880 }, + { 6, 0, 1887 }, { 6, 0, 1918 }, { 6, 0, 1924 }, { 9, 0, 967 }, + { 9, 0, 995 }, { 9, 0, 1015 }, { 12, 0, 826 }, { 12, 0, 849 }, + { 12, 0, 857 }, { 12, 0, 860 }, { 12, 0, 886 }, { 12, 0, 932 }, + { 18, 0, 228 }, { 18, 0, 231 }, { 146, 0, 240 }, { 134, 0, 633 }, + { 134, 0, 1308 }, { 4, 11, 37 }, { 5, 11, 334 }, { 135, 11, 1253 }, + { 10, 0, 86 }, { 4, 10, 4 }, { 7, 10, 1118 }, { 7, 10, 1320 }, + { 7, 10, 1706 }, { 8, 10, 277 }, { 9, 10, 622 }, { 11, 10, 724 }, + { 12, 10, 350 }, { 12, 10, 397 }, { 13, 10, 28 }, { 13, 10, 159 }, + { 15, 10, 89 }, { 18, 10, 5 }, { 19, 10, 9 }, { 20, 10, 34 }, + { 150, 10, 47 }, { 132, 11, 508 }, { 137, 11, 448 }, { 12, 11, 107 }, + { 146, 11, 31 }, { 132, 0, 817 }, { 134, 0, 663 }, { 133, 0, 882 }, + { 134, 0, 914 }, { 132, 11, 540 }, { 132, 11, 533 }, { 136, 11, 608 }, + { 8, 0, 885 }, { 138, 0, 865 }, { 132, 0, 426 }, { 6, 0, 58 }, + { 7, 0, 745 }, { 7, 0, 1969 }, { 8, 0, 399 }, { 8, 0, 675 }, + { 9, 0, 479 }, { 9, 0, 731 }, { 10, 0, 330 }, { 10, 0, 593 }, + { 10, 0, 817 }, { 11, 0, 32 }, { 11, 0, 133 }, { 11, 0, 221 }, + { 145, 0, 68 }, { 134, 10, 255 }, { 7, 0, 102 }, { 137, 0, 538 }, + { 137, 10, 216 }, { 7, 11, 253 }, { 136, 11, 549 }, { 135, 11, 912 }, + { 9, 10, 183 }, { 139, 10, 286 }, { 11, 10, 956 }, { 151, 10, 3 }, + { 8, 11, 527 }, { 18, 11, 60 }, { 147, 11, 24 }, { 4, 10, 536 }, + { 7, 10, 1141 }, { 10, 10, 723 }, { 139, 10, 371 }, { 133, 11, 920 }, + { 7, 0, 876 }, { 135, 10, 285 }, { 135, 10, 560 }, { 132, 10, 690 }, + { 142, 11, 126 }, { 11, 10, 33 }, { 12, 10, 571 }, { 149, 10, 1 }, + { 133, 0, 566 }, { 9, 0, 139 }, { 10, 0, 399 }, { 11, 0, 469 }, + { 12, 0, 634 }, { 13, 0, 223 }, { 132, 11, 483 }, { 6, 0, 48 }, + { 135, 0, 63 }, { 18, 0, 12 }, { 7, 10, 1862 }, { 12, 10, 491 }, + { 12, 10, 520 }, { 13, 10, 383 }, { 142, 10, 244 }, { 135, 11, 1665 }, + { 132, 11, 448 }, { 9, 11, 495 }, { 146, 11, 104 }, { 6, 0, 114 }, + { 7, 0, 1224 }, { 7, 0, 1556 }, { 136, 0, 3 }, { 4, 10, 190 }, + { 133, 10, 554 }, { 8, 0, 576 }, { 9, 0, 267 }, { 133, 10, 1001 }, + { 133, 10, 446 }, { 133, 0, 933 }, { 139, 11, 1009 }, { 8, 11, 653 }, + { 13, 11, 93 }, { 147, 11, 14 }, { 6, 0, 692 }, { 6, 0, 821 }, + { 134, 0, 1077 }, { 5, 11, 172 }, { 135, 11, 801 }, { 138, 0, 752 }, + { 4, 0, 375 }, { 134, 0, 638 }, { 134, 0, 1011 }, { 140, 11, 540 }, + { 9, 0, 96 }, { 133, 11, 260 }, { 139, 11, 587 }, { 135, 10, 1231 }, + { 12, 0, 30 }, { 13, 0, 148 }, { 14, 0, 87 }, { 14, 0, 182 }, + { 16, 0, 42 }, { 20, 0, 70 }, { 132, 10, 304 }, { 6, 0, 1398 }, + { 7, 0, 56 }, { 7, 0, 1989 }, { 8, 0, 337 }, { 8, 0, 738 }, + { 9, 0, 600 }, { 12, 0, 37 }, { 13, 0, 447 }, { 142, 0, 92 }, + { 138, 0, 666 }, { 5, 0, 394 }, { 7, 0, 487 }, { 136, 0, 246 }, + { 9, 0, 437 }, { 6, 10, 53 }, { 6, 10, 199 }, { 7, 10, 1408 }, + { 8, 10, 32 }, { 8, 10, 93 }, { 10, 10, 397 }, { 10, 10, 629 }, + { 11, 10, 593 }, { 11, 10, 763 }, { 13, 10, 326 }, { 145, 10, 35 }, + { 134, 10, 105 }, { 9, 0, 320 }, { 10, 0, 506 }, { 138, 10, 794 }, + { 7, 11, 57 }, { 8, 11, 167 }, { 8, 11, 375 }, { 9, 11, 82 }, + { 9, 11, 561 }, { 10, 11, 620 }, { 10, 11, 770 }, { 11, 10, 704 }, + { 141, 10, 396 }, { 6, 0, 1003 }, { 5, 10, 114 }, { 5, 10, 255 }, + { 141, 10, 285 }, { 7, 0, 866 }, { 135, 0, 1163 }, { 133, 11, 531 }, + { 132, 0, 328 }, { 7, 10, 2035 }, { 8, 10, 19 }, { 9, 10, 89 }, + { 138, 10, 831 }, { 8, 11, 194 }, { 136, 11, 756 }, { 136, 0, 1000 }, + { 5, 11, 453 }, { 134, 11, 441 }, { 4, 0, 101 }, { 5, 0, 833 }, + { 7, 0, 1171 }, { 136, 0, 744 }, { 133, 0, 726 }, { 136, 10, 746 }, + { 138, 0, 176 }, { 6, 0, 9 }, { 6, 0, 397 }, { 7, 0, 53 }, + { 7, 0, 1742 }, { 10, 0, 632 }, { 11, 0, 828 }, { 140, 0, 146 }, + { 135, 11, 22 }, { 145, 11, 64 }, { 132, 0, 839 }, { 11, 0, 417 }, + { 12, 0, 223 }, { 140, 0, 265 }, { 4, 11, 102 }, { 7, 11, 815 }, + { 7, 11, 1699 }, { 139, 11, 964 }, { 5, 10, 955 }, { 136, 10, 814 }, + { 6, 0, 1931 }, { 6, 0, 2007 }, { 18, 0, 246 }, { 146, 0, 247 }, + { 8, 0, 198 }, { 11, 0, 29 }, { 140, 0, 534 }, { 135, 0, 1771 }, + { 6, 0, 846 }, { 7, 11, 1010 }, { 11, 11, 733 }, { 11, 11, 759 }, + { 12, 11, 563 }, { 13, 11, 34 }, { 14, 11, 101 }, { 18, 11, 45 }, + { 146, 11, 129 }, { 4, 0, 186 }, { 5, 0, 157 }, { 8, 0, 168 }, + { 138, 0, 6 }, { 132, 11, 899 }, { 133, 10, 56 }, { 148, 10, 100 }, + { 133, 0, 875 }, { 5, 0, 773 }, { 5, 0, 991 }, { 6, 0, 1635 }, + { 134, 0, 1788 }, { 6, 0, 1274 }, { 9, 0, 477 }, { 141, 0, 78 }, + { 4, 0, 639 }, { 7, 0, 111 }, { 8, 0, 581 }, { 12, 0, 177 }, + { 6, 11, 52 }, { 9, 11, 104 }, { 9, 11, 559 }, { 10, 10, 4 }, + { 10, 10, 13 }, { 11, 10, 638 }, { 12, 11, 308 }, { 19, 11, 87 }, + { 148, 10, 57 }, { 132, 11, 604 }, { 4, 11, 301 }, { 133, 10, 738 }, + { 133, 10, 758 }, { 134, 0, 1747 }, { 7, 11, 1440 }, { 11, 11, 854 }, + { 11, 11, 872 }, { 11, 11, 921 }, { 12, 11, 551 }, { 13, 11, 472 }, + { 142, 11, 367 }, { 7, 0, 1364 }, { 7, 0, 1907 }, { 141, 0, 158 }, + { 134, 0, 873 }, { 4, 0, 404 }, { 4, 0, 659 }, { 7, 0, 552 }, + { 135, 0, 675 }, { 135, 10, 1112 }, { 139, 10, 328 }, { 7, 11, 508 }, + { 137, 10, 133 }, { 133, 0, 391 }, { 5, 10, 110 }, { 6, 10, 169 }, + { 6, 10, 1702 }, { 7, 10, 400 }, { 8, 10, 538 }, { 9, 10, 184 }, + { 9, 10, 524 }, { 140, 10, 218 }, { 6, 11, 310 }, { 7, 11, 1849 }, + { 8, 11, 72 }, { 8, 11, 272 }, { 8, 11, 431 }, { 9, 11, 12 }, + { 9, 11, 351 }, { 10, 11, 563 }, { 10, 11, 630 }, { 10, 11, 810 }, + { 11, 11, 367 }, { 11, 11, 599 }, { 11, 11, 686 }, { 140, 11, 672 }, + { 5, 0, 540 }, { 6, 0, 1697 }, { 136, 0, 668 }, { 132, 0, 883 }, + { 134, 0, 78 }, { 12, 0, 628 }, { 18, 0, 79 }, { 6, 10, 133 }, + { 9, 10, 353 }, { 139, 10, 993 }, { 6, 11, 181 }, { 7, 11, 537 }, + { 8, 11, 64 }, { 9, 11, 127 }, { 10, 11, 496 }, { 12, 11, 510 }, + { 141, 11, 384 }, { 6, 10, 93 }, { 7, 10, 1422 }, { 7, 10, 1851 }, + { 8, 10, 673 }, { 9, 10, 529 }, { 140, 10, 43 }, { 137, 10, 371 }, + { 134, 0, 1460 }, { 134, 0, 962 }, { 4, 11, 244 }, { 135, 11, 233 }, + { 9, 10, 25 }, { 10, 10, 467 }, { 138, 10, 559 }, { 4, 10, 335 }, + { 135, 10, 942 }, { 133, 0, 460 }, { 135, 11, 334 }, { 134, 11, 1650 }, + { 4, 0, 199 }, { 139, 0, 34 }, { 5, 10, 601 }, { 8, 10, 39 }, + { 10, 10, 773 }, { 11, 10, 84 }, { 12, 10, 205 }, { 142, 10, 1 }, + { 133, 10, 870 }, { 134, 0, 388 }, { 14, 0, 474 }, { 148, 0, 120 }, + { 133, 11, 369 }, { 139, 0, 271 }, { 4, 0, 511 }, { 9, 0, 333 }, + { 9, 0, 379 }, { 10, 0, 602 }, { 11, 0, 441 }, { 11, 0, 723 }, + { 11, 0, 976 }, { 12, 0, 357 }, { 132, 10, 181 }, { 134, 0, 608 }, + { 134, 10, 1652 }, { 22, 0, 49 }, { 137, 11, 338 }, { 140, 0, 988 }, + { 134, 0, 617 }, { 5, 0, 938 }, { 136, 0, 707 }, { 132, 10, 97 }, + { 5, 10, 147 }, { 6, 10, 286 }, { 7, 10, 1362 }, { 141, 10, 176 }, + { 6, 0, 756 }, { 134, 0, 1149 }, { 133, 11, 896 }, { 6, 10, 375 }, + { 7, 10, 169 }, { 7, 10, 254 }, { 136, 10, 780 }, { 134, 0, 1583 }, + { 135, 10, 1447 }, { 139, 0, 285 }, { 7, 11, 1117 }, { 8, 11, 393 }, + { 136, 11, 539 }, { 135, 0, 344 }, { 6, 0, 469 }, { 7, 0, 1709 }, + { 138, 0, 515 }, { 5, 10, 629 }, { 135, 10, 1549 }, { 5, 11, 4 }, + { 5, 11, 810 }, { 6, 11, 13 }, { 6, 11, 538 }, { 6, 11, 1690 }, + { 6, 11, 1726 }, { 7, 11, 499 }, { 7, 11, 1819 }, { 8, 11, 148 }, + { 8, 11, 696 }, { 8, 11, 791 }, { 12, 11, 125 }, { 13, 11, 54 }, + { 143, 11, 9 }, { 135, 11, 1268 }, { 137, 0, 404 }, { 132, 0, 500 }, + { 5, 0, 68 }, { 134, 0, 383 }, { 11, 0, 216 }, { 139, 0, 340 }, + { 4, 11, 925 }, { 5, 11, 803 }, { 8, 11, 698 }, { 138, 11, 828 }, + { 4, 0, 337 }, { 6, 0, 353 }, { 7, 0, 1934 }, { 8, 0, 488 }, + { 137, 0, 429 }, { 7, 0, 236 }, { 7, 0, 1795 }, { 8, 0, 259 }, + { 9, 0, 135 }, { 9, 0, 177 }, { 9, 0, 860 }, { 10, 0, 825 }, + { 11, 0, 115 }, { 11, 0, 370 }, { 11, 0, 405 }, { 11, 0, 604 }, + { 12, 0, 10 }, { 12, 0, 667 }, { 12, 0, 669 }, { 13, 0, 76 }, + { 14, 0, 310 }, { 15, 0, 76 }, { 15, 0, 147 }, { 148, 0, 23 }, + { 4, 0, 15 }, { 4, 0, 490 }, { 5, 0, 22 }, { 6, 0, 244 }, + { 7, 0, 40 }, { 7, 0, 200 }, { 7, 0, 906 }, { 7, 0, 1199 }, + { 9, 0, 616 }, { 10, 0, 716 }, { 11, 0, 635 }, { 11, 0, 801 }, + { 140, 0, 458 }, { 12, 0, 756 }, { 132, 10, 420 }, { 134, 0, 1504 }, + { 6, 0, 757 }, { 133, 11, 383 }, { 6, 0, 1266 }, { 135, 0, 1735 }, + { 5, 0, 598 }, { 7, 0, 791 }, { 8, 0, 108 }, { 9, 0, 123 }, + { 7, 10, 1570 }, { 140, 10, 542 }, { 142, 11, 410 }, { 9, 11, 660 }, + { 138, 11, 347 } }; -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_DICTIONARY_LUT_H_ +#endif /* BROTLI_ENC_STATIC_DICT_LUT_H_ */ diff --git a/thirdparty/brotli/enc/streams.cc b/thirdparty/brotli/enc/streams.cc index 17eda2d5..abdcc2ab 100644 --- a/thirdparty/brotli/enc/streams.cc +++ b/thirdparty/brotli/enc/streams.cc @@ -4,14 +4,14 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Convience routines to make Brotli I/O classes from some memory containers and -// files. +/* Convience routines to make Brotli I/O classes from some memory containers and + files. */ #include "./streams.h" #include <assert.h> #include <stdlib.h> -#include <string.h> +#include <string.h> /* memcpy */ namespace brotli { @@ -26,7 +26,7 @@ void BrotliMemOut::Reset(void* buf, size_t len) { pos_ = 0; } -// Brotli output routine: copy n bytes to the output buffer. +/* Brotli output routine: copy n bytes to the output buffer. */ bool BrotliMemOut::Write(const void *buf, size_t n) { if (n + pos_ > len_) return false; @@ -47,7 +47,7 @@ void BrotliStringOut::Reset(std::string* buf, size_t max_size) { max_size_ = max_size; } -// Brotli output routine: add n bytes to a string. +/* Brotli output routine: add n bytes to a string. */ bool BrotliStringOut::Write(const void *buf, size_t n) { if (buf_->size() + n > max_size_) return false; @@ -66,7 +66,7 @@ void BrotliMemIn::Reset(const void* buf, size_t len) { pos_ = 0; } -// Brotli input routine: read the next chunk of memory. +/* Brotli input routine: read the next chunk of memory. */ const void* BrotliMemIn::Read(size_t n, size_t* output) { if (pos_ == len_) { return NULL; @@ -111,4 +111,4 @@ bool BrotliFileOut::Write(const void* buf, size_t n) { return true; } -} // namespace brotli +} /* namespace brotli */ diff --git a/thirdparty/brotli/enc/streams.h b/thirdparty/brotli/enc/streams.h index 7fb28092..2ae77335 100644 --- a/thirdparty/brotli/enc/streams.h +++ b/thirdparty/brotli/enc/streams.h @@ -4,83 +4,83 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Input and output classes for streaming brotli compression. +/* Input and output classes for streaming brotli compression. */ #ifndef BROTLI_ENC_STREAMS_H_ #define BROTLI_ENC_STREAMS_H_ #include <stdio.h> #include <string> -#include "./port.h" -#include "./types.h" + +#include "../common/types.h" namespace brotli { -// Input interface for the compression routines. +/* Input interface for the compression routines. */ class BrotliIn { public: virtual ~BrotliIn(void) {} - // Return a pointer to the next block of input of at most n bytes. - // Return the actual length in *nread. - // At end of data, return NULL. Don't return NULL if there is more data - // to read, even if called with n == 0. - // Read will only be called if some of its bytes are needed. + /* Return a pointer to the next block of input of at most n bytes. + Return the actual length in *nread. + At end of data, return NULL. Don't return NULL if there is more data + to read, even if called with n == 0. + Read will only be called if some of its bytes are needed. */ virtual const void* Read(size_t n, size_t* nread) = 0; }; -// Output interface for the compression routines. +/* Output interface for the compression routines. */ class BrotliOut { public: virtual ~BrotliOut(void) {} - // Write n bytes of data from buf. - // Return true if all written, false otherwise. + /* Write n bytes of data from buf. + Return true if all written, false otherwise. */ virtual bool Write(const void *buf, size_t n) = 0; }; -// Adapter class to make BrotliIn objects from raw memory. +/* Adapter class to make BrotliIn objects from raw memory. */ class BrotliMemIn : public BrotliIn { public: BrotliMemIn(const void* buf, size_t len); void Reset(const void* buf, size_t len); - // returns the amount of data consumed + /* returns the amount of data consumed */ size_t position(void) const { return pos_; } const void* Read(size_t n, size_t* OUTPUT); private: - const void* buf_; // start of input buffer - size_t len_; // length of input - size_t pos_; // current read position within input + const void* buf_; /* start of input buffer */ + size_t len_; /* length of input */ + size_t pos_; /* current read position within input */ }; -// Adapter class to make BrotliOut objects from raw memory. +/* Adapter class to make BrotliOut objects from raw memory. */ class BrotliMemOut : public BrotliOut { public: BrotliMemOut(void* buf, size_t len); void Reset(void* buf, size_t len); - // returns the amount of data written + /* returns the amount of data written */ size_t position(void) const { return pos_; } bool Write(const void* buf, size_t n); private: - void* buf_; // start of output buffer - size_t len_; // length of output - size_t pos_; // current write position within output + void* buf_; /* start of output buffer */ + size_t len_; /* length of output */ + size_t pos_; /* current write position within output */ }; -// Adapter class to make BrotliOut objects from a string. +/* Adapter class to make BrotliOut objects from a string. */ class BrotliStringOut : public BrotliOut { public: - // Create a writer that appends its data to buf. - // buf->size() will grow to at most max_size - // buf is expected to be empty when constructing BrotliStringOut. + /* Create a writer that appends its data to buf. + buf->size() will grow to at most max_size + buf is expected to be empty when constructing BrotliStringOut. */ BrotliStringOut(std::string* buf, size_t max_size); void Reset(std::string* buf, size_t max_len); @@ -88,11 +88,11 @@ class BrotliStringOut : public BrotliOut { bool Write(const void* buf, size_t n); private: - std::string* buf_; // start of output buffer - size_t max_size_; // max length of output + std::string* buf_; /* start of output buffer */ + size_t max_size_; /* max length of output */ }; -// Adapter class to make BrotliIn object from a file. +/* Adapter class to make BrotliIn object from a file. */ class BrotliFileIn : public BrotliIn { public: BrotliFileIn(FILE* f, size_t max_read_size); @@ -106,7 +106,7 @@ class BrotliFileIn : public BrotliIn { size_t buf_size_; }; -// Adapter class to make BrotliOut object from a file. +/* Adapter class to make BrotliOut object from a file. */ class BrotliFileOut : public BrotliOut { public: explicit BrotliFileOut(FILE* f); @@ -116,6 +116,6 @@ class BrotliFileOut : public BrotliOut { FILE* f_; }; -} // namespace brotli +} /* namespace brotli */ -#endif // BROTLI_ENC_STREAMS_H_ +#endif /* BROTLI_ENC_STREAMS_H_ */ diff --git a/thirdparty/brotli/enc/transform.h b/thirdparty/brotli/enc/transform.h deleted file mode 100644 index 1ec3849d..00000000 --- a/thirdparty/brotli/enc/transform.h +++ /dev/null @@ -1,248 +0,0 @@ -/* Copyright 2010 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -// Transformations on dictionary words. - -#ifndef BROTLI_ENC_TRANSFORM_H_ -#define BROTLI_ENC_TRANSFORM_H_ - -#include <string> - -#include "./dictionary.h" - -namespace brotli { - -enum WordTransformType { - kIdentity = 0, - kOmitLast1 = 1, - kOmitLast2 = 2, - kOmitLast3 = 3, - kOmitLast4 = 4, - kOmitLast5 = 5, - kOmitLast6 = 6, - kOmitLast7 = 7, - kOmitLast8 = 8, - kOmitLast9 = 9, - kUppercaseFirst = 10, - kUppercaseAll = 11, - kOmitFirst1 = 12, - kOmitFirst2 = 13, - kOmitFirst3 = 14, - kOmitFirst4 = 15, - kOmitFirst5 = 16, - kOmitFirst6 = 17, - kOmitFirst7 = 18, - kOmitFirst8 = 19, - kOmitFirst9 = 20 -}; - -struct Transform { - const char* prefix; - WordTransformType word_transform; - const char* suffix; -}; - -static const Transform kTransforms[] = { - { "", kIdentity, "" }, - { "", kIdentity, " " }, - { " ", kIdentity, " " }, - { "", kOmitFirst1, "" }, - { "", kUppercaseFirst, " " }, - { "", kIdentity, " the " }, - { " ", kIdentity, "" }, - { "s ", kIdentity, " " }, - { "", kIdentity, " of " }, - { "", kUppercaseFirst, "" }, - { "", kIdentity, " and " }, - { "", kOmitFirst2, "" }, - { "", kOmitLast1, "" }, - { ", ", kIdentity, " " }, - { "", kIdentity, ", " }, - { " ", kUppercaseFirst, " " }, - { "", kIdentity, " in " }, - { "", kIdentity, " to " }, - { "e ", kIdentity, " " }, - { "", kIdentity, "\"" }, - { "", kIdentity, "." }, - { "", kIdentity, "\">" }, - { "", kIdentity, "\n" }, - { "", kOmitLast3, "" }, - { "", kIdentity, "]" }, - { "", kIdentity, " for " }, - { "", kOmitFirst3, "" }, - { "", kOmitLast2, "" }, - { "", kIdentity, " a " }, - { "", kIdentity, " that " }, - { " ", kUppercaseFirst, "" }, - { "", kIdentity, ". " }, - { ".", kIdentity, "" }, - { " ", kIdentity, ", " }, - { "", kOmitFirst4, "" }, - { "", kIdentity, " with " }, - { "", kIdentity, "'" }, - { "", kIdentity, " from " }, - { "", kIdentity, " by " }, - { "", kOmitFirst5, "" }, - { "", kOmitFirst6, "" }, - { " the ", kIdentity, "" }, - { "", kOmitLast4, "" }, - { "", kIdentity, ". The " }, - { "", kUppercaseAll, "" }, - { "", kIdentity, " on " }, - { "", kIdentity, " as " }, - { "", kIdentity, " is " }, - { "", kOmitLast7, "" }, - { "", kOmitLast1, "ing " }, - { "", kIdentity, "\n\t" }, - { "", kIdentity, ":" }, - { " ", kIdentity, ". " }, - { "", kIdentity, "ed " }, - { "", kOmitFirst9, "" }, - { "", kOmitFirst7, "" }, - { "", kOmitLast6, "" }, - { "", kIdentity, "(" }, - { "", kUppercaseFirst, ", " }, - { "", kOmitLast8, "" }, - { "", kIdentity, " at " }, - { "", kIdentity, "ly " }, - { " the ", kIdentity, " of " }, - { "", kOmitLast5, "" }, - { "", kOmitLast9, "" }, - { " ", kUppercaseFirst, ", " }, - { "", kUppercaseFirst, "\"" }, - { ".", kIdentity, "(" }, - { "", kUppercaseAll, " " }, - { "", kUppercaseFirst, "\">" }, - { "", kIdentity, "=\"" }, - { " ", kIdentity, "." }, - { ".com/", kIdentity, "" }, - { " the ", kIdentity, " of the " }, - { "", kUppercaseFirst, "'" }, - { "", kIdentity, ". This " }, - { "", kIdentity, "," }, - { ".", kIdentity, " " }, - { "", kUppercaseFirst, "(" }, - { "", kUppercaseFirst, "." }, - { "", kIdentity, " not " }, - { " ", kIdentity, "=\"" }, - { "", kIdentity, "er " }, - { " ", kUppercaseAll, " " }, - { "", kIdentity, "al " }, - { " ", kUppercaseAll, "" }, - { "", kIdentity, "='" }, - { "", kUppercaseAll, "\"" }, - { "", kUppercaseFirst, ". " }, - { " ", kIdentity, "(" }, - { "", kIdentity, "ful " }, - { " ", kUppercaseFirst, ". " }, - { "", kIdentity, "ive " }, - { "", kIdentity, "less " }, - { "", kUppercaseAll, "'" }, - { "", kIdentity, "est " }, - { " ", kUppercaseFirst, "." }, - { "", kUppercaseAll, "\">" }, - { " ", kIdentity, "='" }, - { "", kUppercaseFirst, "," }, - { "", kIdentity, "ize " }, - { "", kUppercaseAll, "." }, - { "\xc2\xa0", kIdentity, "" }, - { " ", kIdentity, "," }, - { "", kUppercaseFirst, "=\"" }, - { "", kUppercaseAll, "=\"" }, - { "", kIdentity, "ous " }, - { "", kUppercaseAll, ", " }, - { "", kUppercaseFirst, "='" }, - { " ", kUppercaseFirst, "," }, - { " ", kUppercaseAll, "=\"" }, - { " ", kUppercaseAll, ", " }, - { "", kUppercaseAll, "," }, - { "", kUppercaseAll, "(" }, - { "", kUppercaseAll, ". " }, - { " ", kUppercaseAll, "." }, - { "", kUppercaseAll, "='" }, - { " ", kUppercaseAll, ". " }, - { " ", kUppercaseFirst, "=\"" }, - { " ", kUppercaseAll, "='" }, - { " ", kUppercaseFirst, "='" }, -}; - -static const size_t kNumTransforms = - sizeof(kTransforms) / sizeof(kTransforms[0]); - -static const size_t kOmitLastNTransforms[10] = { - 0, 12, 27, 23, 42, 63, 56, 48, 59, 64, -}; - -static size_t ToUpperCase(uint8_t *p, size_t len) { - if (len == 1 || p[0] < 0xc0) { - if (p[0] >= 'a' && p[0] <= 'z') { - p[0] ^= 32; - } - return 1; - } - if (p[0] < 0xe0) { - p[1] ^= 32; - return 2; - } - if (len == 2) { - return 2; - } - p[2] ^= 5; - return 3; -} - -inline std::string TransformWord( - WordTransformType transform_type, const uint8_t* word, size_t len) { - if (transform_type <= kOmitLast9) { - if (len <= static_cast<size_t>(transform_type)) { - return std::string(); - } - return std::string(word, word + len - transform_type); - } - - if (transform_type >= kOmitFirst1) { - const size_t skip = transform_type - (kOmitFirst1 - 1); - if (len <= skip) { - return std::string(); - } - return std::string(word + skip, word + len); - } - - std::string ret = std::string(word, word + len); - uint8_t *uppercase = reinterpret_cast<uint8_t*>(&ret[0]); - if (transform_type == kUppercaseFirst) { - ToUpperCase(uppercase, len); - } else if (transform_type == kUppercaseAll) { - size_t position = 0; - while (position < len) { - size_t step = ToUpperCase(uppercase, len - position); - uppercase += step; - position += step; - } - } - return ret; -} - -inline std::string ApplyTransform( - const Transform& t, const uint8_t* word, size_t len) { - return std::string(t.prefix) + - TransformWord(t.word_transform, word, len) + std::string(t.suffix); -} - -inline std::string GetTransformedDictionaryWord(size_t len_code, - size_t word_id) { - size_t num_words = 1u << kBrotliDictionarySizeBitsByLength[len_code]; - size_t offset = kBrotliDictionaryOffsetsByLength[len_code]; - size_t t = word_id / num_words; - size_t word_idx = word_id % num_words; - offset += len_code * word_idx; - const uint8_t* word = &kBrotliDictionary[offset]; - return ApplyTransform(kTransforms[t], word, len_code); -} - -} // namespace brotli - -#endif // BROTLI_ENC_TRANSFORM_H_ diff --git a/thirdparty/brotli/enc/types.h b/thirdparty/brotli/enc/types.h deleted file mode 100644 index 266a9cd3..00000000 --- a/thirdparty/brotli/enc/types.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2013 Google Inc. All Rights Reserved. - - Distributed under MIT license. - See file LICENSE for detail or copy at https://opensource.org/licenses/MIT -*/ - -/* Common types */ - -#ifndef BROTLI_ENC_TYPES_H_ -#define BROTLI_ENC_TYPES_H_ - -#include <stddef.h> /* for size_t */ - -#if defined(_MSC_VER) && (_MSC_VER < 1600) -typedef __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef unsigned __int64 uint64_t; -typedef __int64 int64_t; -#else -#include <stdint.h> -#endif /* defined(_MSC_VER) && (_MSC_VER < 1600) */ - -#define MAKE_UINT64_T(high, low) ((((uint64_t)(high)) << 32) | low) - -#endif /* BROTLI_ENC_TYPES_H_ */ diff --git a/thirdparty/brotli/enc/utf8_util.cc b/thirdparty/brotli/enc/utf8_util.c index a2b5c3a6..e1420fdb 100644 --- a/thirdparty/brotli/enc/utf8_util.cc +++ b/thirdparty/brotli/enc/utf8_util.c @@ -4,25 +4,26 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Heuristics for deciding about the UTF8-ness of strings. +/* Heuristics for deciding about the UTF8-ness of strings. */ #include "./utf8_util.h" -#include "./types.h" +#include "../common/types.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif -namespace { - -size_t ParseAsUTF8(int* symbol, const uint8_t* input, size_t size) { - // ASCII +static size_t BrotliParseAsUTF8( + int* symbol, const uint8_t* input, size_t size) { + /* ASCII */ if ((input[0] & 0x80) == 0) { *symbol = input[0]; if (*symbol > 0) { return 1; } } - // 2-byte UTF8 + /* 2-byte UTF8 */ if (size > 1u && (input[0] & 0xe0) == 0xc0 && (input[1] & 0xc0) == 0x80) { @@ -32,7 +33,7 @@ size_t ParseAsUTF8(int* symbol, const uint8_t* input, size_t size) { return 2; } } - // 3-byte UFT8 + /* 3-byte UFT8 */ if (size > 2u && (input[0] & 0xf0) == 0xe0 && (input[1] & 0xc0) == 0x80 && @@ -44,7 +45,7 @@ size_t ParseAsUTF8(int* symbol, const uint8_t* input, size_t size) { return 3; } } - // 4-byte UFT8 + /* 4-byte UFT8 */ if (size > 3u && (input[0] & 0xf8) == 0xf0 && (input[1] & 0xc0) == 0x80 && @@ -58,26 +59,27 @@ size_t ParseAsUTF8(int* symbol, const uint8_t* input, size_t size) { return 4; } } - // Not UTF8, emit a special symbol above the UTF8-code space + /* Not UTF8, emit a special symbol above the UTF8-code space */ *symbol = 0x110000 | input[0]; return 1; } -} // namespace - -// Returns true if at least min_fraction of the data is UTF8-encoded. -bool IsMostlyUTF8(const uint8_t* data, const size_t pos, const size_t mask, - const size_t length, const double min_fraction) { +/* Returns 1 if at least min_fraction of the data is UTF8-encoded.*/ +BROTLI_BOOL BrotliIsMostlyUTF8( + const uint8_t* data, const size_t pos, const size_t mask, + const size_t length, const double min_fraction) { size_t size_utf8 = 0; size_t i = 0; while (i < length) { int symbol; - size_t bytes_read = ParseAsUTF8( - &symbol, &data[(pos + i) & mask], length - i); + size_t bytes_read = + BrotliParseAsUTF8(&symbol, &data[(pos + i) & mask], length - i); i += bytes_read; if (symbol < 0x110000) size_utf8 += bytes_read; } - return size_utf8 > min_fraction * static_cast<double>(length); + return TO_BROTLI_BOOL(size_utf8 > min_fraction * (double)length); } -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif diff --git a/thirdparty/brotli/enc/utf8_util.h b/thirdparty/brotli/enc/utf8_util.h index 74f22b6a..26121b1f 100644 --- a/thirdparty/brotli/enc/utf8_util.h +++ b/thirdparty/brotli/enc/utf8_util.h @@ -4,22 +4,29 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Heuristics for deciding about the UTF8-ness of strings. +/* Heuristics for deciding about the UTF8-ness of strings. */ #ifndef BROTLI_ENC_UTF8_UTIL_H_ #define BROTLI_ENC_UTF8_UTIL_H_ -#include "./types.h" +#include "../common/types.h" +#include "./port.h" -namespace brotli { +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif static const double kMinUTF8Ratio = 0.75; -// Returns true if at least min_fraction of the bytes between pos and -// pos + length in the (data, mask) ringbuffer is UTF8-encoded. -bool IsMostlyUTF8(const uint8_t* data, const size_t pos, const size_t mask, - const size_t length, const double min_fraction); +/* Returns 1 if at least min_fraction of the bytes between pos and + pos + length in the (data, mask) ringbuffer is UTF8-encoded, otherwise + returns 0. */ +BROTLI_INTERNAL BROTLI_BOOL BrotliIsMostlyUTF8( + const uint8_t* data, const size_t pos, const size_t mask, + const size_t length, const double min_fraction); -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_UTF8_UTIL_H_ +#endif /* BROTLI_ENC_UTF8_UTIL_H_ */ diff --git a/thirdparty/brotli/enc/write_bits.h b/thirdparty/brotli/enc/write_bits.h index b605203a..13eb4707 100644 --- a/thirdparty/brotli/enc/write_bits.h +++ b/thirdparty/brotli/enc/write_bits.h @@ -4,74 +4,78 @@ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ -// Write bits into a byte array. +/* Write bits into a byte array. */ #ifndef BROTLI_ENC_WRITE_BITS_H_ #define BROTLI_ENC_WRITE_BITS_H_ #include <assert.h> -#include <stdio.h> +#include <stdio.h> /* printf */ +#include "../common/types.h" #include "./port.h" -#include "./types.h" - -namespace brotli { - -//#define BIT_WRITER_DEBUG - -// This function writes bits into bytes in increasing addresses, and within -// a byte least-significant-bit first. -// -// The function can write up to 56 bits in one go with WriteBits -// Example: let's assume that 3 bits (Rs below) have been written already: -// -// BYTE-0 BYTE+1 BYTE+2 -// -// 0000 0RRR 0000 0000 0000 0000 -// -// Now, we could write 5 or less bits in MSB by just sifting by 3 -// and OR'ing to BYTE-0. -// -// For n bits, we take the last 5 bits, OR that with high bits in BYTE-0, -// and locate the rest in BYTE+1, BYTE+2, etc. -inline void WriteBits(size_t n_bits, - uint64_t bits, - size_t * __restrict pos, - uint8_t * __restrict array) { + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/*#define BIT_WRITER_DEBUG */ + +/* This function writes bits into bytes in increasing addresses, and within + a byte least-significant-bit first. + + The function can write up to 56 bits in one go with WriteBits + Example: let's assume that 3 bits (Rs below) have been written already: + + BYTE-0 BYTE+1 BYTE+2 + + 0000 0RRR 0000 0000 0000 0000 + + Now, we could write 5 or less bits in MSB by just sifting by 3 + and OR'ing to BYTE-0. + + For n bits, we take the last 5 bits, OR that with high bits in BYTE-0, + and locate the rest in BYTE+1, BYTE+2, etc. */ +static BROTLI_INLINE void BrotliWriteBits(size_t n_bits, + uint64_t bits, + size_t * BROTLI_RESTRICT pos, + uint8_t * BROTLI_RESTRICT array) { +#ifdef IS_LITTLE_ENDIAN + /* This branch of the code can write up to 56 bits at a time, + 7 bits are lost by being perhaps already in *p and at least + 1 bit is needed to initialize the bit-stream ahead (i.e. if 7 + bits are in *p and we write 57 bits, then the next write will + access a byte that was never initialized). */ + uint8_t *p = &array[*pos >> 3]; + uint64_t v = *p; #ifdef BIT_WRITER_DEBUG printf("WriteBits %2d 0x%016llx %10d\n", n_bits, bits, *pos); #endif assert((bits >> n_bits) == 0); assert(n_bits <= 56); -#ifdef IS_LITTLE_ENDIAN - // This branch of the code can write up to 56 bits at a time, - // 7 bits are lost by being perhaps already in *p and at least - // 1 bit is needed to initialize the bit-stream ahead (i.e. if 7 - // bits are in *p and we write 57 bits, then the next write will - // access a byte that was never initialized). - uint8_t *p = &array[*pos >> 3]; - uint64_t v = *p; v |= bits << (*pos & 7); - BROTLI_UNALIGNED_STORE64(p, v); // Set some bits. + BROTLI_UNALIGNED_STORE64(p, v); /* Set some bits. */ *pos += n_bits; #else - // implicit & 0xff is assumed for uint8_t arithmetics + /* implicit & 0xff is assumed for uint8_t arithmetics */ uint8_t *array_pos = &array[*pos >> 3]; const size_t bits_reserved_in_first_byte = (*pos & 7); + size_t bits_left_to_write; bits <<= bits_reserved_in_first_byte; - *array_pos++ |= static_cast<uint8_t>(bits); - for (size_t bits_left_to_write = n_bits + bits_reserved_in_first_byte; + *array_pos++ |= (uint8_t)bits; + for (bits_left_to_write = n_bits + bits_reserved_in_first_byte; bits_left_to_write >= 9; bits_left_to_write -= 8) { bits >>= 8; - *array_pos++ = static_cast<uint8_t>(bits); + *array_pos++ = (uint8_t)bits; } *array_pos = 0; *pos += n_bits; #endif } -inline void WriteBitsPrepareStorage(size_t pos, uint8_t *array) { +static BROTLI_INLINE void BrotliWriteBitsPrepareStorage( + size_t pos, uint8_t *array) { #ifdef BIT_WRITER_DEBUG printf("WriteBitsPrepareStorage %10d\n", pos); #endif @@ -79,6 +83,8 @@ inline void WriteBitsPrepareStorage(size_t pos, uint8_t *array) { array[pos >> 3] = 0; } -} // namespace brotli +#if defined(__cplusplus) || defined(c_plusplus) +} /* extern "C" */ +#endif -#endif // BROTLI_ENC_WRITE_BITS_H_ +#endif /* BROTLI_ENC_WRITE_BITS_H_ */ |